/* =============================================================
   TCM — The Concept Mafia · Archive 001
   custom.css — sistema de diseño global
   ============================================================= */

/* ── Variables ─────────────────────────────────────────────── */
:root {
  /* Colores */
  --tcm-black:      oklch(8% 0.008 280);
  --tcm-white:      #ffffff;
  --tcm-gray-line:  #E5E5E5;
  --tcm-gray-text:  #6B6B6B;
  --tcm-gray-bg:    #F5F5F5;
  --tcm-accent-red: #C8102E;
  /* Tokens semánticos */
  --tcm-white-sub:    rgba(255,255,255,0.78);  /* ≥4.7:1 sobre negro — subtítulos */
  --tcm-overlay:      rgba(0,0,0,0.45);
  --tcm-stock-in:     oklch(8% 0.008 280);
  --tcm-stock-low:    #6B6B6B;
  --tcm-warning-bg:   #fffbeb;
  --tcm-warning-bd:   #f6c90e;
  --tcm-warning-tx:   #7a5c00;
  --tcm-error:        #c0392b;

  /* Tipografía */
  --tcm-font-display: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --tcm-font-body:    'Helvetica Neue', Helvetica, Arial, sans-serif;
  --tcm-font-weight-light:   300;
  --tcm-font-weight-regular: 400;
  --tcm-font-weight-medium:  500;
  --tcm-font-weight-bold:    700;
  --tcm-letter-spacing-tight: -0.01em;
  --tcm-letter-spacing-wide:  0.08em;
  --tcm-letter-spacing-extra: 0.15em;

  /* Espaciado (sistema de 8px) */
  --space-1: 8px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 32px;
  --space-5: 48px;
  --space-6: 64px;
  --space-7: 96px;
  --space-8: 128px;
}

/* ── Reset / base ───────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html {
  overflow-x: hidden;
}

body {
  font-family: var(--tcm-font-body);
  font-weight: var(--tcm-font-weight-regular);
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--tcm-black);
  background: var(--tcm-white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; }

/* ── Escala tipográfica ─────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--tcm-font-display);
  font-weight: var(--tcm-font-weight-regular);
  line-height: 1.2;
  margin: 0;
}

/* Mobile first */
h1 { font-size: 32px; line-height: 1.1; }
h2 { font-size: 24px; }
h3 { font-size: 18px; font-weight: var(--tcm-font-weight-medium); line-height: 1.3; }

.tcm-caption,
.tcm-label {
  font-size: 11px;
  font-weight: var(--tcm-font-weight-regular);
  text-transform: uppercase;
  letter-spacing: var(--tcm-letter-spacing-wide);
  color: var(--tcm-gray-text);
}

@media (min-width: 1024px) {
  h1 { font-size: 56px; }
  h2 { font-size: 36px; }
  h3 { font-size: 22px; }

  body { font-size: 0.9375rem; }

  .tcm-caption,
  .tcm-label { font-size: 12px; }
}

/* ── Botones ────────────────────────────────────────────────── */
.tcm-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 16px 32px;
  background: var(--tcm-black) !important;
  color: var(--tcm-white) !important;
  font-family: var(--tcm-font-body);
  font-size: 12px;
  font-weight: var(--tcm-font-weight-medium);
  text-transform: uppercase;
  letter-spacing: var(--tcm-letter-spacing-wide);
  border: 1px solid var(--tcm-black) !important;
  cursor: pointer;
  transition: background 0.25s cubic-bezier(0.16, 1, 0.3, 1), color 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  text-decoration: none !important;
  box-shadow: none !important;
}
.tcm-btn:hover {
  background: var(--tcm-white) !important;
  color: #111111 !important;
  border-color: #111111 !important;
}
.tcm-btn--ghost {
  background: transparent !important;
  color: var(--tcm-black) !important;
}
.tcm-btn--ghost:hover {
  background: var(--tcm-black) !important;
  color: var(--tcm-white) !important;
}
.tcm-btn--full { width: 100%; }

@media (max-width: 1023px) {
  .tcm-btn { width: 100%; }
}

/* ── Contenedor global ──────────────────────────────────────── */
.tcm-container {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 var(--space-3);
}
@media (min-width: 1024px) {
  .tcm-container { padding: 0 var(--space-5); }
}

.tcm-section {
  padding: var(--space-6) 0;
}
@media (min-width: 1024px) {
  .tcm-section { padding: var(--space-8) 0; }
}

/* ── Hero ───────────────────────────────────────────────────── */
.tcm-hero {
  position: relative;
  min-height: calc(100vh - 56px - 28px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--tcm-white);
}
@media (min-width: 1024px) {
  .tcm-hero { min-height: calc(100vh - 70px - 32px); }
}

.tcm-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
}
/* Sin overlay — foto limpia */
.tcm-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
/* Con imagen de fondo: botones siguen el estilo base (negro/transparente) */

/* Placeholder ocupa todo el hero */
.tcm-hero .tcm-placeholder {
  position: absolute;
  inset: 0;
  height: 100%;
}

.tcm-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: var(--space-3) var(--space-3) var(--space-4);
  text-align: left;
}
@media (min-width: 1024px) {
  .tcm-hero__content {
    text-align: left;
    padding: var(--space-7) var(--space-5);
    max-width: 700px;
  }
}

/* Wordmark SVG en el hero */
.tcm-hero__wordmark {
  width: 200px;
  color: var(--tcm-black);
  margin-bottom: var(--space-3);
}
.tcm-hero__wordmark svg {
  width: 100%;
  height: auto;
  display: block;
}
/* Mobile: wordmark mediano, sin sombra */
@media (max-width: 1023px) {
  .tcm-hero__wordmark {
    width: min(210px, 44vw);
    margin-bottom: var(--space-2);
    filter: none;
    text-shadow: none;
  }
}
@media (min-width: 1024px) {
  .tcm-hero__wordmark { width: 320px; }
}
/* Con banner: wordmark y texto siguen en negro */
.tcm-hero--has-image .tcm-hero__wordmark { color: var(--tcm-black); }
.tcm-hero--has-image .tcm-hero__sub { color: var(--tcm-black); }

.tcm-hero__sub {
  font-size: 18px;
  line-height: 1.4;
  color: var(--tcm-black);
  margin-bottom: var(--space-4);
}
@media (max-width: 1023px) {
  .tcm-hero__sub {
    font-size: 12px;
    margin-bottom: var(--space-2);
    text-align: left;
    line-height: 1.5;
    font-weight: 400;
    color: var(--tcm-black) !important;
    text-shadow: none;
    filter: none;
  }
}
@media (min-width: 1024px) {
  .tcm-hero__sub { font-size: 22px; }
}

.tcm-hero__ctas {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  align-items: flex-start;
}
/* Mobile: dos botones compactos en fila, izquierda, sin full-width */
@media (max-width: 1023px) {
  .tcm-hero__ctas {
    flex-direction: row;
    align-items: center;
    gap: 10px;
  }
  .tcm-hero__ctas .tcm-btn {
    width: auto !important;
    padding: 11px 18px;
    font-size: 10px;
    letter-spacing: 0.10em;
    white-space: nowrap;
    box-shadow: none !important;
    text-shadow: none;
  }
  .tcm-hero__ctas .tcm-btn:not(.tcm-btn--ghost) {
    background: var(--tcm-black) !important;
    color: var(--tcm-white) !important;
    border-color: var(--tcm-black) !important;
  }
  .tcm-hero__ctas .tcm-btn:not(.tcm-btn--ghost):hover {
    background: var(--tcm-white) !important;
    color: var(--tcm-black) !important;
  }
  .tcm-hero__ctas .tcm-btn--ghost {
    color: var(--tcm-black) !important;
    border-color: var(--tcm-black) !important;
    background: transparent !important;
  }
  .tcm-hero__ctas .tcm-btn--ghost:hover {
    background: var(--tcm-black) !important;
    color: var(--tcm-white) !important;
  }
}
@media (min-width: 1024px) {
  .tcm-hero__ctas {
    flex-direction: row;
    align-items: flex-start;
  }
}

/* ── Marquee ────────────────────────────────────────────────── */
.tcm-marquee-wrap {
  background: var(--tcm-white);
  border-top: 1px solid var(--tcm-gray-line);
  border-bottom: 1px solid var(--tcm-gray-line);
  overflow: hidden;
  height: 40px;
  display: flex;
  align-items: center;
}
.tcm-marquee {
  display: flex;
  overflow: hidden;
  white-space: nowrap;
}
.tcm-marquee__track {
  display: inline-block;
  font-size: 12px;
  font-weight: var(--tcm-font-weight-regular);
  text-transform: uppercase;
  letter-spacing: var(--tcm-letter-spacing-wide);
  color: var(--tcm-black);
  white-space: nowrap;
  animation: tcm-marquee 50s linear infinite;
}

/* ── Products grid ──────────────────────────────────────────── */
.tcm-products-section__title {
  font-size: 24px;
  font-weight: var(--tcm-font-weight-regular);
  margin-bottom: var(--space-1);
}
@media (min-width: 1024px) {
  .tcm-products-section__title { font-size: 28px; }
}
.tcm-section__header { margin-bottom: var(--space-4); }

/* Grid de productos — estilo denso (Monoic-ref) */
.tcm-products-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
}
@media (min-width: 768px) {
  .tcm-products-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
  .tcm-products-grid { grid-template-columns: repeat(5, 1fr); gap: 2px; }
}

/* En la home, el grid ocupa todo el ancho sin container */
.tcm-products-section .tcm-container { padding: 0; max-width: 100%; }
.tcm-products-section { padding-left: 0; padding-right: 0; }

/* Header del grid con padding */
.tcm-products-section .tcm-section__header {
  padding: 0 var(--space-3) var(--space-3);
}
@media (min-width: 1024px) {
  .tcm-products-section .tcm-section__header {
    padding: 0 var(--space-5) var(--space-3);
  }
}

.tcm-product-card { display: flex; flex-direction: column; background: var(--tcm-white); position: relative; }

/* ── Botón de favoritos ──────────────────────────────────────── */
.tcm-wishlist-btn {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 36px;
  height: 36px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  cursor: pointer;
  padding: 0 !important;
  color: #fff;
  filter: none;
  transition: color 0.2s, transform 0.15s;
}
.tcm-wishlist-btn:hover { transform: scale(1.15); }
.tcm-wishlist-btn:focus-visible { outline: 2px solid var(--tcm-black) !important; outline-offset: 3px; }
.tcm-wishlist-btn.is-saved { color: var(--tcm-accent-red) !important; filter: none; }
.tcm-wishlist-btn.is-saved .tcm-heart-path { fill: var(--tcm-accent-red); stroke: var(--tcm-accent-red); }

/* Icono corazón en el header */
.tcm-header__wishlist-count {
  font-size: 9px;
  font-weight: 700;
  background: var(--tcm-black);
  color: var(--tcm-white);
  border-radius: 50%;
  width: 16px;
  height: 16px;
  display: none;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0px;
  right: 0px;
  pointer-events: none;
}
.tcm-header__wishlist-count:empty { display: none; }

.tcm-product-card__img-wrap {
  position: relative;
  display: block;
  overflow: hidden;
  background: var(--tcm-gray-bg);
}

.tcm-product-card__img {
  display: block;
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  object-position: center top;
  transition: opacity 0.3s ease;
}

/* Hover: segunda imagen */
.tcm-product-card__img--back {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  opacity: 0;
}
.tcm-product-card__img-wrap:hover .tcm-product-card__img--front { opacity: 0; }
.tcm-product-card__img-wrap:hover .tcm-product-card__img--back  { opacity: 1; }

/* Quick add panel */
.tcm-product-card__quick {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--tcm-black);
  color: var(--tcm-white);
  padding: var(--space-2) var(--space-2);
  transform: translateY(100%);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: var(--tcm-letter-spacing-wide);
}
.tcm-product-card__img-wrap:hover .tcm-product-card__quick,
.tcm-product-card__img-wrap:focus-within .tcm-product-card__quick { transform: translateY(0); }

.tcm-product-card__sizes {
  display: flex;
  gap: var(--space-1);
  margin-top: var(--space-1);
  flex-wrap: wrap;
}
.tcm-size-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  border: 1px solid rgba(255,255,255,0.7);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.05em;
  cursor: pointer;
  color: var(--tcm-white);
  background: transparent;
  transition: background 0.2s, border-color 0.2s;
}
.tcm-size-btn:hover {
  background: var(--tcm-white);
  color: var(--tcm-black);
  border-color: var(--tcm-white);
}

.tcm-product-card__info {
  padding: var(--space-1) var(--space-2);
  display: flex;
  flex-direction: column;
  gap: 2px;
  background: var(--tcm-white);
}
.tcm-product-card__name,
.tcm-product-card__price {
  font-size: 14px;
  font-weight: var(--tcm-font-weight-regular);
  color: var(--tcm-black);
  margin: 0;
}

/* ── Bloque editorial ───────────────────────────────────────── */
.tcm-editorial__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}
@media (min-width: 1024px) {
  .tcm-editorial__inner {
    flex-direction: row;
    align-items: center;
    gap: var(--space-7);
  }
  .tcm-editorial__text { flex: 1; }
  .tcm-editorial__img  { flex: 1; }
}

.tcm-editorial__text h2 {
  font-size: 24px;
  margin-bottom: var(--space-3);
}
@media (min-width: 1024px) {
  .tcm-editorial__text h2 { font-size: 36px; }
}
.tcm-editorial__text p { margin-bottom: var(--space-2); color: var(--tcm-gray-text); font-size: 14px; line-height: 1.7; }
.tcm-editorial__text p:first-of-type { color: var(--tcm-black); }

/* Link @low_optica inline en el párrafo */
.tcm-editorial__ig-link {
  color: var(--tcm-black) !important;
  text-decoration: underline !important;
  font-weight: var(--tcm-font-weight-medium);
}
.tcm-editorial__ig-link:hover {
  opacity: 0.6;
}

/* Imagen editorial — foto completa, sin crop */
.tcm-editorial__img img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}
@media (min-width: 1024px) {
  .tcm-editorial__img { max-height: none; overflow: visible; }
}

/* ── Newsletter ─────────────────────────────────────────────── */
.tcm-newsletter {
  background: var(--tcm-black);
  color: var(--tcm-white);
  text-align: center;
  padding: var(--space-7) 0;
}
.tcm-newsletter .tcm-container { max-width: 600px; }
.tcm-newsletter__title {
  font-size: 32px;
  color: var(--tcm-white);
  margin-bottom: var(--space-2);
}
@media (min-width: 1024px) { .tcm-newsletter__title { font-size: 48px; } }
.tcm-newsletter__sub {
  color: rgba(255,255,255,0.7);
  font-size: 15px;
  margin-bottom: var(--space-4);
}
.tcm-newsletter__form {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  align-items: center;
}
.tcm-newsletter__input {
  display: block !important;
  width: 100%;
  max-width: 500px;
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  border-bottom: 1px solid var(--tcm-white) !important;
  color: var(--tcm-white) !important;
  -webkit-text-fill-color: var(--tcm-white) !important;
  /* Prevent browser autocomplete from adding white background */
  -webkit-box-shadow: 0 0 0 100px transparent inset !important;
  box-shadow: none !important;
  font-family: var(--tcm-font-body);
  font-size: 15px;
  padding: var(--space-2) 0;
  outline: none;
  text-align: center;
}
.tcm-newsletter__input::placeholder {
  color: rgba(255,255,255,0.45) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.45) !important;
}
.tcm-btn--white,
.tcm-newsletter .tcm-btn--white {
  background: var(--tcm-white) !important;
  color: var(--tcm-black) !important;
  border-color: var(--tcm-white) !important;
}
.tcm-btn--white:hover,
.tcm-newsletter .tcm-btn--white:hover {
  background: transparent !important;
  color: var(--tcm-white) !important;
}
.tcm-newsletter__msg { font-size: 13px; margin: 0; }
.tcm-newsletter__msg--success { color: rgba(255,255,255,0.8); }
.tcm-newsletter__msg--error   { color: #ff6b6b; }

/* ── Announcement bar ───────────────────────────────────────── */
.tcm-announcement {
  position: relative;
  z-index: 100;
  background: var(--tcm-white);
  border-bottom: 1px solid var(--tcm-gray-line);
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: height 0.2s ease, opacity 0.2s ease;
}
.tcm-announcement.is-hidden {
  height: 0;
  opacity: 0;
  pointer-events: none;
}
.tcm-announcement span,
.tcm-announcement__slide {
  font-size: 11px;
  font-weight: var(--tcm-font-weight-regular);
  text-transform: uppercase;
  letter-spacing: var(--tcm-letter-spacing-extra);
  color: var(--tcm-black);
  white-space: nowrap;
}
.tcm-announcement__slides {
  position: relative;
  width: 100%;
  text-align: center;
}
.tcm-announcement__slide {
  position: absolute;
  left: 0;
  right: 0;
  opacity: 0;
  transition: opacity 0.4s ease;
}
.tcm-announcement__slide.is-active { opacity: 1; position: relative; }

@media (min-width: 1024px) {
  .tcm-announcement { height: 32px; }
}

/* ── Header ─────────────────────────────────────────────────── */
.tcm-header {
  position: sticky;
  top: 0;
  z-index: 200;
  background: var(--tcm-white);
  border-bottom: 1px solid var(--tcm-gray-line);
  height: 56px;
  display: flex;
  align-items: center;
}
.tcm-header__inner {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 var(--space-3);
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative; /* logo absoluto se ancla aquí */
}

/* Mobile: hamburguesa | emblema | carrito */
.tcm-header__nav-left  { display: none; }
.tcm-header__nav-right { display: none; }
.tcm-header__mobile-left  { display: flex !important; align-items: center; visibility: visible !important; opacity: 1 !important; }
.tcm-header__mobile-right { display: flex !important; align-items: center; visibility: visible !important; opacity: 1 !important; }

/* Forzar visibilidad del botón hamburguesa */
.tcm-hamburger {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: none !important;
  border: none !important;
  cursor: pointer !important;
  padding: 8px !important;
  color: var(--tcm-black) !important;
  visibility: visible !important;
  opacity: 1 !important;
  min-width: 44px;
  min-height: 44px;
}

.tcm-header__logo {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  color: var(--tcm-black);
  text-decoration: none;
  line-height: 1;
  display: flex;
  align-items: center;
}
.tcm-header__logo svg {
  height: 32px;
  width: auto;
  display: block;
}

@media (min-width: 1024px) {
  /* Logo centrado absolutamente — independiente del ancho de las navbars */
  .tcm-header__logo {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
  }
  .tcm-header__logo svg { height: 38px; }
}

.tcm-header__icon-btn {
  background: none !important;
  border: none !important;
  outline: none;
  cursor: pointer;
  padding: var(--space-1) !important;
  padding-bottom: var(--space-1) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  color: var(--tcm-black);
  font-size: 20px;
  line-height: 1 !important;
  position: relative;
  text-decoration: none;
  box-shadow: none !important;
  vertical-align: middle;
}

.tcm-header__cart-count {
  position: absolute;
  top: 0px;
  right: 0px;
  background: var(--tcm-black);
  color: var(--tcm-white);
  font-size: 9px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: var(--tcm-font-weight-medium);
  pointer-events: none;
}
.tcm-header__cart-count:empty { display: none; }

/* Desktop */
@media (min-width: 1024px) {
  .tcm-header { height: 70px; }

  .tcm-header__mobile-left,
  .tcm-header__mobile-right { display: none; }

  .tcm-header__nav-left,
  .tcm-header__nav-right { display: flex; align-items: center; gap: var(--space-4); height: 100%; }

  /* logo centrado por posición absoluta — ver bloque anterior */

  .tcm-header__inner { justify-content: space-between; }

  /* Nav links */
  .tcm-header__nav-left a,
  .tcm-header__nav-right a {
    font-size: 12px;
    font-weight: var(--tcm-font-weight-regular);
    text-transform: uppercase;
    letter-spacing: var(--tcm-letter-spacing-wide);
    color: var(--tcm-black);
    position: relative;
    padding-bottom: 2px;
  }
  .tcm-header__nav-left a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background: var(--tcm-black);
    transition: width 0.25s ease;
  }
  .tcm-header__nav-left a:hover::after { width: 100%; }

  /* Dropdown */
  .tcm-nav-item { position: relative; }
  .tcm-nav-item__dropdown {
    position: absolute;
    top: calc(100% + 12px);
    left: 0;
    background: var(--tcm-white);
    border: 1px solid var(--tcm-gray-line);
    min-width: 180px;
    padding: var(--space-2) 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
    z-index: 300;
  }
  .tcm-nav-item:hover .tcm-nav-item__dropdown,
  .tcm-nav-item:focus-within .tcm-nav-item__dropdown,
  .tcm-nav-item.tcm-nav--open .tcm-nav-item__dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  .tcm-nav-item__dropdown a {
    display: block;
    padding: var(--space-1) var(--space-3);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: var(--tcm-letter-spacing-wide);
  }
  .tcm-nav-item__dropdown a:hover { background: var(--tcm-gray-bg); }

  /* Label de sección dentro del dropdown */
  .tcm-dropdown-label {
    display: block;
    padding: var(--space-2) var(--space-3) var(--space-1);
    font-size: 10px;
    font-weight: var(--tcm-font-weight-medium);
    text-transform: uppercase;
    letter-spacing: var(--tcm-letter-spacing-wide);
    color: var(--tcm-gray-text);
    border-bottom: 1px solid var(--tcm-gray-line);
    margin-bottom: var(--space-1);
  }
}

/* Mobile menu overlay */
.tcm-mobile-menu {
  position: fixed;
  inset: 0;
  background: var(--tcm-white);
  z-index: 500;
  display: flex;
  flex-direction: column;
  padding: 0;
  transform: translateX(-100%);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  overflow-y: auto;
}
.tcm-mobile-menu.is-open { transform: translateX(0); }

/* Header del menú: logo + cierre */
.tcm-mobile-menu__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--space-3);
  height: 56px;
  border-bottom: 1px solid var(--tcm-gray-line);
  flex-shrink: 0;
}
.tcm-mobile-menu__close {
  background: none;
  border: none;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  color: var(--tcm-black);
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Links del menú */
.tcm-mobile-menu nav {
  padding: var(--space-3) var(--space-3);
  display: flex;
  flex-direction: column;
}
.tcm-mobile-menu a {
  font-size: 22px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--tcm-black);
  padding: 14px 0;
  border-bottom: 1px solid var(--tcm-gray-line);
  display: block;
}
.tcm-mobile-menu a:last-child { border-bottom: none; }
.tcm-mobile-menu a:active { opacity: 0.5; }

/* ── Footer ─────────────────────────────────────────────────── */
.tcm-footer {
  background: var(--tcm-black);
  color: var(--tcm-white);
  padding: var(--space-5) var(--space-3);
}
.tcm-footer__inner {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-3);
}
.tcm-footer__logo {
  color: var(--tcm-white);
  display: flex;
  align-items: flex-start;
}
.tcm-footer__logo svg {
  width: 220px;
  height: auto;
  display: block;
}
@media (min-width: 1024px) {
  .tcm-footer__logo svg { width: 340px; }
}
.tcm-footer__social {
  display: flex;
  gap: var(--space-3);
}
.tcm-footer__social a {
  color: var(--tcm-white);
  opacity: 1;
  transition: opacity 0.2s ease;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: var(--tcm-letter-spacing-wide);
}
.tcm-footer__social a:hover { opacity: 0.6; }
.tcm-footer__contact {
  font-size: 13px;
  line-height: 1.7;
  color: var(--tcm-white);
}
.tcm-footer__contact a { color: var(--tcm-white); }
.tcm-footer__contact .tcm-label { color: var(--tcm-gray-text); margin-bottom: var(--space-1); }
.tcm-footer__divider {
  width: 100%;
  height: 1px;
  background: rgba(255,255,255,0.15);
}
.tcm-footer__bottom {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: var(--tcm-letter-spacing-wide);
  color: var(--tcm-gray-text);
}
.tcm-footer__bottom-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-3);
}
.tcm-footer__bottom-links a {
  color: var(--tcm-gray-text);
  transition: color 0.2s ease;
}
.tcm-footer__bottom-links a:hover { color: var(--tcm-white); }

@media (min-width: 1024px) {
  .tcm-footer { padding: var(--space-7) var(--space-5); }
  .tcm-footer__inner {
    flex-direction: row;
    align-items: flex-start;
    text-align: left;
    justify-content: space-between;
  }
  .tcm-footer__left {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    flex: 1;
  }
  .tcm-footer__contact {
    text-align: right;
    flex-shrink: 0;
  }
  .tcm-footer__bottom { flex-direction: row; justify-content: space-between; }
}

/* Footer wordmark — sin recorte */
.tcm-footer__logo {
  overflow: visible;
}
.tcm-footer__logo svg text {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
}

/* ── Placeholders de imagen ─────────────────────────────────── */
.tcm-placeholder {
  background: var(--tcm-gray-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  color: var(--tcm-gray-text);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: var(--tcm-letter-spacing-wide);
  text-align: center;
  padding: var(--space-3);
}

/* ── Fade-up scroll animation ───────────────────────────────── */
.tcm-fade-up {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.tcm-fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Single Product ─────────────────────────────────────────── */
.tcm-single-product { padding-bottom: var(--space-8); }

.tcm-single-product__wrap {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
  padding-top: var(--space-4);
}

/* Evita que hijos del grid expandan más allá de su columna (fix clásico CSS Grid) */
.tcm-single-product__gallery,
.tcm-single-product__info {
  min-width: 0;
}

@media (min-width: 1024px) {
  .tcm-single-product__wrap {
    grid-template-columns: 1fr 420px;
    gap: var(--space-6);
    align-items: start;
  }
}

/* Galería */
.tcm-single-product__gallery {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

/* Mobile: fix de layout */
@media (max-width: 1023px) {
  body.single-product .vamtam-main,
  body.single-product #main,
  body.single-product #main-content,
  body.single-product #page {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .tcm-single-product .tcm-container {
    padding-left: 12px;
    padding-right: 12px;
  }

  /* Galería: overflow hidden para contener las miniaturas (no afecta info) */
  .tcm-single-product__gallery {
    overflow: hidden;
    width: 100%;
    max-width: 100%;
  }

  /* Info: contenida sin clipping (necesita mostrar + del acordeón) */
  .tcm-single-product__info {
    width: 100%;
    max-width: 100%;
    overflow: visible;
  }
}

.tcm-single-product__gallery-item img {
  width: 100%;
  display: block;
  aspect-ratio: 4/5;
  object-fit: cover;
}

/* ── Navegación de galería en panel derecho ──────────────────── */
.tcm-gallery-nav {
  display: flex;
  gap: 6px;
  flex-wrap: nowrap;       /* una sola fila */
  overflow-x: auto;        /* scroll horizontal si hay muchas fotos */
  scrollbar-width: none;   /* Firefox: ocultar scrollbar */
  padding-bottom: 2px;
}
.tcm-gallery-nav::-webkit-scrollbar { display: none; } /* Chrome/Safari */
.tcm-gallery-nav__thumb {
  width: 48px;
  height: 48px;
  border: 1px solid var(--tcm-gray-line);
  padding: 0;
  cursor: pointer;
  background: none;
  overflow: hidden;
  transition: border-color 0.2s;
  flex-shrink: 0;
}
.tcm-gallery-nav__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tcm-gallery-nav__thumb.is-active { border-color: var(--tcm-black); }
.tcm-gallery-nav__thumb:hover     { border-color: rgba(0,0,0,0.4); }

/* Panel info sticky */
.tcm-single-product__info {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-bottom: var(--space-8);
}
@media (min-width: 1024px) {
  .tcm-single-product__info {
    position: sticky;
    top: 80px;
    padding-bottom: 0;
    gap: 12px;
  }
}

.tcm-single-product__eyebrow { margin: 0; }

.tcm-single-product__title {
  font-size: 22px;
  font-weight: var(--tcm-font-weight-medium);
  line-height: 1.2;
  margin: 0;
}
@media (min-width: 1024px) {
  .tcm-single-product__title { font-size: 22px; }
}

.tcm-single-product__color-label { margin: calc(var(--space-1) * -1) 0 0; }

.tcm-single-product__price {
  font-size: 20px;
  font-weight: var(--tcm-font-weight-regular);
  margin: 0;
}

/* ── WooCommerce form de variaciones ──────────────────────────── */
.tcm-single-product__atc-wrap { margin: 0; }

/* Quitar márgenes/paddings heredados del form WC */
.tcm-single-product__atc-wrap form.cart,
.tcm-single-product__atc-wrap .variations_form { margin: 0 !important; padding: 0 !important; }

/* Tabla de variaciones */
.tcm-single-product__info .variations { width: 100%; border: none; margin: 0 0 var(--space-2) !important; }
.tcm-single-product__info .variations tr { display: flex; flex-direction: column; gap: var(--space-1); }
.tcm-single-product__info .variations td { padding: 0 !important; border: none !important; }
.tcm-single-product__info .variations label {
  font-family: var(--tcm-font-body);
  font-size: 12px;
  font-weight: var(--tcm-font-weight-medium);
  text-transform: uppercase;
  letter-spacing: var(--tcm-letter-spacing-wide);
  color: var(--tcm-black);
  display: block;
  margin-bottom: 6px;
}
.tcm-single-product__info .variations select {
  width: 100%;
  border: 1px solid var(--tcm-gray-line);
  border-radius: 0;
  padding: 12px var(--space-2);
  font-family: var(--tcm-font-body);
  font-size: 14px;
  background: var(--tcm-white);
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23000' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}
.tcm-single-product__info .reset_variations { display: none !important; }

/* Info de variación seleccionada (precio/stock en respuesta) */
.tcm-single-product__atc-wrap .woocommerce-variation { margin: 0 0 var(--space-2) !important; }
.tcm-single-product__atc-wrap .woocommerce-variation .woocommerce-variation-price { display: none; }

/* Wrapper de cantidad + botón: siempre visible (WC lo oculta via inline display:none) */
.tcm-single-product__atc-wrap .woocommerce-variation-add-to-cart,
.tcm-single-product__atc-wrap .cart:not(.variations_form) {
  display: flex !important;
  flex-direction: column;
  gap: var(--space-2);
  margin: 0 !important;
  padding: 0 !important;
}

/* Campo de cantidad: ocultar, siempre = 1 (TCM vende por unidad) */
.tcm-single-product__atc-wrap .quantity { display: none !important; }

/* Botón añadir al carrito */
.tcm-single-product__info .single_add_to_cart_button,
.tcm-single-product__info button[name="add-to-cart"],
.tcm-single-product__info button[type="submit"] {
  width: 100% !important;
  background: var(--tcm-black) !important;
  color: var(--tcm-white) !important;
  border: 1px solid var(--tcm-black) !important;
  font-family: var(--tcm-font-body) !important;
  font-size: 12px !important;
  font-weight: var(--tcm-font-weight-medium) !important;
  text-transform: uppercase !important;
  letter-spacing: var(--tcm-letter-spacing-wide) !important;
  padding: 18px var(--space-2) !important;
  cursor: pointer !important;
  transition: background .3s, color .3s !important;
  border-radius: 0 !important;
  margin: 0 !important;
  line-height: 1 !important;
}
.tcm-single-product__info .single_add_to_cart_button:hover,
.tcm-single-product__info button[name="add-to-cart"]:hover {
  background: var(--tcm-white) !important;
  color: var(--tcm-black) !important;
}
/* Estado "loading" del botón */
.tcm-single-product__info .single_add_to_cart_button.loading {
  opacity: 0.6 !important;
}
/* Estado pendiente — sin talla seleccionada */
.tcm-single-product__info .single_add_to_cart_button.tcm-atc--pending,
.tcm-single-product__info .single_add_to_cart_button[disabled] {
  background: transparent !important;
  color: rgba(0,0,0,0.45) !important;
  -webkit-text-fill-color: rgba(0,0,0,0.45) !important;
  border: 1px solid rgba(0,0,0,0.3) !important;
  cursor: not-allowed !important;
}
.tcm-single-product__info .single_add_to_cart_button.tcm-atc--pending:hover,
.tcm-single-product__info .single_add_to_cart_button[disabled]:hover {
  background: transparent !important;
  color: rgba(0,0,0,0.45) !important;
  -webkit-text-fill-color: rgba(0,0,0,0.45) !important;
}

/* Descripción directamente visible */
.tcm-single-product__desc {
  font-size: 14px;
  line-height: 1.7;
  color: var(--tcm-gray-text);
  margin: 0;
}
.tcm-single-product__desc p { margin: 0 0 var(--space-1); }
.tcm-single-product__desc ul {
  padding-left: var(--space-2);
  margin: 0;
}
.tcm-single-product__desc ul li {
  margin-bottom: 4px;
  font-size: 14px;
  color: var(--tcm-gray-text);
}

/* Acordeones — forzar visibilidad de triggers contra parent theme */
.tcm-accordion__trigger {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: var(--tcm-black) !important;
  /* Safari: -webkit-text-fill-color sobrescribe color — forzamos el valor */
  -webkit-text-fill-color: var(--tcm-black) !important;
  background: none !important;
  border: none !important;
  border-top: none !important;
  border-bottom: none !important;
  outline: none !important;
  box-shadow: none !important;
  width: 100% !important;
  text-align: left !important;
  padding: 10px 0 !important;
  font-family: var(--tcm-font-body) !important;
  font-size: 12px !important;
  font-weight: var(--tcm-font-weight-medium) !important;
  text-transform: uppercase !important;
  letter-spacing: var(--tcm-letter-spacing-wide) !important;
  cursor: pointer !important;
  justify-content: space-between !important;
  align-items: center !important;
}
.tcm-accordion__trigger::after {
  content: '+' !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  line-height: 1 !important;
}
.tcm-accordion__item.is-open .tcm-accordion__trigger::after { content: '–' !important; }

/* Trust badges */
.tcm-trust-badges {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tcm-trust-badges li { font-size: 12px; color: var(--tcm-gray-text); }
.tcm-model-note { font-size: 12px; color: var(--tcm-gray-text); margin: 0 0 var(--space-2); }

.tcm-whatsapp-btn { margin-top: 0; }

.tcm-single-product__divider {
  height: 1px;
  background: var(--tcm-gray-line);
  margin: var(--space-1) 0;
}

/* Acordeones (base — los overrides con !important están arriba) */
.tcm-accordion { display: flex; flex-direction: column; }
.tcm-accordion__item { border-top: 1px solid var(--tcm-gray-line); }
.tcm-accordion__item:last-child { border-bottom: 1px solid var(--tcm-gray-line); }
.tcm-accordion__body {
  padding-bottom: var(--space-2);
  font-size: 13px;
  line-height: 1.6;
  color: var(--tcm-gray-text);
}
.tcm-accordion__body p { margin-bottom: var(--space-1); }
.tcm-accordion__body a { color: var(--tcm-black); text-decoration: underline; }

/* Tabla de tallas */
.tcm-size-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.tcm-size-table th, .tcm-size-table td {
  padding: var(--space-1) var(--space-2);
  border-bottom: 1px solid var(--tcm-gray-line);
  text-align: left;
}
.tcm-size-table th { font-weight: var(--tcm-font-weight-medium); text-transform: uppercase; letter-spacing: .05em; font-size: 11px; }

/* Lista de detalles técnicos */
.tcm-tech-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 13px;
}
.tcm-tech-list li {
  display: flex;
  justify-content: space-between;
  gap: var(--space-2);
  padding: 9px 0;
  border-bottom: 1px solid var(--tcm-gray-line);
}
.tcm-tech-list li:last-child { border-bottom: none; }
.tcm-tech-list li span:first-child {
  color: var(--tcm-gray-text);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .06em;
  flex-shrink: 0;
}
.tcm-tech-list li span:last-child {
  text-align: right;
  color: var(--tcm-black);
}

/* Related */
.tcm-related__title { font-size: 18px; font-weight: var(--tcm-font-weight-regular); margin-bottom: var(--space-4); }

/* Barra fija mobile */
.tcm-mobile-atc {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 400;
  background: var(--tcm-white);
  border-top: 1px solid var(--tcm-gray-line);
  padding: var(--space-2) var(--space-3);
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.tcm-mobile-atc__price { font-size: 15px; font-weight: var(--tcm-font-weight-regular); flex-shrink: 0; }
.tcm-mobile-atc__btn { flex: 1; padding: 14px; font-size: 12px; }
@media (min-width: 1024px) {
  .tcm-mobile-atc { display: none !important; }
}

/* ── Color swatchers ────────────────────────────────────────── */
.tcm-color-swatchers {
  margin: 0;
}
.tcm-color-swatchers__label {
  margin-bottom: 6px;
  font-size: 11px;
  letter-spacing: var(--tcm-letter-spacing-wide);
  text-transform: uppercase;
  color: var(--tcm-gray-text);
}
.tcm-color-swatchers__current {
  color: var(--tcm-black);
  font-weight: var(--tcm-font-weight-medium);
}
.tcm-color-swatchers__dots {
  display: flex;
  gap: 10px;
  align-items: center;
}

/* Base swatch */
.tcm-swatch {
  display: inline-block;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: box-shadow 0.15s ease;
  text-decoration: none;
}

/* Negro */
.tcm-swatch--negro {
  background: var(--tcm-black);
  border: 1.5px solid var(--tcm-black);
}

/* Blanco */
.tcm-swatch--blanco {
  background: var(--tcm-white);
  border: 1.5px solid #c0c0c0;
}

/* Activo: anillo exterior */
.tcm-swatch.is-active {
  box-shadow: 0 0 0 2px var(--tcm-white), 0 0 0 3.5px var(--tcm-black);
}

/* Hover sobre el no-activo */
.tcm-swatch:not(.is-active):hover {
  box-shadow: 0 0 0 2px var(--tcm-white), 0 0 0 3.5px #888;
}

/* ── Size pills (reemplaza el <select> de WC) ───────────────── */
.tcm-size-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: var(--space-3);
}
/* Usar span en vez de button para evitar resets del tema padre */
span.tcm-size-pill,
.tcm-size-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 12px;
  border: 1px solid var(--tcm-gray-line);
  border-radius: 0;
  background: var(--tcm-white);
  color: var(--tcm-black);
  font-family: var(--tcm-font-body);
  font-size: 12px;
  font-weight: var(--tcm-font-weight-medium);
  text-transform: uppercase;
  letter-spacing: var(--tcm-letter-spacing-wide);
  line-height: 1;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
  user-select: none;
  text-decoration: none;
}
span.tcm-size-pill:hover,
.tcm-size-pill:hover {
  border-color: var(--tcm-black);
}
span.tcm-size-pill.is-active,
.tcm-size-pill.is-active {
  background: var(--tcm-black);
  color: var(--tcm-white);
  border-color: var(--tcm-black);
}
span.tcm-size-pill.is-unavailable,
.tcm-size-pill.is-unavailable {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
  text-decoration: line-through;
}

/* Ocultar tabla de variaciones nativa de WC (los pills están fuera, en PHP) */
.tcm-single-product__atc-wrap .variations_form .variations {
  display: none !important;
}
/* Quitar el link "Limpiar" de WC */
.tcm-single-product__atc-wrap .reset_variations {
  display: none !important;
}
/* Label de talla encima de los pills */
.tcm-size-selector {
  margin-bottom: 0;
}
.tcm-size-selector__label {
  font-size: 11px;
  letter-spacing: var(--tcm-letter-spacing-wide);
  text-transform: uppercase;
  color: var(--tcm-gray-text);
  margin-bottom: 6px;
}

/* ── WooCommerce global overrides ───────────────────────────── */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  font-family: var(--tcm-font-body);
  font-size: 12px;
  font-weight: var(--tcm-font-weight-medium);
  text-transform: uppercase;
  letter-spacing: var(--tcm-letter-spacing-wide);
  background: var(--tcm-black);
  color: var(--tcm-white);
  border: 1px solid var(--tcm-black);
  border-radius: 0;
  padding: 16px 32px;
  transition: background 0.3s ease, color 0.3s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover {
  background: var(--tcm-white);
  color: var(--tcm-black);
}

/* Product card typography */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--tcm-font-body);
  font-size: 14px;
  font-weight: var(--tcm-font-weight-regular);
  color: var(--tcm-black);
  padding: var(--space-1) 0 0;
}
.woocommerce ul.products li.product .price {
  font-family: var(--tcm-font-body);
  font-size: 14px;
  font-weight: var(--tcm-font-weight-regular);
  color: var(--tcm-black);
}

/* Mensajes WC */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
  font-family: var(--tcm-font-body);
  font-size: 13px;
  border-top-color: var(--tcm-black);
}

/* =============================================================
   ARCHIVE 001 — page-archive-001.php
   ============================================================= */

/* ── Hero ───────────────────────────────────────────────────── */
.tcm-archive-hero {
  position: relative;
  height: 80vh;
  min-height: 520px;
  background-color: var(--tcm-black);
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  padding-bottom: var(--space-7);
}
.tcm-archive-hero__overlay {
  display: none; /* banner claro — sin overlay oscuro */
}
.tcm-archive-hero__content {
  position: relative;
  z-index: 1;
  padding: 0 var(--space-5);
  max-width: 680px;
}
/* Bloque CTA del archive hero (desktop: dentro del content) */
.tcm-archive-hero__cta {
  display: none;
}
.tcm-archive-hero__content .tcm-btn { display: inline-flex; }

@media (max-width: 1023px) {
  .tcm-archive-hero {
    padding: 0;
    height: 90vh;
    background-color: var(--tcm-white);
    background-size: cover;
    background-position: 68% top;
    background-repeat: no-repeat;
    align-items: flex-start;
    flex-wrap: wrap;
  }
  /* Texto arriba — más padding para subir sobre la caja */
  .tcm-archive-hero__content {
    padding: var(--space-5) var(--space-3) 0;
    max-width: 56%;
    align-self: flex-start;
  }
  /* Ocultar botón dentro del content en mobile */
  .tcm-archive-hero__content .tcm-btn { display: none !important; }
  /* Mostrar CTA separado abajo izquierda */
  .tcm-archive-hero__cta {
    display: flex;
    align-items: flex-end;
    padding: 0 var(--space-3) var(--space-4);
    width: 100%;
    align-self: flex-end;
  }
  .tcm-archive-hero__cta .tcm-btn {
    width: auto !important;
    padding: 11px 20px !important;
    font-size: 10px !important;
    letter-spacing: 0.10em !important;
    background: var(--tcm-black) !important;
    color: var(--tcm-white) !important;
    border-color: var(--tcm-black) !important;
    white-space: nowrap;
  }
  .tcm-archive-hero__eyebrow {
    font-size: 9px;
    margin-bottom: var(--space-1);
  }
  .tcm-archive-hero__title {
    font-size: clamp(22px, 5.5vw, 32px);
    line-height: 1.1;
    margin-bottom: var(--space-2);
    color: var(--tcm-black);
  }
  .tcm-archive-hero__sub {
    font-size: 12px;
    margin-bottom: var(--space-3);
    line-height: 1.5;
    color: var(--tcm-black);
  }
  /* Botón compacto negro */
  .tcm-archive-hero__content .tcm-btn,
  .tcm-archive-hero__content .tcm-btn--dark-ghost {
    width: auto !important;
    padding: 11px 20px !important;
    font-size: 10px !important;
    letter-spacing: 0.10em !important;
    background: var(--tcm-black) !important;
    color: var(--tcm-white) !important;
    border-color: var(--tcm-black) !important;
    white-space: nowrap;
  }
}
.tcm-archive-hero__eyebrow {
  color: var(--tcm-black);
  font-size: 11px;
  letter-spacing: var(--tcm-letter-spacing-extra);
  text-transform: uppercase;
  margin: 0 0 var(--space-2);
}
.tcm-archive-hero__title {
  font-size: clamp(36px, 5vw, 64px);
  font-weight: var(--tcm-font-weight-bold);
  color: var(--tcm-black);
  letter-spacing: var(--tcm-letter-spacing-tight);
  line-height: 1.05;
  margin: 0 0 var(--space-2);
}
.tcm-archive-hero__sub {
  color: var(--tcm-black);
  font-size: 15px;
  margin: 0 0 var(--space-4);
}

/* Ghost blanco — sobre fondos oscuros (negro) */
.tcm-btn--white-ghost {
  background: transparent !important;
  color: var(--tcm-white) !important;
  border: 1px solid var(--tcm-white) !important;
}
.tcm-btn--white-ghost:hover {
  background: var(--tcm-white) !important;
  color: var(--tcm-black) !important;
}
/* Ghost negro — sobre fondos claros */
.tcm-btn--dark-ghost {
  background: transparent !important;
  color: var(--tcm-black) !important;
  border: 1px solid var(--tcm-black) !important;
}
.tcm-btn--dark-ghost:hover {
  background: var(--tcm-black) !important;
  color: var(--tcm-white) !important;
}

/* ── Manifiesto ─────────────────────────────────────────────── */
.tcm-archive-manifiesto {
  background: var(--tcm-black);
  padding: 130px 32px 145px;
}
.tcm-archive-manifiesto__inner {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}

/* 1 — Frase editorial de apertura */
.tcm-archive-manifiesto__inner p:nth-child(1) {
  font-size: 28px;
  font-weight: 300;
  color: #ffffff;
  line-height: 1.4;
  margin: 0 0 36px;
  -webkit-font-smoothing: antialiased;
}

/* 2 — Mensaje principal */
.tcm-archive-manifiesto__inner p:nth-child(2) {
  font-size: 42px;
  font-weight: 400;
  color: #ffffff;
  line-height: 1.18;
  max-width: 760px;
  margin: 0 auto 40px;
  -webkit-font-smoothing: antialiased;
}

/* 3 — Dato importante, secundario */
.tcm-archive-manifiesto__inner p:nth-child(3) {
  font-size: 34px;
  font-weight: 300;
  color: #e6e6e6;
  line-height: 1.24;
  max-width: 680px;
  margin: 0 auto 56px;
  -webkit-font-smoothing: antialiased;
}

/* 4 — Cierre contundente */
.tcm-archive-manifiesto__cierre {
  font-size: 24px !important;
  font-weight: 400 !important;
  color: #cfcfcf !important;
  line-height: 1.2 !important;
  letter-spacing: 0.01em !important;
  max-width: 760px;
  margin: 0 auto !important;
  opacity: 1 !important;
  -webkit-font-smoothing: antialiased;
}

/* ── El símbolo ─────────────────────────────────────────────── */
/* Símbolo + empaque: sin padding de sección, continuas */
.tcm-archive-simbolo,
.tcm-archive-empaque {
  padding: 0 !important; /* override .tcm-section */
}

.tcm-archive-simbolo {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}
@media (min-width: 768px) {
  .tcm-archive-simbolo {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }
}
.tcm-archive-simbolo__img-wrap {
  overflow: hidden;
  min-height: 420px;
}
.tcm-archive-simbolo__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tcm-archive-simbolo__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-6) var(--space-5);
  background: var(--tcm-white);
}
.tcm-archive-simbolo__text h2 {
  font-size: clamp(24px, 3vw, 40px);
  font-weight: var(--tcm-font-weight-bold);
  letter-spacing: var(--tcm-letter-spacing-tight);
  margin: 0 0 var(--space-3);
}
.tcm-archive-simbolo__text p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--tcm-gray-text);
  max-width: 440px;
}

/* ── El empaque ─────────────────────────────────────────────── */
.tcm-archive-empaque {
  background: var(--tcm-gray-bg);
}
.tcm-archive-empaque .tcm-container {
  padding: 0;
  max-width: 100%;
}
.tcm-archive-empaque__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  align-items: stretch;
}
@media (min-width: 768px) {
  .tcm-archive-empaque__inner {
    grid-template-columns: 1fr 1fr;
  }
}
.tcm-archive-empaque__img {
  overflow: hidden;
  min-height: 420px;
}
.tcm-archive-empaque__img img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center top;
}
.tcm-archive-empaque__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-6) var(--space-5);
  background: var(--tcm-gray-bg);
}
.tcm-archive-empaque__text h2 {
  font-size: clamp(22px, 3vw, 38px);
  font-weight: var(--tcm-font-weight-bold);
  letter-spacing: var(--tcm-letter-spacing-tight);
  margin: 0 0 var(--space-3);
}
.tcm-archive-empaque__text p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--tcm-gray-text);
}

/* ── Las prendas — grid ─────────────────────────────────────── */
.tcm-archive-prendas {
  background: var(--tcm-gray-bg); /* fondo uniforme con las cards */
}
.tcm-archive-prendas .tcm-section__header {
  margin-bottom: var(--space-5);
}
.tcm-archive-prendas__title {
  font-size: clamp(24px, 3vw, 40px);
  font-weight: var(--tcm-font-weight-bold);
  letter-spacing: var(--tcm-letter-spacing-tight);
  margin: 0 0 var(--space-1);
}
/* Grid — mismo estilo Monoic que el home: pegadas, sin espacio */
.tcm-archive-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--tcm-white); /* línea separadora fina blanca entre cards */
}
@media (min-width: 768px) {
  .tcm-archive-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 1024px) {
  .tcm-archive-grid {
    grid-template-columns: repeat(5, 1fr);
  }
}
/* Sección prendas full-bleed */
.tcm-archive-prendas .tcm-container {
  padding: 0;
  max-width: 100%;
}
.tcm-archive-prendas .tcm-section__header {
  padding: var(--space-5) var(--space-4) var(--space-4);
}

/* Card — fondo gris uniforme para que imagen e info sean un bloque */
.tcm-archive-card {
  display: block;
  text-decoration: none !important;
  color: var(--tcm-black) !important;
  position: relative;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: var(--tcm-gray-bg);
}
.tcm-archive-card__img-wrap {
  overflow: hidden;
  aspect-ratio: 3/4;
  background: var(--tcm-gray-bg);
  border: none !important;
  position: relative; /* needed for absolute back image */
}

/* Imagen delantera */
.tcm-archive-card__img--front {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 0.4s ease;
}
/* Imagen trasera (hover) — idéntico al home */
.tcm-archive-card__img--back {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0;
  transition: opacity 0.4s ease;
}
.tcm-archive-card:hover .tcm-archive-card__img--back {
  opacity: 1;
}
.tcm-archive-card:hover .tcm-archive-card__img--front {
  opacity: 0;
}

.tcm-archive-card__info {
  padding: var(--space-1) var(--space-2) var(--space-1);
}
.tcm-archive-card__name {
  font-size: 13px;
  font-weight: var(--tcm-font-weight-regular);
  margin: 0 0 4px;
}
.tcm-archive-card__price {
  font-size: 13px;
  color: var(--tcm-gray-text);
  margin: 0 0 8px;
}
.tcm-archive-card__stock {
  display: inline-block;
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 2px;
  margin: 0 0 var(--space-2);
}
.tcm-archive-card__stock.is-in  { background: transparent; color: var(--tcm-stock-in); border: 1px solid var(--tcm-stock-in); }
.tcm-archive-card__stock.is-low { background: transparent; color: var(--tcm-stock-low); border: 1px solid var(--tcm-stock-low); }
.tcm-archive-card__stock.is-out { background: var(--tcm-gray-bg); color: var(--tcm-gray-text); }

/* Un solo CTA visible siempre (no hover) */
.tcm-archive-card__cta {
  display: inline-block;
  font-size: 10px;
  letter-spacing: var(--tcm-letter-spacing-wide);
  text-transform: uppercase;
  color: var(--tcm-black);
  border-bottom: 1px solid var(--tcm-black);
  padding-bottom: 1px;
  margin-top: 2px;
}

/* ── Cierre ─────────────────────────────────────────────────── */
.tcm-archive-cierre {
  background: var(--tcm-black);
  padding: var(--space-8) var(--space-5);
}
.tcm-archive-cierre__inner {
  max-width: 560px;
  margin: 0 auto;
  text-align: center;
}
.tcm-archive-cierre__inner h2 {
  font-size: clamp(22px, 3vw, 38px);
  font-weight: var(--tcm-font-weight-bold);
  color: var(--tcm-white);
  letter-spacing: var(--tcm-letter-spacing-tight);
  margin: 0 0 var(--space-3);
}
.tcm-archive-cierre__inner p {
  color: var(--tcm-white-sub);
  font-size: 15px;
  margin: 0 0 var(--space-4);
}

/* =============================================================
   ABOUT — page-about.php
   ============================================================= */

/* About hero — layout editorial tipográfico (ref. baio 2) */
.tcm-about-hero {
  background: var(--tcm-white);
  padding: var(--space-7) var(--space-4) var(--space-6);
}
.tcm-about-hero__inner {
  max-width: 960px;
  margin: 0 auto;
}

/* Wordmark enorme */
.tcm-about-hero__top {
  margin-bottom: var(--space-3);
}
.tcm-about-hero__wordmark {
  display: flex;
  flex-direction: column;
  line-height: 0.88;
}
.tcm-about-hero__line1,
.tcm-about-hero__line2,
.tcm-about-hero__line3 {
  font-size: clamp(72px, 14vw, 160px);
  font-weight: var(--tcm-font-weight-bold);
  letter-spacing: -0.03em;
  color: var(--tcm-black);
  display: block;
}

/* Línea separadora */
.tcm-about-hero__rule {
  border: none;
  border-top: 1px solid var(--tcm-black);
  margin: var(--space-3) 0;
}

/* Dos columnas de texto */
.tcm-about-hero__cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3);
  margin: var(--space-3) 0;
}
@media (min-width: 640px) {
  .tcm-about-hero__cols {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
  }
}
.tcm-about-hero__col-left,
.tcm-about-hero__col-right {
  font-size: clamp(13px, 1.4vw, 16px);
  line-height: 1.55;
  color: var(--tcm-black);
  margin: 0;
}
.tcm-about-hero__col-right {
  text-align: right;
}

/* Pull quote Sol LeWitt — SVG sin fondo */
.tcm-about-hero__quote {
  margin: var(--space-5) 0 0;
  padding: 0;
  background: none;
}
.tcm-about-hero__quote-svg {
  display: block;
  width: 100%;
  max-width: 780px;
  height: auto;
}

/* Cuerpo about */
.tcm-about-body {
  max-width: 680px;
  margin: 0 auto;
}
.tcm-about-body__block {
  padding: var(--space-6) var(--space-5);
  border-bottom: 1px solid var(--tcm-gray-line);
}
.tcm-about-body__block:last-child {
  border-bottom: none;
}
.tcm-about-body__block h2 {
  font-size: clamp(18px, 2.5vw, 26px);
  font-weight: var(--tcm-font-weight-bold);
  letter-spacing: var(--tcm-letter-spacing-tight);
  margin: 0 0 var(--space-3);
}
.tcm-about-body__block p {
  font-size: 15px;
  line-height: 1.75;
  color: var(--tcm-gray-text);
  margin: 0 0 var(--space-2);
}
.tcm-about-body__block p:last-child {
  margin-bottom: 0;
}

/* Foto editorial about */
.tcm-about-foto {
  padding: 0;
}
.tcm-about-foto img {
  width: 100%;
  display: block;
  aspect-ratio: 16/9;
  object-fit: cover;
}
@media (min-width: 768px) {
  .tcm-about-foto img { aspect-ratio: 21/9; }
}

/* Bloque créditos */
.tcm-about-creditos {
  background: var(--tcm-gray-bg);
}
.tcm-about-creditos__inner {
  max-width: 680px;
  margin: 0 auto;
  padding: var(--space-6) var(--space-5);
}
.tcm-about-creditos__inner h2 {
  font-size: 16px;
  font-weight: var(--tcm-font-weight-medium);
  letter-spacing: .04em;
  text-transform: uppercase;
  margin: 0 0 var(--space-3);
}
.tcm-about-creditos__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-2);
}
.tcm-about-creditos__list li {
  display: flex;
  gap: var(--space-2);
  font-size: 14px;
  color: var(--tcm-gray-text);
  border-bottom: 1px solid var(--tcm-gray-line);
  padding-bottom: var(--space-2);
}
.tcm-about-creditos__list li:last-child { border-bottom: none; }
.tcm-about-creditos__role {
  min-width: 140px;
  font-weight: var(--tcm-font-weight-medium);
  color: var(--tcm-black);
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .04em;
  flex-shrink: 0;
}

/* =============================================================
   CONTACTO — page-contacto.php
   ============================================================= */

.tcm-contacto-hero {
  background: var(--tcm-black);
  padding: var(--space-7) var(--space-5);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40vh;
}
.tcm-contacto-hero__inner {
  max-width: 560px;
  text-align: center;
}
.tcm-contacto-hero__title {
  font-size: clamp(28px, 4vw, 52px);
  font-weight: var(--tcm-font-weight-bold);
  color: var(--tcm-white);
  letter-spacing: var(--tcm-letter-spacing-tight);
  line-height: 1.05;
  margin: 0 0 var(--space-2);
}
.tcm-contacto-hero__sub {
  color: var(--tcm-white-sub);
  font-size: 15px;
  margin: 0;
}

/* Links de contacto */
.tcm-contacto-links {
  max-width: 560px;
  margin: 0 auto;
}
.tcm-contacto-link-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  border-bottom: 1px solid var(--tcm-gray-line);
  text-decoration: none !important;
  color: var(--tcm-black) !important;
  transition: background 0.2s ease;
}
.tcm-contacto-link-item:hover {
  background: var(--tcm-gray-bg);
}
.tcm-contacto-link-item__label {
  font-size: 11px;
  letter-spacing: var(--tcm-letter-spacing-extra);
  text-transform: uppercase;
  color: var(--tcm-gray-text);
  margin: 0 0 4px;
}
.tcm-contacto-link-item__value {
  font-size: 16px;
  font-weight: var(--tcm-font-weight-regular);
  color: var(--tcm-black);
  margin: 0;
}
.tcm-contacto-link-item__arrow {
  font-size: 20px;
  color: var(--tcm-gray-text);
  flex-shrink: 0;
}

/* FAQ acordeón en contacto */
.tcm-contacto-faq {
  background: var(--tcm-gray-bg);
}
.tcm-contacto-faq__inner {
  max-width: 640px;
  margin: 0 auto;
}
.tcm-contacto-faq__inner h2 {
  font-size: clamp(18px, 2.5vw, 26px);
  font-weight: var(--tcm-font-weight-bold);
  letter-spacing: var(--tcm-letter-spacing-tight);
  margin: 0 0 var(--space-4);
}
/* Reutiliza .tcm-accordion__* del sistema global */

/* Textarea dentro del formulario de contacto */
.tcm-contacto-form textarea.tcm-newsletter__input {
  display: block;
  text-align: left;
  min-height: 100px;
  padding: var(--space-2);
  border: 1px solid rgba(255,255,255,.4);
  border-radius: 0;
}

/* =============================================================
   POLÍTICA — page-politica.php
   ============================================================= */
.tcm-politica-hero {
  background: var(--tcm-black);
  padding: var(--space-7) var(--space-5);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 35vh;
  text-align: center;
}
.tcm-politica-hero__title {
  font-size: clamp(28px, 5vw, 56px);
  font-weight: var(--tcm-font-weight-bold);
  color: var(--tcm-white);
  letter-spacing: var(--tcm-letter-spacing-tight);
  margin: 0 0 var(--space-2);
}
.tcm-politica-hero__sub {
  color: rgba(255,255,255,.55);
  font-size: 13px;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin: 0;
}

/* Layout: sidebar + content */
.tcm-politica-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
}
@media (min-width: 1024px) {
  .tcm-politica-layout {
    grid-template-columns: 200px 1fr;
    gap: var(--space-7);
    align-items: start;
  }
}

/* Sidebar sticky */
.tcm-politica-nav {
  position: sticky;
  top: 80px; /* debajo del header */
}
.tcm-politica-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: var(--space-2);
  flex-wrap: wrap;
}
@media (min-width: 1024px) {
  .tcm-politica-nav ul {
    flex-direction: column;
    gap: 0;
  }
}
.tcm-politica-nav__link {
  display: block;
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--tcm-gray-text) !important;
  text-decoration: none !important;
  padding: var(--space-2) 0;
  border-bottom: 1px solid transparent;
  transition: color 0.2s, border-color 0.2s;
}
.tcm-politica-nav__link:hover,
.tcm-politica-nav__link.is-active {
  color: var(--tcm-black) !important;
  border-bottom-color: var(--tcm-black);
}

/* Bloques de texto */
.tcm-politica-content {
  max-width: 720px;
}
.tcm-politica-block {
  padding-bottom: var(--space-6);
  border-bottom: 1px solid var(--tcm-gray-line);
  margin-bottom: var(--space-6);
}
.tcm-politica-block:last-child {
  border-bottom: none;
}
.tcm-politica-block h2 {
  font-size: clamp(18px, 2.5vw, 26px);
  font-weight: var(--tcm-font-weight-bold);
  letter-spacing: var(--tcm-letter-spacing-tight);
  margin: 0 0 var(--space-3);
}
.tcm-politica-block p {
  font-size: 15px;
  line-height: 1.75;
  color: var(--tcm-gray-text);
  margin: 0 0 var(--space-2);
}
.tcm-politica-block p:last-child { margin-bottom: 0; }

/* Aviso borrador */
.tcm-politica-draft-notice {
  background: #fffbeb;
  border: 1px solid #f6c90e;
  color: #7a5c00;
  font-size: 12px;
  font-style: italic;
  letter-spacing: .03em;
  padding: var(--space-2) var(--space-3);
  margin-bottom: var(--space-5);
  border-radius: 2px;
}

/* Placeholder pendiente */
.tcm-politica-pending {
  background: #fffbeb;
  color: #7a5c00 !important;
  font-style: italic;
  padding: var(--space-1) var(--space-2) !important;
  font-size: 13px !important;
  border: 1px solid var(--tcm-warning-bd);
}

/* =============================================================
   SELECTOR DE CANTIDAD — página de producto (pre-ATC)
   ============================================================= */

/* Ocultar el input qty nativo de WC en la página de producto
   (lo reemplazamos con nuestro selector visual) */
.tcm-single-product__atc-wrap .quantity,
.tcm-single-product__atc-wrap .qty {
  display: none !important;
}

/* Contenedor del selector de cantidad */
.tcm-product-qty {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid var(--tcm-black);
  height: 44px;
  width: fit-content;
  align-self: flex-start;
  margin-bottom: 0;
  user-select: none;
}

/* Botones − / + */
.tcm-product-qty__btn {
  width: 44px;
  height: 100%;
  background: transparent !important;
  border: none !important;
  color: var(--tcm-black) !important;
  -webkit-text-fill-color: var(--tcm-black) !important;
  font-size: 18px;
  line-height: 1;
  cursor: pointer !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  transition: background 0.15s;
}
.tcm-product-qty__btn:hover {
  background: var(--tcm-gray-bg) !important;
}

/* Número actual */
.tcm-product-qty__num {
  min-width: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: var(--tcm-font-weight-medium);
  border-left: 1px solid var(--tcm-black);
  border-right: 1px solid var(--tcm-black);
  padding: 0 8px;
}

/* Layout barra mobile: price | btn */
.tcm-mobile-atc {
  gap: var(--space-2);
}

/* =============================================================
   CART DRAWER — ya tiene HTML en header.php, solo estilos
   ============================================================= */
.tcm-cart-drawer {
  position: fixed;
  inset: 0;
  z-index: 600;
  pointer-events: none;
  visibility: hidden;
}
.tcm-cart-drawer.is-open {
  pointer-events: auto;
  visibility: visible;
}
.tcm-cart-drawer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.45);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.tcm-cart-drawer.is-open .tcm-cart-drawer__overlay {
  opacity: 1;
}
.tcm-cart-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: 100%;
  max-width: 420px;
  background: var(--tcm-white);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(.4,0,.2,1);
}
.tcm-cart-drawer.is-open .tcm-cart-drawer__panel {
  transform: translateX(0);
}

/* Head — padding reducido para que los productos queden above-the-fold */
.tcm-cart-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  border-bottom: 1px solid var(--tcm-gray-line);
  flex-shrink: 0;
  min-height: 0;
}
.tcm-cart-drawer__close {
  background: none;
  border: none;
  font-size: 20px;
  cursor: pointer;
  padding: 4px;
  color: var(--tcm-black);
  line-height: 1;
}

/* Body scroll — padding y gap compactos */
.tcm-cart-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: 14px 20px;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

/* Item */
.tcm-cart-drawer__item {
  display: grid;
  grid-template-columns: 72px 1fr auto;
  gap: 12px;
  align-items: start;
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--tcm-gray-line);
}
.tcm-cart-drawer__item img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  display: block;
}
.tcm-cart-drawer__item-name {
  font-size: 13px;
  font-weight: var(--tcm-font-weight-medium);
  margin: 0 0 4px;
}
.tcm-cart-drawer__item-price {
  font-size: 13px;
  color: var(--tcm-gray-text);
  margin: 4px 0 0;
}
.tcm-cart-drawer__remove {
  font-size: 18px;
  color: var(--tcm-gray-text);
  text-decoration: none !important;
  line-height: 1;
  padding: 4px;
}
.tcm-cart-drawer__remove:hover { color: var(--tcm-black); }

/* Controles de cantidad en el drawer */
.tcm-drawer-qty {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid var(--tcm-gray-line);
  margin: 6px 0 4px;
}
.tcm-drawer-qty__btn {
  width: 26px;
  height: 26px;
  background: transparent !important;
  border: none !important;
  font-size: 15px;
  line-height: 1;
  cursor: pointer !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  color: var(--tcm-black) !important;
  -webkit-text-fill-color: var(--tcm-black) !important;
  padding: 0 !important;
  transition: background 0.15s;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.tcm-drawer-qty__btn:hover {
  background: var(--tcm-gray-bg) !important;
  color: var(--tcm-black) !important;
}
.tcm-drawer-qty__num {
  min-width: 28px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  border-left: 1px solid var(--tcm-gray-line);
  border-right: 1px solid var(--tcm-gray-line);
}

/* Subtotal */
.tcm-cart-drawer__subtotal {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--space-3) 0;
  border-top: 1px solid var(--tcm-gray-line);
  margin-top: auto;
  font-size: 14px;
  font-weight: var(--tcm-font-weight-medium);
}

/* Carrito vacío */
.tcm-cart-drawer__empty {
  text-align: center;
  padding: var(--space-7) var(--space-3);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
}
.tcm-cart-drawer__empty p {
  font-size: 15px;
  color: var(--tcm-gray-text);
}

/* Botón full-width */
.tcm-btn--full {
  width: 100%;
  text-align: center;
  justify-content: center;
}

/* =============================================================
   CART PAGE (/cart/) — estilos sobre WooCommerce
   ============================================================= */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
  max-width: 1100px;
  margin: 0 auto;
  padding: var(--space-6) var(--space-4);
  font-family: var(--tcm-font-body);
}

/* Tabla del carrito */
.woocommerce-cart table.shop_table {
  border: none;
  border-collapse: collapse;
  width: 100%;
  table-layout: fixed;
}
.woocommerce-cart table.shop_table th {
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: var(--tcm-font-weight-medium);
  color: var(--tcm-gray-text);
  border-bottom: 1px solid var(--tcm-gray-line);
  padding: var(--space-2) var(--space-2) var(--space-2) 0;
}
.woocommerce-cart table.shop_table td {
  border-bottom: 1px solid var(--tcm-gray-line);
  padding: var(--space-3) var(--space-2) var(--space-3) 0;
  vertical-align: middle;
  font-size: 14px;
  word-break: break-word;
}

/* Anchos de columnas */
.woocommerce-cart .product-remove { width: 32px; }
.woocommerce-cart .product-thumbnail { width: 96px; }
.woocommerce-cart .product-name { width: auto; }
.woocommerce-cart .product-price { width: 110px; white-space: nowrap; }
.woocommerce-cart .product-quantity { width: 100px; }
.woocommerce-cart .product-subtotal { width: 110px; white-space: nowrap; }

.woocommerce-cart .product-thumbnail img {
  width: 80px !important;
  height: 80px !important;
  object-fit: cover;
  display: block;
}

/* Nombre del producto: una línea si es posible */
.woocommerce-cart .product-name a {
  font-size: 13px;
  color: var(--tcm-black);
  text-decoration: none;
  display: block;
  line-height: 1.4;
}

.woocommerce-cart .cart-subtotal,
.woocommerce-cart .order-total {
  font-size: 14px;
}
.woocommerce-cart .order-total .amount {
  font-weight: var(--tcm-font-weight-bold);
}

/* Botón FINALIZAR COMPRA */
.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce-cart a.checkout-button,
.wc-proceed-to-checkout a {
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
  background: var(--tcm-black) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  border: none !important;
  border-radius: 0 !important;
  font-family: var(--tcm-font-body) !important;
  font-size: 12px !important;
  line-height: 1 !important;
  font-weight: 500 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  padding: 18px !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
  margin-top: var(--space-3) !important;
  height: auto !important;
  min-height: 0 !important;
  visibility: visible !important;
  opacity: 1 !important;
  transition: background 0.2s !important;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
.woocommerce-cart a.checkout-button:hover {
  background: #333 !important;
}

/* Fila de acciones (cupón + actualizar carrito) */
.woocommerce-cart .actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) 0 !important;
  border: none !important;
}

/* Input del cupón */
.woocommerce-cart .coupon {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex: 1;
}
.woocommerce-cart .coupon input#coupon_code {
  font-family: var(--tcm-font-body) !important;
  font-size: 12px !important;
  border: 1px solid var(--tcm-gray-line) !important;
  border-radius: 0 !important;
  padding: 12px var(--space-2) !important;
  color: var(--tcm-black) !important;
  background: var(--tcm-white) !important;
  width: 180px !important;
  letter-spacing: .03em;
}
.woocommerce-cart .coupon input#coupon_code:focus {
  border-color: var(--tcm-black) !important;
  outline: none !important;
  box-shadow: none !important;
}
.woocommerce-cart .coupon input#coupon_code::placeholder {
  color: var(--tcm-gray-text) !important;
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

/* Botón Aplicar cupón → ghost */
.woocommerce-cart .coupon .button {
  background: transparent !important;
  color: var(--tcm-black) !important;
  border: 1px solid var(--tcm-black) !important;
  border-radius: 0 !important;
  font-family: var(--tcm-font-body) !important;
  font-size: 11px !important;
  font-weight: var(--tcm-font-weight-medium) !important;
  letter-spacing: var(--tcm-letter-spacing-wide) !important;
  text-transform: uppercase !important;
  padding: 12px var(--space-3) !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  transition: background 0.2s, color 0.2s !important;
}
.woocommerce-cart .coupon .button:hover {
  background: var(--tcm-black) !important;
  color: var(--tcm-white) !important;
}

/* Botón Actualizar carrito → ghost gris */
.woocommerce-cart button[name="update_cart"] {
  background: transparent !important;
  color: var(--tcm-gray-text) !important;
  -webkit-text-fill-color: var(--tcm-gray-text) !important;
  border: 1px solid var(--tcm-gray-line) !important;
  border-radius: 0 !important;
  font-family: var(--tcm-font-body) !important;
  font-size: 11px !important;
  line-height: 1 !important;
  font-weight: var(--tcm-font-weight-medium) !important;
  letter-spacing: var(--tcm-letter-spacing-wide) !important;
  text-transform: uppercase !important;
  padding: 12px var(--space-3) !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  height: auto !important;
  min-height: 0 !important;
  display: inline-block !important;
  margin-left: auto !important;
  box-shadow: none !important;
  text-indent: 0 !important;
  visibility: visible !important;
}
.woocommerce-cart button[name="update_cart"]:hover {
  border-color: var(--tcm-black) !important;
  color: var(--tcm-black) !important;
  -webkit-text-fill-color: var(--tcm-black) !important;
}

/* =============================================================
   CHECKOUT (/checkout/) — solo tipografía y colores
   ============================================================= */
/* Fila TOTAL visible en el resumen del checkout */
.woocommerce-checkout #order_review .order-total th,
.woocommerce-checkout #order_review .order-total td,
.woocommerce-checkout #order_review .order-total .woocommerce-Price-amount {
  color: var(--tcm-black) !important;
  font-weight: var(--tcm-font-weight-bold) !important;
}

.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout #order_review_heading {
  font-size: 16px;
  font-weight: var(--tcm-font-weight-bold);
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-bottom: var(--space-3);
}
/* Label "Notas del pedido" en tono gris suave */
.woocommerce-checkout .woocommerce-additional-fields label,
.woocommerce-checkout #order_comments_field label {
  color: #666 !important;
}
/* Placeholder del textarea de notas también en gris */
.woocommerce-checkout #order_comments::placeholder {
  color: #999 !important;
  opacity: 1 !important;
}
.woocommerce-checkout #order_comments::-webkit-input-placeholder {
  color: #999 !important;
  -webkit-text-fill-color: #999 !important;
}
.woocommerce-checkout .woocommerce-input-wrapper input,
.woocommerce-checkout .woocommerce-input-wrapper select,
.woocommerce-checkout .woocommerce-input-wrapper textarea {
  font-family: var(--tcm-font-body) !important;
  font-size: 14px !important;
  border: 1px solid var(--tcm-gray-line) !important;
  border-radius: 0 !important;
  padding: var(--space-2) !important;
  color: var(--tcm-black) !important;
  background: var(--tcm-white) !important;
}
.woocommerce-checkout .woocommerce-input-wrapper input:focus,
.woocommerce-checkout .woocommerce-input-wrapper select:focus {
  border-color: var(--tcm-black) !important;
  outline: none !important;
  box-shadow: none !important;
}
/* Botón confirmar pedido */
#place_order {
  background: var(--tcm-black) !important;
  color: var(--tcm-white) !important;
  border: none !important;
  font-family: var(--tcm-font-body) !important;
  font-size: 12px !important;
  font-weight: var(--tcm-font-weight-medium) !important;
  letter-spacing: var(--tcm-letter-spacing-wide) !important;
  text-transform: uppercase !important;
  padding: 18px 40px !important;
  width: 100%;
  cursor: pointer;
  border-radius: 0 !important;
  transition: background 0.3s, color 0.3s;
}
#place_order:hover {
  background: var(--tcm-white) !important;
  color: var(--tcm-black) !important;
  border: 1px solid var(--tcm-black) !important;
}

/* =============================================================
   FIXES — Mayo 2026
   ============================================================= */

/* 1 ── Footer: wordmark visible (SVG text en blanco) */
.tcm-footer__logo svg text {
  fill: #ffffff !important;
}

/* 2 ── Home: reducir espacio blanco sobre la sección Archive 001 */
.tcm-products-section {
  padding-top: var(--space-3) !important;
}
@media (min-width: 1024px) {
  .tcm-products-section {
    padding-top: var(--space-4) !important;
  }
}

/* 3 ── Marquee: continuo en todos los tamaños de pantalla */
@media (max-width: 1023px) {
  .tcm-marquee-wrap {
    overflow: hidden;
    justify-content: flex-start;
  }
  .tcm-marquee__track {
    animation: tcm-marquee 40s linear infinite;
    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
    max-width: none;
  }
}

/* Ajuste animación: -33% sobre 6 copias = desplaza 2 copias */
@keyframes tcm-marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-33.333%); }
}

/* 4 ── Botón de favoritos: sin sombra ni círculo gris */
.tcm-wishlist-btn {
  filter: none !important;
  background: none !important;
  border-radius: 0 !important;
}
@media (max-width: 1023px) {
  .tcm-wishlist-btn {
    opacity: 1;
    color: #fff;
  }
}

/* 5 ── Textos sobre fondos oscuros: antialiasing correcto */
.tcm-archive-manifiesto__inner p,
.tcm-archive-manifiesto__cierre,
.tcm-archive-cierre__inner h2,
.tcm-archive-cierre__inner p {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* 6 ── Jerarquía tipográfica: título de la sección de productos */
.tcm-products-section__title {
  font-size: clamp(32px, 5vw, 56px);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
}
.tcm-products-section .tcm-label {
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--tcm-gray-text);
  margin-top: var(--space-1);
}

/* 7 ── Archive 001 prendas: mismo contenedor full-bleed que home */
.tcm-archive-prendas .tcm-products-grid {
  gap: 1px;
  background: var(--tcm-white);
}
.tcm-archive-prendas .tcm-products-grid .tcm-product-card {
  background: var(--tcm-gray-bg);
}

/* 8 ── Editorial section: layout corregido + espacio reducido */
.tcm-editorial {
  padding-top: var(--space-4) !important;
  padding-bottom: var(--space-6);
}
.tcm-editorial__inner {
  gap: var(--space-4);
}
@media (min-width: 1024px) {
  .tcm-editorial__inner {
    flex-direction: row-reverse; /* foto a la derecha, texto a la izquierda */
    align-items: stretch;
    gap: 0;
  }
  .tcm-editorial__text {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--space-7) var(--space-6);
  }
  .tcm-editorial__img {
    flex: 1;
    overflow: hidden;
  }
  .tcm-editorial__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
}
.tcm-editorial__text h2 {
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  text-transform: uppercase;
  margin-bottom: var(--space-3);
}

/* 9 ── Mobile menu: botón cerrar más visible */
.tcm-mobile-menu__close {
  font-size: 32px;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--tcm-black);
}

/* 10 ── Responsive general */

/* Mobile: header icons spacing + centering */
@media (max-width: 1023px) {
  .tcm-header__inner {
    align-items: center;
  }
  .tcm-header__mobile-left,
  .tcm-header__mobile-right {
    display: flex !important;
    align-items: center;
    gap: 4px;
    height: 100%;
  }
  .tcm-header__icon-btn {
    padding: 8px;
    display: flex !important;
    align-items: center;
    justify-content: center;
  }
}

/* Mobile: hero — texto arriba, botón abajo como archive-001 */
@media (max-width: 1023px) {
  .tcm-hero {
    align-items: flex-start;
    flex-direction: column;
    justify-content: space-between;
    padding-bottom: 0;
  }
  .tcm-hero__content {
    padding: var(--space-5) var(--space-3) 0;
    align-self: flex-start;
    max-width: 58%;
  }
  .tcm-hero__wordmark {
    width: min(160px, 38vw);
    margin-bottom: var(--space-2);
  }
  .tcm-hero__sub {
    font-size: 12px;
    margin-bottom: var(--space-2);
  }
  /* Botones: solo "Entrar al archivo" pegado abajo izquierda */
  .tcm-hero__ctas {
    position: absolute;
    bottom: var(--space-4);
    left: var(--space-3);
    flex-direction: row;
    gap: 0;
  }
  /* Ocultar botón ghost (Acceso anticipado) en mobile */
  .tcm-hero__ctas .tcm-btn--ghost {
    display: none !important;
  }
  .tcm-hero__ctas .tcm-btn:not(.tcm-btn--ghost) {
    width: auto !important;
    padding: 11px 20px !important;
    font-size: 10px !important;
    letter-spacing: 0.10em !important;
    background: var(--tcm-black) !important;
    color: var(--tcm-white) !important;
    border-color: var(--tcm-black) !important;
    white-space: nowrap;
  }
}

/* Archive 001 hero mobile: ocultar subtítulo "101 unidades" */
@media (max-width: 1023px) {
  .tcm-archive-hero__sub {
    display: none;
  }
}

/* Mobile: editorial stack */
@media (max-width: 767px) {
  .tcm-editorial__inner {
    flex-direction: column;
    gap: var(--space-3);
  }
  .tcm-editorial__img img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }
}

/* Mobile: section padding más compacto */
@media (max-width: 767px) {
  .tcm-section {
    padding: var(--space-5) 0;
  }
  .tcm-newsletter {
    padding: var(--space-5) var(--space-3);
  }
  /* padding del manifiesto controlado por el bloque final de overrides */
  .tcm-archive-cierre {
    padding: var(--space-6) var(--space-3);
  }
}

/* Mobile: products grid 2 columnas apretado */
@media (max-width: 480px) {
  .tcm-products-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
  }
  .tcm-product-card__name,
  .tcm-product-card__price {
    font-size: 12px;
  }
}

/* Footer mobile: emblema centrado en vez de wordmark */
@media (max-width: 1023px) {
  .tcm-footer__logo--wordmark { display: none !important; }
  .tcm-footer__logo--emblem {
    display: flex !important;
    justify-content: center;
    width: 100%;
  }
  .tcm-footer__logo--emblem svg {
    width: 80px;
    height: auto;
    color: var(--tcm-white);
  }
}
@media (min-width: 1024px) {
  .tcm-footer__logo--emblem { display: none !important; }
  .tcm-footer__logo--wordmark { display: flex; }
}

/* Archive 001 — símbolo: fondo blanco en lado de texto */
.tcm-archive-simbolo__text {
  background: var(--tcm-white) !important;
}

/* Archive 001 — empaque: texto a la izquierda, foto a la derecha */
@media (min-width: 768px) {
  .tcm-archive-empaque__inner {
    grid-template-columns: 1fr 1fr;
    direction: rtl;
  }
  .tcm-archive-empaque__img,
  .tcm-archive-empaque__text {
    direction: ltr;
  }
}
/* Empaque: fondo blanco en texto, fondo gris solo en imagen */
.tcm-archive-empaque {
  background: var(--tcm-white) !important;
}
.tcm-archive-empaque__text {
  background: var(--tcm-white) !important;
}
.tcm-archive-empaque__img {
  background: var(--tcm-gray-bg);
}

/* ── Composición mobile v2 — texto respira, foto libre ─────────
   Solo escala, jerarquía y composición.
   Sin cambios de color, estilo, imágenes ni identidad visual.
   Base: 375px. Cascade final — sobreescribe bloques anteriores.
   ─────────────────────────────────────────────────────────────── */
@media (max-width: 1023px) {

  /* ════════════════════════════════════════════════════════════
     ARCHIVE 001 HERO
     Modelo ocupa la derecha — texto vive sólo en la columna
     izquierda, no invade la foto.
     ════════════════════════════════════════════════════════════ */

  /* Apila en columna desde arriba — no flex-end */
  .tcm-archive-hero {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
  }

  /* Bloque de texto: 50% izquierdo, margen superior 44px */
  .tcm-archive-hero__content {
    max-width: 50% !important;
    padding: 44px var(--space-3) 0 !important;
  }

  /* Eyebrow: compacto */
  .tcm-archive-hero__eyebrow {
    font-size: 10px !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase;
    margin-bottom: 10px !important;
  }

  /* Título: -30 % vs iteración anterior
     clamp(48px,14vw,58px) × 0.70 → clamp(34px,9.8vw,41px)
     max-width evita que desborde hacia la foto */
  .tcm-archive-hero__title {
    font-size: clamp(34px, 9.8vw, 41px) !important;
    line-height: 1.0 !important;
    font-weight: 800 !important;
    letter-spacing: -0.04em !important;
    max-width: 44vw !important;
    margin-bottom: 0 !important;
  }

  /* Botón CTA: pegado al fondo izquierdo del hero */
  .tcm-archive-hero__cta {
    position: absolute !important;
    bottom: var(--space-4) !important;
    left: var(--space-3) !important;
    align-self: auto !important;
    margin-top: 0 !important;
    padding: 0 !important;
    width: auto !important;
  }
  .tcm-archive-hero__cta .tcm-btn {
    height: auto !important;
    padding: 12px 24px !important;
    font-size: 11px !important;
    letter-spacing: 0.12em !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    white-space: nowrap !important;
  }


  /* ════════════════════════════════════════════════════════════
     HOME HERO
     Modelo ocupa la derecha — título, subtítulo y botón
     forman una columna en flujo normal en la izquierda.
     ════════════════════════════════════════════════════════════ */

  /* Contenido: quitar position:relative para que el botón absolute
     se ancle al hero completo, no al bloque de texto */
  .tcm-hero__content {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    max-width: 80% !important;
    padding: 44px var(--space-3) 0 !important;
    gap: 0 !important;
  }

  /* Wordmark SVG más grande: viewBox 949×661
     ~68 % de 375px ≈ 255px → línea visual ~58px de alto */
  .tcm-hero__wordmark {
    width: clamp(240px, 80vw, 300px) !important;
    max-width: 100% !important;
    margin-bottom: 6px !important;
  }
  .tcm-hero__wordmark svg {
    width: 100%;
    height: auto;
  }

  /* Subtítulo: subido con margen negativo para pegarlo al wordmark */
  .tcm-hero__sub {
    font-size: 11px !important;
    line-height: 1.4 !important;
    margin-top: -24px !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
  }

  /* CTAs: absolute al hero completo (el content ya es position:static)
     Mismo fondo/izquierda que el botón de Archive 001 */
  .tcm-hero__ctas {
    position: absolute !important;
    bottom: var(--space-4) !important;
    left: var(--space-3) !important;
    flex-direction: row !important;
    gap: 0 !important;
    margin-top: 0 !important;
    z-index: 3 !important;
  }
  /* Ocultar ghost (Acceso anticipado) en mobile */
  .tcm-hero__ctas .tcm-btn--ghost {
    display: none !important;
  }
  /* Botón principal */
  .tcm-hero__ctas .tcm-btn:not(.tcm-btn--ghost) {
    position: static !important;
    height: auto !important;
    padding: 12px 24px !important;
    font-size: 11px !important;
    letter-spacing: 0.12em !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    white-space: nowrap !important;
  }


  /* ════════════════════════════════════════════════════════════
     MANIFIESTO — sección negra · mobile
     ════════════════════════════════════════════════════════════ */
  .tcm-archive-manifiesto {
    padding: 92px 28px 104px !important;
  }
  .tcm-archive-manifiesto__inner {
    max-width: 340px !important;
    margin: 0 auto !important;
  }
  /* 1 — Frase editorial de apertura */
  .tcm-archive-manifiesto__inner p:nth-child(1) {
    font-size: 24px !important;
    font-weight: 300 !important;
    color: #ffffff !important;
    line-height: 1.4 !important;
    margin: 0 0 36px !important;
  }
  /* 2 — Mensaje principal */
  .tcm-archive-manifiesto__inner p:nth-child(2) {
    font-size: 30px !important;
    font-weight: 400 !important;
    color: #ffffff !important;
    line-height: 1.18 !important;
    max-width: 100% !important;
    margin: 0 0 40px !important;
  }
  /* 3 — Dato importante, secundario */
  .tcm-archive-manifiesto__inner p:nth-child(3) {
    font-size: 27px !important;
    font-weight: 300 !important;
    color: #e6e6e6 !important;
    line-height: 1.24 !important;
    max-width: 100% !important;
    margin: 0 0 56px !important;
  }
  /* 4 — Cierre contundente */
  .tcm-archive-manifiesto__inner .tcm-archive-manifiesto__cierre {
    font-size: 20px !important;
    font-weight: 400 !important;
    color: #cfcfcf !important;
    line-height: 1.2 !important;
    letter-spacing: 0.01em !important;
    max-width: 100% !important;
    margin: 0 auto !important;
  }


  /* ════════════════════════════════════════════════════════════
     FOOTER — emblema centrado en mobile
     ════════════════════════════════════════════════════════════ */
  .tcm-footer__left {
    align-items: center;
    width: 100%;
  }
  .tcm-footer__logo--emblem {
    display: flex !important;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin: 0 auto var(--space-3);
  }
  .tcm-footer__logo--emblem svg {
    width: 100px;
    height: auto;
    color: var(--tcm-white);
  }
  .tcm-footer__social {
    justify-content: center;
    width: 100%;
  }
}

/* ── ATC → "Ir a pagar": estilos del botón después de agregar ── */
.single_add_to_cart_button.tcm-is-checkout,
#tcm-mobile-atc-btn.tcm-is-checkout {
  background: var(--tcm-black) !important;
  color: var(--tcm-white) !important;
  border-color: var(--tcm-black) !important;
  cursor: pointer !important;
}

/* Preloader eliminado — animación 3D exclusiva de pantallas de entrada */

/* Hover swap eliminado — el logo es siempre el emblema oval */

/* ═══════════════════════════════════════════════════════════════
   CHECKOUT — miniatura de producto en resumen de pago
   ═══════════════════════════════════════════════════════════════ */
.tcm-checkout-item-wrap {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
/* Contenedor de la miniatura — ancla el × */
.tcm-checkout-thumb-wrap {
  position: relative;
  flex-shrink: 0;
  width: 70px;
}
.tcm-checkout-thumb {
  width: 70px;
  height: 88px;
  object-fit: cover;
  display: block;
  background: var(--tcm-gray-bg);
}
.tcm-checkout-item-info {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 2px;
}
.tcm-checkout-item-name {
  font-size: 13px;
  font-weight: 500;
  color: var(--tcm-black);
  line-height: 1.4;
}
/* × eliminar — esquina superior derecha de la miniatura */
.tcm-checkout-remove {
  position: absolute;
  top: 0;
  right: 0;
  width: 20px;
  height: 20px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.60);
  color: #fff !important;
  font-size: 14px;
  line-height: 1;
  text-decoration: none !important;
  transition: background 0.15s;
  z-index: 2;
}
.tcm-checkout-remove:hover { background: #000 !important; }

/* Controles de cantidad +/- en checkout */
.tcm-qty-ctrl {
  display: inline-flex;
  align-items: stretch;
  gap: 0;
  border: 1px solid #ccc;
  height: 30px;
  width: fit-content;
}
.tcm-qty-ctrl__btn {
  width: 30px;
  height: 30px;
  background: #fff !important;
  border: none !important;
  cursor: pointer !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  color: #000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  flex-shrink: 0;
  box-shadow: none !important;
  outline: none;
}
.tcm-qty-ctrl__btn:hover { background: #f5f5f5 !important; }
.tcm-qty-ctrl__num {
  width: 30px;
  text-align: center;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  border-left: 1px solid #ccc;
  border-right: 1px solid #ccc;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #000;
}
.tcm-qty-ctrl.is-loading { opacity: 0.5; pointer-events: none; }

/* Botón "Volver a la tienda" — alineado a la izquierda, en la misma guía que el aviso */
/* El tema padre usa grid de 5 cols; notices ocupa col 1/1/2/6 (full-width)
   pero p.return-to-shop queda auto-placed en col 2 → lo forzamos a col 1/-1 */
.woocommerce.woocommerce-cart .woocommerce > p.return-to-shop,
.woocommerce.woocommerce-cart .woocommerce > p.cart-empty {
  grid-column: 1 / -1 !important;
}
.woocommerce-cart p.return-to-shop,
.woocommerce p.return-to-shop,
p.return-to-shop {
  text-align: left !important;
  display: block !important;
  width: 100% !important;
  margin: 24px 0 !important;
}
.woocommerce-cart p.return-to-shop a,
.woocommerce p.return-to-shop a,
p.return-to-shop a,
a.wc-backward {
  display: inline-block !important;
  float: none !important;
  margin: 0 !important;
  width: auto !important;
}

/* Highlight al hacer scroll hacia tallas */
.tcm-size-selector--highlight .tcm-size-pills {
  outline: 2px solid var(--tcm-black);
  outline-offset: 6px;
  animation: tcm-pulse-outline 0.4s ease-out 2;
}
@keyframes tcm-pulse-outline {
  0%   { outline-color: var(--tcm-black); }
  50%  { outline-color: transparent; }
  100% { outline-color: var(--tcm-black); }
}

/* Favoritos en menú mobile */
a.tcm-mobile-menu__wishlist {
  display: flex !important;
  align-items: center;
  gap: 8px;
}
a.tcm-mobile-menu__wishlist .tcm-header__wishlist-count {
  position: static !important;
  top: auto !important;
  right: auto !important;
  width: 16px !important;
  height: 16px !important;
  font-size: 9px !important;
}

/* ── Skip link ──────────────────────────────────────────────── */
.tcm-skip-link {
  position: absolute;
  top: -9999px;
  left: var(--space-2);
  background: var(--tcm-black);
  color: var(--tcm-white);
  padding: var(--space-1) var(--space-2);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: var(--tcm-letter-spacing-wide);
  z-index: 9999;
  text-decoration: none;
}
.tcm-skip-link:focus {
  top: var(--space-2);
}

/* ── Seguimiento ─────────────────────────────────────────────── */
.tcm-seguimiento-hero {
  background: var(--tcm-black);
  padding: var(--space-7) var(--space-5);
  text-align: center;
  min-height: 36vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tcm-seguimiento-hero .tcm-container { text-align: center; }
.tcm-seguimiento-hero__eyebrow { color: var(--tcm-white-sub); margin: 0 0 var(--space-2); }
.tcm-seguimiento-hero__title {
  font-size: clamp(28px, 4vw, 52px);
  font-weight: var(--tcm-font-weight-bold);
  color: var(--tcm-white);
  letter-spacing: var(--tcm-letter-spacing-tight);
  line-height: 1.05;
  margin: 0 0 var(--space-2);
}
.tcm-seguimiento-hero__sub {
  color: var(--tcm-white-sub);
  font-size: 15px;
  margin: 0;
}

.tcm-seguimiento-form-section .tcm-container {
  max-width: 560px;
}
.tcm-seguimiento-form__row {
  display: flex;
  gap: var(--space-2);
  align-items: stretch;
}
.tcm-seguimiento-form__input {
  flex: 1;
  height: 52px;
  border: 1px solid var(--tcm-black);
  padding: 0 var(--space-2);
  font-family: var(--tcm-font-body);
  font-size: 14px;
  color: var(--tcm-black);
  background: var(--tcm-white);
  border-radius: 0;
  outline: none;
  transition: border-color 0.2s;
}
.tcm-seguimiento-form__input:focus { border-color: var(--tcm-black); }
.tcm-seguimiento-form__input::placeholder { color: var(--tcm-gray-text); }
.tcm-seguimiento-form__btn {
  height: 52px;
  padding: 0 var(--space-3);
  white-space: nowrap;
  flex-shrink: 0;
}
.tcm-seguimiento-form__hint {
  font-size: 12px;
  color: var(--tcm-gray-text);
  margin: var(--space-1) 0 0;
}
.tcm-seguimiento-form__error {
  font-size: 12px;
  color: var(--tcm-error);
  margin: var(--space-1) 0 0;
}
.tcm-seguimiento-order-link {
  font-size: 13px;
  color: var(--tcm-gray-text);
  margin: var(--space-3) 0 0;
  text-align: center;
}
.tcm-seguimiento-order-link a {
  color: var(--tcm-black);
  text-decoration: underline;
}

.tcm-seguimiento-info .tcm-container { max-width: 800px; }
.tcm-seguimiento-info__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
  border-top: 1px solid var(--tcm-gray-line);
  padding-top: var(--space-4);
}
@media (max-width: 640px) {
  .tcm-seguimiento-info__grid { grid-template-columns: 1fr; }
  .tcm-seguimiento-form__row { flex-direction: column; }
  .tcm-seguimiento-form__btn { width: 100%; }
}
.tcm-seguimiento-info__label { margin: 0 0 6px; }
.tcm-seguimiento-info__value {
  font-size: 16px;
  font-weight: var(--tcm-font-weight-medium);
  margin: 0 0 4px;
}
.tcm-seguimiento-info__value a { color: var(--tcm-black); text-decoration: underline; }
.tcm-seguimiento-info__desc {
  font-size: 13px;
  color: var(--tcm-gray-text);
  margin: 0;
}

/* ── Focus visible ──────────────────────────────────────────── */
:focus-visible {
  outline: 2px solid var(--tcm-black);
  outline-offset: 3px;
}
:focus:not(:focus-visible) {
  outline: none;
}

/* ── Reducción de movimiento ────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
