@font-face{font-family:"Newsreader";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/newsreader-400.woff2") format("woff2");}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/newsreader-500.woff2") format("woff2");}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/newsreader-600.woff2") format("woff2");}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/newsreader-700.woff2") format("woff2");}
@font-face{font-family:"Newsreader";font-style:italic;font-weight:400;font-display:swap;src:url("fonts/newsreader-italic-400.woff2") format("woff2");}
@font-face{font-family:"Quicksand";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/quicksand-400.woff2") format("woff2");}
@font-face{font-family:"Quicksand";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/quicksand-500.woff2") format("woff2");}
@font-face{font-family:"Quicksand";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/quicksand-600.woff2") format("woff2");}
:root{
  --color-accent:#656551; --color-accent-dk:#4A4A3B; --color-accent-lt:#7C7C6B;
  --color-bg:#F4F4E8; --color-bg-white:#FFFFFF; --color-bg-alt:#E8E8E5;
  --color-surface-card:#F1F1EC; --color-surface-media:#EFEFEF;
  --color-text:#1C1C1C; --color-text-soft:#7C7C6B; --color-text-faint:#A8A89A;
  --color-border:#D4D4C9; --color-on-accent:#FFFFFF; --color-sale:#A24B3C; --color-error:#B0453C;
  --font-heading:"Quicksand",system-ui,sans-serif; --font-body:"Newsreader",Georgia,serif;
  --font-ui:"Quicksand",system-ui,sans-serif; --font-subheading:"Quicksand",system-ui,sans-serif;
  --radius-sm:2px; --radius-md:3px; --radius-lg:4px; --radius-pill:999px;
  --text-4xl:2.25rem; --text-5xl:3rem;
}
body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);}
h1,h2,h3{font-family:var(--font-heading);}

/* ===== Tipografía base ===== */
html{font-size:16px;}
body{font-family:var(--font-body);line-height:1.7;color:var(--color-text);-webkit-font-smoothing:antialiased;}

h1,h2,h3,h4{font-family:var(--font-heading);font-weight:500;line-height:1.2;letter-spacing:.02em;}
h1{font-size:var(--text-5xl);}
h2{font-size:var(--text-4xl);}
h3{font-size:1.5rem;}

.section-title{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.15em;
  font-weight:400;
  font-size:1.4rem;
  color:var(--color-accent);
  text-align:center;
}

.u-eyebrow{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.72rem;
  font-weight:500;
  color:var(--color-text-soft);
}

.u-display{
  font-family:var(--font-heading);
  font-weight:600;
  font-size:var(--text-5xl);
  line-height:1.1;
  letter-spacing:-.02em;
}

nav a,.btn,button,label,.u-label{font-family:var(--font-ui);}
.u-label{text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;}

a{color:inherit;text-decoration:none;}
a:hover{color:var(--color-accent);}

.price{font-family:var(--font-heading);}
.price--sale{color:var(--color-sale);}
.price--regular{color:var(--color-text-faint);text-decoration:line-through;}

/* ===== Reset / base ===== */
*,*::before,*::after{box-sizing:border-box;}
img,svg{max-width:100%;height:auto;display:block;}
/* Default: iconos inline capados a tamaño icono; reglas más específicas (3rem placeholders, empty-states) lo overridean */
svg{width:1.5rem;height:auto;}
button,input,select,textarea{font:inherit;color:inherit;}
button{background:none;border:0;cursor:pointer;padding:0;}
ul{list-style:none;margin:0;padding:0;}

/* Iconos inline: cap defensivo de tamaño (heart, cart, chevrons, cuenta, búsqueda) */
button svg,a svg,.icon svg,[class*="icon"] svg,
.product-card__wishlist-icon,
.account-menu__btn svg,.cart-icon,.wishlist-icon,
.site-header__burger svg,.facets__close,
.qa-ico-cart,.qa-ico-spin,.qa-ico-check,
.pdp__assurance svg,.review__verified svg{
  width:1.25rem;height:1.25rem;flex-shrink:0;
}
.product-card__image-placeholder svg{width:3rem;height:3rem;}

/* FULL-BLEED: main es 100% ancho (los fondos de sección llegan al borde);
   .container/.page-width son los wrappers internos ya usados en el markup
   (collection.html, product.html, cart.html, hero.html) que capan el
   CONTENIDO a 1400px. No tocar markup: cada template ya envuelve su
   contenido en <div class="container ...">. */
main{
  max-width:none;
  padding-inline:0;
}
.container,.page-width{
  max-width:1400px;
  margin-inline:auto;
  padding-inline:1.5rem;
}

/* ===== Product card ===== */
.product-card-wrap{position:relative;}
.product-card{
  display:block;
  background:var(--color-surface-card);
  border-radius:var(--radius-sm);
  overflow:hidden;
  transition:background-color .2s ease;
}
.product-card:hover{background:var(--color-bg-alt);color:inherit;}
.product-card__image{
  position:relative;
  aspect-ratio:3/4;
  background:var(--color-surface-media);
  overflow:hidden;
}
.product-card__image img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .4s ease;
}
.product-card:hover .product-card__image img{transform:scale(1.03);}
.product-card:has(.product-card__rollover):hover .product-card__image img{transform:none;}
.product-card__rollover{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity .35s ease;
  z-index:1;
}
.product-card:hover .product-card__rollover{opacity:1;}
.product-card__image-placeholder{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  color:var(--color-text-faint);
}
.product-card__badge-sale{
  position:absolute;top:.75rem;left:.75rem;
  background:var(--color-accent);
  color:var(--color-on-accent);
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:10px;
  line-height:1;
  padding:.4em .6em;
  border-radius:var(--radius-sm);
}
.product-card__badges{
  position:absolute;top:8px;left:8px;
  display:flex;flex-direction:column;gap:4px;
  z-index:2;
}
.product-badge{
  display:inline-block;
  padding:.5em .75em;
  font-family:var(--font-ui);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.06em;
  line-height:1.2;
  white-space:nowrap;
}
.product-badge{border-radius:2px;}
.product-badge--default{background:#5a5a48;color:#fff;}
.product-badge--sale{background:#1a1a1a;color:#fff;}
.product-badge--nuevo{background:#5a5a48;color:#fff;}
.product-badge--descuento{background:#1a1a1a;color:#fff;}
.product-badge--amber{background:#78550a;color:#fff;}
.product-badge--emerald{background:#2d5f4a;color:#fff;}
.product-badge--blue{background:#2c3e6b;color:#fff;}
.product-badge--rose{background:#7a3045;color:#fff;}
.product-badge--violet{background:#4a2d6b;color:#fff;}
.product-card__wishlist{
  position:absolute;top:.75rem;right:.75rem;
  z-index:2;
  width:1.75rem;height:1.75rem;
  display:flex;align-items:center;justify-content:center;
  color:var(--color-text-soft);
}
.product-card__wishlist-icon{width:1.1rem;height:1.1rem;}
.product-card__wishlist:hover,
.product-card__wishlist[aria-pressed="true"]{color:var(--color-accent);}
.product-card__wishlist[aria-pressed="true"] .product-card__wishlist-icon{
  fill:var(--color-accent);
  stroke:var(--color-accent);
}
.product-card__body{
  padding:1rem .75rem 1.25rem;
  text-align:center;
}
.product-card__vendor{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:10px;
  color:var(--color-text-faint);
  margin:0 0 .35rem;
}
.product-card__title{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:500;
  font-size:12px;
  color:var(--color-text);
  margin:0 0 .5rem;
}
.product-card__rating{
  display:flex;align-items:center;justify-content:center;gap:.3em;
  font-size:11px;
  color:var(--color-text-soft);
  margin-bottom:.5rem;
}
.product-card__price{
  font-family:var(--font-heading);
  display:flex;align-items:baseline;justify-content:center;gap:.5em;
  font-size:14px;
}
.product-card__price-current{color:var(--color-text);}
.product-card__price-compare{
  color:var(--color-text-faint);
  text-decoration:line-through;
  font-size:12px;
}
.product-card:has(.product-card__badge-sale) .product-card__price-current{color:var(--color-sale);}
.product-card__quick-add{
  display:flex;align-items:center;justify-content:center;gap:.5em;
  width:100%;
  margin-top:.5rem;
  padding:.6em 1em;
  background:transparent;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:11px;
  color:var(--color-text);
  transition:background-color .2s ease,border-color .2s ease,color .2s ease;
}
.product-card__quick-add:hover{
  background:var(--color-accent);
  border-color:var(--color-accent);
  color:var(--color-on-accent);
}
/* Estados del quick-add: UN icono a la vez (idle=carrito · loading=spinner · done=check).
   Sin esto salían los 3 iconos juntos. */
.product-card__quick-add .qa-ico-spin,
.product-card__quick-add .qa-ico-check{display:none;}
.product-card__quick-add.is-loading{opacity:.85;cursor:progress;}
.product-card__quick-add.is-loading .qa-ico-cart,
.product-card__quick-add.is-loading .qa-label{display:none;}
.product-card__quick-add.is-loading .qa-ico-spin{display:block;animation:qa-spin .7s linear infinite;}
.product-card__quick-add.is-done{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent);}
.product-card__quick-add.is-done .qa-ico-cart{display:none;}
.product-card__quick-add.is-done .qa-ico-check{display:block;}
.product-card__quick-add.is-done .qa-label{font-size:0;}
.product-card__quick-add.is-done .qa-label::after{content:'Agregado';font-size:11px;letter-spacing:.08em;}
@keyframes qa-spin{to{transform:rotate(360deg);}}

/* ===== Grid de productos ===== */
.product-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:2rem 1.5rem;
}
@media (max-width:1024px){
  .product-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem 1rem;}
}
@media (max-width:640px){
  .product-grid{grid-template-columns:repeat(2,1fr);gap:1rem .75rem;}
}
.product-grid--cols-4{grid-template-columns:repeat(4,1fr);}

/* ===== Botones ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.8rem;
  font-weight:500;
  padding:.9em 2em;
  border-radius:var(--radius-sm);
  border:1px solid transparent;
  background:var(--color-accent);
  color:var(--color-on-accent);
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
.btn:hover{background:var(--color-accent-dk);color:var(--color-on-accent);}
.btn--outline{
  background:transparent;
  border-color:var(--color-accent);
  color:var(--color-accent);
}
.btn--outline:hover{background:var(--color-accent);color:var(--color-on-accent);}

.pdp__btn-add,.pdp__btn-buy,.product-detail__add-btn,.product-detail__buy-btn{
  flex:1;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.8rem;
  font-weight:500;
  padding:1em 1.5em;
  border-radius:var(--radius-sm);
  border:1px solid var(--color-accent);
  background:var(--color-accent);
  color:var(--color-on-accent);
  transition:background-color .2s ease;
}
.pdp__btn-add:hover,.pdp__btn-buy:hover{background:var(--color-accent-dk);border-color:var(--color-accent-dk);}
.pdp__btn-buy{background:transparent;color:var(--color-accent);}
.pdp__btn-buy:hover{color:var(--color-on-accent);}
.pdp__cta{display:flex;gap:.75rem;}

.variant-btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:2.75rem;height:2.75rem;
  padding:0 .75em;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  background:var(--color-bg-white);
  font-family:var(--font-ui);
  text-transform:uppercase;
  font-size:.8rem;
  color:var(--color-text);
  transition:border-color .2s ease,background-color .2s ease,color .2s ease;
}
.variant-btn:hover{border-color:var(--color-accent);}
.variant-btn.selected,.variant-btn.active,.variant-btn[aria-pressed="true"]{
  background:var(--color-accent);
  border-color:var(--color-accent);
  color:var(--color-on-accent);
}

a.underline,.link-cta{
  text-decoration:underline;
  text-underline-offset:.2em;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-family:var(--font-ui);
  font-size:.8rem;
}

:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;}

/* ===== Formularios ===== */
input,select,textarea{
  border:1px solid var(--color-border);
  background:var(--color-bg-white);
  border-radius:var(--radius-sm);
  padding:.75em 1em;
  font-family:var(--font-ui);
  color:var(--color-text);
  transition:border-color .2s ease,box-shadow .2s ease;
}
input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:var(--color-accent);
  box-shadow:0 0 0 3px rgba(101,101,81,.15);
}
label,.u-label{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.75rem;
  color:var(--color-text-soft);
}

.pdp__variants-label{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.75rem;
  color:var(--color-text-soft);
  margin-bottom:.5rem;
}
.pdp__variant-selector{display:flex;flex-wrap:wrap;gap:.5rem;}

.qty-control{
  display:inline-flex;align-items:center;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
}
.qty-control button{
  width:2.5rem;height:2.5rem;
  display:flex;align-items:center;justify-content:center;
  color:var(--color-text-soft);
}
.qty-control button:hover{color:var(--color-accent);}
.qty-control input,.qty-control #qty{
  width:3rem;
  border:0;
  text-align:center;
  background:transparent;
}
.qty-btn{
  width:2.5rem;height:2.5rem;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--color-border);
  color:var(--color-text-soft);
}
.qty-btn:hover{color:var(--color-accent);border-color:var(--color-accent);}
.qty-input{
  width:3rem;
  border:1px solid var(--color-border);
  border-left:0;border-right:0;
  text-align:center;
  -moz-appearance:textfield;
}
.qty-input::-webkit-outer-spin-button,
.qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}

/* ===== Badges / chips / acordeón (facets) ===== */
.cat-chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;}
.cat-chip{
  display:inline-flex;align-items:center;
  padding:.5em 1em;
  border:1px solid var(--color-accent);
  border-radius:var(--radius-sm);
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.72rem;
  color:var(--color-on-accent);
  background:var(--color-accent);
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
.facet-chip{
  display:inline-flex;align-items:center;
  padding:.5em 1em;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.72rem;
  color:var(--color-text-soft);
  background:var(--color-bg-white);
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
.cat-chip:hover{background:var(--color-accent-dk);border-color:var(--color-accent-dk);color:var(--color-on-accent);}
.facet-chip:hover{border-color:var(--color-accent);color:var(--color-accent);}
.cat-chip.active,.cat-chip[aria-current="true"]{
  background:var(--color-accent-dk);
  border-color:var(--color-accent-dk);
  color:var(--color-on-accent);
}
.facet-chip--clear{color:var(--color-text-faint);}
.facets-value__count{color:var(--color-text-faint);}

.facet-group{border-bottom:1px solid var(--color-border);}
.facet-group__head{
  width:100%;
  display:flex;align-items:center;justify-content:space-between;
  padding:1em 0;
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.78rem;
  color:var(--color-text);
}
.facet-group__head svg{color:var(--color-text-soft);transition:transform .2s ease;flex-shrink:0;}
.facet-group__head:hover{color:var(--color-accent);}
.facet-group__head:hover svg{color:var(--color-accent);}
.facet-group__body{padding-bottom:1em;}
.facet-opt{
  display:flex;align-items:center;gap:.6em;
  font-family:var(--font-ui);
  font-size:.85rem;
  color:var(--color-text-soft);
  padding:.4em 0;
  cursor:pointer;
  transition:color .15s ease;
}
.facet-opt:hover{color:var(--color-text);}
.facet-opt input[type="checkbox"]{
  width:16px;height:16px;flex-shrink:0;
  accent-color:var(--color-accent);
  cursor:pointer;
}
/* .facet-price-* movido a themes/_base/assets/facets.css (compartido — el
   mismo gap existía en dawn.css y cielo.css, no solo acá). */

/* ===== Header base ===== */
.announce-bar{
  background:var(--color-bg-alt);
  color:var(--color-text-soft);
  text-align:center;
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.7rem;
  padding:.6em 0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.announce-bar .container{overflow:hidden;}
.site-header{background:var(--color-bg-white);border-bottom:1px solid var(--color-border);position:relative;}
.site-header--centered .site-header__crow{
  display:flex;align-items:center;justify-content:space-between;
  padding-block:1.25rem;
}
.site-header__logo,.site-header__logo--center{
  font-family:var(--font-heading);
  font-size:1.5rem;
  letter-spacing:.02em;
  color:var(--color-text);
  display:flex;
  align-items:center;
}
.site-header__logo--center{margin-inline:auto;}

/* Logo: dawn-logo renders BOTH a light and a dark <img> inside the same
   anchor when the store has a logo image configured; without CSS they
   stack and read as a duplicated wordmark. Keep only the light image,
   center + cap its size. Text-only wordmark (<span>) is unaffected. */
.site-header__logo-dark{display:none;}
.site-header__logo-light{
  max-height:2.25rem;
  width:auto;
  margin-inline:auto;
}
.site-header__logo span{
  color:var(--color-text);
}
.site-header__crow-side{display:flex;align-items:center;gap:1rem;}

/* Actions row (account / search / wishlist / cart): these render as plain
   block-level <a>/<div> siblings with no layout rule, so by default they
   stack vertically. Force a horizontal row, right-aligned, normal icon size. */
.site-header__actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:1rem;
  flex-wrap:nowrap;
}
.site-header__actions .account-menu,
.site-header__actions .cart-icon,
.site-header__actions .wishlist-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  position:relative;
}
.site-header__actions svg{
  width:1.2rem;
  height:1.2rem;
}

/* Toggle de modo oscuro (luna/sol) del header — visible para activar .dark.
   Clase real (themes/_base/sections/header.html:925): .theme-toggle */
.theme-toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:1.75rem;height:1.75rem;
  color:var(--color-text);
}
.theme-toggle:hover{color:var(--color-accent);}

/* Buscador (.site-header__search-wrap, _base/sections/header.html) sin
   ancho definido se estira dentro de .site-header__crow-side--end y
   empuja/superpone al resto de iconos. Capar ancho + que quede en la
   fila de acciones sin encimar el hero. */
.site-header__search-wrap{
  max-width:12rem;
  flex:0 1 auto;
}
.site-header__search-wrap .site-header__search{
  display:flex;
  align-items:center;
}
.site-header__search-wrap input{
  width:100%;
  min-width:0;
  font-size:.85rem;
}
.search-suggest{
  position:absolute;
  z-index:30;
}

/* Mega-menu horizontal panels (.megamenu): toggled via an Alpine
   `:class="{'is-active': ...}"` binding, not x-show — so without CSS
   the panel has no hidden state and renders as an expanded text column
   under the logo on load. Hide by default, reveal on hover/focus/is-active. */
.megamenu{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  position:absolute;
  left:0;
  right:0;
  top:100%;
  z-index:40;
  background:var(--color-bg-white);
  border-top:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);
  transition:opacity .15s ease;
}
.megamenu.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.megamenu__inner{
  display:flex;
  flex-wrap:wrap;
  gap:2rem;
  padding-block:2rem;
}
.megamenu__col{display:flex;flex-direction:column;gap:.5rem;}
.megamenu__heading{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.75rem;
  color:var(--color-text-soft);
  margin-bottom:.25rem;
}
.megamenu__link{
  font-family:var(--font-ui);
  font-size:.85rem;
  color:var(--color-text);
}
.megamenu__link:hover{color:var(--color-accent);}

/* Simple nav dropdown + vertical mega-menu already use Alpine x-show
   (inline display toggling); x-cloak covers the pre-hydration flash, but
   guard against a missing/late Alpine load with an explicit closed state. */
.nav-dd__panel,.mega-v__panel{
  position:absolute;
}
[x-cloak]{display:none!important;}
.site-header__burger{
  width:1.75rem;height:1.75rem;
  display:flex;align-items:center;justify-content:center;
  color:var(--color-text);
}
.site-nav{display:flex;align-items:center;justify-content:center;gap:2rem;padding-bottom:1.25rem;}
.site-nav__link{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.78rem;
  color:var(--color-text);
}
.site-nav__link:hover{color:var(--color-accent);}
.account-menu{position:relative;}
.account-menu__btn{
  width:1.75rem;height:1.75rem;
  display:flex;align-items:center;justify-content:center;
  color:var(--color-text);
}
.account-menu__dropdown{
  position:absolute;
  right:0;
  top:calc(100% + 10px);
  z-index:120;
  background:var(--color-bg-white);
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  min-width:12rem;
  padding:.5rem 0;
  box-shadow:var(--shadow, 0 8px 24px rgba(0,0,0,.12));
}
.account-menu__item{
  display:block;
  padding:.6em 1em;
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.75rem;
  color:var(--color-text);
}
.account-menu__item:hover{background:var(--color-bg-alt);color:var(--color-accent);}
.account-menu__item--danger{color:var(--color-error);}
.cart-icon{position:relative;}
.cart-badge{
  position:absolute;top:-5px;right:-7px;
  background:var(--color-accent);
  color:var(--color-on-accent);
  font-family:var(--font-ui);
  font-size:10px;line-height:1;
  border-radius:var(--radius-pill);
  min-width:1.1rem;height:1.1rem;padding:0 3px;
  display:inline-flex;align-items:center;justify-content:center;
  box-sizing:border-box;
}
/* Bump al agregar un producto: el contador "salta" para dar feedback visual */
@keyframes cart-bump{
  0%{transform:scale(1);}
  30%{transform:scale(1.5);}
  55%{transform:scale(.85);}
  75%{transform:scale(1.12);}
  100%{transform:scale(1);}
}
.cart-badge--bump{animation:cart-bump .5s cubic-bezier(.22,.61,.36,1);}
@media (prefers-reduced-motion: reduce){
  .cart-badge--bump{animation:none;}
}

/* =========================================================================
   Header centered-brand (estilo OTB) — referencia onlytheblind.com
   Markup real: themes/_base/sections/header.html líneas 76-115 (crow),
   905 (dawn-header-actions), 1112 (dawn-mobile-drawer). Selectores
   .site-header--centered ... para ganar por especificidad sin tocar
   las reglas de classic-split/megamenu horizontal de arriba.
   ========================================================================= */

/* Announce bar: fondo olivo oscuro, texto claro, sans uppercase amplio */
.announce-bar{
  background:var(--color-accent-dk);
  color:var(--color-on-accent);
  letter-spacing:.16em;
  font-size:.72rem;
}

/* Barra header: fondo crema */
.site-header--centered{
  background:var(--color-bg);
}

/* .site-header__crow en 3 columnas reales: burger | logo | acciones.
   grid con 1fr auto 1fr centra el logo aunque los laterales difieran
   en ancho (el truco de flex+justify-content no lo garantiza). */
.site-header--centered .site-header__crow{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding-block:1.5rem;
}
.site-header--centered .site-header__crow-side{
  justify-self:start;
}
.site-header--centered .site-header__crow-side--end{
  justify-self:end;
}

/* Ocultar el nav horizontal de centered-brand: la navegación completa
   vive en el drawer vertical (megamenú vertical), pedido explícito. */
.site-header--centered .site-nav--center{
  display:none;
}

/* Logo centrado, serif, letras amplias, mayúsculas */
.site-header--centered .site-header__logo--center{
  margin-inline:0;
  font-family:var(--font-heading);
  font-size:1.4rem;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.site-header--centered .site-header__logo-dark{
  display:none;
}
.site-header--centered .site-header__logo-light{
  max-height:2rem;
  width:auto;
  margin-inline:auto;
}

/* Burger: líneas finas, color texto oscuro */
.site-header--centered .site-header__crow-side .site-header__burger{
  display:inline-flex !important; /* la ref muestra el burger también en desktop; base lo oculta >1024px */
  width:1.375rem;height:1.375rem;
  color:var(--color-text);
}

/* Acciones (cuenta · búsqueda · carrito) en fila horizontal a la derecha */
.site-header--centered .site-header__crow-side--end{
  display:flex;
  align-items:center;
  gap:1.25rem;
}
.site-header--centered .site-header__crow-side--end svg{
  width:1.3rem;
  height:1.3rem;
}
.site-header--centered .site-header__crow-side--end .account-menu,
.site-header--centered .site-header__crow-side--end .cart-icon,
.site-header--centered .site-header__crow-side--end .wishlist-icon{
  color:var(--color-text);
}
.site-header--centered .site-header__crow-side--end .account-menu:hover,
.site-header--centered .site-header__crow-side--end .cart-icon:hover,
.site-header--centered .site-header__crow-side--end .wishlist-icon:hover{
  color:var(--color-accent);
}

/* Theme-toggle (dark mode) visible también en header centrado */
.site-header--centered .site-header__crow .theme-toggle,
.site-header--centered .site-header__crow-side--end .theme-toggle{
  display:inline-flex;
  color:var(--color-text);
}
.site-header--centered .site-header__crow .theme-toggle:hover,
.site-header--centered .site-header__crow-side--end .theme-toggle:hover{
  color:var(--color-accent);
}

/* Buscador inline: en la referencia la búsqueda es solo un ícono de
   lupa que abre overlay, no un input visible en la barra. El markup
   siempre renderiza un <input>; lo más limpio sin tocar markup es
   colapsar el wrap entero a un botón — el submit del form dispara
   /search, y la búsqueda completa también vive en el drawer. */
.site-header--centered .site-header__search-wrap{
  max-width:none;
  flex:0 0 auto;
}
.site-header--centered .site-header__search-wrap .site-header__search input{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.site-header--centered .site-header__search-wrap .site-header__search{
  display:inline-flex;
}
.site-header--centered .site-header__search-wrap .search-submit-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--color-text);
}
.site-header--centered .site-header__search-wrap .search-submit-btn:hover{
  color:var(--color-accent);
}
.site-header--centered .search-suggest{
  right:0;
  left:auto;
  min-width:18rem;
}

/* Drawer vertical (dawn-mobile-drawer): panel crema desde la izquierda,
   headings serif, links sans, overlay oscuro semitransparente. */
/* Drawer mobile — estética OTB: panel olivo, Quicksand uppercase, texto claro */
.site-nav-mobile{
  position:fixed;
  inset:0 auto 0 0;
  width:min(24rem,88vw);
  height:100vh;
  background:var(--color-accent);
  color:var(--color-on-accent);
  z-index:100;
  display:flex;
  flex-direction:column;
  box-shadow:2px 0 40px rgba(0,0,0,.28);
}
.site-nav-mobile__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.5rem 2rem;
  border-bottom:1px solid rgba(255,255,255,.16);
  font-family:var(--font-ui);
  font-size:.72rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--color-on-accent);
}
.site-nav-mobile__header button{
  color:var(--color-on-accent);
  display:inline-flex;
  opacity:.85;
}
.site-nav-mobile__header button:hover{opacity:1;}
.site-nav-mobile__nav{
  display:flex;
  flex-direction:column;
  overflow-y:auto;
  padding:1.25rem 0;
}
.site-nav-mobile__link,
.site-nav-mobile__heading{
  font-family:var(--font-ui);
  font-size:.74rem;
  font-weight:500;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--color-on-accent);
  padding:.85rem 2rem;
}
.site-nav-mobile__heading{padding-top:1rem;}
.site-nav-mobile__link:hover{
  color:#fff;
  background:rgba(255,255,255,.07);
}
.site-nav-mobile__child,
.site-nav-mobile__grandchild{
  display:block;
  font-family:var(--font-ui);
  font-size:.7rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.6);
  padding:.6rem 2rem;
}
.site-nav-mobile__child{padding-left:2.75rem;}
.site-nav-mobile__grandchild{padding-left:3.5rem;color:rgba(255,255,255,.45);}
.site-nav-mobile__child:hover,
.site-nav-mobile__grandchild:hover{
  color:#fff;
  background:rgba(255,255,255,.05);
}
/* Drawer acordeón (flechas, cerrado por default) — estilo OTB */
.drawer-acc{display:flex;flex-direction:column;}
.drawer-acc__toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  cursor:pointer;
}
.drawer-acc__panel{
  max-height:0;
  overflow:hidden;
  transition:max-height .3s ease;
}
.drawer-acc.is-open .drawer-acc__panel{max-height:60vh;}
.drawer-acc__panel .site-nav-mobile__child,
.drawer-acc__panel .site-nav-mobile__grandchild{
  display:block;
}
.drawer-acc__chevron{
  flex-shrink:0;
  width:7px;
  height:7px;
  margin-left:.75rem;
  border-right:1.5px solid rgba(255,255,255,.7);
  border-top:1.5px solid rgba(255,255,255,.7);
  transform:rotate(45deg);
  transition:transform .25s ease;
}
.drawer-acc.is-open .drawer-acc__chevron{
  transform:rotate(135deg);
}
.site-nav-mobile__overlay{
  position:fixed;
  inset:0;
  background:rgba(20,18,15,.5);
  z-index:90;
}

/* =========================================================================
   HOME + FOOTER — pulido editorial oliva (referencia: onlytheblind.com)
   ========================================================================= */

/* ===== Aire vertical entre secciones del home ===== */
.section{padding-block:4.5rem;}
.section--alt{background:var(--color-bg-alt);}

/* ===== Títulos de sección: .section__header (featured_products, collections,
   collection_list, logo_list) — serif izquierda → Quicksand uppercase centrado ===== */
.section__header{
  text-align:center;
  max-width:640px;
  margin-inline:auto;
  margin-bottom:2.5rem;
}
.section__header h2{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.15em;
  font-weight:400;
  font-size:1.4rem;
  color:var(--color-accent);
  margin:0 0 28px;
}
.section__header p{
  font-family:var(--font-body);
  font-size:.9rem;
  color:var(--color-text-soft);
  margin:.75rem 0 0;
}
.media-section__placeholder{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.4rem; text-align:center; min-height:240px; padding:2rem;
  border:2px dashed var(--color-border,#ddd); border-radius:0;
  background:var(--color-bg-alt,#f8f6f0); color:var(--color-text-soft);
}
.media-section__placeholder p{ font-family:var(--font-ui); font-weight:600; color:var(--color-text); margin:0; }
.media-section__placeholder span{ font-family:var(--font-ui); font-size:.875rem; }
.media-section__video, .media-section__img{
  width:100%; display:block; border-radius:var(--radius-lg);
  max-height:80vh; object-fit:cover; background:var(--color-bg-alt,#f8f6f0);
}
.media-section--full .media-section__video,
.media-section--full .media-section__img{
  width:100vw; max-width:100vw; max-height:none;
  margin-left:calc(50% - 50vw); border-radius:0;
}

/* ── Rich text block (Texto enriquecido) ── */
.rich-text-block{ max-width:960px; margin:0 auto; text-align:center; }
.rich-text-block__eyebrow{
  font-family:var(--font-ui); font-size:11px; font-weight:700;
  letter-spacing:.8px; text-transform:uppercase; color:var(--color-accent);
  margin-bottom:.75rem; display:block;
}
.rich-text-block__title{ font-family:var(--font-heading); font-size:1.5rem; font-weight:400; margin-bottom:1rem; color:var(--color-text); }
.rich-text-block__body{ font-family:var(--font-body); font-size:1rem; color:var(--color-text-soft); line-height:1.7; }
.rich-text-block--split{
  max-width:1100px; display:grid; grid-template-columns:1fr 1fr;
  gap:2.5rem; align-items:center; text-align:left;
}
.rich-text-block--split .rich-text-block__media{ border-radius:var(--radius-lg); overflow:hidden; background:var(--color-bg-alt,#f8f6f0); }
.rich-text-block--split .rich-text-block__media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; display:block; }
.rich-text-block--split .rich-text-block__title{ text-align:left; }
.rich-text-block--split .rich-text-block__eyebrow{ text-align:left; }
.rich-text-block--media-right .rich-text-block__media{ order:2; }
.rich-text-block__media--center{ max-width:820px; margin-inline:auto; border-radius:var(--radius-lg); overflow:hidden; background:var(--color-bg-alt,#f8f6f0); }
.rich-text-block__media--center img{ width:100%; height:auto; object-fit:cover; max-height:480px; display:block; }
.rich-text-block__media--center.is-top{ margin-bottom:1.75rem; }
.rich-text-block__media--center.is-bottom{ margin-top:1.75rem; }
.rich-text-block__media--center.is-full{ max-width:none; }
@media (max-width:768px){ .rich-text-block--split{ grid-template-columns:1fr; gap:1.5rem; } }
.section__header .section__eyebrow{
  font-size:11px;
  font-weight:700;
  letter-spacing:.8px;
  text-transform:uppercase;
  color:var(--color-accent);
  margin-bottom:28px;
}
.section__cta{text-align:center;margin-top:2.5rem;}

/* ===== Hero variante "carousel" (.hero.hero-c, default en home demo sin
   imagen) — override full-bleed cinematográfico de hero-variants.css
   (que la deja boxed 640px/5rem). Markup real (_base/sections/hero.html):
   section.hero.hero-c > .hero-c__track > .hero-c__slide > (.hero-c__bg +
   .hero-c__scrim si hay imagen) + .container.hero__inner > .hero__eyebrow/
   .hero__title/.hero__lead/.btn; + .hero-c__arrow--prev/--next, .hero-c__dots. ===== */
.hero.hero-c{
  background:linear-gradient(160deg,var(--color-bg-alt) 0%,var(--color-bg) 55%,var(--color-bg-white) 100%);
  padding:0;
  min-height:82vh;
  display:flex;
  align-items:stretch;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.hero-c__track{display:flex;width:100%;}
.hero-c__slide{
  flex:0 0 100%;
  min-height:82vh;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}
.hero-c__slide--media{background:var(--color-bg-alt);}
.hero-c__bg{position:absolute;inset:0;background-size:cover;background-position:center;}
.hero-c__scrim{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(28,28,28,.05) 0%,rgba(28,28,28,.4) 70%,rgba(28,28,28,.6) 100%);
}
.hero-c .hero__inner{
  position:relative;
  z-index:2;
  max-width:640px;
  margin-inline:auto;
  padding-inline:1.5rem;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1.25rem;
}
.hero-c .hero__eyebrow{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:.75rem;
  font-weight:500;
  color:var(--color-accent);
  margin:0;
}
.hero-c .hero__title{
  font-family:var(--font-heading);
  font-weight:400;
  font-size:clamp(2.25rem,4.5vw,3.5rem);
  line-height:1.12;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--color-text);
  margin:0;
}
.hero-c__slide--media .hero__title{color:#fff;}
.hero-c .hero__lead{
  font-family:var(--font-body);
  font-size:1.05rem;
  line-height:1.6;
  color:var(--color-text-soft);
  margin:0;
  max-width:42ch;
}
.hero-c__slide--media .hero__lead{color:rgba(255,255,255,.85);}
.hero-c .hero__inner .btn{margin-top:.5rem;}
.hero-c__arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  width:2.5rem;height:2.5rem;
  border-radius:50%;
  border:1px solid var(--color-border);
  background:var(--color-bg-white);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease;
}
.hero-c__arrow:hover{border-color:var(--color-accent);}
.hero-c__arrow--prev{left:1.5rem;}
.hero-c__arrow--next{right:1.5rem;}
.hero-c__dots{
  position:absolute;
  bottom:1.75rem;
  left:50%;
  transform:translateX(-50%);
  z-index:3;
  display:flex;
  gap:.5rem;
}

/* ===== Hero variante "video" — editorial, centrado, con aire ===== */
.hero--video{
  position:relative;
  min-height:78vh;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:#000;
}
.hero-vi__video{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
}
.hero-vi__overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,.35) 65%,rgba(0,0,0,.6) 100%);
}
.hero-vi__badge{
  position:absolute;top:1.5rem;left:1.5rem;
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.68rem;
  color:#fff;
  z-index:2;
}
.hero-vi__dot{width:.4em;height:.4em;border-radius:50%;background:var(--color-sale);display:inline-block;}
.hero-vi__content{
  position:relative;z-index:2;
  text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:1.5rem;
  padding-inline:1.5rem;
}
.hero-vi__title{
  font-family:var(--font-heading);
  font-style:italic;
  font-weight:400;
  font-size:clamp(1.75rem,4vw,2.75rem);
  line-height:1.25;
  color:#fff;
  max-width:26ch;
  margin:0;
}
.hero-vi__cta{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  font-weight:500;
  color:#fff;
  text-decoration:underline;
  text-underline-offset:.3em;
}
.hero-vi__cta:hover{color:var(--color-accent-lt);}

/* ===== value_props — banda de iconos sobrios ===== */
.value-props{
  display:grid;
  grid-template-columns:repeat(var(--vp-cols,4),1fr);
  gap:2rem;
  text-align:center;
}
.value-props--cols-2{--vp-cols:2}
.value-props--cols-3{--vp-cols:3}
.value-props--cols-4{--vp-cols:4}
@media (max-width:900px){.value-props{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.value-props{grid-template-columns:1fr;}}
.value-prop__icon{
  width:2rem;height:2rem;
  margin-inline:auto;
  margin-bottom:1rem;
  color:var(--color-accent);
  display:flex;align-items:center;justify-content:center;
}
/* SVG del set Lucide (vía helper icon) y <img> de asset subido: misma caja */
.value-prop__icon svg{width:2rem;height:2rem;}
.value-prop__icon img{width:2rem;height:2rem;object-fit:contain;}
.value-prop h3{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:500;
  font-size:.78rem;
  margin:0 0 .4rem;
}
.value-prop p{
  font-family:var(--font-ui);
  font-size:.78rem;
  color:var(--color-text-soft);
  margin:0;
}
@media (max-width:768px){
  .value-props{grid-template-columns:repeat(2,1fr);gap:2rem 1rem;}
}

/* ===== banner — bloque oliva sólido con CTA (ej. "La Mer Blanche") ===== */
.banner-block,[data-section="banner"] .container{
  text-align:center;
}
.banner-block__content{
  padding:32px 32px 48px 32px;
}
.banner-block__title{
  margin-top:0;
}
/* Checkbox "Ancho completo (full-bleed)": se ANULA el .container (el único cap a
   1400px). main ya es full-width, así el banner llena el 100% real sin hacks de
   100vw ni márgenes negativos (no sufre scrollbar ni recorte por overflow). */
.container--bleed{
  max-width:none;
  padding-inline:0;
}
.banner-block--full{
  width:100%;
  border-radius:0;
}

/* ===== newsletter — banda crema/oliva, formulario editorial ===== */
.newsletter-block__content{
  max-width:32rem;
  margin-inline:auto;
  text-align:center;
}
.newsletter-block__title{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.15em;
  font-weight:400;
  font-size:1.2rem;
  margin:0 0 .75rem;
}
.newsletter-block__subtitle{
  font-family:var(--font-body);
  color:var(--color-text-soft);
  margin:0 0 1.75rem;
}
.newsletter-block__form{
  display:flex;gap:.75rem;
  max-width:26rem;
  margin-inline:auto;
}
.newsletter-block__input{flex:1;}
.newsletter-block__message{
  font-family:var(--font-ui);
  font-size:.85rem;
  margin-top:1rem;
}
.newsletter-block__message--success{color:var(--color-accent);}
.newsletter-block__message--error{color:var(--color-error);}

/* =========================================================================
   FOOTER — banda oliva sólida con columnas (firma OTB)
   ========================================================================= */
.site-footer{
  background:var(--ftr-bg,var(--color-accent));
  color:var(--ftr-fg,#EDEDE2);
  padding-block:4rem 1.5rem;
}
.site-footer a{color:inherit;}
.site-footer__grid{
  display:grid;
  grid-template-columns:1.4fr repeat(3,1fr);
  gap:2.5rem;
  padding-bottom:3rem;
}
.site-footer__brand img{max-height:2rem;filter:brightness(0) invert(1);margin-bottom:1rem;}
.site-footer__brand p{
  font-family:var(--font-body);
  font-size:.85rem;
  color:rgba(237,237,226,.75);
  max-width:26rem;
  line-height:1.6;
}
/* Redes sociales: fila de iconos (asset subido) bajo el tagline, dentro de la
   columna brand. Ícono tal cual (object-contain); hover aclara. */
.site-footer__social{
  display:flex;
  align-items:center;
  gap:.85rem;
  margin-top:1.25rem;
}
.site-footer__social-link{
  display:inline-flex;
  align-items:center;justify-content:center;
  width:2rem;height:2rem;
  color:rgba(237,237,226,.7);
  opacity:.85;
  transition:opacity .2s ease,color .2s ease;
}
.site-footer__social-link img{width:1.25rem;height:1.25rem;object-fit:contain;}
.site-footer__social-link:hover{opacity:1;color:#fff;}
.site-footer__col h4{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:500;
  font-size:.75rem;
  color:#fff;
  margin:0 0 1.1rem;
}
.site-footer__col ul{display:flex;flex-direction:column;gap:.65rem;}
.site-footer__col a{
  font-family:var(--font-body);
  font-size:.85rem;
  color:rgba(237,237,226,.8);
  transition:color .2s ease;
}
.site-footer__col a:hover{color:#fff;}
.site-footer__subheading{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.7rem;
  color:rgba(237,237,226,.55);
}
.site-footer__legal{padding-bottom:1.5rem;}
.site-footer__claim img{filter:brightness(0) invert(1);opacity:.85;}
.site-footer__pay{
  display:flex;flex-wrap:wrap;gap:.5rem;
  padding-bottom:1.5rem;
}
.site-footer__pay-badge{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:.65rem;
  color:var(--color-accent);
  background:#fff;
  border-radius:var(--radius-sm);
  padding:.3em .6em;
}
.site-footer__bottom{
  display:flex;flex-wrap:wrap;
  align-items:center;justify-content:space-between;
  gap:.75rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(237,237,226,.2);
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.68rem;
  color:rgba(237,237,226,.6);
}
@media (max-width:900px){
  .site-footer__grid{grid-template-columns:1fr 1fr;}
}
/* =========================================================================
   PDP — Página de producto (referencia: onlytheblind.com otb-pdp.jpeg)
   Markup real: themes/dawn/templates/product.html (heredado por overlay,
   olive-luxe no tiene product.html propio). Clases: .pdp__layout,
   .pdp__gallery > .pdp__main-image + .pdp__thumbnails > .pdp__thumb(--active),
   .pdp__vendor, .pdp__title, .pdp__meta, .pdp__price*, .pdp__short-desc,
   .pdp__cuotas, .pdp__variants(-label)/.pdp__variant-selector > .variant-btn,
   .pdp__qty/.qty-control, .pdp__cta > .pdp__btn-add/.pdp__btn-buy,
   .pdp__assurances/.pdp__assurance, .pdp__desc(-title/-content), .pdp__related.
   No hay acordeones/wishlist/SOLD-OUT en el markup actual: no se inventa
   markup, solo se deja el hook de disabled para variant-btn.
   ========================================================================= */

.pdp__layout{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:3.5rem;
  align-items:start;
  padding-block:2.5rem 3rem;
}
@media (max-width:900px){
  .pdp__layout{grid-template-columns:1fr;gap:1.75rem;}
}

/* Galería: thumbs verticales a la izquierda + imagen principal grande */
.pdp__gallery{
  display:grid;
  grid-template-columns:5.5rem 1fr;
  gap:1rem;
  align-items:start;
  position:relative;       /* ancla del carrusel de thumbs (absolute) */
}
@media (max-width:900px){
  .pdp__gallery{grid-template-columns:1fr;}
}
.pdp__main-image{
  grid-column:2;
  grid-row:1;
  background:var(--color-surface-media);
  border-radius:var(--radius-md);
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  aspect-ratio:4/5;
}
.pdp__main-image img{
  width:100%;height:100%;
  object-fit:cover;
}
.pdp__img-placeholder{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  color:var(--color-text-faint);
}
/* Riel de thumbs = carrusel vertical con flechas minimal arriba/abajo.
   El viewport (.pdp__thumbnails) recibe su alto por JS = N thumbs ENTEROS
   (nunca corta una imagen); el riel completo queda ≤ alto de la foto. */
.pdp__thumb-rail{
  grid-column:1;
  grid-row:1;
  align-self:start;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.4rem;
  width:5.5rem;
}
.pdp__thumb-nav{
  flex:0 0 auto;
  width:5.5rem;
  height:1.4rem;
  display:flex;
  align-items:center;
  justify-content:center;
  border:none;
  background:var(--color-surface-media);
  color:var(--color-text);
  border-radius:var(--radius-sm);
  cursor:pointer;
  transition:opacity .2s ease,color .2s ease,background .2s ease;
}
.pdp__thumb-nav:hover{color:var(--color-accent);background:var(--color-surface);}
.pdp__thumb-nav:disabled{opacity:.28;cursor:default;pointer-events:none;}
.pdp__thumbnails{
  display:flex;
  flex-direction:column;
  gap:.6rem;
  width:100%;
  overflow-y:auto;
  overscroll-behavior:contain;
  scroll-snap-type:y mandatory;   /* reposo siempre en thumb entero */
  scrollbar-width:none;           /* flechas son la señal; sin scrollbar */
}
.pdp__thumbnails::-webkit-scrollbar{width:0;height:0;}
@media (max-width:900px){
  .pdp__thumb-rail{
    grid-column:1;grid-row:2;order:2;
    width:auto;
    flex-direction:row;
    flex-wrap:wrap;
  }
  .pdp__thumb-nav{display:none;}   /* móvil: fila envolvente, sin flechas */
  .pdp__thumbnails{
    flex-direction:row;
    flex-wrap:wrap;
    overflow:visible;
    height:auto !important;
  }
  .pdp__main-image{grid-column:1;grid-row:1;order:1;}
}
.pdp__thumb{
  display:block;
  width:5.5rem;height:5.5rem;
  flex:0 0 5.5rem;          /* no comprimir dentro del carrusel con scroll */
  scroll-snap-align:start;
  padding:0;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  background:var(--color-surface-media);
  overflow:hidden;
  cursor:pointer;
  transition:border-color .2s ease;
}
.pdp__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.pdp__thumb:hover{border-color:var(--color-accent-lt);}
.pdp__thumb--active{border-color:var(--color-accent);border-width:2px;}
/* Tile AR = último ítem del carrusel: lanza el visor 3D/cámara */
.pdp__thumb--ar{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.15rem;
  background:var(--color-accent);
  color:var(--color-accent-contrast,#fff);
  border-color:var(--color-accent);
}
.pdp__thumb--ar:hover{filter:brightness(1.06);border-color:var(--color-accent);}
.pdp__thumb--ar .pdp__thumb-ar-label{
  font-size:.68rem;font-weight:600;letter-spacing:.04em;line-height:1;
}
/* olive-luxe: el launcher es el tile → ocultar el botón nativo del panel.
   El wrapper .pdp__ar se vuelve transparente (el modal va teleportado a body). */
.pdp__ar{display:contents;}
.pdp__ar-btn{display:none;}
/* Estilos del modal/visor AR (portados de dawn; olive-luxe no cargaba el CSS
   del panel _platform → el modal salía sin estilos bajo el footer). */
/* Tipografía del theme: los <button>/<input> no heredan font-family, y el body
   de olive-luxe es serif (Newsreader) → forzar la fuente de UI (Quicksand). */
.pdp__ar-modal-inner,
.pdp__ar-modal-inner button,
.pdp__ar-modal-inner input,
.pdp__ar-modal-inner label { font-family:var(--font-ui, inherit); }
.pdp__ar-modal { position:fixed; inset:0; background:rgba(15,23,42,.6); z-index:9999;
  display:flex; align-items:center; justify-content:center; padding:20px; }
.pdp__ar-modal-inner { position:relative; background:#fff; border-radius:14px; width:min(680px,100%);
  max-height:calc(100vh - 40px); overflow-y:auto; padding:16px; box-shadow: var(--shadow-lg); }
.pdp__ar-close { position:absolute; top:8px; right:12px; font-size:28px; line-height:1;
  background:none; border:none; cursor:pointer; color:#64748b; z-index:1; }
[x-cloak] { display:none !important; }
.pdp__ar-cam-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px;
  margin-top:12px; padding:10px 18px; border-radius:10px; border:none; cursor:pointer;
  background:var(--color-accent, #6b7a52); color:#fff; font-weight:600; font-size:14px; }
.pdp__ar-cam-btn[disabled] { opacity:.6; cursor:default; }
.pdp__ar-cam-btn--ghost { background:#fff; color:var(--color-accent, #6b7a52);
  border:1px solid var(--color-accent, #6b7a52); }
.pdp__ar-cam-btn--shoot { background:#0f172a; box-shadow:0 4px 14px -3px rgba(15,23,42,.5); }
.pdp__ar-cam-btn--shoot:hover { background:#1e293b; }
.pdp__ar-note { margin-top:8px; font-size:12px; color:#64748b; text-align:center; }
.pdp__ar-cam { display:flex; flex-direction:column; align-items:center; }
.pdp__ar-cam-stage { position:relative; width:100%; max-width:640px; aspect-ratio:4/3;
  background:#0f172a; border-radius:12px; overflow:hidden;
  transform:scaleX(-1); }
.pdp__ar-video, .pdp__ar-overlay { position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; }
.pdp__ar-overlay { pointer-events:none; }
.pdp__ar-cam-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-top:12px; }
.pdp__ar-photo { display:flex; flex-direction:column; align-items:center; gap:16px; padding:4px 0 8px; }
.pdp__ar-photo-frame { position:relative; width:100%; max-width:460px; }
.pdp__ar-photo-img { width:100%; border-radius:16px; box-shadow:0 10px 30px -8px rgba(15,23,42,.35); display:block; }
.pdp__ar-photo-badge { position:absolute; top:12px; left:12px; display:inline-flex; align-items:center; gap:5px;
  background:rgba(16,185,129,.95); color:#fff; font-size:12px; font-weight:700; padding:5px 10px; border-radius:999px;
  box-shadow: var(--shadow-sm); backdrop-filter:blur(2px); }
.pdp__ar-photo-title { margin:0; font-size:15px; font-weight:700; color:#0f172a; letter-spacing:-.01em; }
.pdp__ar-photo-actions { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; width:100%; max-width:460px; }
.pdp__ar-act { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:46px; padding:0 14px;
  border-radius:12px; font-size:14px; font-weight:700; cursor:pointer; border:1.5px solid transparent;
  transition:transform .08s ease, box-shadow .15s ease, background .15s ease; }
.pdp__ar-act:active { transform:scale(.97); }
.pdp__ar-act:disabled { opacity:.6; cursor:default; }
.pdp__ar-act svg { flex:none; }
.pdp__ar-act--wa { background:#25D366; color:#fff; box-shadow:0 4px 14px -3px rgba(37,211,102,.6); }
.pdp__ar-act--wa:hover { background:#1ebe5b; box-shadow:0 6px 18px -3px rgba(37,211,102,.7); }
.pdp__ar-act--share { background:var(--color-accent, #4F46E5); color:#fff; box-shadow:0 4px 14px -3px rgba(79,70,229,.3); }
.pdp__ar-act--share:hover { filter:brightness(.95); }
.pdp__ar-act--download { background:#fff; color:#0f172a; border-color:#e2e8f0; }
.pdp__ar-act--download:hover { background:#f8fafc; border-color:#cbd5e1; }
.pdp__ar-act--retake { background:#fff; color:#64748b; border-color:#e2e8f0; }
.pdp__ar-act--retake:hover { background:#f8fafc; color:#475569; }
@media (max-width:380px){ .pdp__ar-photo-actions { grid-template-columns:1fr; } }
.pdp__ar-adjust { width:100%; max-width:640px; margin-top:12px; }
.pdp__ar-adjust-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.pdp__ar-reset-btn { flex:none; padding:6px 12px; border:1px solid #cbd5e1; border-radius:8px; background:#fff; color:#475569; font-size:12px; font-weight:600; cursor:pointer; }
.pdp__ar-reset-btn:hover { background:#f1f5f9; }
.pdp__ar-adjust-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px 16px; }
.pdp__ar-adjust-grid label { display:flex; flex-direction:column; gap:4px; font-size:12px; color:#475569; }
.pdp__ar-adjust-grid input[type=range] { width:100%; }
@media (max-width:480px){ .pdp__ar-adjust-grid { grid-template-columns:1fr; } }
/* Modo oscuro del modal AR: relativo al modo actual del theme (html.dark).
   Superficies/textos claros fijos → tokens que se voltean. La marca
   (WhatsApp verde, disparador negro, badge) se mantiene en ambos modos. */
html.dark .pdp__ar-modal-inner { background:var(--color-bg-white); color:var(--color-text); }
html.dark .pdp__ar-close { color:var(--color-text-faint); }
html.dark .pdp__ar-note { color:var(--color-text-soft); }
html.dark .pdp__ar-cam-btn--ghost { background:var(--color-bg-white); }
html.dark .pdp__ar-photo-title { color:var(--color-text); }
html.dark .pdp__ar-act--download { background:var(--color-bg-white); color:var(--color-text); border-color:var(--color-border); }
html.dark .pdp__ar-act--download:hover { background:var(--color-surface-media); border-color:var(--color-border); }
html.dark .pdp__ar-act--retake { background:var(--color-bg-white); color:var(--color-text-soft); border-color:var(--color-border); }
html.dark .pdp__ar-act--retake:hover { background:var(--color-surface-media); color:var(--color-text); }
html.dark .pdp__ar-reset-btn { background:var(--color-bg-white); color:var(--color-text-soft); border-color:var(--color-border); }
html.dark .pdp__ar-reset-btn:hover { background:var(--color-surface-media); }
html.dark .pdp__ar-adjust-grid label { color:var(--color-text-soft); }

/* Columna de info */
.pdp__info{padding-top:.25rem;}
.pdp__vendor{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  color:var(--color-text-soft);
  margin-bottom:.5rem;
}
.pdp__title{
  font-family:var(--font-heading);
  text-transform:uppercase;
  font-weight:500;
  font-size:1.6rem;
  letter-spacing:.03em;
  line-height:1.3;
  margin-bottom:.5rem;
}
.pdp__meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5em;
  font-family:var(--font-ui);
  font-size:.8rem;
  color:var(--color-text-soft);
  margin-bottom:.75rem;
}
.pdp__stars{display:inline-flex;align-items:center;gap:.35em;color:var(--color-text);}

.pdp__price{
  font-family:var(--font-heading);
  font-size:1.35rem;
  color:var(--color-text);
  margin-bottom:1.25rem;
}
.pdp__price-current{font-family:var(--font-heading);}
.pdp__price-compare{
  margin-left:.6em;
  color:var(--color-text-faint);
  text-decoration:line-through;
  font-size:1rem;
}
.pdp__price-badge{
  margin-left:.6em;
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:.65rem;
  color:var(--color-sale);
  border:1px solid var(--color-sale);
  border-radius:var(--radius-sm);
  padding:.15em .5em;
  vertical-align:middle;
}

.pdp__short-desc{
  font-family:var(--font-heading);
  line-height:1.8;
  color:var(--color-text-soft);
  margin-bottom:1.5rem;
}

.pdp__cuotas{
  display:flex;align-items:center;gap:.5em;
  font-family:var(--font-ui);
  font-size:.8rem;
  color:var(--color-text-soft);
  margin-bottom:1.25rem;
}
.pdp__cuotas svg{flex-shrink:0;color:var(--color-accent);}

.pdp__variants{margin-bottom:1.5rem;}
.variant-btn{
  min-width:3.25rem;
  border-radius:var(--radius-sm);
}
.variant-btn[disabled],.variant-btn.variant-btn--disabled{
  color:var(--color-text-faint);
  background:var(--color-bg-alt);
  border-color:var(--color-border);
  text-decoration:line-through;
  cursor:not-allowed;
  opacity:.65;
}

.pdp__qty{margin-bottom:1.5rem;}
.pdp__qty-label{
  display:block;
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.75rem;
  color:var(--color-text-soft);
  margin-bottom:.5rem;
}

/* Botones ATC/Comprar: full-width, apilados, oliva */
.pdp__cta{
  flex-direction:column;
  gap:.75rem;
  margin-bottom:1.5rem;
}
.pdp__btn-add,.pdp__btn-buy,.product-detail__add-btn,.product-detail__buy-btn{
  width:100%;
  letter-spacing:.14em;
}

.pdp__assurances{
  display:flex;
  flex-direction:column;
  gap:.75rem;
  padding-block:1.25rem;
  border-top:1px solid var(--color-border);
  margin-bottom:1.5rem;
}
.pdp__assurance{
  display:flex;align-items:center;gap:.6em;
  font-family:var(--font-ui);
  font-size:.8rem;
  color:var(--color-text-soft);
}
.pdp__assurance svg{width:1.1rem;height:1.1rem;flex-shrink:0;color:var(--color-accent);}

.pdp__desc{
  padding-top:1.5rem;
  border-top:1px solid var(--color-border);
}
.pdp__desc-title{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.8rem;
  font-weight:500;
  color:var(--color-text);
  margin-bottom:.75rem;
}
.pdp__desc-content{
  font-family:var(--font-heading);
  line-height:1.8;
  color:var(--color-text-soft);
}

.pdp__related{margin-top:4rem;}

.breadcrumb{margin-top:1.5rem;font-family:var(--font-ui);}

/* =========================================================================
   PLP — Colección (referencia: onlytheblind.com otb-plp.jpeg)
   Markup real: themes/dawn/templates/collection.html (idem, heredado).
   Clases: .collection-hero(__overlay/__content/__title/__subtitle/__cta),
   .collection__head/.collection__count, .cat-chips (ya estilado arriba),
   .plp-toolbar(__sort), .plp-layout(--filtered)/.plp-main,
   .facets-sidebar/.facets__mobile-btn/.facets__backdrop/.facets__panel
   (.facet-group* ya estilado arriba), .product-grid (ya estilado),
   .empty-state.
   ========================================================================= */

.collection-hero{
  position:relative;
  min-height:26rem;
  display:flex;align-items:center;justify-content:center;
  background:var(--color-surface-media);
  overflow:hidden;
  margin-bottom:2.5rem;
}
.collection-hero__overlay{
  position:absolute;inset:0;
  background:rgba(28,28,28,.22);
}
.collection-hero__content{
  position:relative;
  text-align:center;
  color:#fff;
}
.collection-hero__title{
  font-family:var(--font-heading);
  font-size:2.5rem;
  letter-spacing:.02em;
  margin-bottom:.5rem;
}
.collection-hero__subtitle{
  font-family:var(--font-ui);
  font-size:.95rem;
  opacity:.9;
  margin-bottom:1.25rem;
}

.collection__head{
  text-align:center;
  padding-block:2.5rem 1rem;
}
.collection__head h1{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:500;
  font-size:1.15rem;
}
.collection__count{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.72rem;
  color:var(--color-text-soft);
  margin-top:.4rem;
}

.plp-toolbar{
  display:flex;flex-wrap:wrap;
  align-items:center;justify-content:space-between;
  gap:1rem;
  padding-block:1rem;
  margin-bottom:1.5rem;
  border-bottom:1px solid var(--color-border);
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.75rem;
  color:var(--color-text-soft);
}
.plp-toolbar .collection__count{margin-top:0;}
.plp-toolbar__sort{
  display:flex;align-items:center;gap:.6em;
}
.plp-toolbar__sort select{
  border:none;
  background:transparent;
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.75rem;
  color:var(--color-text);
  padding:.25em .25em .25em 0;
}

.plp-layout{
  display:block;
}
.plp-layout--filtered{
  display:grid;
  grid-template-columns:16rem 1fr;
  gap:2.5rem;
  align-items:start;
  padding-bottom:4rem;
}
@media (max-width:860px){
  .plp-layout--filtered{grid-template-columns:1fr;}
}
.plp-main{min-width:0;}

.facets-sidebar{position:relative;}
.facets__mobile-btn{
  display:none;
  align-items:center;gap:.5em;
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.75rem;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  padding:.6em 1em;
  margin-bottom:1rem;
  color:var(--color-text);
}
@media (max-width:860px){
  .facets__mobile-btn{display:inline-flex;}
}
.facets__backdrop{
  display:none;
}
.facets__panel-head{
  display:none;
  align-items:center;justify-content:space-between;
  padding-bottom:1rem;
  margin-bottom:1rem;
  border-bottom:1px solid var(--color-border);
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.85rem;
}
.facets__active{margin-bottom:1rem;}
@media (max-width:860px){
  .facets__panel{
    position:fixed;
    inset:0 15% 0 0;
    z-index:60;
    background:var(--color-bg-white);
    padding:1.5rem;
    overflow-y:auto;
    transform:translateX(-100%);
    transition:transform .25s ease;
  }
  .facets__panel.is-open{transform:translateX(0);}
  .facets__panel-head{display:flex;}
  .facets__backdrop{
    display:block;
    position:fixed;inset:0;
    background:rgba(28,28,28,.4);
    z-index:55;
  }
}

.empty-state{
  text-align:center;
  padding-block:4rem;
  color:var(--color-text-soft);
}
.empty-state p{margin-bottom:1.25rem;}

/* ===== Footer: Newsletter inline ===== */
.footer-newsletter h4{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:500;
  font-size:.75rem;
  color:#fff;
  margin:0 0 1.1rem;
}
.footer-newsletter__text{
  font-family:var(--font-body);
  font-size:.85rem;
  color:rgba(237,237,226,.75);
  line-height:1.6;
  margin:0 0 1.25rem;
}
.footer-newsletter__form{
  display:flex;
  gap:0;
}
.footer-newsletter__input{
  flex:1;
  background:transparent;
  border:1px solid rgba(237,237,226,.35);
  border-right:0;
  color:#fff;
  font-family:var(--font-ui);
  font-size:.8rem;
  letter-spacing:.04em;
  padding:.7em 1em;
  border-radius:0;
}
.footer-newsletter__input::placeholder{
  color:rgba(237,237,226,.5);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.72rem;
}
.footer-newsletter__input:focus{
  outline:none;
  border-color:rgba(237,237,226,.6);
  box-shadow:none;
}
.footer-newsletter__btn{
  background:#fff;
  color:var(--color-accent);
  border:1px solid #fff;
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.7rem;
  font-weight:500;
  padding:.7em 1.5em;
  cursor:pointer;
  transition:background .2s ease,color .2s ease;
  white-space:nowrap;
}
.footer-newsletter__btn:hover{
  background:transparent;
  color:#fff;
}
.footer-newsletter__btn:disabled{
  opacity:.5;
  cursor:not-allowed;
}
.footer-newsletter__msg{
  font-family:var(--font-ui);
  font-size:.8rem;
  margin-top:.75rem;
}
.footer-newsletter__msg--success{color:#fff;}
.footer-newsletter__msg--error{color:rgba(255,200,200,.9);}

/* ===== Footer: Social icons ===== */
.footer-social{
  display:flex;
  align-items:center;
  gap:1.25rem;
  padding-top:2.5rem;
  padding-bottom:1.5rem;
}
.footer-social a{
  color:rgba(237,237,226,.65);
  display:inline-flex;
  transition:color .2s ease;
}
.footer-social a:hover{color:#fff;}
.footer-social svg{
  width:1.25rem;
  height:1.25rem;
}

/* ===== Footer: Locale selector ===== */
.footer-locale{
  display:flex;
  align-items:center;
  gap:1.5rem;
}
.footer-locale__selector{
  position:relative;
}
.footer-locale__btn{
  display:inline-flex;
  align-items:center;
  gap:.4em;
  color:inherit;
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.68rem;
  background:none;
  border:none;
  cursor:pointer;
  padding:0;
}
.footer-locale__btn:hover{color:#fff;}
.footer-locale__dropdown{
  position:absolute;
  bottom:100%;
  left:0;
  margin-bottom:.5rem;
  background:var(--color-accent-dk);
  border:1px solid rgba(237,237,226,.2);
  min-width:10rem;
  padding:.4rem 0;
  z-index:10;
}
.footer-locale__item{
  display:block;
  width:100%;
  text-align:left;
  padding:.5em 1em;
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.7rem;
  color:rgba(237,237,226,.8);
  background:none;
  border:none;
  cursor:pointer;
}
.footer-locale__item:hover{color:#fff;background:rgba(255,255,255,.07);}
.footer-locale__item.is-active{color:#fff;}
.footer-locale__currency{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.68rem;
  color:rgba(237,237,226,.5);
}

@media (max-width:560px){
  .site-footer__grid{grid-template-columns:1fr;}
  .newsletter-block__form{flex-direction:column;}
  .footer-newsletter__form{flex-direction:column;}
  .footer-newsletter__input{border-right:1px solid rgba(237,237,226,.35);}
  .footer-social{flex-wrap:wrap;}
  .footer-locale{flex-wrap:wrap;gap:1rem;}
}

/* ============================================================
   ADD-ON: Cart, Search, Account, 404, Wishlist, Checkout, Otras
   ============================================================ */

:root{
  --color-primary:var(--color-accent);
  --color-primary-dk:var(--color-accent-dk);
  --color-text-light:var(--color-text-soft);
  --radius-md:var(--radius-sm);
  --fw-semibold:600;
  --fw-bold:700;
  --color-success:#5C7A52;
  --color-success-bg:#EEF1E9;
  --color-success-border:#C9D4C0;
  --color-success-text:#3E5A36;
  --color-error-bg:#F6E9E7;
  --color-error-border:#DEBBB4;
  --color-error-text:var(--color-error);
}

.btn--secondary{background:var(--color-bg-alt);border-color:var(--color-bg-alt);color:var(--color-text);}
.btn--secondary:hover{background:var(--color-border);border-color:var(--color-border);}
.btn--ghost{background:transparent;border-color:transparent;color:var(--color-text-soft);}
.btn--ghost:hover{color:var(--color-accent);}

.form-group{margin-bottom:1.25rem;}
.form-group label{display:block;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:var(--color-text-soft);margin-bottom:.5em;}
.form-group input,.form-group select,.form-group textarea{width:100%;font-family:var(--font-body);font-size:.95rem;padding:.85em 1em;background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);transition:border-color .2s ease,box-shadow .2s ease;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(101,101,81,.15);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
@media (max-width:640px){.form-row{grid-template-columns:1fr;}}
.hint{font-size:12px;color:var(--color-text-faint);margin-top:.4em;}
.error-banner{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error-text);border-radius:var(--radius-sm);padding:1em 1.25em;font-size:.9rem;margin-bottom:1.5rem;}
.success-banner{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success-text);border-radius:var(--radius-sm);padding:1em 1.25em;font-size:.9rem;margin-bottom:1.5rem;}

/* ============================================================
   1. CART
   ============================================================ */
.cart-page{padding-block:3rem 5rem;}
.cart-page h1{font-family:var(--font-heading);font-size:var(--text-4xl);font-weight:600;margin-bottom:2rem;}
.cart-page__count{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:var(--color-text-soft);margin-left:.75em;}
.cart-layout{display:grid;grid-template-columns:1fr 340px;gap:3rem;align-items:start;}
@media (max-width:900px){.cart-layout{grid-template-columns:1fr;}}
.cart-items{border-top:1px solid var(--color-border);}
.cart-table{width:100%;border-collapse:collapse;}
.cart-table thead th{text-align:left;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.08em;font-size:10px;color:var(--color-text-faint);font-weight:500;padding:1em .5em;border-bottom:1px solid var(--color-border);}
.cart-table tbody tr{border-bottom:1px solid var(--color-border);}
.cart-table td{padding:1.25em .5em;vertical-align:middle;}
.cart-td-img{width:88px;}
.cart-item-img{width:80px;height:100px;object-fit:cover;background:var(--color-surface-media);border-radius:var(--radius-sm);}
.cart-item-title{font-family:var(--font-heading);font-size:1rem;color:var(--color-text);}
.cart-item-title:hover{color:var(--color-accent);}
.cart-td-price,.cart-td-subtotal{font-family:var(--font-heading);font-size:.9rem;}
.qty-control{display:inline-flex;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);}
.qty-btn{width:2.2rem;height:2.2rem;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--color-text);font-size:1rem;}
.qty-btn:hover{background:var(--color-bg-alt);}
.qty-input{width:2.5rem;text-align:center;border:none;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);height:2.2rem;font-family:var(--font-body);font-size:.9rem;background:transparent;color:var(--color-text);-moz-appearance:textfield;}
.qty-input::-webkit-outer-spin-button,
.qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.cart-remove-btn{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;color:var(--color-text-faint);}
.cart-remove-btn:hover{color:var(--color-error);}

/* Acento del addon de regalos alineado a la paleta oliva (gift.css trae naranja por defecto) */
:root{--gift:var(--color-accent);--gift-strong:var(--color-accent-dk);--gift-soft:var(--color-surface-card);--gift-soft2:var(--color-bg-alt);--gift-border:var(--color-border);}
.cart-summary{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:2rem;}
.cart-summary__title{font-family:var(--font-heading);font-size:1.25rem;margin-bottom:1.5rem;}
.cart-coupon{margin-bottom:1.5rem;}
.cart-coupon__row{display:flex;gap:.5rem;}
.cart-coupon__input{flex:1;padding:.75em 1em;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-white);font-size:.85rem;}
.cart-coupon__input:focus{outline:none;border-color:var(--color-accent);}
.cart-coupon__btn{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:11px;padding:0 1.25em;background:var(--color-text);color:var(--color-bg-white);border-radius:var(--radius-sm);}
.cart-coupon__btn:hover{background:var(--color-accent);}
.cart-coupon__msg{margin-top:.6em;font-size:12px;}
.cart-coupon__msg--success{color:var(--color-success-text);}
.cart-coupon__msg--error{color:var(--color-error-text);}
.cart-summary__row{display:flex;justify-content:space-between;padding:.6em 0;font-size:.9rem;color:var(--color-text-soft);border-bottom:1px solid var(--color-border);}
.cart-summary__shipping{color:var(--color-text-faint);font-style:italic;}
.cart-summary__total{border-bottom:none;padding-top:1em;font-family:var(--font-heading);font-size:1.15rem;color:var(--color-text);}
.cart-checkout-btn{width:100%;margin-top:1.25rem;}
.cart-continue-link{display:block;text-align:center;margin-top:1rem;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:11px;color:var(--color-text-soft);}
.cart-continue-link:hover{color:var(--color-accent);}
.cart-empty{text-align:center;padding-block:5rem;color:var(--color-text-soft);}
.cart-empty svg{width:3rem;height:3rem;margin:0 auto 1.5rem;color:var(--color-text-faint);}
.cart-empty__title{font-family:var(--font-heading);font-size:1.5rem;color:var(--color-text);margin-bottom:.5em;}
.cart-empty__subtitle{margin-bottom:2rem;}

/* ============================================================
   2. SEARCH
   ============================================================ */
.search-page{padding-block:3rem 5rem;}
.search-page h1{font-family:var(--font-heading);font-size:var(--text-4xl);margin-bottom:1.5rem;}
.search-form{display:flex;gap:.75rem;max-width:640px;margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border);}
.search-form input[type="search"],.search-form input[type="text"]{flex:1;padding:.9em 1.1em;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-white);font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:12px;color:var(--color-text);}
.search-form input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(101,101,81,.15);}
.search-page p{color:var(--color-text-soft);font-size:.9rem;margin-bottom:2rem;}

/* ============================================================
   3. CUENTA
   ============================================================ */
.account-layout{display:grid;grid-template-columns:220px 1fr;gap:3rem;padding-block:3rem 5rem;align-items:start;}
@media (max-width:800px){.account-layout{grid-template-columns:1fr;}}
.account-layout--auth{display:flex;justify-content:center;padding-block:5rem;}
.account-layout--narrow{grid-template-columns:1fr;max-width:640px;margin-inline:auto;}
.account-card{width:100%;max-width:420px;background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:2.75rem 2.5rem;}
.account-card h1{font-family:var(--font-heading);font-size:1.75rem;text-align:center;margin-bottom:.5em;}
.account-card > p{text-align:center;color:var(--color-text-soft);font-size:.9rem;margin-bottom:2rem;}
.btn-account{width:100%;border-radius:var(--radius-sm);}
.account-links{text-align:center;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border);font-size:.85rem;color:var(--color-text-soft);}
.account-links a{color:var(--color-accent);}
.account-links a:hover{color:var(--color-accent-dk);}
.account-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:2rem;grid-column:1/-1;}
.account-header h1{font-family:var(--font-heading);font-size:1.75rem;}
.btn-logout{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:11px;color:var(--color-text-soft);}
.btn-logout:hover{color:var(--color-error);}
.account-nav{display:flex;flex-direction:column;gap:.25rem;border-right:1px solid var(--color-border);padding-right:1.5rem;}
.account-nav a{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:12px;color:var(--color-text-soft);padding:.65em .5em;border-radius:var(--radius-sm);}
.account-nav a:hover{color:var(--color-text);background:var(--color-bg-alt);}
.account-nav a.active{color:var(--color-accent);background:var(--color-surface-card);}
.account-section{margin-bottom:2.5rem;}
.orders-table{width:100%;border-collapse:collapse;font-size:.9rem;}
.orders-table th{text-align:left;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:10px;color:var(--color-text-faint);padding:.75em .5em;border-bottom:1px solid var(--color-border);}
.orders-table td{padding:1em .5em;border-bottom:1px solid var(--color-border);}
.status-badge{display:inline-block;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.05em;font-size:10px;padding:.35em .75em;border-radius:var(--radius-pill);background:var(--color-bg-alt);color:var(--color-text-soft);}
.status-badge.status-completed,.status-badge.status-delivered,.status-badge.status-paid{background:var(--color-success-bg);color:var(--color-success-text);}
.status-badge.status-pending,.status-badge.status-processing{background:#F3ECD8;color:#7A6420;}
.status-badge.status-cancelled,.status-badge.status-refunded{background:var(--color-error-bg);color:var(--color-error-text);}
.form-section{padding-bottom:2rem;margin-bottom:2rem;border-bottom:1px solid var(--color-border);}
.form-section:last-child{border-bottom:none;}
.form-section h2{font-family:var(--font-heading);font-size:1.2rem;margin-bottom:1.25rem;}
.address-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:2rem;}
@media (max-width:640px){.address-grid{grid-template-columns:1fr;}}
.address-card{position:relative;background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:1.5rem;font-size:.9rem;line-height:1.6;}
.address-card.is-default{border-color:var(--color-accent);}
.default-badge{display:inline-block;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:9px;color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-pill);padding:.25em .6em;margin-bottom:.75em;}
.address-actions{display:flex;gap:1rem;margin-top:1rem;font-size:12px;}
.address-actions a,.address-actions button{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-soft);}
.address-actions a:hover{color:var(--color-accent);}
.btn-delete:hover{color:var(--color-error);}
.new-address-form{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.75rem;}
.checkbox-group{display:flex;align-items:center;gap:.6em;margin-bottom:1.25rem;font-size:.85rem;}
.back-link{display:inline-block;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:11px;color:var(--color-text-soft);margin-bottom:1.5rem;}
.back-link:hover{color:var(--color-accent);}
.order-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;padding:1.5rem;background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:2rem;}
.order-meta dt{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:10px;color:var(--color-text-faint);margin-bottom:.3em;}
.order-meta dd{font-size:.9rem;color:var(--color-text);}
.section-title{font-family:var(--font-heading);font-size:1.1rem;margin:2rem 0 1rem;}
.items-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-bottom:2rem;}
.items-table th{text-align:left;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:10px;color:var(--color-text-faint);padding:.6em .5em;border-bottom:1px solid var(--color-border);}
.items-table td{padding:.9em .5em;border-bottom:1px solid var(--color-border);}
.totals{max-width:320px;margin-left:auto;}
.total-row{display:flex;justify-content:space-between;padding:.5em 0;font-size:.9rem;color:var(--color-text-soft);}
.total-row.final{border-top:1px solid var(--color-border);margin-top:.5em;padding-top:1em;font-family:var(--font-heading);font-size:1.1rem;color:var(--color-text);}
.address-block{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:1.25rem;font-size:.85rem;line-height:1.6;}

/* ============================================================
   4. 404
   ============================================================ */
.error-page{display:flex;justify-content:center;padding-block:6rem;}
.error-page__inner{text-align:center;max-width:420px;}
.error-page__code{font-family:var(--font-heading);font-size:5rem;color:var(--color-accent-lt);line-height:1;margin-bottom:.5rem;}
.error-page__title{font-family:var(--font-heading);font-size:1.5rem;margin-bottom:.75em;}
.error-page__text{color:var(--color-text-soft);margin-bottom:2rem;}
.error-page__actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}

/* ============================================================
   5. WISHLIST (incluye markup inyectado por JS)
   ============================================================ */
.wl-stage{padding-block:3rem 5rem;}
.wl__head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem;}
.wl__heading{display:flex;align-items:baseline;gap:.75em;flex-wrap:wrap;}
.wl__title{font-family:var(--font-heading);font-size:var(--text-4xl);}
.wl__sub{color:var(--color-text-soft);font-size:.9rem;}
.wl__count-pill{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:10px;background:var(--color-bg-alt);color:var(--color-text-soft);border-radius:var(--radius-pill);padding:.3em .8em;}
.wl__actions{display:flex;gap:.75rem;}
.wl__divider{border:none;border-top:1px solid var(--color-border);margin:1.5rem 0 2.5rem;}
.wl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem 1.5rem;}
@media (max-width:1024px){.wl-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem 1rem;}}
.wl-empty{display:none;text-align:center;padding-block:5rem;color:var(--color-text-soft);}
.wl-empty__icon{width:3rem;height:3rem;margin:0 auto 1.5rem;color:var(--color-text-faint);}
.wl-empty__title{font-family:var(--font-heading);font-size:1.5rem;color:var(--color-text);margin-bottom:.5em;}
.wl-empty__text{margin-bottom:2rem;}
.wl-recs{margin-top:4rem;padding-top:2.5rem;border-top:1px solid var(--color-border);}
.wl-recs__head{font-family:var(--font-heading);font-size:1.25rem;margin-bottom:1.5rem;}
.wl-toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%,120%);background:var(--color-text);color:var(--color-bg-white);font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:11px;padding:.9em 1.5em;border-radius:var(--radius-sm);transition:transform .3s ease;z-index:200;}
.wl-toast.visible{transform:translate(-50%,0);}
.wl-card-wrap{transition:opacity .25s ease,transform .25s ease;}
.wl-card-wrap.is-removing{opacity:0;transform:scale(.95);}
.wl-card{position:relative;}
.wl-card__image{position:relative;aspect-ratio:3/4;background:var(--color-surface-media);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:1rem;}
.wl-card__image img{width:100%;height:100%;object-fit:cover;}
.wl-card__image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-faint);}
.wl-card__badges{position:absolute;top:.75rem;left:.75rem;display:flex;gap:.4rem;z-index:2;}
.wl-tag{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:10px;padding:.4em .6em;border-radius:var(--radius-sm);}
.wl-tag--sale{background:var(--color-sale);color:var(--color-on-accent);}
.wl-heart{position:absolute;top:.75rem;right:.75rem;z-index:2;width:1.9rem;height:1.9rem;display:flex;align-items:center;justify-content:center;background:var(--color-bg-white);border-radius:50%;color:var(--color-accent);}
.wl-heart:hover{color:var(--color-error);}
.wl-card__body{text-align:center;}
.wl-card__vendor{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.1em;font-size:10px;color:var(--color-text-faint);margin-bottom:.35em;}
.wl-card__title{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.08em;font-weight:500;font-size:12px;color:var(--color-text);margin-bottom:.5em;}
.wl-card__price{font-family:var(--font-heading);display:flex;align-items:baseline;justify-content:center;gap:.5em;font-size:14px;margin-bottom:.75em;}
.wl-price-current{color:var(--color-text);}
.wl-card:has(.wl-tag--sale) .wl-price-current,.wl-card__price:has(.wl-price-compare) .wl-price-current{color:var(--color-sale);}
.wl-price-compare{color:var(--color-text-faint);text-decoration:line-through;font-size:12px;}
.wl-card__add{display:flex;align-items:center;justify-content:center;gap:.5em;width:100%;padding:.7em 1em;background:var(--color-accent);color:var(--color-on-accent);border-radius:var(--radius-sm);font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.08em;font-size:11px;transition:background-color .2s ease;}
.wl-card__add:hover{background:var(--color-accent-dk);}
.wl-card__add.is-done{background:var(--color-success);}
.ico-cart,.ico-check{width:1em;height:1em;}

/* ============================================================
   6. CHECKOUT
   ============================================================ */
.minimal-header{border-bottom:1px solid var(--color-border);background:var(--color-bg-white);}
.minimal-header__inner{padding-block:1.25rem;display:flex;justify-content:center;}
.minimal-header__logo{font-family:var(--font-heading);font-size:1.4rem;color:var(--color-text);}
.checkout-layout{display:grid;grid-template-columns:1fr 380px;gap:3.5rem;padding-block:3rem 5rem;align-items:start;}
@media (max-width:900px){.checkout-layout{grid-template-columns:1fr;}}
.checkout-form{max-width:560px;}
.section-divider{border:none;border-top:1px solid var(--color-border);margin:2rem 0;}
.btn-checkout{width:100%;margin-top:1rem;}
.checkout-order{position:sticky;top:2rem;background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:2rem;}
.order-line{display:flex;gap:1rem;padding-block:1rem;border-bottom:1px solid var(--color-border);}
.order-line-img-placeholder{width:56px;height:70px;flex:none;background:var(--color-surface-media);border-radius:var(--radius-sm);}
.order-line-info{flex:1;}
.order-line-title{font-family:var(--font-heading);font-size:.9rem;margin-bottom:.3em;}
.order-line-qty{font-size:12px;color:var(--color-text-faint);}
.order-line-price{font-family:var(--font-heading);font-size:.9rem;align-self:center;}
.co-gift{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border);}
.co-gift__h{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:11px;color:var(--color-text-soft);margin-bottom:.75em;}
.co-gift__rows{display:flex;flex-direction:column;gap:.5rem;}
.co-gift__r{display:flex;justify-content:space-between;font-size:.85rem;}
.co-gift__chip{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.05em;font-size:9px;background:var(--color-bg-alt);color:var(--color-text-soft);border-radius:var(--radius-pill);padding:.25em .6em;}
.order-totals{margin-top:1rem;}
.order-total-row{display:flex;justify-content:space-between;padding:.5em 0;font-size:.9rem;color:var(--color-text-soft);}
.order-total-row.final{border-top:1px solid var(--color-border);margin-top:.5em;padding-top:1em;font-family:var(--font-heading);font-size:1.2rem;color:var(--color-text);}
.secure-badge{display:flex;align-items:center;gap:.5em;justify-content:center;margin-top:1rem;font-size:11px;color:var(--color-text-faint);}
.pm-overlay{position:fixed;inset:0;background:rgba(28,28,28,.5);display:flex;align-items:center;justify-content:center;z-index:300;}
.pm-card{background:var(--color-bg-white);border-radius:var(--radius-md);padding:2.5rem;max-width:400px;text-align:center;}
.pm-icon{width:2.5rem;height:2.5rem;margin:0 auto 1rem;color:var(--color-accent);}
.pm-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem;}
.pm-btn{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:12px;padding:.9em 1.5em;border-radius:var(--radius-sm);}
.pm-btn--wa{background:#4A5D3A;color:#fff;}
.pm-btn--email{background:var(--color-accent);color:var(--color-on-accent);}
.pm-btn--back{background:transparent;color:var(--color-text-soft);}
.confirmation-wrap{max-width:560px;margin-inline:auto;padding-block:5rem;text-align:center;}
.confirmation-icon{width:4rem;height:4rem;margin:0 auto 1.5rem;color:var(--color-success);}
.order-card{text-align:left;background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:2rem;margin-top:2rem;}
.order-items{margin:1.25rem 0;}
.order-item{display:flex;justify-content:space-between;padding:.6em 0;border-bottom:1px solid var(--color-border);font-size:.9rem;}
.order-item-name{color:var(--color-text);}
.order-item-price{color:var(--color-text-soft);}
.order-total-final{display:flex;justify-content:space-between;font-family:var(--font-heading);font-size:1.2rem;padding-top:1em;margin-top:.5em;}
.cta-group{display:flex;gap:1rem;justify-content:center;margin-top:2rem;flex-wrap:wrap;}
.checkout-auth__lead{text-align:center;color:var(--color-text-soft);margin-bottom:1.5rem;}
.checkout-auth__divider{text-align:center;position:relative;margin:1.75rem 0;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:10px;color:var(--color-text-faint);}
.checkout-auth__divider::before{content:"";position:absolute;top:50%;left:0;right:0;border-top:1px solid var(--color-border);z-index:0;}
.checkout-auth__divider span{background:var(--color-surface-card);padding:0 1em;position:relative;z-index:1;}
.checkout-auth__guest{width:100%;}
.checkout-auth__note{text-align:center;font-size:12px;color:var(--color-text-faint);margin-top:1rem;}

/* ============================================================
   7. OTRAS
   ============================================================ */
.gift-card-page{max-width:560px;margin-inline:auto;padding-block:4rem 6rem;}
.gift-card{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;}
.gift-card__header{background:var(--color-accent);color:var(--color-on-accent);padding:1.5rem 2rem;display:flex;justify-content:space-between;align-items:center;}
.gift-card__title{font-family:var(--font-heading);font-size:1.2rem;}
.gift-card__badge{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.05em;font-size:10px;border:1px solid rgba(255,255,255,.5);border-radius:var(--radius-pill);padding:.3em .8em;}
.gift-card__body{padding:2rem;text-align:center;}
.gift-card__amount{margin-bottom:1.5rem;}
.gift-card__label{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:10px;color:var(--color-text-faint);}
.gift-card__value{font-family:var(--font-heading);font-size:2.5rem;color:var(--color-text);}
.gift-card__expiry{font-size:.85rem;color:var(--color-text-soft);margin-bottom:1.5rem;}
.gift-card__date{color:var(--color-text);}
.gift-card__original{color:var(--color-text-faint);text-decoration:line-through;}
.gift-card__actions{margin-top:1.5rem;}
.gift-card__footer{padding:1.5rem 2rem;border-top:1px solid var(--color-border);}
.gift-card__note{font-size:12px;color:var(--color-text-faint);text-align:center;}

.pw-page{background:var(--color-bg);}
.pw-card{background:var(--color-bg-white)!important;border:1px solid var(--color-border)!important;border-radius:var(--radius-md)!important;}
.pw-store-name{font-family:var(--font-heading)!important;color:var(--color-text)!important;}
.pw-subtitle{color:var(--color-text-soft)!important;}
.pw-lock{color:var(--color-accent)!important;}
.pw-input{border-color:var(--color-border)!important;font-family:var(--font-body)!important;}
.pw-input:focus{border-color:var(--color-accent)!important;}
.pw-btn{background:var(--color-accent)!important;font-family:var(--font-ui)!important;text-transform:uppercase!important;letter-spacing:.08em!important;}
.pw-btn:hover{background:var(--color-accent-dk)!important;}
.pw-error{color:var(--color-error)!important;}
.pw-footer{color:var(--color-text-faint)!important;}

.lr{padding-block:3rem 6rem;}
.lr__intro{max-width:680px;margin-bottom:2.5rem;}
.lr__eyebrow{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.1em;font-size:11px;color:var(--color-accent);margin-bottom:.75em;}
.lr__title{font-family:var(--font-heading);font-size:var(--text-4xl);margin-bottom:.5em;}
.lr__lead{color:var(--color-text-soft);}
.lr__grid{display:grid;grid-template-columns:1fr 320px;gap:3rem;align-items:start;}
@media (max-width:900px){.lr__grid{grid-template-columns:1fr;}}
.lr-card{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;}
.lr-card__head{padding:1.5rem 2rem;border-bottom:1px solid var(--color-border);}
.lr-card__seq{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:11px;color:var(--color-text-faint);}
.lr-sec{padding:2rem;border-bottom:1px solid var(--color-border);}
.lr-sec:last-child{border-bottom:none;}
.lr-sec__head{display:flex;align-items:baseline;gap:.75em;margin-bottom:1.5rem;}
.lr-sec__num{font-family:var(--font-heading);font-size:1.5rem;color:var(--color-accent-lt);}
.lr-sec__title{font-family:var(--font-heading);font-size:1.15rem;}
.lr-sec__desc{color:var(--color-text-soft);font-size:.85rem;margin:-.75rem 0 1.5rem;}
.lr-fields{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;}
.lr-field{margin-bottom:0;}
.lr-field--full{grid-column:1/-1;}
.lr-field--error input,.lr-field--error select,.lr-field--error textarea{border-color:var(--color-error);}
.lr-label{display:block;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:11px;color:var(--color-text-soft);margin-bottom:.5em;}
.lr-label .req{color:var(--color-error);}
.lr-label .opt{color:var(--color-text-faint);text-transform:none;letter-spacing:0;}
.lr-input,.lr-select,.lr-textarea{width:100%;font-family:var(--font-body);font-size:.9rem;padding:.8em 1em;background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);}
.lr-input:focus,.lr-select:focus,.lr-textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(101,101,81,.15);}
.lr-doc{display:flex;gap:.5rem;}
.lr-error{color:var(--color-error);font-size:11px;margin-top:.4em;}
.lr-hint{color:var(--color-text-faint);font-size:11px;margin-top:.4em;}
.lr-check{display:flex;align-items:flex-start;gap:.6em;font-size:.85rem;}
.lr-check__txt{color:var(--color-text-soft);}
.lr-guardian{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.lr-guardian.is-open{max-height:600px;}
.lr-radio-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.lr-rcard{cursor:pointer;}
.lr-rcard__box{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:1.25rem;transition:border-color .2s ease;}
.lr-rcard input:checked ~ .lr-rcard__box,.lr-rcard__box:has(input:checked){border-color:var(--color-accent);background:var(--color-bg-white);}
.lr-rcard__top{display:flex;align-items:center;gap:.6em;margin-bottom:.5em;}
.lr-rcard__ico{color:var(--color-accent);}
.lr-rcard__name{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.05em;font-size:12px;}
.lr-rcard__desc{font-size:12px;color:var(--color-text-faint);}
.lr-inline-radios{display:flex;gap:1.5rem;}
.lr-pill{cursor:pointer;}
.lr-pill__box{display:flex;align-items:center;gap:.5em;border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:.5em 1.1em;font-size:.85rem;}
.lr-amount{display:flex;align-items:center;gap:.5em;}
.lr-amount__cur{color:var(--color-text-faint);}
.lr-foot{padding:2rem;background:var(--color-bg-alt);}
.lr-legal{font-size:12px;color:var(--color-text-soft);margin-bottom:1.5rem;line-height:1.6;}
.lr-submit{width:100%;}
.lr-aside{position:sticky;top:2rem;}
.lr-panel{background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.75rem;margin-bottom:1.25rem;}
.lr-panel__seal{text-align:center;margin-bottom:1rem;}
.lr-panel__seal-badge{display:inline-block;font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:10px;border:1px solid var(--color-accent);color:var(--color-accent);border-radius:var(--radius-pill);padding:.3em .9em;}
.lr-panel__seal-txt{font-size:11px;color:var(--color-text-faint);margin-top:.5em;}
.lr-rights li,.lr-plazo,.lr-help__row{font-size:.85rem;color:var(--color-text-soft);}
.lr-plazo{display:flex;align-items:center;gap:.75em;padding:.75em 0;}
.lr-plazo__num{font-family:var(--font-heading);font-size:1.5rem;color:var(--color-accent);}
.lr-help__row{display:flex;align-items:center;gap:.6em;padding:.5em 0;}
.lr-help__ico{color:var(--color-accent);}
.lr .label{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.06em;font-size:10px;color:var(--color-text-faint);}
.lr .value{font-size:.9rem;color:var(--color-text);}
.lr-confirm{max-width:520px;margin-inline:auto;padding-block:5rem;text-align:center;}
.lr-confirm__card{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:3rem 2rem;}
.lr-confirm__check{width:3.5rem;height:3.5rem;margin:0 auto 1.5rem;color:var(--color-success);}
.lr-confirm__title{font-family:var(--font-heading);font-size:1.5rem;margin-bottom:.5em;}
.lr-confirm__sub{color:var(--color-text-soft);margin-bottom:1.5rem;}
.lr-confirm__numbox{background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:1rem;font-family:var(--font-heading);font-size:1.25rem;margin-bottom:1.5rem;}
.lr-confirm__meta{text-align:left;margin-bottom:1.5rem;}
.lr-confirm__meta-row{display:flex;justify-content:space-between;padding:.4em 0;font-size:.85rem;color:var(--color-text-soft);}
.lr-confirm__note{font-size:12px;color:var(--color-text-faint);margin-bottom:1.5rem;}
.lr-confirm__back{display:inline-block;margin-top:1rem;}

.rte,.article-body,.page-body{font-family:var(--font-body);font-size:1.05rem;line-height:1.8;color:var(--color-text);max-width:680px;margin-inline:auto;}
.rte h2,.article-body h2,.page-body h2{font-family:var(--font-heading);font-size:1.6rem;margin:2em 0 .6em;}
.rte h3,.article-body h3,.page-body h3{font-family:var(--font-heading);font-size:1.25rem;margin:1.75em 0 .5em;}
.rte p,.article-body p,.page-body p{margin-bottom:1.4em;}
.rte a,.article-body a,.page-body a{color:var(--color-accent);text-decoration:underline;text-underline-offset:.2em;}
.rte blockquote,.article-body blockquote,.page-body blockquote{border-left:2px solid var(--color-accent);padding-left:1.5em;margin:2em 0;font-family:var(--font-heading);font-style:italic;color:var(--color-text-soft);}
.rte hr{border:0;border-top:1px solid var(--color-border);margin:2.5em auto;max-width:680px;}
.rte ul,.rte ol{max-width:680px;margin-inline:auto;padding-left:1.4em;}
.rte li+li{margin-top:.4em;}
/* Disclaimer/nota introductoria envuelta en <em> como único contenido del párrafo
   (patrón usado en las plantillas legales seed) — se lee como aviso, no como cuerpo. */
.rte>p:has(>em:only-child){max-width:680px;margin:0 auto 2.5em;padding:.9em 1.2em;background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-soft);}
.rte>p:has(>em:only-child) em{font-style:italic;}

/* Páginas de contenido (CMS pages) y artículos de blog — cabecera + contenedor.
   dawn.css y cielo.css ya traen esto; faltaba en olive-luxe (el look "sin estilo"
   reportado en /pages/* venía de acá, no de .rte que ya estaba bien). */
.page-head{text-align:center;max-width:680px;margin:3.5rem auto 3rem;}
.page-head__eyebrow{display:block;font-family:var(--font-ui);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent);margin-bottom:.75rem;}
.page-head__title{font-family:var(--font-heading);font-size:clamp(1.9rem,4vw,2.75rem);line-height:1.15;color:var(--color-text);}
.cms-article,.cms-page{max-width:760px;margin:0 auto;padding-bottom:4.5rem;}
.cms-article__back,.cms-page__back{display:inline-block;font-size:.85rem;color:var(--color-text-soft);text-decoration:none;margin-bottom:1.5rem;}
.cms-article__back:hover,.cms-page__back:hover{color:var(--color-accent);}
.cms-article__image,.cms-page__image{width:100%;border-radius:var(--radius-lg);margin-bottom:2.5rem;object-fit:cover;max-height:420px;}
.cms-article__head{text-align:center;margin:2.5rem 0 2rem;}
.cms-article__title{font-family:var(--font-heading);font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.15;}
.cms-article__meta{font-size:.9rem;color:var(--color-text-soft);display:flex;justify-content:center;gap:.5rem;margin-top:.75rem;}
.cms-article__author{font-weight:600;color:var(--color-text);}
.cms-article__dot{opacity:.5;}
.cms-article__tags{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;list-style:none;margin-top:1.25rem;padding:0;}
.cms-article__tag{font-size:.78rem;font-weight:600;padding:.3em .8em;border-radius:var(--radius-pill);background:var(--color-surface-card);color:var(--color-text-soft);}

/* Índice de blog — dawn.css/cielo.css ya lo traían, faltaba en olive-luxe. */
.blog-index{padding-bottom:4.5rem;}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;}
.blog-card{display:flex;flex-direction:column;text-decoration:none;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface-card);transition:border-color .25s ease;}
.blog-card:hover{border-color:var(--color-accent);}
.blog-card__media{aspect-ratio:4/3;overflow:hidden;background:var(--color-bg-alt);}
.blog-card__image{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.blog-card:hover .blog-card__image{transform:scale(1.045);}
.blog-card__media-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-bg-alt) 100%);opacity:.35;}
.blog-card__body{padding:1.5rem 1.5rem 1.65rem;display:flex;flex-direction:column;gap:.6rem;flex:1;}
.blog-card__title{font-family:var(--font-heading);font-size:1.25rem;line-height:1.3;color:var(--color-text);}
.blog-card__excerpt{font-family:var(--font-body);font-size:.9rem;line-height:1.6;color:var(--color-text-soft);flex:1;}
.blog-card__more{margin-top:.35rem;font-family:var(--font-ui);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-accent);transition:transform .2s ease;}
.blog-card:hover .blog-card__more{transform:translateX(3px);}
.blog-empty{text-align:center;padding:5rem 0;display:flex;flex-direction:column;align-items:center;gap:1.5rem;color:var(--color-text-soft);}
@media (max-width:900px){.blog-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.blog-grid{grid-template-columns:1fr;}}

/* ===== Edge-to-edge total + hero placeholder image (TEMPORAL — reemplazar por la imagen final del comerciante) ===== */
html,body{margin:0;}
.hero.hero-c{
  min-height:100vh;
  background:
    linear-gradient(rgba(20,18,15,.30),rgba(20,18,15,.48)),
    url("img/hero-placeholder.jpg") center/cover no-repeat !important;
}
.hero-c .hero__eyebrow{color:rgba(255,255,255,.82) !important;}
.hero-c .hero__title{color:#fff !important;text-shadow:0 1px 24px rgba(0,0,0,.30);}
.hero-c .hero__lead{color:rgba(255,255,255,.92) !important;}
.hero-c .hero__inner .btn{
  background:transparent !important;color:#fff !important;border:none;
  border-bottom:1px solid rgba(255,255,255,.7);border-radius:0;padding:0 0 2px;
  text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;
}
.hero-c .hero__inner .btn:hover{border-bottom-color:#fff;}
.hero-c__arrow{color:#fff !important;border-color:rgba(255,255,255,.55) !important;background:transparent !important;}

/* ===== Cart toast (fijo, oculto por default; .visible lo muestra — cart.js) ===== */
.cart-toast{
  position:fixed;right:1.5rem;bottom:1.5rem;z-index:1000;
  display:flex;align-items:center;gap:.75rem;
  background:var(--color-bg-white);color:var(--color-text);
  border:1px solid var(--color-border);border-left:3px solid var(--color-accent);
  padding:.9rem 1.15rem;box-shadow:0 12px 32px rgba(28,25,23,.16);
  font-family:var(--font-ui);font-size:.85rem;max-width:22rem;
  opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none;
  transition:opacity .25s ease,transform .25s ease,visibility .25s;
}
.cart-toast.visible{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;}
.cart-toast svg{width:1.1rem;height:1.1rem;color:var(--color-accent);flex-shrink:0;}
.cart-toast a{color:var(--color-accent);text-decoration:underline;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;}

/* ===== Hero full-bleed con video de fondo (estilo OTB) ===== */
/* El alto real lo fija drawer.js (100dvh - header). min-height sólo evita
   colapso en pantallas diminutas; NO debe superar el alto útil o el video
   sobresale (bug a 1024x610: min-height:600 ganaba y empujaba 96px). */
.hero--full-bleed{height:100vh;min-height:360px;}
.hero-fb__content{max-width:840px;}
/* Prefijo .hero--full-bleed (2 clases) para ganar a hero-variants.css,
   que se carga DESPUÉS de olive-luxe.css en el head. */
.hero--full-bleed .hero-fb__eyebrow{font-family:var(--font-ui);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;opacity:.85;}
.hero--full-bleed .hero-fb__title{
  font-family:var(--font-heading);
  font-weight:400;
  /* Escala fiel a onlytheblind.com: título chico y fluido (~20–29px), no gigante */
  font-size:max(0.6875rem, clamp(1.375rem, 1.146rem + 0.976vw, 2rem) * 0.9);
  letter-spacing:.06em;
  text-transform:uppercase;
  line-height:1.12;
}
.hero--full-bleed .hero-fb__sub{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.72rem;
  opacity:.88;
}
/* CTA como link subrayado (OTB "SHOP NOW"), no botón sólido */
.hero--full-bleed .hero-fb__content .btn{
  position:relative;
  background:transparent;color:#fff;border:none;
  /* Track tenue siempre visible; la línea blanca la dibuja ::after en hover */
  border-bottom:1px solid rgba(255,255,255,.35);border-radius:0;
  padding:0 0 3px;text-transform:uppercase;letter-spacing:.14em;
  font-family:var(--font-ui);font-size:.72rem;font-weight:500;
}
/* Subrayado que se completa de izquierda a derecha en el mouseover */
.hero--full-bleed .hero-fb__content .btn::after{
  content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1px;
  background:#fff;transform:scaleX(0);transform-origin:left center;
  transition:transform .45s cubic-bezier(.22,.61,.36,1);
}
.hero--full-bleed .hero-fb__content .btn:hover::after,
.hero--full-bleed .hero-fb__content .btn:focus-visible::after{transform:scaleX(1);}
@media (prefers-reduced-motion: reduce){
  .hero--full-bleed .hero-fb__content .btn::after{transition:none;}
}
/* Flecha "scroll a la siguiente sección" — transparente, delgada, sobre el video */
.hero--full-bleed{position:relative;}
.hero--full-bleed .hero-fb__scroll{
  position:absolute;left:50%;bottom:20px;transform:translateX(-50%);
  z-index:3;display:flex;align-items:center;justify-content:center;
  background:transparent;border:0;padding:6px;cursor:pointer;
  color:rgba(255,255,255,.82);
  animation:hero-fb-bounce 2.4s ease-in-out infinite;
  transition:color .25s ease,opacity .25s ease;
}
.hero--full-bleed .hero-fb__scroll:hover{color:#fff;}
.hero--full-bleed .hero-fb__scroll svg{display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));}
@keyframes hero-fb-bounce{
  0%,100%{transform:translateX(-50%) translateY(0);}
  50%{transform:translateX(-50%) translateY(6px);}
}
@media (prefers-reduced-motion: reduce){
  .hero--full-bleed .hero-fb__scroll{animation:none;}
}

/* Banner CTA rollover: fondo se vacía de izquierda a derecha (scaleX 1->0) */
.banner-block .btn--primary{
  position:relative;
  overflow:hidden;
  background:transparent;
  border:1px solid var(--color-accent);
  isolation:isolate;
}
.banner-block .btn--primary::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--color-accent);
  transform-origin:right;
  transform:scaleX(1);
  transition:transform .45s ease;
  z-index:-1;
}
.banner-block .btn--primary:hover{
  opacity:1;              /* anula el fade global de .btn:hover */
  transform:none;         /* anula el translateY global */
  /* Al vaciarse el fill accent (::before scaleX 0) el btn queda transparente:
     el texto heredaba --color-on-accent (oscuro en dark) = ilegible sobre el
     banner oscuro. Pasarlo a accent (olive claro en dark, olive en light). */
  color:var(--color-accent);
}
.banner-block .btn--primary:hover::before{
  transform:scaleX(0);
}
@media (prefers-reduced-motion: reduce){
  .banner-block .btn--primary::before{transition:none;}
}

/* Probador de cabello: tipografía. Default = fuente de títulos del tema;
   el selector "Tipografía" del editor inyecta --hair-font y hace override
   (clase gana a la regla global h1,h2,h3). */
.hair-tryon-section__title{
  font-family:var(--hair-font, var(--font-heading, Georgia, serif));
}
.hair-tryon-section__subtitle,
.hair-tryon-section__desc{
  font-family:var(--hair-font, inherit);
}

/* =========================================================================
   DARK MODE — paleta olive cálida (casi-negro + off-white). Se activa con
   .dark en <html> (toggle .theme-toggle del header → $store.theme.toggle()).
   Redefine los tokens --color-* → voltea el grueso del tema (~85%). Los
   overrides debajo parchan las bandas (footer/announce/drawer) que en light
   usan olive de fondo + texto claro: en dark el accent se aclara para leer
   como texto/icono, así que esas bandas bajan a un olive más profundo.
   Usuario con baja visión → prioridad contraste (texto/fondo ≈13:1).
   ========================================================================= */
/* html.dark (0,1,1) para ganar a otros :root de sheets cargados después
   (dawn.css/header-base.css redefinen --color-bg con misma especificidad). */
html.dark{
  color-scheme:dark;
  --color-bg:#1A1A17;
  --color-bg-white:#232320;
  --color-bg-alt:#201F1B;
  --color-surface-card:#26251F;
  --color-surface-media:#2A2924;
  --color-text:#ECECE2;
  --color-text-soft:#B8B8A8;
  --color-text-faint:#8A8A7C;
  --color-border:#3A3A32;
  --color-accent:#9A9A7E;
  --color-accent-dk:#7C7C6B;
  --color-accent-lt:#B4B49A;
  --color-on-accent:#1A1A17;
  --color-sale:#C86A5A;
  --color-error:#D66B61;
  --ftr-bg:#3D3D33;
  --ftr-fg:#ECECE2;
  --shadow-sm:0 1px 2px rgba(0,0,0,.5);
  --shadow:0 2px 6px rgba(0,0,0,.55);
  --shadow-lg:0 12px 28px rgba(0,0,0,.6);
}

/* Bandas olive: en light usan --color-accent/-dk + texto claro (#fff, #EDEDE2,
   rgba(255,255,255,*)). En dark el accent se aclaró a #9A9A7E para cumplir rol
   de texto/icono → esas bandas pasarían a olive claro con texto claro = sopa.
   Bajan a #3D3D33 (olive profundo); el texto claro hardcoded se queda. */
.dark .announce-bar{background:#3D3D33;color:#ECECE2;}
.dark .site-footer{background:#3D3D33;}
.dark .site-nav-mobile{background:#3D3D33;}
.dark .site-nav-mobile,
.dark .site-nav-mobile__header,
.dark .site-nav-mobile__header button,
.dark .site-nav-mobile__link,
.dark .site-nav-mobile__heading{color:#ECECE2;}

/* Logo: el markup renderiza SIEMPRE los dos <img> (light + dark, apilados).
   Base olive-luxe esconde el dark y muestra el light en ambos modos.
   En dark invertimos: ocultar light, mostrar dark (logo blanco configurado). */
html.dark .site-header__logo-light{display:none;}
html.dark .site-header__logo-dark{
  display:inline-block;
  max-height:2.25rem;width:auto;margin-inline:auto;
}
html.dark .site-header--centered .site-header__logo-light{display:none;}
html.dark .site-header--centered .site-header__logo-dark{
  display:inline-block;
  max-height:2rem;width:auto;margin-inline:auto;
}

/* ── Antes y después (comparador before/after) ──────────────────────────── */
.section--before-after{padding-block:var(--space-2xl,4rem);}
.ba__title{font-family:var(--font-heading);font-size:clamp(1.6rem,3vw,2.4rem);text-align:center;color:var(--color-text);margin:0 0 .4rem;}
.ba__subtitle{text-align:center;color:var(--color-text-soft);max-width:44ch;margin:0 auto 2rem;line-height:1.6;}
.ba{max-width:820px;margin-inline:auto;}
.ba__container{position:relative;aspect-ratio:16/10;border-radius:14px;overflow:hidden;user-select:none;box-shadow:var(--shadow-lg,0 12px 28px rgba(0,0,0,.18));background:var(--color-bg-alt);}
.ba__before,.ba__after{position:absolute;inset:0;}
.ba__before img,.ba__after img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;}
.ba__after{will-change:clip-path;}
.ba__label{position:absolute;bottom:12px;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.55);backdrop-filter:blur(2px);padding:.3rem .7rem;border-radius:99px;}
.ba__label--before{left:12px;}
.ba__label--after{right:12px;}
.ba__handle{position:absolute;top:0;bottom:0;width:2px;background:#fff;transform:translateX(-1px);cursor:ew-resize;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 0 1px rgba(0,0,0,.1);}
.ba__handle-line{flex:1;width:2px;background:#fff;}
.ba__handle-circle{width:38px;height:38px;border-radius:50%;background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.35);flex:0 0 auto;}
.ba__empty{max-width:520px;margin-inline:auto;display:flex;flex-direction:column;align-items:center;gap:.9rem;text-align:center;padding:2.5rem 1.5rem;border:1.5px dashed var(--color-text-faint);border-radius:14px;color:var(--color-text-soft);background:var(--color-bg-alt);}
.ba__empty svg{color:var(--color-accent);opacity:.8;}
.ba__empty p{margin:0;line-height:1.6;font-size:.95rem;}
.ba__empty strong{color:var(--color-text);}
html.dark .section--before-after .ba__empty{background:#2A2A24;border-color:#4A4A3B;color:#C9C9BC;}
html.dark .section--before-after .ba__empty strong{color:#ECECE2;}
