/** Shopify CDN: Minification failed

Line 1312:0 Unexpected "}"

**/
/* ════════════════════════════════════════════════════════════════════
   CP&M JOYERÍA — Light Luxury System v6
   Fonts  : Elms Sans (todo el sitio)
   Palette: #FFFFFF white · #C9A84C gold · #1C1A17 warm dark
   ════════════════════════════════════════════════════════════════════ */

/* Fuente Elms Sans: se carga desde theme.liquid <head> con preload async
   (preconnect + rel=preload + media=print onload) para no bloquear el render.
   NO usar @import aquí: encadena peticiones y retrasa el LCP. */

/* ────────────────────────────────────────────────────────────────────
   1. DESIGN TOKENS
────────────────────────────────────────────────────────────────────── */
:root {
  --g-bg:        #FFFFFF;
  --g-bg1:       #FAFAF8;
  --g-bg2:       #F5F3EF;
  --g-bg3:       #EDE8DF;
  --g-bg4:       #E5DFD5;

  /* Text — NEGRO SÓLIDO en todo el texto (sin grises ni opacidades).
     Los tokens "atenuados" ahora apuntan al mismo negro sólido para máxima
     legibilidad. Sólo -30/-15 (uso estructural: dividers/iconos faint) y los
     tokens de borde conservan transparencia. */
  --g-ink:       #1C1A17;
  --g-ink-80:    #1C1A17;
  --g-ink-65:    #1C1A17;
  --g-ink-50:    #1C1A17;
  --g-ink-30:    rgba(28,26,23,.30);

  /* Keep --g-cream pointing to text color for compatibility */
  --g-cream:     #1C1A17;
  --g-cream-80:  #1C1A17;
  --g-cream-60:  #1C1A17;
  --g-cream-35:  #1C1A17;
  --g-cream-15:  rgba(28,26,23,.15);

  --g-gold:      #C9A84C;
  --g-gold-lt:   #DEAD6B;
  --g-gold-dim:  rgba(201,168,76,.20);
  --g-gold-10:   rgba(201,168,76,.10);
  --g-gold-06:   rgba(201,168,76,.06);

  --g-border:    rgba(28,26,23,.10);
  --g-border-hv: rgba(201,168,76,.55);

  --g-f-d: 'Elms Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --g-f-u: 'Elms Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --g-f-m: 'Elms Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --g-ease:   cubic-bezier(.16,1,.3,1);
  --g-bounce: cubic-bezier(.34,1.56,.64,1);
  --g-t:      .55s var(--g-ease);
  --g-tf:     .25s var(--g-ease);
}

:root {
  --font-heading-family: 'Elms Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-body-family:    'Elms Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-heading-weight: 600;
  --font-body-weight:    400;
}

/* ────────────────────────────────────────────────────────────────────
   2. BASE
────────────────────────────────────────────────────────────────────── */
html { color-scheme: light; background: var(--g-bg); scroll-behavior: smooth; }
/* Respeta a quien pide menos movimiento */
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body, body.gradient {
  background-color: var(--g-bg) !important;
  background-image: none !important;
  color: var(--g-ink) !important;
  font-family: var(--g-f-u) !important;
  /* FIX tamaño: el override anterior a 1rem (~11.5px) achicaba TODO el texto.
     1.6rem ≈ 18px → cuerpo grande y legible (escala con body_scale). */
  font-size: 1.6rem !important;
  font-weight: 400 !important;
}

.gradient,
[class*="color-scheme"],
[class*="color-"] {
  background-color: var(--g-bg) !important;
  background-image: none !important;
  color: var(--g-ink) !important;
}
.color-scheme-2 { background-color: var(--g-bg1) !important; }
.color-scheme-3 { background-color: var(--g-bg2) !important; }
.color-scheme-4 { background-color: var(--g-bg3) !important; }
.color-scheme-5 { background-color: var(--g-bg1) !important; }

::selection { background: var(--g-gold-dim); color: var(--g-ink); }

/* ────────────────────────────────────────────────────────────────────
   3. GLOBAL TYPOGRAPHY
   NOTE: no font-size on 'a' globally — each section controls its own
────────────────────────────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6,
.h0, .h1, .h2, .h3, .h4 {
  font-family: var(--g-f-d) !important;
  font-weight: 600 !important;
  color: var(--g-ink) !important;
  line-height: 1.1 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

p, li, label, td, th {
  font-family: var(--g-f-u) !important;
}

a {
  font-family: var(--g-f-u) !important;
  color: var(--g-ink) !important;
  text-decoration: none !important;
}
a:hover { color: var(--g-gold) !important; }

/* ── Textos de apoyo — Montserrat, legibles y visibles ── */
/* Clase Dawn para labels y captions pequeños */
.caption-with-letter-spacing,
.caption-with-letter-spacing--small {
  font-family: var(--g-f-m) !important;
  font-size: .80rem !important;
  font-weight: 500 !important;
  letter-spacing: .10em !important;
  color: var(--g-ink-80) !important;
  text-transform: uppercase !important;
}
/* Modificador .light de Dawn (usado en vendor, filtros, etc.) */
.caption-with-letter-spacing.light,
.caption-with-letter-spacing--small.light {
  font-weight: 500 !important;
  color: var(--g-ink-80) !important;
}
/* Labels de formularios, filtros, variantes */
.form__label,
.select__select,
.field__label {
  font-family: var(--g-f-m) !important;
  font-size: .80rem !important;
  font-weight: 500 !important;
  letter-spacing: .08em !important;
  color: var(--g-ink-80) !important;
}
/* Opciones de variante (talla, color) */
.product-option dt,
.product-option dd {
  font-family: var(--g-f-m) !important;
  font-size: .80rem !important;
  font-weight: 500 !important;
  color: var(--g-ink-80) !important;
  letter-spacing: .05em !important;
}

/* ────────────────────────────────────────────────────────────────────
   4. SKIP BUTTON — hidden
────────────────────────────────────────────────────────────────────── */
.skip-to-content-link { display: none !important; }

/* ────────────────────────────────────────────────────────────────────
   5. SCROLL PROGRESS BAR
────────────────────────────────────────────────────────────────────── */
#cpm-scroll-progress {
  position: fixed; top: 0; left: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--g-gold), var(--g-gold-lt));
  z-index: 10000; width: 0%;
  transition: width .1s linear;
  pointer-events: none;
}

/* ────────────────────────────────────────────────────────────────────
   6. CUSTOM CURSOR (pointer-only devices)
────────────────────────────────────────────────────────────────────── */
@media (pointer: fine) {
  /* native cursor kept — custom dot is additive overlay */
  #cpm-cursor {
    position: fixed; width: 7px; height: 7px;
    background: var(--g-gold); border-radius: 50%;
    pointer-events: none; z-index: 9999;
    transform: translate(-50%, -50%);
    transition: transform .1s var(--g-ease), background .2s;
  }
  #cpm-cursor.is-hover  { transform: translate(-50%,-50%) scale(2.4); background: var(--g-gold-lt); }
  #cpm-cursor.is-click  { transform: translate(-50%,-50%) scale(.6); }

  #cpm-cursor-ring {
    position: fixed; width: 34px; height: 34px;
    border: 1px solid rgba(201,168,76,.35); border-radius: 50%;
    pointer-events: none; z-index: 9998;
    transform: translate(-50%, -50%);
    transition: width .3s var(--g-ease), height .3s var(--g-ease), border-color .3s, opacity .3s;
  }
  #cpm-cursor-ring.is-hover { width: 54px; height: 54px; border-color: var(--g-border-hv); }
  #cpm-cursor-ring.is-click { opacity: .4; }

  #cpm-ambient {
    position: fixed; width: 520px; height: 520px;
    background: radial-gradient(circle, rgba(201,168,76,.04) 0%, transparent 70%);
    border-radius: 50%; pointer-events: none; z-index: 0;
    transform: translate(-50%,-50%); mix-blend-mode: multiply;
  }
}

/* ────────────────────────────────────────────────────────────────────
   7. ANNOUNCEMENT BAR — marquee oro sólido (texto negro, auto-scroll ✦)
────────────────────────────────────────────────────────────────────── */
.announcement-bar-section,
.announcement-bar-section .utility-bar,
.utility-bar {
  background: var(--g-gold) !important;
  background-color: var(--g-gold) !important;
  border-bottom: none !important;
  position: relative !important;
  overflow: hidden !important;
}
/* Se pinta por encima del hero y del header (que es transparente sobre el hero),
   así la franja dorada se ve siempre arriba del todo. */
.announcement-bar-section { z-index: 201 !important; }
/* El marquee ocupa todo el ancho (rompe el page-width) */
.announcement-bar-section .utility-bar__grid,
.utility-bar__grid {
  display: block !important;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}

.ab-marquee {
  overflow: hidden !important;
  width: 100% !important;
  padding: .85rem 0 !important;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent) !important;
          mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent) !important;
}
.ab-marquee__track {
  display: flex !important;
  align-items: center !important;
  width: max-content !important;
  will-change: transform !important;
}
.ab-marquee__track--animate {
  animation-name: ab-scroll !important;
  animation-duration: 30s !important;          /* fallback; el JS lo ajusta al ancho real */
  animation-timing-function: linear !important;
  animation-iteration-count: infinite !important;
}
.ab-marquee:hover .ab-marquee__track--animate { animation-play-state: paused !important; }
@keyframes ab-scroll { to { transform: translateX(var(--ab-shift, -50%)); } }

.ab-item {
  display: inline-flex !important;
  align-items: center !important;
  white-space: nowrap !important;
  font-family: var(--g-f-u) !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
}
.ab-item::before {
  content: '\2726' !important;   /* ✦ estrella */
  margin: 0 2.6rem !important;
  font-size: .78em !important;
  color: var(--g-ink) !important;
  opacity: .5 !important;
}
.ab-item__link { color: var(--g-ink) !important; text-decoration: none !important; }
.ab-item__link:hover { text-decoration: underline !important; }

@media (prefers-reduced-motion: reduce) {
  .ab-marquee__track--animate { animation: none !important; }
  .ab-marquee { -webkit-mask-image: none !important; mask-image: none !important; }
  .ab-marquee__track { justify-content: center !important; width: 100% !important; flex-wrap: wrap !important; }
}

/* ────────────────────────────────────────────────────────────────────
   8. HEADER
   Lógica invertida: transparente por defecto, blanco al hacer scroll.
   Esto evita depender de que el JS haya corrido antes de pintar.
────────────────────────────────────────────────────────────────────── */
.header-wrapper {
  /* position:fixed — inmune al hide de Dawn (translateY / clases no afectan fixed) */
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 200 !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  transition: background-color .4s var(--g-ease), box-shadow .4s, border-color .4s !important;
}

/* Al hacer scroll: fondo blanco SÓLIDO (sin glass, más legible) */
.header-wrapper.cpm-scrolled {
  background-color: #ffffff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: 1px solid var(--g-border) !important;
  box-shadow: 0 2px 20px rgba(28,26,23,.07) !important;
}
/* Refuerzo: el div wrapper (.section-header) también se vuelve blanco al hacer scroll */
body.cpm-has-hero.cpm-hero-scrolled .section-header,
body.cpm-has-hero.cpm-hero-scrolled .shopify-section-group-header-group {
  background-color: #ffffff !important;
  border-color: var(--g-border) !important;
}
/* No-hero pages: header wrapper siempre blanco */
.header-wrapper:not(:has(~ *)) { background-color: #ffffff; }
.header, .header__inner { background: transparent !important; }

/* ── Neutralizar el hide/show nativo de Dawn ──────────────────────────
   Dawn's StickyHeader.hide() aplica .shopify-section-header-hidden
   + .shopify-section-header-sticky al .section-header, lo que mueve
   el section a top: calc(-1 * var(--header-height)).
   Como nuestro .header-wrapper es position:fixed, no se oculta, pero
   el desplazamiento del section puede alterar el hit-testing en algunos
   navegadores móviles. Lo anulamos fijando top: 0 en ambos estados. */
.shopify-section-header-sticky { top: 0 !important; }
.shopify-section-header-hidden { top: 0 !important; }

/* ── Búsqueda (details-modal): siempre encima del header ───────────── */
details-modal.header__search { z-index: 300 !important; }
.search-modal, .header__search { z-index: 300 !important; }

/* ── Iconos y nav: blanco sobre hero (estado transparente) */
.header__icon svg { stroke: #ffffff !important; }
.header__icon:hover svg { stroke: var(--g-gold) !important; }
.cart-count-bubble {
  background: rgba(255,255,255,.88) !important;
  color: var(--g-ink) !important;
}

/* Brand name — blanco sobre hero */
.header__heading a,
.header__heading a:hover { color: #ffffff !important; text-decoration: none !important; }
.header__heading span.h2,
.header__heading .h2 {
  font-family: var(--g-f-d) !important;
  font-size: 1.4rem !important; font-weight: 700 !important;
  letter-spacing: .28em !important; text-transform: uppercase !important;
  color: #ffffff !important;
}
/* Logo texto en header — blanco sobre hero.
   Especificidad alta (0,4,0) para superar la regla base .cpm-logo-text__main (0,1,0)
   que viene después en el archivo */
body.cpm-has-hero:not(.cpm-hero-scrolled) .header-wrapper .cpm-logo-text__sub,
body.cpm-has-hero:not(.cpm-hero-scrolled) .header-wrapper .cpm-logo-text__main {
  color: #ffffff !important;
}

/* Logo SVG (cpm-logo.liquid) — invertir a blanco cuando flota sobre el hero */
body.cpm-has-hero:not(.cpm-hero-scrolled) .header-wrapper .cpm-logo-svg {
  filter: brightness(0) invert(1) !important;
  transition: filter .4s var(--g-ease) !important;
}
/* Al hacer scroll → vuelve a dorado natural */
.header-wrapper.cpm-scrolled .cpm-logo-svg {
  filter: none !important;
}

/* ── Nav links — blanco sobre hero */
.header__menu-item,
.header__menu-item a,
.header__menu-item a:link,
.header__menu-item a:visited,
.header__menu-item a[aria-current],
.header__menu-item a[aria-current="page"],
.header__active-menu-item,
header-menu a,
header-menu .list-menu__item--link {
  font-family: var(--g-f-u) !important;
  font-size: 1.2rem !important;
  font-weight: 600 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
  color: #ffffff !important;
  line-height: 1 !important;
  vertical-align: middle !important;
}
/* Iconos del header un poco más grandes para acompañar el logo */
.header__icons .header__icon .icon,
.header__icons .header__icon .svg-wrapper svg,
.header__icons .header__icon svg { width: 2.3rem !important; height: 2.3rem !important; }
/* El glifo del carrito se dibuja más chico dentro de su viewBox: lo igualamos */
.header__icons .header__icon--cart .svg-wrapper svg,
.header__icons .header__icon--cart svg { width: 2.7rem !important; height: 2.7rem !important; }
.header__menu-item:hover a,
.header__menu-item a:hover,
header-menu a[aria-current="page"] {
  color: var(--g-gold) !important;
}
.header__active-menu-item { color: var(--g-gold) !important; }

/* ── Al hacer scroll: todos los elementos vuelven a oscuro ── */
.header-wrapper.cpm-scrolled .header__icon svg { stroke: var(--g-ink) !important; }
.header-wrapper.cpm-scrolled .header__icon:hover svg { stroke: var(--g-gold) !important; }
.header-wrapper.cpm-scrolled .cart-count-bubble {
  background: var(--g-gold) !important;
  color: var(--g-bg) !important;
}
.header-wrapper.cpm-scrolled .header__heading a,
.header-wrapper.cpm-scrolled .header__heading a:hover { color: var(--g-ink) !important; }
.header-wrapper.cpm-scrolled .header__heading span.h2,
.header-wrapper.cpm-scrolled .header__heading .h2 { color: var(--g-ink) !important; }
/* Logo de texto (cpm-logo-h) → oscuro al hacer scroll
   Misma especificidad alta que la regla "blanco sobre hero" para ganar la cascada */
body.cpm-has-hero.cpm-hero-scrolled .header-wrapper .cpm-logo-text__sub,
.header-wrapper.cpm-scrolled .cpm-logo-text__sub { color: var(--g-ink-65) !important; }
body.cpm-has-hero.cpm-hero-scrolled .header-wrapper .cpm-logo-text__main,
.header-wrapper.cpm-scrolled .cpm-logo-text__main { color: var(--g-ink) !important; }
/* Logo SVG → vuelve a dorado natural al hacer scroll */
.header-wrapper.cpm-scrolled .cpm-logo-svg { filter: none !important; }
.header-wrapper.cpm-scrolled .header__menu-item,
.header-wrapper.cpm-scrolled .header__menu-item a,
.header-wrapper.cpm-scrolled .header__menu-item a:link,
.header-wrapper.cpm-scrolled .header__menu-item a:visited,
.header-wrapper.cpm-scrolled header-menu a,
.header-wrapper.cpm-scrolled header-menu .list-menu__item--link {
  color: var(--g-ink-80) !important;
}
.header-wrapper.cpm-scrolled .header__menu-item:hover a,
.header-wrapper.cpm-scrolled .header__menu-item a:hover,
.header-wrapper.cpm-scrolled header-menu a[aria-current="page"] {
  color: var(--g-gold) !important;
}

/* Transición suave del wrapper del header (bidireccional: héroe ↔ scroll) */
.section-header,
.shopify-section-group-header-group {
  transition: background-color .4s var(--g-ease), border-color .4s !important;
}

/* ── Announcement bar / Utility bar: transparente sobre el hero ──
   El diagnóstico confirmó que la barra usa clase .utility-bar (no .announcement-bar)
   body.cpm-has-hero      → hay hero en la página (puesto por JS)
   body.cpm-hero-scrolled → usuario scrolleó más allá del 60% del hero */
/* La barra de anuncios es oro sólido SIEMPRE (también sobre el hero):
   queda fuera de la lógica transparente. Solo el wrapper del header
   (logo/nav) se mantiene transparente sobre el hero. */
body.cpm-has-hero:not(.cpm-hero-scrolled) .section-header,
body.cpm-has-hero:not(.cpm-hero-scrolled) .shopify-section-group-header-group {
  background: transparent !important;
  background-color: transparent !important;
  border-color: transparent !important;
  transition: background-color .4s var(--g-ease), border-color .4s !important;
}

/* ── Dropdown panel — fondo blanco, texto oscuro en AMBOS estados ── */
.header__submenu {
  background: rgba(255,255,255,.99) !important;
  border: 1px solid var(--g-border) !important;
  box-shadow: 0 8px 32px rgba(28,26,23,.12) !important;
}
/* Forzar texto oscuro siempre — el panel dropdown es blanco independientemente
   del estado del header. Necesita spec (0,2,1) para superar header-menu a (0,0,2) */
.header__submenu a,
.header__submenu a:link,
.header__submenu a:visited,
.header-wrapper .header__submenu a,
.header-wrapper .header__submenu a:link,
.header-wrapper .header__submenu a:visited {
  font-family: var(--g-f-u) !important;
  font-size: .9rem !important;
  font-weight: 400 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
  color: var(--g-ink-80) !important;
  display: block !important;
  padding: .7rem 1.2rem !important;
}
.header__submenu a:hover,
.header-wrapper .header__submenu a:hover { color: var(--g-gold) !important; }

/* ────────────────────────────────────────────────────────────────────
   9. CPM HERO
────────────────────────────────────────────────────────────────────── */
.cpm-hero {
  display: grid !important;
  grid-template-columns: 1fr !important;
  min-height: 100svh !important;
  background: var(--g-bg) !important;
  position: relative !important;
  overflow: hidden !important;
}
@media screen and (min-width: 900px) {
  .cpm-hero { grid-template-columns: 55fr 45fr !important; }
}

/* Left panel */
.cpm-hero__left {
  display: flex !important; flex-direction: column !important;
  justify-content: space-between !important;
  padding: 6rem 5vw 3rem !important;
  background: var(--g-bg) !important; order: 2 !important;
  position: relative !important; overflow: hidden !important;
}
@media screen and (min-width: 900px) {
  .cpm-hero__left { padding: 8rem 6vw 4rem !important; order: 1 !important; }
}
.cpm-hero__left-inner {
  flex: 1 !important; display: flex !important;
  flex-direction: column !important; justify-content: center !important;
  position: relative !important; z-index: 2 !important;
}
.cpm-hero__scroll-hint { position: relative !important; z-index: 2 !important; }

/* ── Aurora orbs ── */
.cpm-hero__aurora {
  position: absolute !important; inset: 0 !important;
  z-index: 1 !important; pointer-events: none !important;
  overflow: hidden !important;
}

/* Orb 1 — gold warmth, upper-left */
.cpm-hero__aurora-orb--1 {
  position: absolute !important;
  width: 75% !important; height: 75% !important;
  top: -25% !important; left: -15% !important;
  border-radius: 50% !important;
  background: radial-gradient(ellipse at center,
    rgba(201,168,76,.16) 0%,
    rgba(201,168,76,.06) 45%,
    transparent 70%) !important;
  filter: blur(55px) !important;
  animation: cpm-orb1 24s ease-in-out infinite !important;
}

/* Orb 2 — deep gold, lower-right */
.cpm-hero__aurora-orb--2 {
  position: absolute !important;
  width: 65% !important; height: 65% !important;
  bottom: -20% !important; right: -10% !important;
  border-radius: 50% !important;
  background: radial-gradient(ellipse at center,
    rgba(222,180,80,.12) 0%,
    rgba(201,168,76,.04) 50%,
    transparent 70%) !important;
  filter: blur(75px) !important;
  animation: cpm-orb2 30s ease-in-out infinite !important;
  animation-delay: -11s !important;
}

/* Orb 3 — cream warmth, center-drift */
.cpm-hero__aurora-orb--3 {
  position: absolute !important;
  width: 55% !important; height: 55% !important;
  top: 20% !important; left: 22% !important;
  border-radius: 50% !important;
  background: radial-gradient(ellipse at center,
    rgba(201,168,76,.08) 0%,
    transparent 65%) !important;
  filter: blur(90px) !important;
  animation: cpm-orb3 36s ease-in-out infinite !important;
  animation-delay: -20s !important;
}

@keyframes cpm-orb1 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  30%       { transform: translate(7%, 11%) scale(1.13); }
  65%       { transform: translate(-5%, 17%) scale(.91); }
}
@keyframes cpm-orb2 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  38%       { transform: translate(-10%, -9%) scale(1.18); }
  72%       { transform: translate(7%, -14%) scale(.87); }
}
@keyframes cpm-orb3 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%       { transform: translate(-9%, 9%) scale(1.12); }
}

/* Grain texture overlay — subtle luxury tactile feel */
.cpm-hero__left::after {
  content: '' !important;
  position: absolute !important; inset: 0 !important;
  z-index: 3 !important; pointer-events: none !important;
  opacity: .028 !important;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E") !important;
  background-repeat: repeat !important;
  background-size: 180px !important;
}

/* Eyebrow */
.cpm-hero__eyebrow {
  display: flex !important; align-items: center !important; gap: 1.2rem !important;
  font-family: var(--g-f-u) !important;
  font-size: .78rem !important; font-weight: 500 !important;
  letter-spacing: .26em !important; text-transform: uppercase !important;
  color: var(--g-gold) !important;
  margin: 0 0 2.4rem !important;
  opacity: 0; animation: cpm-up .5s var(--g-ease) .1s forwards;
}
.cpm-hero__eyebrow-dash {
  display: block !important; width: 3rem !important; height: 1px !important;
  background: var(--g-gold) !important; flex-shrink: 0 !important;
}

/* Title */
.cpm-hero__title {
  font-family: var(--g-f-d) !important;
  font-weight: 700 !important; line-height: .92 !important;
  letter-spacing: .05em !important; text-transform: uppercase !important;
  color: var(--g-ink) !important; margin: 0 0 2.8rem !important;
  display: flex !important; flex-direction: column !important; gap: .2em !important;
}
.cpm-hero__word {
  display: block !important;
  font-size: clamp(3.5rem, 8vw, 9rem) !important;
  opacity: 0; animation: cpm-reveal .8s var(--g-ease) forwards;
}
.cpm-hero__word[data-word="1"] { animation-delay: .25s; }
.cpm-hero__word[data-word="2"] { animation-delay: .45s; }
.cpm-hero__word[data-word="3"] { animation-delay: .65s; }
.cpm-hero__word--italic  { font-style: italic !important; color: var(--g-gold) !important; }
.cpm-hero__word--thin    { font-weight: 400 !important; color: rgba(255,255,255,.78) !important; }

/* Description */
.cpm-hero__desc {
  font-family: var(--g-f-u) !important;
  font-size: 1.15rem !important; font-weight: 400 !important;
  color: var(--g-ink-65) !important; line-height: 1.85 !important;
  max-width: 42ch !important; margin: 0 0 3rem !important;
  opacity: 0; animation: cpm-up .6s var(--g-ease) .8s forwards;
}

/* CTAs */
.cpm-hero__ctas {
  display: flex !important; gap: 1.4rem !important; flex-wrap: wrap !important;
  opacity: 0; animation: cpm-up .6s var(--g-ease) .95s forwards;
}
.cpm-hero__btn {
  display: inline-flex !important; align-items: center !important;
  justify-content: center !important; gap: .8rem !important;
  font-family: var(--g-f-u) !important;
  font-size: .88rem !important; font-weight: 600 !important;
  letter-spacing: .18em !important; text-transform: uppercase !important;
  padding: 1.1rem 2.6rem !important; border: 1px solid !important;
  border-radius: 0 !important;
  transition: background var(--g-tf), color var(--g-tf), border-color var(--g-tf) !important;
}
.cpm-hero__btn--fill {
  background: var(--g-ink) !important; color: var(--g-bg) !important;
  border-color: var(--g-ink) !important;
}
.cpm-hero__btn--fill:hover {
  background: var(--g-gold) !important; border-color: var(--g-gold) !important;
  color: var(--g-bg) !important;
}
.cpm-hero__btn--line {
  background: transparent !important; color: var(--g-ink) !important;
  border-color: rgba(28,26,23,.40) !important;
}
.cpm-hero__btn--line:hover { border-color: var(--g-ink) !important; }

/* Stats */
.cpm-hero__meta {
  display: flex !important; align-items: center !important; gap: 2.4rem !important;
  margin-top: 3.5rem !important; padding-top: 2.5rem !important;
  border-top: 1px solid var(--g-border) !important;
  opacity: 0; animation: cpm-up .6s var(--g-ease) 1.1s forwards;
}
.cpm-hero__stat { display: flex !important; flex-direction: column !important; gap: .4rem !important; }
.cpm-hero__stat-num {
  font-family: var(--g-f-d) !important;
  font-size: 2.8rem !important; font-weight: 600 !important;
  color: var(--g-gold) !important; line-height: 1 !important;
}
/* FIX: stat labels were --g-cream-35 (.35 opacity) = invisible on white */
.cpm-hero__stat-lbl {
  font-family: var(--g-f-u) !important;
  font-size: .88rem !important; font-weight: 500 !important;
  letter-spacing: .13em !important; text-transform: uppercase !important;
  color: rgba(255,255,255,.72) !important;
}
.cpm-hero__stat-sep {
  width: 1px !important; height: 3.5rem !important;
  background: var(--g-border) !important; flex-shrink: 0 !important;
}

/* Scroll hint */
.cpm-hero__scroll-hint {
  display: none; align-items: center; gap: 1.4rem;
  opacity: 0; animation: cpm-up .6s var(--g-ease) 1.3s forwards;
}
@media screen and (min-width: 900px) { .cpm-hero__scroll-hint { display: flex; } }
/* FIX: scroll txt was .65rem + .35 opacity = nearly invisible */
.cpm-hero__scroll-txt {
  font-family: var(--g-f-u) !important;
  font-size: .8rem !important; font-weight: 400 !important;
  letter-spacing: .22em !important; text-transform: uppercase !important;
  color: var(--g-ink-50) !important;
}
.cpm-hero__scroll-track {
  width: 1px; height: 4.5rem;
  background: rgba(28,26,23,.15);
  position: relative; overflow: hidden;
}
.cpm-hero__scroll-thumb {
  position: absolute; top: -50%; left: 0;
  width: 100%; height: 50%; background: var(--g-gold);
  animation: cpm-scroll-bar 2s var(--g-ease) infinite 1.4s;
}
@keyframes cpm-scroll-bar { 0% { top: -50%; } 100% { top: 150%; } }

/* Right panel */
.cpm-hero__right {
  position: relative; order: 1; min-height: 55svh;
  background: var(--g-bg2);
}
@media screen and (min-width: 900px) { .cpm-hero__right { order: 2 !important; min-height: 100svh; } }

.cpm-hero__frame {
  position: absolute; inset: 3rem 3rem 5rem 2rem; margin: 0 !important;
}
@media screen and (min-width: 900px) { .cpm-hero__frame { inset: 4.5rem 4.5rem 8rem 2.5rem; } }

.cpm-hero__frame-border {
  position: absolute; width: 4rem; height: 4rem; z-index: 3;
  opacity: 0; animation: cpm-up .6s var(--g-ease) .8s forwards;
}
.cpm-hero__frame-border--tl { top: -8px; left: -8px; border-top: 1.5px solid var(--g-gold); border-left: 1.5px solid var(--g-gold); }
.cpm-hero__frame-border--br { bottom: -8px; right: -8px; border-bottom: 1.5px solid var(--g-gold); border-right: 1.5px solid var(--g-gold); }

.cpm-hero__img-wrap { position: absolute; inset: 0; overflow: hidden; border-radius: 6px; }
.cpm-hero__img {
  width: 100% !important; height: 100% !important;
  object-fit: cover !important; object-position: center top !important;
  transform: scale(1.04);
  animation: cpm-img-in 1.2s var(--g-ease) .3s forwards;
}
.cpm-hero__img-veil {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 60%, rgba(245,243,239,.5));
  z-index: 2;
}

/* Badge */
.cpm-hero__badge {
  position: absolute !important; bottom: 2.5rem !important; left: -1.5rem !important;
  z-index: 10 !important; display: flex !important; align-items: center !important;
  gap: .7rem !important; background: var(--g-bg) !important;
  border: 1px solid var(--g-border) !important; padding: .9rem 1.6rem !important;
  box-shadow: 0 4px 20px rgba(28,26,23,.10) !important;
  opacity: 0; animation: cpm-up .6s var(--g-ease) 1s forwards;
}
.cpm-hero__badge svg { color: var(--g-gold) !important; }
.cpm-hero__badge span {
  font-family: var(--g-f-u) !important;
  font-size: .80rem !important; font-weight: 600 !important;
  letter-spacing: .16em !important; text-transform: uppercase !important;
  color: var(--g-ink) !important;
}

.cpm-hero__caption {
  position: absolute; bottom: 1.8rem; right: 3rem;
  font-family: var(--g-f-u) !important;
  font-size: .76rem !important; letter-spacing: .18em !important;
  text-transform: uppercase !important; color: rgba(255,255,255,.55) !important;
  writing-mode: vertical-rl;
  opacity: 0; animation: cpm-up .6s var(--g-ease) 1.2s forwards;
}

@keyframes cpm-up    { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes cpm-reveal{ from { opacity: 0; transform: translateY(40px) skewY(2deg); } to { opacity: 1; transform: none; } }
@keyframes cpm-img-in{ to { transform: scale(1); } }

/* ────────────────────────────────────────────────────────────────────
   9b. HERO — FULL-BLEED (efecto Swarovski)
   • Imagen cubre 100svh desde arriba del todo (detrás del header sticky)
   • Header transparente flota encima — el pull-up lo hace el liquid con
     margin-top: calc(-1 * var(--header-height, 72px))
   • Contenido anclado abajo-izquierda, texto blanco, viñeta oscura doble
────────────────────────────────────────────────────────────────────── */

/* Hero: flex column, 100svh exacto, imagen como fondo absoluto */
.cpm-hero {
  display: flex !important;
  flex-direction: column !important;
  grid-template-columns: unset !important;
  height: 100svh !important;
  min-height: 560px !important;
  max-height: unset !important;
  background: #080808 !important;
}

/* Panel imagen: fondo absoluto — cubre todo el hero */
.cpm-hero__right {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  min-height: unset !important;
  order: 0 !important;
  background: #080808 !important;
}

/* Frame e img-wrap sin bordes ni padding — full bleed */
.cpm-hero__frame {
  position: absolute !important;
  inset: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
}
.cpm-hero__img-wrap {
  position: absolute !important;
  top: 0 !important; right: 0 !important; bottom: 0 !important; left: 0 !important;
  overflow: hidden !important;
  border-radius: 0 !important;
}

/* Imagen: leve oscurecimiento para que el texto lea bien */
.cpm-hero__img {
  opacity: 0.82 !important;
  animation: cpm-img-in 1.4s var(--g-ease) .2s forwards !important;
}

/* Veil — el div.cpm-hero__img-veil nunca genera caja (bug de Dawn/heredado),
   lo ocultamos y usamos ::after del img-wrap (que sí tiene 1350×945 confirmados) */
.cpm-hero__img-veil {
  display: none !important;
}

/* Overlay gradient vía pseudo-elemento — completamente bajo nuestro control */
.cpm-hero__img-wrap::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 2 !important;
  pointer-events: none !important;
  /* Viñeta triple (móvil): menos oscuro para no tapar la foto */
  background:
    linear-gradient(to bottom, rgba(6,6,8,.62) 0%, rgba(6,6,8,.28) 18%, transparent 40%),
    linear-gradient(to right,  rgba(6,6,8,.45) 0%, rgba(6,6,8,.18) 38%, transparent 65%),
    linear-gradient(to top,    rgba(6,6,8,.72) 0%, rgba(6,6,8,.38) 26%, transparent 52%)
  !important;
}

/* Panel de contenido: centrado horizontal, anclado abajo */
.cpm-hero__left {
  position: relative !important;
  z-index: 2 !important;
  background: transparent !important;
  order: 1 !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-end !important;
  padding: 0 1.75rem 3rem !important;
  width: 100% !important;
  text-align: center !important;
}

/* left-inner: contenido centrado */
.cpm-hero__left-inner {
  flex: 0 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: 100% !important;
}

/* Aurora y pseudo-elementos: desactivados */
.cpm-hero__aurora,
.cpm-hero__left::before,
.cpm-hero__left::after { display: none !important; }

/* Ocultar: stats, elementos de frame decorativo, scroll hint */
.cpm-hero__meta,
.cpm-hero__frame-border,
.cpm-hero__badge,
.cpm-hero__caption,
.cpm-hero__scroll-hint { display: none !important; }

/* ── Logo de texto en hero: usa cpm-logo-h (Artesanal / CP&M / Acero) ── */
.cpm-hero__logo {
  display: block !important;
  width: auto !important;
  margin: 0 0 2rem !important;
  opacity: 0;
  animation: cpm-up .6s var(--g-ease) 0s both !important;
  text-decoration: none !important;
}
/* Logo de texto en hero — centrado, mismo formato que header, más grande */
.cpm-hero__logo .cpm-logo-text {
  align-items: center !important;
  gap: 4px !important;
}
.cpm-hero__logo .cpm-logo-text__sub {
  font-size: 1rem !important;
  letter-spacing: .55em !important;
  color: rgba(255,255,255,.62) !important;
  transition: none !important;
}
.cpm-hero__logo .cpm-logo-text__main {
  font-size: clamp(3rem, 7vw, 5rem) !important;
  font-weight: 600 !important;
  letter-spacing: .22em !important;
  color: #ffffff !important;
  line-height: 1 !important;
  transition: none !important;
}

/* ── Eyebrow: centrado, blanco suave ── */
.cpm-hero__eyebrow {
  display: flex !important;
  justify-content: center !important;
  color: rgba(255,255,255,.70) !important;
  margin: 0 0 1.4rem !important;
  opacity: 0;
  animation: cpm-up .5s var(--g-ease) .1s both !important;
}
.cpm-hero__eyebrow-dash { background: var(--g-gold) !important; }

/* ── Título: centrado, blanco, stacked ── */
.cpm-hero__title {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: .05em !important;
  margin: 0 0 1.2rem !important;
  line-height: .92 !important;
}
.cpm-hero__word {
  display: block !important;
  font-size: clamp(2.2rem, 7vw, 3.2rem) !important;
  color: #ffffff !important;
  opacity: 0;
  animation: cpm-reveal .75s var(--g-ease) forwards !important;
}
.cpm-hero__word[data-word="1"] { animation-delay: .18s !important; }
.cpm-hero__word[data-word="2"] { animation-delay: .34s !important; }
.cpm-hero__word[data-word="3"] { animation-delay: .50s !important; }
.cpm-hero__word--italic  { color: var(--g-gold) !important; }
.cpm-hero__word--thin    { color: rgba(255,255,255,.60) !important; font-weight: 400 !important; }

/* ── Eslogan (h2): blanco, centrado, bold ── */
/* Titular grande del hero — "Artesanal & Acero", todo en blanco, fuente Cinzel (igual que el logo) */
.cpm-hero__headline {
  font-family: 'Cinzel', Georgia, 'Times New Roman', serif !important;
  font-size: clamp(2.6rem, 6vw, 4.6rem) !important;
  font-weight: 700 !important;
  letter-spacing: .05em !important;
  text-transform: uppercase !important;
  color: #ffffff !important;
  line-height: 1.02 !important;
  text-align: center !important;
  margin: 0 auto .9rem !important;
  opacity: 0;
  animation: cpm-up .6s var(--g-ease) .48s both !important;
}
.cpm-hero__desc {
  font-family: var(--g-f-u) !important;
  font-size: clamp(1.05rem, 2.2vw, 1.55rem) !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  color: rgba(255,255,255,.80) !important;
  line-height: 1.5 !important;
  text-align: center !important;
  max-width: 36ch !important;
  margin: 0 auto 2.4rem !important;
  opacity: 0;
  animation: cpm-up .6s var(--g-ease) .62s both !important;
}

/* ── CTAs: centrados ── */
.cpm-hero__ctas {
  display: flex !important;
  flex-direction: row !important;
  justify-content: center !important;
  gap: .75rem !important;
  flex-wrap: wrap !important;
  opacity: 0;
  animation: cpm-up .6s var(--g-ease) .78s both !important;
}
.cpm-hero__btn {
  padding: .82rem 1.55rem !important;
  font-size: .76rem !important;
  letter-spacing: .15em !important;
}
.cpm-hero__btn--fill {
  background: transparent !important;
  border-color: rgba(255,255,255,.85) !important;
  color: #ffffff !important;
}
.cpm-hero__btn--fill:hover {
  background: rgba(255,255,255,.14) !important;
  border-color: #ffffff !important;
  color: #ffffff !important;
}
.cpm-hero__btn--line {
  display: inline-flex !important;
  background: transparent !important;
  border-color: rgba(255,255,255,.60) !important;
  color: #ffffff !important;
}
.cpm-hero__btn--line:hover {
  border-color: rgba(255,255,255,.70) !important;
  color: #ffffff !important;
}

/* ── Scroll hint: eliminado completamente ── */
.cpm-hero__scroll-hint,
.cpm-hero__scroll-txt,
.cpm-hero__scroll-track,
.cpm-hero__scroll-thumb { display: none !important; }

/* ── Desktop (≥ 900px) ── */
@media screen and (min-width: 900px) {
  .cpm-hero__left {
    padding: 0 8vw 6rem !important;
    align-items: center !important;
    text-align: center !important;
  }
  /* Logo de texto en desktop: más grande, centrado */
  .cpm-hero__logo {
    margin: 0 0 3rem !important;
  }
  .cpm-hero__logo .cpm-logo-text__main {
    font-size: clamp(4rem, 7vw, 7rem) !important;
  }
  .cpm-hero__logo .cpm-logo-text__sub {
    font-size: .82rem !important;
    letter-spacing: .58em !important;
  }
  /* Título en desktop — tamaño contenido */
  .cpm-hero__word {
    font-size: clamp(3.2rem, 5vw, 5.4rem) !important;
  }
  .cpm-hero__btn {
    padding: 1rem 2.4rem !important;
    font-size: .82rem !important;
  }
  .cpm-hero__ctas { gap: 1.2rem !important; }
  /* Viñeta desktop: más sutil (imagen menos oscura) */
  .cpm-hero__img-wrap::after {
    background:
      linear-gradient(to bottom, rgba(6,6,8,.55) 0%, rgba(6,6,8,.20) 16%, transparent 34%),
      linear-gradient(to right,  rgba(6,6,8,.35) 0%, rgba(6,6,8,.12) 45%, transparent 72%),
      linear-gradient(to top,    rgba(6,6,8,.65) 0%, rgba(6,6,8,.28) 32%, transparent 60%)
    !important;
  }
}

/* ────────────────────────────────────────────────────────────────────
   10. SECTIONS BASE
────────────────────────────────────────────────────────────────────── */
.shopify-section { background-color: var(--g-bg) !important; }

/* Section subtitles — texto de cuerpo: negro completo, legible */
.collection-duo__description,
.category-grid__subtitle,
.image-with-text__text,
.image-with-text__text p,
.rich-text__text,
.rich-text__text p {
  font-family: var(--g-f-u) !important;
  font-weight: 400 !important;
  font-size: 1.05rem !important;
  color: var(--g-ink) !important;
  line-height: 1.85 !important;
}

/* Section headings */
.collection-duo__title,
.category-grid__title,
.featured-collection__title,
.rich-text__heading,
.image-with-text__heading,
.newsletter__heading {
  font-family: var(--g-f-d) !important;
  font-weight: 600 !important; color: var(--g-ink) !important;
  text-transform: uppercase !important;
  letter-spacing: .1em !important;
  font-size: clamp(2rem, 4vw, 4rem) !important;
}

/* ────────────────────────────────────────────────────────────────────
   11. TRUST BADGES
────────────────────────────────────────────────────────────────────── */
.trust-badges { background: var(--g-bg1) !important; border-top: 1px solid var(--g-border) !important; border-bottom: 1px solid var(--g-border) !important; }
.trust-badges__grid { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 0 !important; }
@media screen and (min-width: 750px) { .trust-badges__grid { grid-template-columns: repeat(4, 1fr) !important; } }
.trust-badges__item {
  display: flex !important; flex-direction: column !important;
  align-items: center !important; text-align: center !important;
  padding: 2.8rem 1.8rem !important; gap: 1rem !important;
  border-right: 1px solid var(--g-border) !important;
  background: transparent !important; transition: background var(--g-tf) !important;
}
.trust-badges__item:last-child { border-right: none !important; }
.trust-badges__item:hover { background: var(--g-gold-06) !important; }
.trust-badges__icon svg path, .trust-badges__icon svg rect, .trust-badges__icon svg circle {
  stroke: var(--g-gold) !important; fill: none !important;
}
.trust-badges__title {
  font-family: var(--g-f-d) !important; font-size: 1rem !important; font-weight: 600 !important;
  color: var(--g-ink) !important; margin: 0 !important;
  letter-spacing: .06em !important; text-transform: uppercase !important;
}
.trust-badges__description {
  font-family: var(--g-f-u) !important;
  font-size: .95rem !important; font-weight: 400 !important;
  color: var(--g-ink-80) !important; line-height: 1.65 !important; margin: 0 !important;
}

/* ────────────────────────────────────────────────────────────────────
   12. COLLECTION DUO
────────────────────────────────────────────────────────────────────── */
.collection-duo { background: var(--g-bg) !important; }
.collection-duo__header { text-align: center !important; margin-bottom: 4rem !important; }
.collection-duo__grid { display: grid !important; grid-template-columns: 1fr !important; gap: 1.6rem !important; }
@media screen and (min-width: 750px) { .collection-duo__grid { grid-template-columns: 1fr 1fr !important; } }
.collection-duo__item { position: relative !important; overflow: hidden !important; border-radius: 14px !important; }
@media screen and (min-width: 750px) {
  /* Ambas tarjetas del mismo tamaño */
  .collection-duo__item:first-child .collection-duo__media,
  .collection-duo__item:last-child  .collection-duo__media { aspect-ratio: 4/5 !important; }
}
/* ── MÓVIL: split de altura — ambas tarjetas visibles sin hacer scroll ──
   Cada tarjeta ocupa ~40% de la altura de pantalla; con el encabezado
   compacto, las dos entran en una sola vista. */
@media screen and (max-width: 749px) {
  .collection-duo { padding-top: 2rem !important; padding-bottom: 2rem !important; }
  .collection-duo__header { margin-bottom: 1.2rem !important; }
  /* La intro larga se oculta en móvil para que quepan ambas tarjetas */
  .collection-duo__header .collection-duo__description { display: none !important; }
  .collection-duo__grid { gap: .8rem !important; }
  .collection-duo__media {
    aspect-ratio: auto !important;
    height: 40vh !important;
    height: 40svh !important;
    min-height: 200px !important;
  }
}
.collection-duo__image { width: 100% !important; height: 100% !important; object-fit: cover !important; transition: transform .8s var(--g-ease) !important; }
.collection-duo__link:hover .collection-duo__image { transform: scale(1.04) !important; }
.collection-duo__overlay {
  background: linear-gradient(to top, rgba(20,18,16,.88) 0%, rgba(20,18,16,.12) 55%, transparent 100%) !important;
  background-color: transparent !important;
}
.collection-duo__eyebrow {
  font-family: var(--g-f-u) !important; font-size: .76rem !important;
  letter-spacing: .22em !important; text-transform: uppercase !important;
  color: var(--g-gold) !important; display: block !important; margin-bottom: .7rem !important;
}
/* Overlay text always white — independent of page theme */
.collection-duo__collection-title {
  font-family: var(--g-f-d) !important;
  font-size: clamp(1.8rem, 3.2vw, 3.4rem) !important; font-weight: 600 !important;
  letter-spacing: .08em !important; text-transform: uppercase !important;
  color: #FFFFFF !important; line-height: 1.08 !important; margin: 0 0 .8rem !important;
}
.collection-duo__collection-description {
  font-size: 1.2rem !important; font-weight: 400 !important;
  color: #ffffff !important; line-height: 1.6 !important; margin-bottom: 1.8rem !important;
}
/* Botón sobre fondo oscuro de imagen — hereda cápsula/shimmer, colores dorado */
.collection-duo__cta.button {
  background: transparent !important;
  border: 1.5px solid var(--g-gold) !important;
  color: var(--g-gold) !important;
}
.collection-duo__link:hover .collection-duo__cta.button {
  background: var(--g-gold) !important;
  border-color: var(--g-gold) !important;
  color: var(--g-bg) !important;
  box-shadow: 0 4px 24px rgba(201,168,76,.35) !important;
}

/* ────────────────────────────────────────────────────────────────────
   13b. SLIDER DOTS — indicador de puntos (reemplaza flechas + "1/7")
────────────────────────────────────────────────────────────────────── */
/* Oculta el control nativo (flechas + contador "1/7") SOLO en los carruseles
   de producto (la colección destacada y "También te puede gustar"). El
   .slider-buttons es hermano del <ul class="product-grid slider"> dentro de
   <slider-component>, así no afecta la galería del producto ni otros sliders. */
.product-grid.slider ~ .slider-buttons { display: none !important; }

.cpm-dots {
  display: flex !important; justify-content: center !important; align-items: center !important;
  gap: .6rem !important; margin-top: 1.8rem !important;
  list-style: none !important; padding: 0 !important;
}
.cpm-dots__dot {
  width: 9px !important; height: 9px !important; border-radius: 50% !important;
  background: rgba(28,26,23,.22) !important; border: none !important; padding: 0 !important;
  cursor: pointer !important; -webkit-appearance: none !important; appearance: none !important;
  transition: background .25s var(--g-ease), transform .25s var(--g-ease) !important;
}
.cpm-dots__dot:hover { background: rgba(28,26,23,.45) !important; }
.cpm-dots__dot.is-active { background: var(--g-ink) !important; transform: scale(1.25) !important; }

/* ────────────────────────────────────────────────────────────────────
   13. CATEGORY GRID — mobile scroll fix
────────────────────────────────────────────────────────────────────── */
.category-grid { background: var(--g-bg1) !important; }
.category-grid, .category-grid .page-width { overflow: visible !important; }
.category-grid__header { text-align: center !important; margin-bottom: 3.5rem !important; }

.category-grid__items {
  display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important;
  gap: 1rem !important; overflow-x: auto !important;
  margin-left: -1.5rem !important; margin-right: -1.5rem !important;
  padding-left: 1.5rem !important; padding-right: 1.5rem !important; padding-bottom: 1rem !important;
  -webkit-overflow-scrolling: touch !important; scrollbar-width: none !important;
}
.category-grid__items::-webkit-scrollbar { display: none !important; }
@media screen and (min-width: 750px) {
  .category-grid__items {
    flex-wrap: wrap !important; overflow-x: visible !important; justify-content: center !important;
    margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important;
  }
}

.category-grid__item {
  display: flex !important; flex-direction: column !important; align-items: center !important;
  gap: 1.2rem !important; padding: 2rem 1.6rem !important; min-width: 10rem !important;
  flex: 0 0 auto !important; background: var(--g-bg) !important; border: 1px solid var(--g-border) !important;
  border-radius: 14px !important; text-decoration: none !important;
  transition: border-color var(--g-tf), box-shadow var(--g-tf) !important; cursor: pointer !important;
}
@media screen and (min-width: 750px) { .category-grid__item { flex: 0 0 12rem !important; padding: 2.5rem 2rem !important; } }
.category-grid__item:hover { border-color: var(--g-border-hv) !important; box-shadow: 0 8px 32px rgba(201,168,76,.12) !important; }
.category-grid__icon { width: 3.2rem !important; height: 3.2rem !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.category-grid__icon svg { width: 100% !important; height: 100% !important; stroke: var(--g-gold) !important; fill: none !important; stroke-width: 1.2 !important; }
/* FIX: label was .78rem, sublabel was .62rem/.35 opacity */
.category-grid__label {
  font-family: var(--g-f-d) !important; font-size: .88rem !important; font-weight: 600 !important;
  letter-spacing: .14em !important; text-transform: uppercase !important;
  color: var(--g-ink) !important; text-align: center !important;
}
.category-grid__sublabel {
  font-family: var(--g-f-u) !important; font-size: .82rem !important; font-weight: 500 !important;
  letter-spacing: .1em !important; text-transform: uppercase !important;
  color: var(--g-ink-80) !important; text-align: center !important;
}

/* ────────────────────────────────────────────────────────────────────
   14. FEATURED COLLECTION
────────────────────────────────────────────────────────────────────── */
.featured-collection { background: var(--g-bg) !important; }
.featured-collection__header-wrapper { text-align: center !important; margin-bottom: 3.5rem !important; }

/* "Ver todo" — hereda cápsula/shimmer, outline dorado */
.featured-collection a.button,
.featured-collection .button {
  background: transparent !important;
  color: var(--g-gold) !important;
  border: 1.5px solid var(--g-gold) !important;
}
.featured-collection a.button:hover,
.featured-collection .button:hover {
  background: var(--g-gold) !important;
  color: var(--g-bg) !important;
  border-color: var(--g-gold) !important;
  box-shadow: 0 4px 24px rgba(201,168,76,.35) !important;
}

/* ────────────────────────────────────────────────────────────────────
   15. PRODUCT CARDS
────────────────────────────────────────────────────────────────────── */
.card-wrapper { background: transparent !important; }
.card {
  background: var(--g-bg) !important; border: 1px solid var(--g-border) !important;
  border-radius: 14px !important; overflow: hidden !important;
  transition: box-shadow var(--g-t), border-color var(--g-tf) !important; box-shadow: none !important;
}
.card:hover { box-shadow: 0 8px 40px rgba(28,26,23,.10) !important; border-color: rgba(201,168,76,.30) !important; }
.card__media { overflow: hidden !important; border-radius: 14px 14px 0 0 !important; background: var(--g-bg2) !important; }
.card__media img { transition: transform .8s var(--g-ease) !important; }
.card-wrapper:hover .card__media img { transform: scale(1.04) !important; }
.card__inner { background: var(--g-bg) !important; }
.card__information { padding: 1.2rem 1.4rem 1.4rem !important; }

/* FIX: heading was .78rem — too small */
.card__heading, .card__heading a, .card__heading .full-unstyled-link {
  font-family: var(--g-f-d) !important; font-size: 1.1rem !important; font-weight: 600 !important;
  letter-spacing: .1em !important; text-transform: uppercase !important;
  color: var(--g-ink) !important; transition: color var(--g-tf) !important;
}
.card__heading a:hover { color: var(--g-gold) !important; }

/* ── PRECIO ─────────────────────────────────────────────────────────────
   Jerarquía: el precio REAL manda (grande, dorado). El comparativo (antes)
   va más chico, tachado y atenuado. Aplica en cards y en producto. */
.price, .price__regular, .price__sale {
  font-family: var(--g-f-u) !important;
  font-weight: 700 !important; color: var(--g-ink) !important;}
}
/* Precio normal (sin oferta) */
.price .price-item--regular { font-size: 1.35rem !important; color: var(--g-ink) !important; }
/* Precio de oferta = protagonista */
.price-item--sale { color: var(--g-gold) !important; font-weight: 700 !important; font-size: 1.5rem !important; text-decoration: none !important; }
/* En oferta: el comparativo se subordina (tachado · atenuado · más chico) */
.price--on-sale .price__regular .price-item--regular,
.price--on-sale .price__sale .price-item--regular {
  color: var(--g-ink-50) !important; text-decoration: line-through !important;
  font-size: .85rem !important; font-weight: 400 !important;
}
/* Página de producto (price--large): misma jerarquía, mayor escala */
.price--large .price-item--regular { font-size: 1.5rem !important; }
.price--large.price--on-sale .price__sale .price-item--regular { font-size: 1.15rem !important; }
.price--large.price--on-sale .price-item--sale { font-size: 2.1rem !important; font-weight: 700 !important; letter-spacing: .01em !important; }

/* Etiqueta de OFERTA */
.price__badge-sale, .badge--sale { background: var(--g-gold) !important; color: var(--g-bg) !important; border-radius: 2px !important; }

/* FIX: vendor caption was .6rem/.35 opacity — barely visible */
.caption-with-letter-spacing,
.card__information .caption-with-letter-spacing {
  font-family: var(--g-f-u) !important; font-size: .95rem !important;
  font-weight: 600 !important;
  letter-spacing: .12em !important; text-transform: uppercase !important;
  color: var(--g-ink) !important;
}

/* Quick-add button — mantiene radio de la card, actualiza colores a dorado */
.quick-add__submit {
  background: transparent !important;
  border: 1.5px solid var(--g-gold) !important;
  color: var(--g-gold) !important;
  font-family: var(--g-f-u) !important;
  font-size: .78rem !important; font-weight: 600 !important;
  letter-spacing: .18em !important; text-transform: uppercase !important;
  border-radius: 0 0 14px 14px !important;
  width: 100% !important; padding: .9rem !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  transition:
    background-color .35s var(--g-ease),
    color .35s var(--g-ease),
    border-color .35s var(--g-ease) !important;
}
.quick-add__submit:hover {
  background: var(--g-gold) !important;
  color: var(--g-bg) !important;
  border-color: var(--g-gold) !important;
}

/* ────────────────────────────────────────────────────────────────────
   16. IMAGE-WITH-TEXT
────────────────────────────────────────────────────────────────────── */
.image-with-text { background: var(--g-bg2) !important; }
.image-with-text__content { background: var(--g-bg2) !important; }
.image-with-text__media { border-radius: 14px !important; overflow: hidden !important; }
.image-with-text__media img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
.image-with-text__heading { color: var(--g-ink) !important; }
.image-with-text__text { color: var(--g-ink) !important; }

/* Eyebrow / caption — FIX: was .68rem */
.caption, [class*="caption"] {
  font-family: var(--g-f-u) !important; font-size: 1rem !important;
  letter-spacing: .22em !important; text-transform: uppercase !important; color: #0000f !important;
  font-weight: 400!important;
}

/* ────────────────────────────────────────────────────────────────────
   17. NEWSLETTER
────────────────────────────────────────────────────────────────────── */
.newsletter, .newsletter-section { background: var(--g-bg3) !important; }
.newsletter__heading { color: var(--g-ink) !important; }
.newsletter__subheading { color: var(--g-ink) !important; font-family: var(--g-f-u) !important; font-size: 1.4rem !important; }
.newsletter-form__field-wrapper .field__input,
.newsletter-form .field__input {
  background: var(--g-bg) !important; border: 1px solid var(--g-border) !important;
  color: var(--g-ink) !important; font-family: var(--g-f-u) !important; border-radius: 0 !important;
}
.newsletter-form__field-wrapper .field__input:focus { border-color: var(--g-border-hv) !important; box-shadow: none !important; }
.newsletter-form__button {
  background: transparent !important;
  color: var(--g-gold) !important;
  border: 1.5px solid var(--g-gold) !important;
  border-radius: 999px !important;
  font-family: var(--g-f-u) !important; font-size: .78rem !important;
  letter-spacing: .16em !important; text-transform: uppercase !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  transition:
    background-color .35s var(--g-ease),
    color .35s var(--g-ease),
    border-color .35s var(--g-ease),
    box-shadow .35s var(--g-ease) !important;
}
.newsletter-form__button:hover {
  background: var(--g-gold) !important;
  color: var(--g-bg) !important;
  border-color: var(--g-gold) !important;
  box-shadow: 0 4px 24px rgba(201,168,76,.35) !important;
}

/* ────────────────────────────────────────────────────────────────────
   18. FOOTER
────────────────────────────────────────────────────────────────────── */
.footer, footer.color-scheme-1 {
  background: var(--g-bg1) !important; border-top: 1px solid var(--g-border) !important; color: var(--g-ink-80) !important;
}
.footer__heading {
  font-family: var(--g-f-d) !important; font-size: 1.1rem !important; font-weight: 700 !important;
  letter-spacing: .16em !important; text-transform: uppercase !important; color: var(--g-ink) !important;
}
.footer a, .footer p, .footer li { color: var(--g-ink) !important; font-size: 1.15rem !important; }
.footer a:hover { color: var(--g-gold) !important; }
.footer .footer__copyright { font-size: .95rem !important; color: var(--g-ink) !important; letter-spacing: .08em !important; text-transform: uppercase !important; }

/* ────────────────────────────────────────────────────────────────────
   19. CART DRAWER
────────────────────────────────────────────────────────────────────── */
.cart-drawer { background: var(--g-bg) !important; border-left: 1px solid var(--g-border) !important; color: var(--g-ink) !important; }
.cart-drawer__header { background: var(--g-bg) !important; border-bottom: 1px solid var(--g-border) !important; }
.cart-drawer__footer { background: var(--g-bg1) !important; border-top: 1px solid var(--g-border) !important; }

/* ── Encabezados de columna (PRODUCTO / TOTAL) ── */
.cart-drawer .cart-items thead th {
  font-family: var(--g-f-m) !important;
  font-size: .80rem !important;
  font-weight: 600 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--g-ink-80) !important;
  border-bottom: 1px solid var(--g-border) !important;
  padding-bottom: .9rem !important;
}

/* ── Cada fila de producto ── */
.cart-item { border-bottom: 1px solid var(--g-border) !important; }
.cart-item__image { border-radius: 6px !important; overflow: hidden !important; }

/* Nombre del producto */
.cart-item__name {
  font-family: var(--g-f-d) !important;
  font-size: .95rem !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
  line-height: 1.3 !important;
}

/* Vendor / marca — Montserrat, discreto pero legible */
.cart-drawer .cart-item__details .caption-with-letter-spacing {
  font-family: var(--g-f-m) !important;
  font-size: .80rem !important;
  font-weight: 500 !important;
  letter-spacing: .10em !important;
  color: var(--g-ink-80) !important;
  text-transform: uppercase !important;
  display: block !important;
  margin-bottom: .2rem !important;
}

/* Precio unitario (dentro de .cart-item__details) */
.cart-drawer .cart-item__details .product-option {
  font-family: var(--g-f-m) !important;
  font-size: .84rem !important;
  font-weight: 500 !important;
  color: var(--g-gold) !important;
  margin-top: .3rem !important;
}

/* Precio total de línea (columna derecha) */
.cart-drawer .cart-item__totals .price,
.cart-drawer .cart-item__totals .cart-item__price {
  font-family: var(--g-f-m) !important;
  font-size: .95rem !important;
  font-weight: 600 !important;
  color: var(--g-ink) !important;
}

/* Precio con descuento */
.cart-item__price { font-family: var(--g-f-m) !important; color: var(--g-gold) !important; font-weight: 500 !important; }

/* ── Barra de envío gratis ── */
.cpm-ship-bar { padding: .8rem 1.5rem .75rem !important; }
.cpm-ship-bar__track { height: 4px !important; }
.cpm-ship-bar__text {
  font-family: var(--g-f-m) !important;
  font-size: .76rem !important;
  font-weight: 500 !important;
  letter-spacing: .10em !important;
}

/* ────────────────────────────────────────────────────────────────────
   20. COLLECTION PAGE
────────────────────────────────────────────────────────────────────── */
.collection-hero {
  background: var(--g-bg) !important; padding-top: 5rem !important;
  padding-bottom: 3.5rem !important; border-bottom: 1px solid var(--g-border) !important;
}
.collection-hero__title {
  font-family: var(--g-f-d) !important; font-size: clamp(3rem, 7vw, 7rem) !important;
  font-weight: 700 !important; letter-spacing: .08em !important; text-transform: uppercase !important;
  line-height: .95 !important;
  background: linear-gradient(90deg, var(--g-ink) 0%, var(--g-gold) 22%, var(--g-gold-lt) 38%, var(--g-ink) 50%, var(--g-gold) 72%, var(--g-gold-lt) 88%, var(--g-ink) 100%) !important;
  background-size: 300% auto !important;
  -webkit-background-clip: text !important; -webkit-text-fill-color: transparent !important; background-clip: text !important;
  animation: cpm-title-shimmer 9s linear infinite !important;
}
@keyframes cpm-title-shimmer { 0% { background-position: 0% center; } 100% { background-position: 300% center; } }

.collection-hero__description {
  font-family: var(--g-f-u) !important; font-size: 1rem !important; font-weight: 400 !important;
  color: var(--g-ink-65) !important; line-height: 1.8 !important; max-width: 55ch !important; margin-top: 2rem !important;
}
.cpm-collection-eyebrow { color: var(--g-gold) !important; }
.cpm-collection-count { font-family: var(--g-f-d) !important; font-size: 2.8rem !important; font-weight: 600 !important; color: var(--g-gold) !important; }
.cpm-collection-count-label { font-family: var(--g-f-u) !important; font-size: .78rem !important; letter-spacing: .18em !important; text-transform: uppercase !important; color: var(--g-ink-50) !important; }

/* Ocultar el contador redundante "X productos de un total de Y" SOLO en la
   página de colección (la cuenta ya se muestra como "N piezas disponibles"
   en el banner). Se conserva en el DOM para que facets.js lo siga usando;
   no afecta a la página de búsqueda. */
.cpm-collection-grid .product-count,
.cpm-collection-grid .product-count-vertical { display: none !important; }

/* Filters */
.facets-wrapper, .facets__form { background: transparent !important; border-color: var(--g-border) !important; }
.facets__summary { font-family: var(--g-f-u) !important; font-size: .85rem !important; letter-spacing: .14em !important; text-transform: uppercase !important; color: var(--g-ink-65) !important; }
.facet-filters__field select { background: var(--g-bg) !important; color: var(--g-ink) !important; border-color: var(--g-border) !important; }
.facets__list li label { color: var(--g-ink-65) !important; font-family: var(--g-f-u) !important; font-size: .9rem !important; }
.facets__checkbox:checked ~ .checkbox__checkmark { background: var(--g-gold) !important; border-color: var(--g-gold) !important; }
.product-count, .product-count-container span { font-family: var(--g-f-u) !important; font-size: .85rem !important; letter-spacing: .12em !important; text-transform: uppercase !important; color: var(--g-ink-65) !important; }
.facet-filters__sort select { background: var(--g-bg) !important; border: 1px solid var(--g-border) !important; color: var(--g-ink) !important; font-family: var(--g-f-u) !important; font-size: .85rem !important; border-radius: 0 !important; }

/* Empty collection state */
.collection--empty { background: transparent !important; }
.collection--empty .title-wrapper { display: none !important; }
.cpm-empty-state { text-align: center; padding: 7rem 2rem; display: flex; flex-direction: column; align-items: center; gap: 2rem; }
.cpm-empty-eyebrow { font-family: var(--g-f-u) !important; font-size: .72rem !important; font-weight: 500 !important; letter-spacing: .32em !important; text-transform: uppercase !important; color: var(--g-gold) !important; display: flex !important; align-items: center !important; gap: 1rem !important; }
.cpm-empty-eyebrow::before, .cpm-empty-eyebrow::after { content: ''; display: block; width: 2.4rem; height: 1px; background: var(--g-gold); }
.cpm-empty-title { font-family: var(--g-f-d) !important; font-size: clamp(2.4rem, 6vw, 5rem) !important; font-weight: 600 !important; letter-spacing: .08em !important; text-transform: uppercase !important; color: var(--g-ink) !important; line-height: 1.1 !important; margin: 0 !important; }
.cpm-empty-title em { font-style: italic !important; color: var(--g-gold) !important; }
.cpm-empty-btn { display: inline-flex !important; align-items: center !important; justify-content: center !important; font-family: var(--g-f-u) !important; font-size: .82rem !important; font-weight: 600 !important; letter-spacing: .2em !important; text-transform: uppercase !important; padding: 1.1rem 3rem !important; border: 1px solid rgba(28,26,23,.45) !important; color: var(--g-ink) !important; background: transparent !important; transition: background .25s, color .25s, border-color .25s !important; margin-top: .5rem !important; }
.cpm-empty-btn:hover { background: var(--g-gold) !important; border-color: var(--g-gold) !important; color: #fff !important; }

/* ────────────────────────────────────────────────────────────────────
   21. PRODUCT PAGE
────────────────────────────────────────────────────────────────────── */
.product { background: var(--g-bg) !important; }
.product__media-wrapper { background: var(--g-bg1) !important; border-radius: 14px !important; overflow: hidden !important; }
.product-media-container { border-radius: 14px !important; overflow: hidden !important; }

/* ── Desktop gallery: limita imágenes muy alargadas sin romper el layout ──
   En móvil Dawn ya usa su propio slider — no se toca.
   En desktop sólo limitamos la altura máxima del contenedor de cada imagen
   y usamos object-fit: contain para que nunca se deforme ni se salga. */
@media screen and (min-width: 750px) {
  /* El contenedor inline del media no debe desbordar la pantalla */
  .product__media-list .product-media-container {
    max-height: min(760px, 82vh) !important;
    overflow: hidden !important;
  }
  /* La capa .product__media que envuelve el <img> hereda la altura */
  .product__media-list .product__media {
    max-height: min(760px, 82vh) !important;
  }
  /* Imagen: contener sin cortar ni deformar */
  .product__media-list .product__media img {
    max-height: min(760px, 82vh) !important;
    width: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
  }
}
.product__title, .product__title h1 { font-family: var(--g-f-d) !important; font-size: clamp(1.8rem, 3vw, 3rem) !important; font-weight: 600 !important; letter-spacing: .08em !important; line-height: 1.12 !important; text-transform: uppercase !important; color: var(--g-ink) !important; }
.product__title h1 { margin: 0 !important; }
.product-form__input { background: transparent !important; }
.swatch__label, .variant-pills__label { background: var(--g-bg) !important; border: 1px solid var(--g-border) !important; color: var(--g-ink-80) !important; font-family: var(--g-f-u) !important; font-size: .82rem !important; letter-spacing: .1em !important; border-radius: 0 !important; transition: all var(--g-tf) !important; }
.swatch__label:hover, .variant-pills__label:hover { border-color: var(--g-border-hv) !important; }
.product__description p, .product__description li { font-family: var(--g-f-u) !important; font-size: 1.5rem !important; font-weight: 400 !important; color: var(--g-ink) !important; line-height: 1.75 !important; }
.accordion { border-color: var(--g-border) !important; }
.accordion__title { font-family: var(--g-f-u) !important; font-size: 1.05rem !important; font-weight: 600 !important; letter-spacing: .12em !important; text-transform: uppercase !important; color: var(--g-ink) !important; }

/* Product form submit — Agregar al carrito: cápsula · outline dorado */
.product-form__submit {
  background: transparent !important;
  color: var(--g-gold) !important;
  border: 1.5px solid var(--g-gold) !important;
  border-radius: 999px !important;
  font-family: var(--g-f-u) !important;
  font-size: .82rem !important; font-weight: 600 !important;
  letter-spacing: .18em !important; text-transform: uppercase !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  transition:
    background-color .35s var(--g-ease),
    color .35s var(--g-ease),
    border-color .35s var(--g-ease),
    box-shadow .35s var(--g-ease) !important;
}
.product-form__submit:hover {
  background: var(--g-gold) !important;
  color: var(--g-bg) !important;
  border-color: var(--g-gold) !important;
  box-shadow: 0 4px 24px rgba(201,168,76,.35) !important;
}

/* ────────────────────────────────────────────────────────────────────
   22. SEARCH + FORMS
────────────────────────────────────────────────────────────────────── */
predictive-search, .predictive-search { background: rgba(255,255,255,.98) !important; border: 1px solid var(--g-border) !important; box-shadow: 0 8px 32px rgba(28,26,23,.12) !important; }
.predictive-search__item { border-bottom: 1px solid var(--g-border) !important; }
.predictive-search__item:hover { background: var(--g-gold-06) !important; }
.field__input[type="search"], .field__input { background: var(--g-bg) !important; border-color: var(--g-border) !important; color: var(--g-ink) !important; font-family: var(--g-f-u) !important; font-size: 1.4rem !important; }
.field__input:focus { border-color: var(--g-border-hv) !important; box-shadow: none !important; outline: none !important; }
/* Placeholder: única excepción — debe verse como pista, no como texto escrito */
.field__input::placeholder { color: rgba(28,26,23,.45) !important; }

/* ────────────────────────────────────────────────────────────────────
   23. MENU DRAWER
────────────────────────────────────────────────────────────────────── */
menu-drawer .drawer, .menu-drawer { background-color: var(--g-bg) !important; border-right: 1px solid var(--g-border) !important; }
.menu-drawer__navigation { background-color: var(--g-bg) !important; }
.menu-drawer__menu-item { color: var(--g-ink) !important; font-family: var(--g-f-d) !important; font-size: 1.5rem !important; letter-spacing: .1em !important; text-transform: uppercase !important; }
.menu-drawer__menu-item:hover { color: var(--g-gold) !important; }

/* ────────────────────────────────────────────────────────────────────
   24. GENERAL BUTTONS — Estilo unificado: cápsula · borde dorado · shimmer
────────────────────────────────────────────────────────────────────── */

/* Shimmer sweep — luz que cruza el botón al hover */
@keyframes cpm-btn-shimmer {
  from { transform: translateX(-220%) skewX(-20deg); }
  to   { transform: translateX(320%)  skewX(-20deg); }
}

/* ── Base ── */
.button, button.button, a.button {
  position: relative !important;
  overflow: hidden !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .5em !important;
  font-family: var(--g-f-u) !important;
  font-size: .78rem !important;
  font-weight: 600 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  border-radius: 999px !important;
  padding: .78em 2.4em !important;
  min-height: 2.9rem !important;
  cursor: pointer !important;
  transition:
    background-color .35s var(--g-ease),
    color .35s var(--g-ease),
    border-color .35s var(--g-ease),
    box-shadow .35s var(--g-ease) !important;
}

/* Shimmer streak — desactivado en reposo, activa al hover */
.button::after {
  content: '' !important;
  position: absolute !important;
  top: 0 !important; left: 0 !important;
  width: 45% !important; height: 100% !important;
  background: linear-gradient(
    to right,
    transparent 0%,
    rgba(255,255,255,.32) 50%,
    transparent 100%
  ) !important;
  transform: translateX(-220%) skewX(-20deg) !important;
  pointer-events: none !important;
}
.button:hover::after {
  animation: cpm-btn-shimmer .58s var(--g-ease) both !important;
}

/* ── Primario: outline dorado en reposo → relleno dorado al hover ── */
.button--primary {
  background: transparent !important;
  color: var(--g-gold) !important;
  border: 1.5px solid var(--g-gold) !important;
}
.button--primary:hover {
  background: var(--g-gold) !important;
  color: var(--g-bg) !important;
  border-color: var(--g-gold) !important;
  box-shadow: 0 4px 24px rgba(201,168,76,.35) !important;
}

/* ── Secundario: outline que SE ADAPTA al color de la sección ──
   Usa el primer plano del esquema (--color-foreground): en secciones claras
   el texto es oscuro, en secciones oscuras el texto es claro. Así el texto
   SIEMPRE es visible en reposo (antes quedaba negro-sobre-negro en fondos
   oscuros y sólo aparecía al pasar el cursor). */
.button--secondary {
  background: transparent !important;
  color: rgb(var(--color-foreground)) !important;
  border: 1.5px solid rgba(var(--color-foreground), .45) !important;
}
.button--secondary:hover {
  background: rgb(var(--color-foreground)) !important;
  color: rgb(var(--color-background)) !important;
  border-color: rgb(var(--color-foreground)) !important;
  box-shadow: 0 4px 24px rgba(28,26,23,.18) !important;
}

/* Slider buttons (product carousels — NOT announcement bar) */
.slider-button {
  background: var(--g-bg) !important; border: 1px solid var(--g-border) !important;
  color: var(--g-ink) !important; display: inline-flex !important;
  align-items: center !important; justify-content: center !important;
}
.slider-button:hover { border-color: var(--g-border-hv) !important; }

/* Button ripple */
.cpm-ripple { position: absolute !important; border-radius: 50% !important; background: rgba(201,168,76,.25) !important; transform: translate(-50%,-50%) scale(0) !important; animation: cpm-ripple .5s ease-out forwards !important; pointer-events: none !important; }
@keyframes cpm-ripple { to { transform: translate(-50%,-50%) scale(2.5); opacity: 0; } }

/* ────────────────────────────────────────────────────────────────────
   25. SCROLL REVEAL
────────────────────────────────────────────────────────────────────── */
.cpm-reveal { opacity: 0; transform: translateY(28px); transition: opacity .75s var(--g-ease), transform .75s var(--g-ease); }
.cpm-reveal.cpm-visible { opacity: 1; transform: translateY(0); }

/* ────────────────────────────────────────────────────────────────────
   26. PAGINATION
────────────────────────────────────────────────────────────────────── */
.pagination__item { color: var(--g-ink-65) !important; border-color: var(--g-border) !important; font-family: var(--g-f-u) !important; font-size: .82rem !important; border-radius: 0 !important; }
.pagination__item--current, .pagination__item:hover { background: var(--g-gold) !important; color: var(--g-bg) !important; border-color: var(--g-gold) !important; }

/* ────────────────────────────────────────────────────────────────────
   27. REDUCED MOTION
────────────────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .cpm-reveal, .cpm-hero__word, .cpm-hero__eyebrow, .cpm-hero__headline, .cpm-hero__desc,
  .cpm-hero__ctas, .cpm-hero__meta, .cpm-hero__scroll-hint,
  .cpm-hero__badge, .cpm-hero__caption, .cpm-hero__frame-border,
  .cpm-hero__img { animation: none !important; opacity: 1 !important; transform: none !important; }
  .collection-hero__title { animation: none !important; }
  .cpm-hero__aurora-orb--1,
  .cpm-hero__aurora-orb--2,
  .cpm-hero__aurora-orb--3 { animation: none !important; }
}

/* ────────────────────────────────────────────────────────────────────
   28. LOGO — header + hero
────────────────────────────────────────────────────────────────────── */

/* SVG base (por si se usa en otros lugares) */
.cpm-logo-svg {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

/* ── Header logo wrapper ── */
.cpm-header-logo {
  display: block !important;
  width: auto !important;
  line-height: 0 !important;
  transition: opacity .25s var(--g-ease) !important;
}
.cpm-header-logo:hover { opacity: .72 !important; }

/* Hide Dawn's text fallback if it somehow renders */
.header__heading .h2 { display: none !important; }
/* Nombre de la tienda "CP&M Joyería" — misma fuente que el logo (Cinzel) */
.cpm-shopname,
.copyright__content .cpm-shopname {
  font-family: 'Cinzel', Georgia, 'Times New Roman', serif !important;
  letter-spacing: .06em !important;
}
/* Vendor "CP&M JOYERIA" (arriba del nombre del producto y en las tarjetas)
   → misma fuente que el logo (Cinzel) */
.product__text,
.card-information .caption-with-letter-spacing,
.card__information .caption-with-letter-spacing {
  font-family: 'Cinzel', Georgia, 'Times New Roman', serif !important;
}
/* ── Text logo (cpm-logo-h) ── */
.cpm-logo-text {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 3px !important;
  line-height: 1 !important;
  text-align: center !important;
  text-decoration: none !important;
}
/* Logo en Cinzel (mayúsculas grabadas, lujo clásico) */
.cpm-logo-text__main {
  font-family: 'Cinzel', Georgia, 'Times New Roman', serif !important;
  font-size: clamp(2.2rem, 4.2vw, 2.9rem) !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  color: var(--g-ink) !important;
  line-height: 1 !important;
  transition: color .4s var(--g-ease) !important;
}
.cpm-logo-text__sub {
  font-family: 'Cinzel', Georgia, 'Times New Roman', serif !important;
  font-size: .72rem !important;
  font-weight: 500 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: var(--g-ink-65) !important;
  transition: color .4s var(--g-ease) !important;
}

/* ── Hero logo (SVG version usado en desktop) ── */
.cpm-hero__logo {
  display: inline-block !important;
  width: 150px !important;
  margin-bottom: 2.8rem !important;
  line-height: 0 !important;
  opacity: 0;
  animation: cpm-up .6s var(--g-ease) 0s forwards;
  transition: opacity .25s var(--g-ease) !important;
  flex-shrink: 0 !important;
}
.cpm-hero__logo:hover { opacity: .72 !important; color: inherit !important; }
.cpm-hero__logo:hover .cpm-logo-svg { opacity: .72; }

@media (prefers-reduced-motion: reduce) {
  .cpm-hero__logo { animation: none !important; opacity: 1 !important; }
}

/* ────────────────────────────────────────────────────────────────────
   F1. BACK TO TOP
────────────────────────────────────────────────────────────────────── */
#cpm-back-top {
  position: fixed; bottom: 2.4rem; left: 2.4rem; z-index: 190;
  width: 4.4rem; height: 4.4rem;
  background: var(--g-bg); border: 1px solid rgba(201,168,76,.50);
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  cursor: pointer; opacity: 0; pointer-events: none;
  transform: translateY(10px);
  transition: opacity .35s var(--g-ease), transform .35s var(--g-ease),
              box-shadow .2s, border-color .2s;
  box-shadow: 0 2px 14px rgba(28,26,23,.10);
}
#cpm-back-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
#cpm-back-top:hover {
  border-color: var(--g-gold);
  box-shadow: 0 4px 22px rgba(201,168,76,.24);
}
#cpm-back-top svg { stroke: var(--g-gold); width: 1.3rem; height: 1.3rem; }
@media screen and (max-width: 749px) {
  #cpm-back-top { bottom: 1.6rem; left: 1.6rem; width: 4rem; height: 4rem; }
}

/* ────────────────────────────────────────────────────────────────────
   F2. PAGE TRANSITION VEIL
────────────────────────────────────────────────────────────────────── */
#cpm-page-veil {
  position: fixed; inset: 0; z-index: 99999;
  background: #0a0908; pointer-events: none;
  opacity: 0; transition: opacity .3s ease;
}
#cpm-page-veil.is-entering { opacity: 1; }
#cpm-page-veil.is-leaving  { opacity: 1; pointer-events: auto; }

/* ────────────────────────────────────────────────────────────────────
   F3. CART TOAST
────────────────────────────────────────────────────────────────────── */
#cpm-toast {
  position: fixed; bottom: 8rem; left: 2rem; z-index: 190;
  background: var(--g-bg); border: 1px solid var(--g-border);
  box-shadow: 0 8px 32px rgba(28,26,23,.14);
  padding: 1rem 1.4rem; display: flex; align-items: center; gap: .9rem;
  min-width: 22rem; max-width: 30rem;
  transform: translateY(12px); opacity: 0; pointer-events: none;
  transition: transform .4s var(--g-ease), opacity .4s var(--g-ease);
}
#cpm-toast.is-visible { transform: translateY(0); opacity: 1; pointer-events: auto; }
.cpm-toast__icon { color: var(--g-gold); flex-shrink: 0; line-height: 0; }
.cpm-toast__icon svg { width: 1.1rem; height: 1.1rem; fill: currentColor; }
.cpm-toast__body { flex: 1; min-width: 0; }
.cpm-toast__title {
  font-family: var(--g-f-u) !important; font-size: .8rem !important;
  font-weight: 600 !important; letter-spacing: .1em !important;
  text-transform: uppercase !important; color: var(--g-ink) !important;
  display: block !important;
}
.cpm-toast__sub {
  font-family: var(--g-f-u) !important; font-size: .72rem !important;
  color: var(--g-ink-65) !important; display: block !important;
  margin-top: .1rem !important;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cpm-toast__link {
  font-family: var(--g-f-u) !important; font-size: .72rem !important;
  font-weight: 600 !important; letter-spacing: .1em !important;
  text-transform: uppercase !important; color: var(--g-gold) !important;
  text-decoration: none !important; flex-shrink: 0 !important;
  white-space: nowrap !important;
}
.cpm-toast__link:hover { color: var(--g-gold-lt) !important; }
.cpm-toast__close {
  background: none; border: none; cursor: pointer; padding: .2rem;
  color: var(--g-ink-50); flex-shrink: 0;
  display: flex; align-items: center; line-height: 0;
}
.cpm-toast__close:hover { color: var(--g-ink); }
.cpm-toast__close svg { width: .95rem; height: .95rem; stroke: currentColor; }
@media screen and (max-width: 749px) {
  #cpm-toast { left: 1rem; right: 1rem; min-width: unset; max-width: unset; bottom: 7rem; }
}

/* ────────────────────────────────────────────────────────────────────
   F4. COOKIE CONSENT
────────────────────────────────────────────────────────────────────── */
#cpm-cookie {
  position: fixed; bottom: 10rem; right: 1.8rem; z-index: 190;
  background: var(--g-ink); max-width: 28rem;
  padding: 1.5rem 1.8rem;
  box-shadow: 0 8px 36px rgba(28,26,23,.30);
  transform: translateY(16px); opacity: 0; pointer-events: none;
  transition: transform .45s var(--g-ease), opacity .45s var(--g-ease);
}
#cpm-cookie.is-visible { transform: translateY(0); opacity: 1; pointer-events: auto; }
#cpm-cookie p {
  font-family: var(--g-f-u) !important; font-size: 1.05rem !important;
  color: #ffffff !important; line-height: 1.6 !important;
  margin: 0 0 1.1rem !important;
}
#cpm-cookie p a {
  color: var(--g-gold) !important; text-decoration: underline !important;
  font-size: inherit !important;
}
.cpm-cookie__btns { display: flex; gap: .7rem; flex-wrap: wrap; }
.cpm-cookie__accept {
  font-family: var(--g-f-u) !important; font-size: .76rem !important;
  font-weight: 600 !important; letter-spacing: .15em !important;
  text-transform: uppercase !important;
  background: var(--g-gold) !important; color: var(--g-ink) !important;
  border: none; padding: .72rem 1.4rem; cursor: pointer;
  transition: background .2s !important;
}
.cpm-cookie__accept:hover { background: var(--g-gold-lt) !important; }
.cpm-cookie__decline {
  font-family: var(--g-f-u) !important; font-size: .76rem !important;
  font-weight: 400 !important; letter-spacing: .12em !important;
  text-transform: uppercase !important;
  background: transparent !important; color: rgba(255,255,255,.50) !important;
  border: 1px solid rgba(255,255,255,.20) !important;
  padding: .72rem 1.2rem; cursor: pointer;
  transition: color .2s, border-color .2s !important;
}
.cpm-cookie__decline:hover {
  color: rgba(255,255,255,.85) !important;
  border-color: rgba(255,255,255,.45) !important;
}
@media screen and (max-width: 749px) {
  #cpm-cookie { bottom: 0; right: 0; left: 0; max-width: unset; }
}

/* ────────────────────────────────────────────────────────────────────
   F5. FREE SHIPPING BAR — cart drawer
────────────────────────────────────────────────────────────────────── */
.cpm-ship-bar {
  padding: .95rem 1.6rem;
  border-bottom: 1px solid var(--g-border);
  background: var(--g-bg1);
}
.cpm-ship-bar__text {
  font-family: var(--g-f-u) !important; font-size: .74rem !important;
  font-weight: 400 !important; letter-spacing: .12em !important;
  text-transform: uppercase !important; color: var(--g-ink-65) !important;
  display: block !important; text-align: center !important;
  margin-bottom: .65rem !important;
}
.cpm-ship-bar__text strong { color: var(--g-gold) !important; font-weight: 600 !important; }
.cpm-ship-bar__track {
  height: 3px; width: 100%; background: var(--g-border);
  position: relative; overflow: hidden; border-radius: 2px;
}
.cpm-ship-bar__fill {
  position: absolute; top: 0; left: 0;
  width: 0; height: 100%; max-width: 100%;
  background: linear-gradient(90deg, var(--g-gold), var(--g-gold-lt));
  transition: width .65s var(--g-ease);
  border-radius: 2px;
}
.cpm-ship-bar--done .cpm-ship-bar__text { color: var(--g-gold) !important; }

/* Carrito vacío — botón "Seguir comprando" — hereda cápsula/shimmer */
.drawer__inner-empty .button,
.cart-drawer__empty-content .button {
  background: transparent !important;
  color: var(--g-gold) !important;
  border: 1.5px solid var(--g-gold) !important;
}
.drawer__inner-empty .button:hover,
.cart-drawer__empty-content .button:hover {
  background: var(--g-gold) !important;
  color: var(--g-bg) !important;
  border-color: var(--g-gold) !important;
  box-shadow: 0 4px 24px rgba(201,168,76,.35) !important;
}

/* WhatsApp — z-index por debajo del cart drawer (1000) + pulse ring */
@keyframes cpm-wa-pulse {
  0%   { box-shadow: 0 4px 16px rgba(0,0,0,.22), 0 0 0 0 rgba(37,211,102,.45); }
  70%  { box-shadow: 0 4px 16px rgba(0,0,0,.22), 0 0 0 14px rgba(37,211,102,.0); }
  100% { box-shadow: 0 4px 16px rgba(0,0,0,.22), 0 0 0 0 rgba(37,211,102,.0); }
}
.whatsapp-float {
  z-index: 190 !important;
  animation: cpm-wa-pulse 2.8s ease-out infinite !important;
}

/* ────────────────────────────────────────────────────────────────────
   FIX: CART DRAWER OVERLAY — fondo semitransparente oscuro
   En Dawn, cart-drawer ES el elemento con clase .drawer (misma etiqueta).
   El selector con espacio "cart-drawer .drawer" nunca coincide.
   Se usa "cart-drawer.drawer" (sin espacio = misma etiqueta + clase).
   --color-foreground es claro en este tema → velo blanco; se fuerza
   el tono oscuro del design system: rgba(28,26,23,.50).
────────────────────────────────────────────────────────────────────── */
/* Transición suave del overlay y del panel lateral */
cart-drawer.drawer {
  transition: background-color 0.40s ease, visibility 0.40s ease !important;
}
.drawer__inner {
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;
}
/* El fondo blanco va en .drawer__inner, no en #CartDrawer.
   Sin esto queda un cuadro blanco visible durante el cierre. */
#CartDrawer {
  background: transparent !important;
}

/* ════════════════════════════════════════════════════════════════════
   FASE 2 — PRODUCTO Y CONVERSIÓN
   Segunda imagen · Badges · Wishlist · Sold-out · Sticky ATC · Lightbox
   ════════════════════════════════════════════════════════════════════ */

/* ── 1. SEGUNDA IMAGEN EN HOVER (crossfade) ────────────────────────── */
.card-wrapper { position: relative !important; }

.card__media .media--hover-effect img:first-child:not(:only-child) {
  transition: opacity .52s var(--g-ease) !important;
}
.card__media .media--hover-effect img:not(:first-child) {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important; height: 100% !important;
  object-fit: cover !important;
  opacity: 0 !important;
  transition: opacity .52s var(--g-ease) !important;
}
.card-wrapper:hover .card__media .media--hover-effect img:not(:first-child) {
  opacity: 1 !important;
}
.card-wrapper:hover .card__media .media--hover-effect img:first-child:not(:only-child) {
  opacity: 0 !important;
}

/* ── 2. BADGES ─────────────────────────────────────────────────────── */
.badge {
  font-family: var(--g-f-u) !important;
  font-size: .68rem !important; font-weight: 700 !important;
  letter-spacing: .13em !important; text-transform: uppercase !important;
  border-radius: 999px !important; padding: .3em .95em !important;
  align-items: center !important;
  line-height: 1.4 !important; border: none !important;
}

/* FIX AGOTADO: las etiquetas de precio (oferta/agotado) SIEMPRE están en el
   HTML; Dawn las muestra/oculta con clases modificadoras. La regla base .badge
   NO debe forzar display, o "Agotado" aparecería en productos con stock.
   Reafirmamos aquí la lógica de Dawn con prioridad. */
.price .price__badge-sale,
.price .price__badge-sold-out { display: none !important; }
.price--sold-out .price__badge-sold-out,
.price--on-sale .price__badge-sale,
.volume-pricing--sale-badge .price__badge-sale { display: inline-flex !important; }
/* Sold-out — negro (etiqueta visible, pero carrito bloqueado) */
.badge.color-inverse,
.badge[class*="sold_out"],
.badge--cpm-soldout {
  background: var(--g-ink) !important;
  color: #ffffff !important;
}
/* Sale — dorado */
.badge.color-accent-2,
.badge--cpm-sale {
  background: var(--g-gold) !important; color: var(--g-bg) !important;
}
/* Nuevo — dorado sólido */
.badge--cpm-new {
  background: var(--g-gold) !important; color: var(--g-bg) !important;
}
/* Más Vendido — negro */
.badge--cpm-hot {
  background: var(--g-ink) !important; color: #ffffff !important;
}
/* Última pieza — ámbar cálido (urgencia suave) */
.badge--cpm-lastunit {
  background: #B45309 !important;
  color: #ffffff !important;
  font-style: italic !important;
}
/* Contenedor de badges en la card — apila verticalmente */
.card__badge {
  display: flex !important; flex-direction: column !important;
  gap: .35rem !important; align-items: flex-start !important;
}

/* ── 3. ESTADO SOLD-OUT EN CARD — neutralizado (producto aparece normal) ── */

/* ── 4. WISHLIST BUTTON ─────────────────────────────────────────────── */
.cpm-wishlist-btn {
  position: absolute !important;
  top: .75rem !important; right: .75rem !important;
  z-index: 10 !important;
  width: 36px !important; height: 36px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.92) !important;
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
  border: none !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  cursor: pointer !important;
  opacity: 0 !important;
  transform: scale(.82) !important;
  transition: opacity .22s var(--g-ease), transform .22s var(--g-ease), background .18s !important;
  box-shadow: 0 2px 10px rgba(28,26,23,.14) !important;
}
.card-wrapper:hover .cpm-wishlist-btn {
  opacity: 1 !important;
  transform: scale(1) !important;
}
.cpm-wishlist-btn:hover { background: #ffffff !important; }
.cpm-wishlist-btn svg {
  width: 17px !important; height: 17px !important;
  stroke: var(--g-ink-65) !important;
  fill: none !important;
  transition: stroke .2s, fill .2s !important;
}
.cpm-wishlist-btn.is-active svg {
  stroke: var(--g-gold) !important;
  fill: var(--g-gold) !important;
}
.cpm-wishlist-btn:hover svg { stroke: var(--g-gold) !important; }

/* ── 5. INDICADOR DE STOCK (existing Dawn .product__inventory) ───────── */
.product__inventory {
  display: inline-flex !important;
  align-items: center !important; gap: .5rem !important;
  font-family: var(--g-f-u) !important;
  font-size: .82rem !important; font-weight: 500 !important;
  letter-spacing: .05em !important;
  padding: .45rem .9rem !important;
  border-radius: 999px !important;
  background: var(--g-bg1) !important;
  border: 1px solid var(--g-border) !important;
  margin-top: .4rem !important;
}
/* Ocultar cuando no aplica */
.product__inventory.visibility-hidden { display: none !important; }
/* Icono de inventario — mismo tamaño */
.product__inventory .svg-wrapper { display: flex !important; align-items: center !important; }
.product__inventory .svg-wrapper svg { width: 14px !important; height: 14px !important; }

/* ── 6. STICKY ADD TO CART — eliminado por solicitud del cliente ────── */
/* .cpm-sticky-atc se elimina del DOM vía JS (initStickyATC no se llama) */

/* ── 7. LIGHTBOX ────────────────────────────────────────────────────── */
.cpm-lightbox {
  position: fixed !important;
  inset: 0 !important;
  z-index: 9500 !important;
  background: rgba(8,8,8,.95) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .3s var(--g-ease) !important;
}
.cpm-lightbox.is-open {
  opacity: 1 !important;
  pointer-events: all !important;
}
.cpm-lightbox__img {
  max-width: 92vw !important; max-height: 90vh !important;
  object-fit: contain !important;
  border-radius: 4px !important;
  transform: scale(.94) !important;
  transition: transform .35s var(--g-ease) !important;
  display: block !important;
  cursor: zoom-out !important;
}
.cpm-lightbox.is-open .cpm-lightbox__img { transform: scale(1) !important; }

.cpm-lightbox__close,
.cpm-lightbox__nav {
  position: absolute !important;
  width: 44px !important; height: 44px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.10) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  color: #ffffff !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  cursor: pointer !important;
  transition: background .2s !important;
}
.cpm-lightbox__close:hover,
.cpm-lightbox__nav:hover { background: rgba(255,255,255,.22) !important; }

.cpm-lightbox__close { top: 1.25rem !important; right: 1.25rem !important; }
.cpm-lightbox__nav--prev { left: 1.25rem !important; top: 50% !important; transform: translateY(-50%) !important; }
.cpm-lightbox__nav--next { right: 1.25rem !important; top: 50% !important; transform: translateY(-50%) !important; }

/* Hacer imágenes de producto clickeables (coincide con .product__media-list li .product__media img) */
.product__media-list .product__media img {
  cursor: zoom-in !important;
}

/* ── 8. CORRECCIONES DE LAYOUT ───────────────────────────────────────── */

/* Botón "saltar al contenido del producto" — accesibilidad pero debe ser invisible.
   Nuestro CSS de .button (especificidad 0,1,0, posición posterior en el archivo)
   sobreescribía el display:none original (línea ~152). Esta regla de mayor
   especificidad (0,2,1) lo fuerza a permanecer oculto siempre. */
a.skip-to-content-link,
slider-component > .skip-to-content-link,
.product__media-list ~ .skip-to-content-link,
.slider-mobile-gutter > a.skip-to-content-link {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  position: absolute !important;
  height: 1px !important; width: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
}

/* ── Botones "Agregar al carrito" deshabilitados (sold-out) ────────────────
   pointer-events: none garantiza que ningún click llegue al form,
   incluso si JS intenta disparar .click() sobre el botón. */
.product-form__submit[disabled],
.quick-add__submit[disabled],
.button[disabled],
button[disabled].button {
  opacity: .42 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
  filter: saturate(.25) !important;
  box-shadow: none !important;
}

/* ════════════════════════════════════════════════════════════════════════
   FASE 3 — PÁGINAS SECUNDARIAS
   Cart · Auth (Login / Register / Account) · 404 · Blog · Artículo
   Búsqueda · Contacto · Contraseña
   ════════════════════════════════════════════════════════════════════════ */

/* ── Helpers compartidos: títulos de página ────────────────────────── */
.main-page-title,
.template-404 .title,
.template-search h1,
.main-blog .title--primary,
.article-template__title,
.customer__title,
.customer h1,
.customer h2:first-of-type,
.cart__heading {
  font-family: var(--g-f-d) !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
  line-height: 1.18 !important;
}
.main-page-title,
.template-404 .title,
.article-template__title,
.customer__title { font-size: clamp(2rem, 4vw, 3.2rem) !important; }
.template-search h1,
.main-blog .title--primary { font-size: clamp(1.5rem, 3vw, 2.4rem) !important; }

/* Acento dorado fino debajo del título de página */
.main-page-title::after,
.article-template__title::after,
.customer__title::after,
.main-blog .title--primary::after {
  content: '' !important;
  display: block !important;
  width: 2.8rem !important;
  height: 2px !important;
  background: var(--g-gold) !important;
  margin: .85rem 0 0 !important;
}

/* ── Inputs y labels — sistema unificado ─────────────────────────────
   Aplica en formularios de login, registro, contacto, carrito.       */
.customer .field,
.cart__footer .field,
.contact-form .field,
.template-search .field {
  position: relative !important;
}
.customer .field__input,
.customer .select__select,
.cart__footer .field__input,
.cart__footer .text-area,
.contact-form .field__input,
.contact-form .text-area,
.template-search .field__input {
  background: var(--g-bg) !important;
  border: 1px solid var(--g-border) !important;
  border-radius: 8px !important;
  color: var(--g-ink) !important;
  font-family: var(--g-f-u) !important;
  font-size: .92rem !important;
  padding: 1.1rem 1.2rem .55rem !important;
  transition: border-color .22s var(--g-ease) !important;
}
.customer .field__input:focus,
.cart__footer .field__input:focus,
.cart__footer .text-area:focus,
.contact-form .field__input:focus,
.contact-form .text-area:focus,
.template-search .field__input:focus {
  border-color: var(--g-gold) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px var(--g-gold-06) !important;
}
.customer .field__label,
.cart__footer .field__label,
.contact-form .field__label {
  font-family: var(--g-f-u) !important;
  font-size: .72rem !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--g-ink-65) !important;
}
.customer .text-area,
.cart__footer .text-area,
.contact-form .text-area {
  min-height: 120px !important;
  resize: vertical !important;
  border-radius: 8px !important;
}

/* ════════════════════════════════════════════════════════════════════
   1. CARRITO (página completa)
   ════════════════════════════════════════════════════════════════════ */
#main-cart-items,
#main-cart-footer { background: var(--g-bg) !important; }

/* Heading de la tabla del carrito */
.cart__heading {
  font-size: 1.1rem !important;
  padding-bottom: 1rem !important;
  border-bottom: 1px solid var(--g-border) !important;
  margin-bottom: 0 !important;
}

/* Encabezados de columna */
.cart-items thead th {
  font-family: var(--g-f-u) !important;
  font-size: .68rem !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: var(--g-ink-65) !important;
  font-weight: 500 !important;
  padding-bottom: .85rem !important;
  border-bottom: 1px solid var(--g-border) !important;
}

/* Filas de artículo */
.cart-items .cart-item {
  border-bottom: 1px solid var(--g-border) !important;
}
.cart-items .cart-item__image-container img,
.cart-items .cart-item__image {
  border-radius: 8px !important;
  overflow: hidden !important;
}
.cart-items .cart-item__name,
.cart-items .cart-item__name a {
  font-family: var(--g-f-d) !important;
  font-size: .95rem !important;
  font-weight: 600 !important;
  letter-spacing: .06em !important;
  color: var(--g-ink) !important;
  text-decoration: none !important;
}
.cart-items .cart-item__name a:hover { color: var(--g-gold) !important; }
.cart-items .product-option,
.cart-items .cart-item__details .caption-with-letter-spacing {
  font-family: var(--g-f-u) !important;
  font-size: .75rem !important;
  letter-spacing: .1em !important;
  color: var(--g-ink-65) !important;
}
.cart-items .cart-item__price,
.cart-items .price,
.cart-items .cart-item__totals .price {
  font-family: var(--g-f-u) !important;
  font-size: .92rem !important;
  font-weight: 600 !important;
  color: var(--g-gold) !important;
}

/* Controles de cantidad en el carrito */
.cart-items .quantity__button,
.cart-items .quantity__input {
  border-color: var(--g-border) !important;
  border-radius: 4px !important;
  font-family: var(--g-f-u) !important;
  color: var(--g-ink) !important;
}
.cart-items .quantity__button:hover { border-color: var(--g-gold) !important; color: var(--g-gold) !important; }
.cart-items .cart-item__remove a,
.cart-items button[class*="remove"] {
  font-family: var(--g-f-u) !important;
  font-size: .68rem !important;
  letter-spacing: .12em !important;
  color: var(--g-ink-50) !important;
  text-transform: uppercase !important;
}
.cart-items .cart-item__remove a:hover,
.cart-items button[class*="remove"]:hover { color: var(--g-gold) !important; }

/* Footer del carrito: totales, nota, descuento */
.cart__footer {
  background: var(--g-bg1) !important;
  border-radius: 14px !important;
  padding: 2rem !important;
}
.cart__totals,
.totals {
  border-top: 1px solid var(--g-border) !important;
  padding-top: 1.2rem !important;
}
.totals__total,
.cart__total-heading {
  font-family: var(--g-f-d) !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
}
.totals__total-value,
.cart__total-price {
  font-family: var(--g-f-u) !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  color: var(--g-gold) !important;
}
.cart__note label,
.cart__note .cart__note-label {
  font-family: var(--g-f-u) !important;
  font-size: .72rem !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--g-ink-65) !important;
  display: block !important;
  margin-bottom: .5rem !important;
}
/* Descuento */
.cart__discount label {
  font-family: var(--g-f-u) !important;
  font-size: .72rem !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--g-ink-65) !important;
}
/* Botón checkout */
.cart__checkout-button,
#checkout {
  width: 100% !important;
  margin-top: 1rem !important;
}
/* Carrito vacío */
.cart__empty-text {
  font-family: var(--g-f-d) !important;
  font-size: 1.6rem !important;
  color: var(--g-ink-65) !important;
  letter-spacing: .06em !important;
}

/* ════════════════════════════════════════════════════════════════════
   2. PÁGINAS DE CLIENTE (Login · Register · Account · Addresses)
   ════════════════════════════════════════════════════════════════════ */
.customer {
  min-height: 60vh !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding-top: 3rem !important;
}
.customer > *,
.customer form { width: 100% !important; max-width: 460px !important; }

/* Links de navegación entre login / register / recuperar */
.customer a:not(.button) {
  font-family: var(--g-f-u) !important;
  font-size: .8rem !important;
  letter-spacing: .1em !important;
  color: var(--g-gold) !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
}
.customer a:not(.button):hover { text-decoration: underline !important; }

/* Mensajes de error */
.customer .form__message,
.customer .form__message.h3 {
  font-family: var(--g-f-u) !important;
  font-size: .82rem !important;
  color: #c0392b !important;
  background: rgba(192,57,43,.07) !important;
  border: 1px solid rgba(192,57,43,.18) !important;
  border-radius: 8px !important;
  padding: .85rem 1rem !important;
  margin-bottom: 1rem !important;
}

/* Tabla de pedidos en account */
.order-history {
  width: 100% !important;
  border-collapse: collapse !important;
}
.order-history th {
  font-family: var(--g-f-u) !important;
  font-size: .68rem !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--g-ink-65) !important;
  font-weight: 500 !important;
  padding: .65rem .85rem !important;
  border-bottom: 2px solid var(--g-border) !important;
  text-align: left !important;
}
.order-history td {
  font-family: var(--g-f-u) !important;
  font-size: .85rem !important;
  color: var(--g-ink-80) !important;
  padding: .9rem .85rem !important;
  border-bottom: 1px solid var(--g-border) !important;
  vertical-align: middle !important;
}
.order-history tbody tr:hover td { background: var(--g-bg1) !important; }
.order-history .order-history__btn a,
.order-history td a {
  font-family: var(--g-f-u) !important;
  font-size: .78rem !important;
  letter-spacing: .1em !important;
  color: var(--g-gold) !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
}
.order-history td a:hover { text-decoration: underline !important; }

/* Status badges en pedidos */
.order-history .badge {
  display: inline-block !important;
  font-size: .65rem !important;
  letter-spacing: .12em !important;
  border-radius: 999px !important;
  padding: .25em .75em !important;
}

/* ════════════════════════════════════════════════════════════════════
   3. PÁGINA 404
   ════════════════════════════════════════════════════════════════════ */
.template-404 {
  min-height: 65vh !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1.5rem !important;
  padding: 4rem 1.5rem !important;
  text-align: center !important;
}
/* "Página no encontrada" subtexto — aparece ANTES del h1 en el Liquid */
.template-404 p {
  font-family: var(--g-f-u) !important;
  font-size: .8rem !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  color: var(--g-gold) !important;
  margin: 0 !important;
}
/* El <h1> grande */
.template-404 .title {
  font-size: clamp(5rem, 20vw, 12rem) !important;
  line-height: 1 !important;
  letter-spacing: .04em !important;
  color: var(--g-ink) !important;
  margin: -.5rem 0 0 !important;
  opacity: .08 !important;        /* fantasma elegante */
}
/* Superponer texto explicativo */
.template-404 {
  position: relative !important;
}
/* Botón de vuelta al catálogo */
.template-404 .button {
  margin-top: 0 !important;
}

/* ════════════════════════════════════════════════════════════════════
   4. BLOG
   ════════════════════════════════════════════════════════════════════ */
.main-blog .title--primary {
  text-align: center !important;
  margin-bottom: 2.5rem !important;
}
.main-blog .title--primary::after {
  margin: .85rem auto 0 !important;
}

/* Cards de artículos */
.blog-articles .article__info {
  padding: 1.1rem 0 .5rem !important;
}
.blog-articles .article__heading,
.blog-articles .card__heading {
  font-family: var(--g-f-d) !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  letter-spacing: .04em !important;
  color: var(--g-ink) !important;
  line-height: 1.35 !important;
  margin: 0 0 .5rem !important;
}
.blog-articles .article__heading a,
.blog-articles .card__heading a {
  color: inherit !important;
  text-decoration: none !important;
}
.blog-articles .article__heading a:hover,
.blog-articles .card__heading a:hover { color: var(--g-gold) !important; }

.blog-articles .article__date,
.blog-articles .article__author,
.blog-articles .caption-with-letter-spacing {
  font-family: var(--g-f-u) !important;
  font-size: .7rem !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--g-ink-65) !important;
}
.blog-articles .article__excerpt p,
.blog-articles .article__excerpt {
  font-family: var(--g-f-u) !important;
  font-size: .88rem !important;
  color: var(--g-ink-65) !important;
  line-height: 1.75 !important;
}

/* Imagen de artículo */
.blog-articles .article__image-wrapper,
.blog-articles .article .card__media {
  border-radius: 12px !important;
  overflow: hidden !important;
}
.blog-articles .article__image-wrapper img { transition: transform .55s var(--g-ease) !important; }
.blog-articles .article:hover .article__image-wrapper img { transform: scale(1.04) !important; }

/* Paginación */
.pagination__list { gap: .35rem !important; }
.pagination .pagination__item a,
.pagination .pagination__item span {
  font-family: var(--g-f-u) !important;
  font-size: .78rem !important;
  letter-spacing: .1em !important;
  color: var(--g-ink-80) !important;
  border: 1px solid var(--g-border) !important;
  border-radius: 6px !important;
  padding: .45rem .8rem !important;
  transition: all .2s !important;
}
.pagination .pagination__item--current a,
.pagination .pagination__item--current span {
  background: var(--g-gold) !important;
  border-color: var(--g-gold) !important;
  color: #fff !important;
}
.pagination .pagination__item a:hover { border-color: var(--g-gold) !important; color: var(--g-gold) !important; }

/* ════════════════════════════════════════════════════════════════════
   5. ARTÍCULO DE BLOG
   ════════════════════════════════════════════════════════════════════ */
.article-template { background: var(--g-bg) !important; }

/* Hero image */
.article-template__hero-container img {
  border-radius: 0 !important;
}

/* Header del artículo */
.article-template__title {
  margin-bottom: 1rem !important;
}
/* Meta: fecha y autor */
.article-template .circle-divider,
.article-template .caption-with-letter-spacing {
  font-family: var(--g-f-u) !important;
  font-size: .72rem !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: var(--g-ink-65) !important;
}
.article-template .circle-divider::after {
  background: var(--g-gold) !important;
  opacity: .5 !important;
}

/* Contenido del artículo (RTE) */
.article-template .rte,
.article-template__content {
  font-family: var(--g-f-u) !important;
  font-size: 1.02rem !important;
  line-height: 1.9 !important;
  color: var(--g-ink-80) !important;
  max-width: 68ch !important;
  margin: 0 auto !important;
}
.article-template .rte h2,
.article-template .rte h3,
.article-template .rte h4 {
  font-family: var(--g-f-d) !important;
  letter-spacing: .06em !important;
  color: var(--g-ink) !important;
  margin-top: 2rem !important;
}
.article-template .rte a {
  color: var(--g-gold) !important;
  text-decoration: underline !important;
}
.article-template .rte blockquote {
  border-left: 3px solid var(--g-gold) !important;
  padding-left: 1.25rem !important;
  margin: 2rem 0 !important;
  font-style: italic !important;
  color: var(--g-ink-65) !important;
}
.article-template .rte img {
  border-radius: 10px !important;
}

/* Navegación entre artículos */
.article-template__back.link {
  font-family: var(--g-f-u) !important;
  font-size: .72rem !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--g-gold) !important;
  text-decoration: none !important;
}
.article-template__back.link:hover { text-decoration: underline !important; }

/* Sección de comentarios */
.article-template .comment {
  border-bottom: 1px solid var(--g-border) !important;
  padding: 1.5rem 0 !important;
}
.article-template .comment__author {
  font-family: var(--g-f-d) !important;
  font-size: .9rem !important;
  font-weight: 600 !important;
  color: var(--g-ink) !important;
}
.article-template .comment__date {
  font-family: var(--g-f-u) !important;
  font-size: .7rem !important;
  letter-spacing: .12em !important;
  color: var(--g-ink-65) !important;
}
.article-template .comment p {
  font-family: var(--g-f-u) !important;
  font-size: .9rem !important;
  line-height: 1.75 !important;
  color: var(--g-ink-80) !important;
}

/* ════════════════════════════════════════════════════════════════════
   6. PÁGINAS GENÉRICAS (page.json / contact)
   ════════════════════════════════════════════════════════════════════ */
.main-page-title {
  margin-bottom: 2rem !important;
}
/* RTE en pages */
.page-width--narrow .rte {
  font-family: var(--g-f-u) !important;
  font-size: .98rem !important;
  line-height: 1.85 !important;
  color: var(--g-ink-80) !important;
}
.page-width--narrow .rte h2,
.page-width--narrow .rte h3 {
  font-family: var(--g-f-d) !important;
  color: var(--g-ink) !important;
  letter-spacing: .06em !important;
}
.page-width--narrow .rte a { color: var(--g-gold) !important; }

/* Formulario de contacto */
.contact-form .contact__fields { gap: 1rem !important; }
.contact-form input,
.contact-form textarea,
.contact-form select {
  border-radius: 8px !important;
  border: 1px solid var(--g-border) !important;
  font-family: var(--g-f-u) !important;
  font-size: .92rem !important;
  color: var(--g-ink) !important;
  background: var(--g-bg) !important;
  transition: border-color .22s var(--g-ease) !important;
}
.contact-form input:focus,
.contact-form textarea:focus {
  border-color: var(--g-gold) !important;
  box-shadow: 0 0 0 3px var(--g-gold-06) !important;
  outline: none !important;
}

/* ════════════════════════════════════════════════════════════════════
   7. BÚSQUEDA
   ════════════════════════════════════════════════════════════════════ */
.template-search { background: var(--g-bg) !important; }

.template-search__header { text-align: center !important; }

/* Campo de búsqueda */
.template-search .search { position: relative !important; }
.template-search .search__input.field__input {
  border-radius: 999px !important;
  padding-left: 1.5rem !important;
  padding-right: 3.5rem !important;
  font-family: var(--g-f-u) !important;
  font-size: 1rem !important;
  border: 1px solid var(--g-border) !important;
  background: var(--g-bg1) !important;
  transition: all .25s var(--g-ease) !important;
  height: 52px !important;
}
.template-search .search__input:focus {
  border-color: var(--g-gold) !important;
  background: var(--g-bg) !important;
  box-shadow: 0 0 0 3px var(--g-gold-06) !important;
  outline: none !important;
}
.template-search .search__button {
  color: var(--g-gold) !important;
}
.template-search .search__button svg { stroke: var(--g-gold) !important; }

/* Sin resultados */
.template-search--empty .template-search__search {
  margin-bottom: 2.5rem !important;
}
.template-search .search-result__heading,
.template-search .template-search__results-count {
  font-family: var(--g-f-u) !important;
  font-size: .78rem !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--g-ink-65) !important;
}

/* Grid de resultados reutiliza las card-product — ya estilizado */

/* ════════════════════════════════════════════════════════════════════
   8. PÁGINA DE CONTRASEÑA
   ════════════════════════════════════════════════════════════════════ */
.template-password #shopify-section-password-header {
  background: var(--g-bg) !important;
}
.password-header__logo {
  font-family: var(--g-f-d) !important;
  letter-spacing: .2em !important;
  color: var(--g-ink) !important;
}
.password-page__hero {
  background: var(--g-bg1) !important;
}
.password-page__hero-container h1 {
  font-family: var(--g-f-d) !important;
  font-size: clamp(2rem, 5vw, 4rem) !important;
  font-weight: 600 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
}
.password-page__hero-container p {
  font-family: var(--g-f-u) !important;
  font-size: .95rem !important;
  color: var(--g-ink-65) !important;
  line-height: 1.75 !important;
}
.password__form .field__input {
  border-radius: 999px !important;
  border: 1px solid var(--g-border) !important;
}
.password__form .field__input:focus {
  border-color: var(--g-gold) !important;
  box-shadow: 0 0 0 3px var(--g-gold-06) !important;
  outline: none !important;
}

/* ════════════════════════════════════════════════════════════════════
   9. GIFT CARD
   ════════════════════════════════════════════════════════════════════ */
.gift-card {
  background: linear-gradient(135deg, var(--g-ink) 0%, #2a2520 100%) !important;
  border-radius: 20px !important;
  color: #fff !important;
}
.gift-card__heading {
  font-family: var(--g-f-d) !important;
  font-size: clamp(1.4rem, 3vw, 2rem) !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--g-gold) !important;
}
.gift-card__price {
  font-family: var(--g-f-u) !important;
  font-size: clamp(2rem, 6vw, 4rem) !important;
  font-weight: 700 !important;
  color: #fff !important;
}
.gift-card__code {
  background: rgba(255,255,255,.1) !important;
  border-radius: 8px !important;
  letter-spacing: .25em !important;
  font-family: var(--g-f-u) !important;
  color: var(--g-gold) !important;
  font-weight: 600 !important;
  padding: .6rem 1.2rem !important;
}
.gift-card__shop-link.button {
  margin-top: 1.5rem !important;
}

/* ════════════════════════════════════════════════════════════════════
   PHASE 4 — THEME SECTIONS
   Announcement · Image Banner · Slideshow · Section Titles
   Featured Collection · Collection List · Image With Text
   Rich Text · Multicolumn · Newsletter · Email Signup
   Testimonials · Trust Badges · Collection Duo
   Video · Collage · Featured Blog · Related Products · Footer
   ════════════════════════════════════════════════════════════════════ */

/* ────────────────────────────────────────────────────────────────────
   11. IMAGE BANNER & SLIDESHOW
────────────────────────────────────────────────────────────────────── */
/* Remove Dawn's colored text-box background — let the photo breathe */
.banner__box,
.banner__content .banner__box {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Gradient overlay so text always reads on any photo */
.banner::after {
  background: linear-gradient(
    to top,
    rgba(28,26,23,.55) 0%,
    rgba(28,26,23,.12) 55%,
    transparent 100%
  ) !important;
}

.banner__heading {
  font-family: var(--g-f-d) !important;
  font-size: clamp(1.8rem, 5.5vw, 4.8rem) !important;
  font-weight: 600 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  line-height: 1.05 !important;
  color: #fff !important;
  text-shadow: 0 2px 20px rgba(0,0,0,.4) !important;
}
.banner__text {
  font-family: var(--g-f-u) !important;
  font-size: clamp(1.2rem, 1.8vw, 1.5rem) !important;
  color: #ffffff !important;
  text-shadow: 0 1px 8px rgba(0,0,0,.45) !important;
  line-height: 1.65 !important;
  letter-spacing: .03em !important;
}

/* Slideshow prev/next buttons */
.slideshow__controls .slider-button,
.banner .slider-button {
  background: rgba(28,26,23,.5) !important;
  border: 1px solid rgba(201,168,76,.3) !important;
  color: var(--g-gold) !important;
  border-radius: 50% !important;
  transition: background var(--g-tf), border-color var(--g-tf) !important;
  backdrop-filter: blur(4px) !important;
}
.slideshow__controls .slider-button:hover,
.banner .slider-button:hover {
  background: var(--g-gold) !important;
  border-color: var(--g-gold) !important;
  color: var(--g-ink) !important;
}
.slideshow__controls .slider-button svg,
.banner .slider-button svg { stroke: currentColor !important; }

/* Pagination dots */
.slider-counter__link .dot {
  background: rgba(255,255,255,.4) !important;
  border: 1px solid rgba(255,255,255,.5) !important;
}
.slider-counter__link.active .dot,
.slider-counter__link--dot.active .dot {
  background: var(--g-gold) !important;
  border-color: var(--g-gold) !important;
}

/* ────────────────────────────────────────────────────────────────────
   12. SHARED SECTION TITLE WRAPPER
────────────────────────────────────────────────────────────────────── */
.title-wrapper,
.title-wrapper-with-link {
  text-align: center !important;
}
.title-wrapper .title,
.title-wrapper-with-link .title,
.featured-collection .title,
.collection-list__title {
  font-family: var(--g-f-d) !important;
  font-size: clamp(1.2rem, 2.5vw, 2rem) !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
}
/* "Ver todo" ESTILO ENLACE (view_all_style = 'link') — sólo el <a>, no el div.
   OJO: .collection__view-all es el DIV contenedor, no el enlace. Antes le
   aplicábamos estilos de enlace al contenedor y el botón sólido de dentro
   quedaba con el texto ilegible. */
.title-wrapper-with-link .link,
.collection__view-all .link,
.collection__view-all .underlined-link {
  font-family: var(--g-f-u) !important;
  font-size: .9rem !important;
  letter-spacing: .2em !important;
  text-transform: uppercase !important;
  color: var(--g-gold) !important;
  border-bottom: 1px solid var(--g-gold) !important;
  padding-bottom: 2px !important;
  text-decoration: none !important;
  transition: color var(--g-tf), border-color var(--g-tf) !important;
}
.title-wrapper-with-link .link:hover,
.collection__view-all .link:hover,
.collection__view-all .underlined-link:hover {
  color: var(--g-ink) !important;
  border-color: var(--g-ink) !important;
}

/* "Ver todo" ESTILO SÓLIDO (view_all_style = 'solid' → <a class="button">).
   Relleno dorado + texto oscuro = SIEMPRE legible. Hover invierte a outline. */
.collection__view-all .button {
  background: var(--g-gold) !important;
  color: var(--g-ink) !important;
  border: 1.5px solid var(--g-gold) !important;
  font-size: .82rem !important;
  border-bottom-width: 1.5px !important;
}
.collection__view-all .button:hover {
  background: transparent !important;
  color: var(--g-gold) !important;
  border-color: var(--g-gold) !important;
}
/* El div contenedor no debe llevar borde ni color de enlace */
.collection__view-all { border-bottom: 0 !important; }

/* ────────────────────────────────────────────────────────────────────
   13. FEATURED COLLECTION
────────────────────────────────────────────────────────────────────── */
.featured-collection {
  background: var(--g-bg) !important;
}

/* ────────────────────────────────────────────────────────────────────
   14. COLLECTION LIST
────────────────────────────────────────────────────────────────────── */
.collection-list {
  background: var(--g-bg) !important;
}
.collection-list-wrapper .card--card,
.collection-list-wrapper .card {
  border-color: var(--g-border) !important;
  background: var(--g-bg1) !important;
  transition: box-shadow var(--g-t), border-color var(--g-t) !important;
}
.collection-list-wrapper .card:hover {
  border-color: rgba(201,168,76,.4) !important;
  box-shadow: 0 4px 24px var(--g-gold-dim) !important;
}
.collection-list-wrapper .card__heading a {
  font-family: var(--g-f-d) !important;
  font-size: .9rem !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
}

/* ────────────────────────────────────────────────────────────────────
   15. IMAGE WITH TEXT
────────────────────────────────────────────────────────────────────── */
.image-with-text,
.image-with-text .image-with-text__text-item {
  background: var(--g-bg) !important;
}
.image-with-text__content .image-with-text__heading {
  font-family: var(--g-f-d) !important;
  font-size: clamp(1.2rem, 2.5vw, 2rem) !important;
  font-weight: 600 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
}
.image-with-text__content .image-with-text__text {
  font-family: var(--g-f-u) !important;
  font-size: 1.05rem !important;
  color: var(--g-ink-80) !important;
  line-height: 1.8 !important;
}
.image-with-text__content .image-with-text__caption,
.image-with-text__content .caption-with-letter-spacing {
  font-family: var(--g-f-u) !important;
  font-size: .68rem !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  color: var(--g-gold) !important;
}

/* ────────────────────────────────────────────────────────────────────
   16. RICH TEXT
────────────────────────────────────────────────────────────────────── */
.rich-text {
  background: var(--g-bg) !important;
}
.rich-text__heading {
  font-family: var(--g-f-d) !important;
  font-size: clamp(1.4rem, 3vw, 2.6rem) !important;
  font-weight: 600 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
}
.rich-text__text,
.rich-text__text * {
  font-family: var(--g-f-u) !important;
  font-size: 1.05rem !important;
  color: var(--g-ink-80) !important;
  line-height: 1.8 !important;
}
.rich-text__caption.caption-with-letter-spacing {
  font-family: var(--g-f-u) !important;
  font-size: .68rem !important;
  letter-spacing: .26em !important;
  text-transform: uppercase !important;
  color: var(--g-gold) !important;
}

/* ────────────────────────────────────────────────────────────────────
   17. MULTICOLUMN
────────────────────────────────────────────────────────────────────── */
.multicolumn {
  background: var(--g-bg1) !important;
}
.multicolumn .multicolumn-card {
  background: var(--g-bg) !important;
  border: 1px solid var(--g-border) !important;
  border-radius: 2px !important;
  transition: box-shadow var(--g-t), border-color var(--g-t) !important;
}
.multicolumn .multicolumn-card:hover {
  box-shadow: 0 4px 28px var(--g-gold-dim) !important;
  border-color: rgba(201,168,76,.35) !important;
}
.multicolumn-card__title {
  font-family: var(--g-f-d) !important;
  font-size: .9rem !important;
  font-weight: 600 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
}
.multicolumn-card__info .rte,
.multicolumn-card__info p {
  font-family: var(--g-f-u) !important;
  font-size: .95rem !important;
  color: var(--g-ink-65) !important;
  line-height: 1.75 !important;
}
.multicolumn .multicolumn-card .multicolumn-card__link.link {
  font-family: var(--g-f-u) !important;
  font-size: .68rem !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: var(--g-gold) !important;
  border-bottom: 1px solid var(--g-gold) !important;
  text-decoration: none !important;
}

/* ────────────────────────────────────────────────────────────────────
   18. NEWSLETTER & EMAIL SIGNUP
────────────────────────────────────────────────────────────────────── */
.newsletter__wrapper,
.newsletter__wrapper.gradient {
  background: var(--g-ink) !important;
  background-image: none !important;
}
.newsletter__wrapper h2,
.newsletter__wrapper .inline-richtext {
  font-family: var(--g-f-d) !important;
  font-size: clamp(1.2rem, 2.5vw, 2rem) !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--g-gold) !important;
}
.newsletter__subheading,
.newsletter__subheading p {
  font-family: var(--g-f-u) !important;
  font-size: 1.35rem !important;
  color: #ffffff !important;
  line-height: 1.6 !important;
  letter-spacing: .02em !important;
}
/* Pill input+button combo */
.newsletter-form .field {
  border: 1px solid rgba(201,168,76,.4) !important;
  border-radius: 999px !important;
  overflow: hidden !important;
  background: rgba(255,255,255,.07) !important;
  display: flex !important;
  align-items: stretch !important;
  transition: border-color var(--g-tf) !important;
}
/* Dawn dibuja un marco rectangular interno con .field:after/:before
   (box-shadow). Dentro de la cápsula dorada se veía como un segundo borde
   sobrepuesto. Lo eliminamos para dejar una sola cápsula limpia. */
.newsletter-form .field:after,
.newsletter-form .field:before {
  content: none !important;
  box-shadow: none !important;
  border: 0 !important;
}
.newsletter-form .field:focus-within {
  border-color: var(--g-gold) !important;
}
.newsletter-form .field__input {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  color: #fff !important;
  font-family: var(--g-f-u) !important;
  font-size: 1.3rem !important;
  letter-spacing: .04em !important;
  box-shadow: none !important;
  padding-left: 1.4rem !important;
}
.newsletter-form .field__input::placeholder { color: rgba(255,255,255,.4) !important; }
.newsletter-form .field__input:focus { outline: none !important; box-shadow: none !important; }
.newsletter-form .field__label { color: rgba(255,255,255,.45) !important; }
.newsletter-form .newsletter-form__button.field__button {
  background: var(--g-gold) !important;
  color: var(--g-ink) !important;
  border: none !important;
  border-radius: 0 999px 999px 0 !important;
  font-family: var(--g-f-u) !important;
  font-size: .65rem !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  padding: 0 1.6rem !important;
  flex-shrink: 0 !important;
  transition: background var(--g-tf) !important;
}
.newsletter-form .newsletter-form__button.field__button:hover {
  background: var(--g-gold-lt) !important;
}
/* Email Signup Banner (same dark treatment) */
.email-signup-banner,
.email-signup-banner .email-signup-banner__background { background: var(--g-ink) !important; }
.email-signup-banner .email-signup-banner__heading {
  font-family: var(--g-f-d) !important;
  color: var(--g-gold) !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
}

/* ────────────────────────────────────────────────────────────────────
   19. TESTIMONIALS
────────────────────────────────────────────────────────────────────── */
.testimonials {
  background: var(--g-bg1) !important;
}
.testimonials__title {
  font-family: var(--g-f-d) !important;
  font-size: clamp(1.2rem, 2.5vw, 2rem) !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
}
.testimonials__subtitle {
  font-family: var(--g-f-u) !important;
  font-size: .92rem !important;
  color: var(--g-ink-65) !important;
  line-height: 1.7 !important;
}
.testimonials__card {
  background: var(--g-bg) !important;
  border: 1px solid var(--g-border) !important;
  border-radius: 2px !important;
  transition: box-shadow var(--g-t), border-color var(--g-t) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 1.2rem !important;
}
.testimonials__card:hover {
  box-shadow: 0 6px 32px var(--g-gold-dim) !important;
  border-color: rgba(201,168,76,.3) !important;
}
.testimonials__star { color: var(--g-border) !important; font-size: 1.1rem !important; }
.testimonials__star--filled { color: var(--g-gold) !important; }
.testimonials__text p {
  font-family: var(--g-f-u) !important;
  font-size: 1.05rem !important;
  font-style: italic !important;
  color: var(--g-ink-80) !important;
  line-height: 1.8 !important;
  margin: 0 !important;
}
/* Opening quotation mark */
.testimonials__text p::before {
  content: '\201C';
  font-family: var(--g-f-d);
  font-size: 2.2rem;
  color: var(--g-gold);
  line-height: 0;
  vertical-align: -0.55rem;
  margin-right: .1rem;
  font-style: normal;
}
.testimonials__name {
  font-family: var(--g-f-d) !important;
  font-size: .78rem !important;
  font-weight: 600 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
}
.testimonials__location {
  font-family: var(--g-f-u) !important;
  font-size: .78rem !important;
  color: var(--g-ink-50) !important;
  letter-spacing: .06em !important;
}
.testimonials__avatar { border-radius: 50% !important; border: 2px solid var(--g-gold-dim) !important; }
.testimonials__avatar-placeholder {
  width: 40px !important; height: 40px !important;
  border-radius: 50% !important;
  background: var(--g-gold-dim) !important;
  color: var(--g-gold) !important;
  font-family: var(--g-f-d) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(201,168,76,.4) !important;
  flex-shrink: 0 !important;
}

/* ────────────────────────────────────────────────────────────────────
   20. TRUST BADGES (override inline styles)
────────────────────────────────────────────────────────────────────── */
.trust-badges {
  background: var(--g-bg) !important;
}
.trust-badges__grid {
  border-color: var(--g-border) !important;
}
.trust-badges__icon { color: var(--g-gold) !important; }
.trust-badges__title {
  font-family: var(--g-f-d) !important;
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  letter-spacing: .07em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
}
.trust-badges__description {
  font-family: var(--g-f-u) !important;
  font-size: 1.35rem !important;
  font-weight: 400 !important;
  color: var(--g-ink) !important;
  line-height: 1.55 !important;
  letter-spacing: .01em !important;
}

/* ────────────────────────────────────────────────────────────────────
   21. COLLECTION DUO
────────────────────────────────────────────────────────────────────── */
/* Realce sutil de toda la sección: fondo crema (no blanco puro) para que
   destaque del resto sin romper la estética clara. */
.collection-duo { background: var(--g-bg1) !important; }

.collection-duo__header { position: relative !important; }
/* Eyebrow decorativo dorado encima del título */
.collection-duo__header .collection-duo__title::before {
  content: 'Colecciones';
  display: block !important;
  font-family: var(--g-f-u) !important;
  font-size: 1.3rem !important; font-weight: 600 !important;
  letter-spacing: .34em !important; text-transform: uppercase !important;
  color: var(--g-gold) !important;
  /* El título usa text-fill transparent (degradado); el eyebrow debe
     conservar su color sólido, no heredarlo. */
  -webkit-text-fill-color: rgba(0, 0, 0, 1) !important;
  background: none !important;
  margin-bottom: 1.1rem !important;
}
.collection-duo__header .collection-duo__title {
  font-family: var(--g-f-d) !important;
  font-size: clamp(2.6rem, 4.8vw, 4.2rem) !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  line-height: 1.05 !important;
  -webkit-text-fill-color: rgba(0, 0, 0, 1) !important;
  background: none !important;
  margin-bottom: 1.1rem !important;
}
/* Filete dorado centrado bajo el título */
.collection-duo__header .collection-duo__title::after {
  content: '' !important;
  display: block !important;
  width: 68px !important; height: 2px !important;
  margin: 1.5rem auto 0 !important;
  background: linear-gradient(90deg, transparent, var(--g-gold), transparent) !important;
  -webkit-text-fill-color: initial !important;
}
.collection-duo__header .collection-duo__description {
  font-family: var(--g-f-u) !important;
  font-size: 1.4rem !important;
  color: var(--g-ink) !important;
  line-height: 1.6 !important;
  max-width: 560px !important;
  margin: 1.4rem auto 0 !important;
}
.collection-duo__media { overflow: hidden !important; border-radius: 2px !important; }
.collection-duo__image {
  transition: transform .75s var(--g-ease) !important;
  display: block !important;
  width: 100% !important;
}
.collection-duo__overlay {
  background: linear-gradient(
    to top,
    rgba(20,18,16,.90) 0%,
    rgba(20,18,16,.55) 45%,
    rgba(20,18,16,.20) 100%
  ) !important;
  transition: background var(--g-t) !important;
}
.collection-duo__link:hover .collection-duo__overlay {
  background: linear-gradient(
    to top,
    rgba(20,18,16,.94) 0%,
    rgba(20,18,16,.65) 55%,
    rgba(20,18,16,.32) 100%
  ) !important;
}
.collection-duo__eyebrow {
  font-family: var(--g-f-u) !important;
  font-size: .64rem !important;
  letter-spacing: .3em !important;
  text-transform: uppercase !important;
  color: var(--g-gold) !important;
  display: block !important;
  margin-bottom: .5rem !important;
}
.collection-duo__collection-title {
  font-family: var(--g-f-d) !important;
  font-size: clamp(2.2rem, 3.4vw, 3.4rem) !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  line-height: 1.08 !important;
  margin-bottom: .6rem !important;
}
.collection-duo__collection-description {
  font-family: var(--g-f-u) !important;
  font-size: 1.2rem !important;
  color: #ffffff !important;
  line-height: 1.6 !important;
  margin-bottom: 1.2rem !important;
  font-weight: 700 !important;
}
.collection-duo__cta.button {
  font-family: var(--g-f-u) !important;
  font-size: .82rem !important;
  letter-spacing: .22em !important;
  padding: .7rem 1.8rem !important;
  background: var(--g-gold) !important;
  color: var(--g-ink) !important;
  border: none !important;
  border-radius: 999px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  transition: background var(--g-tf) !important;
}
.collection-duo__link:hover .collection-duo__cta.button { background: var(--g-gold-lt) !important; }

/* ────────────────────────────────────────────────────────────────────
   22. VIDEO
────────────────────────────────────────────────────────────────────── */
.video-section { background: var(--g-ink) !important; }
.video-section__media { border-radius: 2px !important; overflow: hidden !important; }
/* Play button */
.deferred-media__poster-button {
  width: 72px !important;
  height: 72px !important;
  background: rgba(201,168,76,.88) !important;
  border-radius: 50% !important;
  border: none !important;
  color: var(--g-ink) !important;
  transition: background var(--g-tf), transform var(--g-tf) !important;
}
.deferred-media__poster-button:hover {
  background: var(--g-gold) !important;
  transform: scale(1.1) !important;
}
.deferred-media__poster-button svg { stroke: var(--g-ink) !important; fill: var(--g-ink) !important; }

/* ────────────────────────────────────────────────────────────────────
   23. COLLAGE
────────────────────────────────────────────────────────────────────── */
.collage { background: var(--g-bg) !important; }
.collage-card {
  border-radius: 2px !important;
  overflow: hidden !important;
  transition: box-shadow var(--g-t) !important;
}
.collage-card:hover { box-shadow: 0 8px 40px rgba(28,26,23,.12) !important; }
.collage-card__info { background: var(--g-bg1) !important; }
.collage-card .card__heading a {
  font-family: var(--g-f-d) !important;
  font-size: .88rem !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
}

/* ────────────────────────────────────────────────────────────────────
   24. FEATURED BLOG / ARTICLE CARDS
────────────────────────────────────────────────────────────────────── */
.featured-blog { background: var(--g-bg1) !important; }
.featured-blog .title {
  font-family: var(--g-f-d) !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
}
.article-card {
  background: var(--g-bg) !important;
  transition: box-shadow var(--g-t) !important;
}
.article-card:hover { box-shadow: 0 4px 24px rgba(28,26,23,.08) !important; }
.article-card__info .article-card__title {
  font-family: var(--g-f-d) !important;
  font-size: .95rem !important;
  font-weight: 600 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
  transition: color var(--g-tf) !important;
}
.article-card:hover .article-card__title,
.article-card__link:hover .article-card__title { color: var(--g-gold) !important; }
.article-card__info .article-card__excerpt,
.article-card__info .article-card__blog-title {
  font-family: var(--g-f-u) !important;
  color: var(--g-ink-65) !important;
  font-size: .92rem !important;
  line-height: 1.65 !important;
}
.article-card__info .article-card__date {
  font-family: var(--g-f-u) !important;
  font-size: .68rem !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--g-ink-50) !important;
}
.featured-blog .blog-articles__button.button {
  background: transparent !important;
  border: 1px solid var(--g-gold) !important;
  color: var(--g-gold) !important;
}
.featured-blog .blog-articles__button.button:hover {
  background: var(--g-gold) !important;
  color: var(--g-ink) !important;
}

/* ────────────────────────────────────────────────────────────────────
   25. RELATED PRODUCTS
────────────────────────────────────────────────────────────────────── */
.related-products {
  background: var(--g-bg1) !important;
  border-top: 1px solid var(--g-border) !important;
}
.related-products .title-wrapper .title,
.related-products h2.title {
  font-family: var(--g-f-d) !important;
  font-size: clamp(1rem, 2vw, 1.5rem) !important;
  font-weight: 600 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: var(--g-ink) !important;
}

/* 26. FOOTER — sin override; se mantiene el estilo nativo del tema */

/* ════════════════════════════════════════════════════════════════════
   FASE 5 — POLISH FINAL & MICRO-DETALLES
════════════════════════════════════════════════════════════════════ */

/* ────────────────────────────────────────────────────────────────────
   27. FOCUS RINGS — accesibilidad de teclado
────────────────────────────────────────────────────────────────────── */
:focus-visible {
  outline: 2px solid var(--g-gold) !important;
  outline-offset: 3px !important;
  border-radius: 2px !important;
}
/* Quita el outline por defecto de Dawn cuando hay :focus-visible */
:focus:not(:focus-visible) {
  outline: none !important;
}
/* Botones y enlaces internos */
.button:focus-visible,
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--g-gold) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 4px rgba(174,143,94,.18) !important;
}

/* ────────────────────────────────────────────────────────────────────
   28. SCROLLBAR PERSONALIZADO — webkit (Chrome / Edge / Safari)
────────────────────────────────────────────────────────────────────── */
html::-webkit-scrollbar {
  width: 5px;
}
html::-webkit-scrollbar-track {
  background: var(--g-bg1, #FAF8F5);
}
html::-webkit-scrollbar-thumb {
  background: var(--g-gold, #AE8F5E);
  border-radius: 3px;
}
html::-webkit-scrollbar-thumb:hover {
  background: var(--g-gold-lt, #c9a97a);
}
/* Firefox */
html {
  scrollbar-width: thin !important;
  scrollbar-color: var(--g-gold, #AE8F5E) var(--g-bg1, #FAF8F5) !important;
}

/* ────────────────────────────────────────────────────────────────────
   29. ACORDEONES — transición suave de apertura/cierre
────────────────────────────────────────────────────────────────────── */
details.accordion > summary {
  cursor: pointer !important;
  list-style: none !important;
  transition: color .2s ease !important;
}
details.accordion > summary:hover {
  color: var(--g-gold) !important;
}
/* Contenido interior: fade in al abrir */
details.accordion > .accordion__content {
  animation: none !important;
}
details.accordion[open] > .accordion__content {
  animation: cpm-accordion-in .28s ease forwards !important;
}
@keyframes cpm-accordion-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0);    }
}
/* Flecha giratoria del summary */
details.accordion > summary .icon-caret {
  transition: transform .25s ease !important;
}
details.accordion[open] > summary .icon-caret {
  transform: rotate(180deg) !important;
}

/* ────────────────────────────────────────────────────────────────────
   30. VARIANT SWATCHES — estados seleccionado y agotado
────────────────────────────────────────────────────────────────────── */
/* Pastilla/variante seleccionada */
.product-form__input .swatch-input:checked + label,
.product-form__input input[type="radio"]:checked + label.swatch {
  outline: 2px solid var(--g-gold) !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 4px rgba(174,143,94,.15) !important;
}
/* Pastilla de texto (pill) seleccionada */
fieldset.product-form__input .swatch__input:checked + .swatch-label,
.variant-pills .form__label[aria-checked="true"] {
  border-color: var(--g-gold) !important;
  color: var(--g-gold) !important;
  font-weight: 600 !important;
}
/* Variante agotada — tachado diagonal */
.swatch--unavailable,
.product-form__input .swatch__input:disabled + label,
.variant-pills input[disabled] + label {
  position: relative !important;
  opacity: .45 !important;
  cursor: not-allowed !important;
}
.swatch--unavailable::after,
.product-form__input .swatch__input:disabled + label::after,
.variant-pills input[disabled] + label::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(
    to bottom right,
    transparent calc(50% - .5px),
    rgba(180,83,9,.5) calc(50% - .5px),
    rgba(180,83,9,.5) calc(50% + .5px),
    transparent calc(50% + .5px)
  ) !important;
  border-radius: inherit !important;
  pointer-events: none !important;
}

/* ────────────────────────────────────────────────────────────────────
   31. QUANTITY STEPPER — página de producto
────────────────────────────────────────────────────────────────────── */
.quantity {
  border: 1px solid var(--g-border, #E0D9CC) !important;
  border-radius: var(--inputs-radius, 4px) !important;
  overflow: hidden !important;
}
/* Dawn dibuja un segundo borde interno con .quantity:after (box-shadow);
   al sumarse al borde de arriba se ve un marco doble. Lo desactivamos. */
.quantity:after { content: none !important; box-shadow: none !important; border: 0 !important; }
.quantity__button {
  color: var(--g-ink) !important;
  background: transparent !important;
  transition: background .18s ease, color .18s ease !important;
}
.quantity__button:hover {
  background: var(--g-gold) !important;
  color: #fff !important;
}
.quantity__input {
  font-family: var(--g-f-u) !important;
  font-size: 1.4rem !important;
  color: var(--g-ink) !important;
  border-left: 1px solid var(--g-border) !important;
  border-right: 1px solid var(--g-border) !important;
  background: transparent !important;
}

/* ────────────────────────────────────────────────────────────────────
   32. PICKUP AVAILABILITY — retiro en tienda
────────────────────────────────────────────────────────────────────── */
.pickup-availability-preview {
  border: 1px solid var(--g-border) !important;
  border-radius: 6px !important;
  padding: 1rem 1.2rem !important;
  background: var(--g-bg1) !important;
}
.pickup-availability-preview .icon-checkmark {
  color: #3d8a4e !important;
}
.pickup-availability-preview .pickup-availability-preview__title {
  font-family: var(--g-f-u) !important;
  font-size: 1.3rem !important;
  font-weight: 600 !important;
  color: var(--g-ink) !important;
}
.pickup-availability-preview .pickup-availability-preview__subtitle {
  font-size: 1.15rem !important;
  color: var(--g-ink-65) !important;
}
.pickup-availability__button {
  font-family: var(--g-f-u) !important;
  font-size: 1.2rem !important;
  letter-spacing: .08em !important;
  color: var(--g-gold) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
  background: none !important;
  border: none !important;
  cursor: pointer !important;
  padding: 0 !important;
  margin-top: .6rem !important;
  display: inline-block !important;
}
.pickup-availability__button:hover {
  color: var(--g-gold-lt) !important;
}

/* ────────────────────────────────────────────────────────────────────
   33. BREADCRUMBS
────────────────────────────────────────────────────────────────────── */
.breadcrumbs,
nav[aria-label="breadcrumb"],
.breadcrumb {
  font-family: var(--g-f-u) !important;
  font-size: 1.1rem !important;
  letter-spacing: .1em !important;
  color: var(--g-ink-65) !important;
  padding: .6rem 0 !important;
}
.breadcrumbs a,
nav[aria-label="breadcrumb"] a,
.breadcrumb a {
  color: var(--g-ink-65) !important;
  text-decoration: none !important;
  transition: color .18s !important;
}
.breadcrumbs a:hover,
nav[aria-label="breadcrumb"] a:hover,
.breadcrumb a:hover {
  color: var(--g-gold) !important;
}
.breadcrumbs [aria-current="page"],
.breadcrumb .is-active {
  color: var(--g-ink) !important;
  font-weight: 500 !important;
}

/* ────────────────────────────────────────────────────────────────────
   34. TABLAS RTE — blog / páginas estáticas
────────────────────────────────────────────────────────────────────── */
.rte table {
  width: 100% !important;
  border-collapse: collapse !important;
  font-family: var(--g-f-u) !important;
  font-size: 1.3rem !important;
  margin: 2rem 0 !important;
}
.rte table th {
  background: var(--g-gold) !important;
  color: #fff !important;
  font-family: var(--g-f-d) !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
  padding: .7rem 1rem !important;
  text-align: left !important;
}
.rte table td {
  padding: .6rem 1rem !important;
  border-bottom: 1px solid var(--g-border) !important;
  color: var(--g-ink) !important;
}
.rte table tr:nth-child(even) td {
  background: rgba(174,143,94,.06) !important;
}
.rte table tr:hover td {
  background: rgba(174,143,94,.12) !important;
}

/* ────────────────────────────────────────────────────────────────────
   35. SKELETON / LOADING STATE — imágenes de producto
────────────────────────────────────────────────────────────────────── */
@keyframes cpm-skeleton {
  0%   { background-position: -200% center; }
  100% { background-position:  200% center; }
}
.card__media.loading,
.product__media--loading {
  background: linear-gradient(
    90deg,
    var(--g-bg1) 0%,
    rgba(174,143,94,.14) 50%,
    var(--g-bg1) 100%
  ) !important;
  background-size: 200% 100% !important;
  animation: cpm-skeleton 1.6s ease infinite !important;
}

/* ────────────────────────────────────────────────────────────────────
   36. CONTADOR ANIMADO — números estadísticos
────────────────────────────────────────────────────────────────────── */
[data-cpm-counter] {
  display: inline-block !important;
  font-family: var(--g-f-d) !important;
  font-variant-numeric: tabular-nums !important;
  transition: none !important;
}

/* ────────────────────────────────────────────────────────────────────
   37. SPARKLE — destellos dorados en botón ATC
────────────────────────────────────────────────────────────────────── */
.cpm-sparkle-particle {
  position: fixed !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  pointer-events: none !important;
  z-index: 9999 !important;
  background: var(--g-gold, #AE8F5E) !important;
  box-shadow: 0 0 4px 1px rgba(174,143,94,.7) !important;
  animation: cpm-sparkle-out .55s ease forwards !important;
}
@keyframes cpm-sparkle-out {
  0%   { opacity: 1; transform: translate(0, 0)   scale(1);   }
  100% { opacity: 0; transform: var(--sp-end, translate(0,-40px)) scale(0); }
}

/* ────────────────────────────────────────────────────────────────────
   38. CART NOTIFICATION BUBBLE — refinamiento
────────────────────────────────────────────────────────────────────── */
.cart-notification {
  border-radius: 10px !important;
  border: 1px solid var(--g-border) !important;
  box-shadow: 0 8px 32px rgba(28,26,23,.18) !important;
  background: var(--g-bg1) !important;
}
.cart-notification__heading {
  font-family: var(--g-f-d) !important;
  font-size: 1.5rem !important;
  font-weight: 600 !important;
  color: var(--g-ink) !important;
  letter-spacing: .06em !important;
}
.cart-notification__links .button {
  font-family: var(--g-f-u) !important;
  letter-spacing: .1em !important;
}
.cart-notification__links .button--secondary {
  border-color: var(--g-gold) !important;
  color: var(--g-gold) !important;
}
.cart-notification__links .button--secondary:hover {
  background: var(--g-gold) !important;
  color: #fff !important;
}

/* ────────────────────────────────────────────────────────────────────
   39. GIFT CARD / COMPLEMENTOS
────────────────────────────────────────────────────────────────────── */
.gift-card {
  background: var(--g-ink) !important;
  color: #fff !important;
  border-radius: 14px !important;
  overflow: hidden !important;
}
.gift-card__price,
.gift-card__number {
  font-family: var(--g-f-d) !important;
  letter-spacing: .12em !important;
}

/* ────────────────────────────────────────────────────────────────────
   40. PREFERS-REDUCED-MOTION — anulaciones adicionales
────────────────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  details.accordion[open] > .accordion__content {
    animation: none !important;
  }
  .cpm-sparkle-particle {
    display: none !important;
  }
  [data-cpm-counter] {
    transition: none !important;
  }
  html::-webkit-scrollbar-thumb {
    /* Mantener colores pero sin animación */
    transition: none !important;
  }
}