/* ============================================================
   JVO MUSICAL — styles.css
   Sitio artesanal de güiras y peines, Santiago de Chile.
   ============================================================ */

:root{
  --bg:#0b0906;
  --bg-1:#15100a;
  --ink:#f4ecdd;
  --ink-dim:#c9bfae;
  --ink-faint:#8a8071;
  --line:rgba(244,236,221,.1);
  --line-strong:rgba(244,236,221,.18);
  --brass:#c8863f;
  --brass-light:#eab765;
  --wine:#8a2f3a;
  --radius:10px;
  --radius-sm:6px;
  --radius-lg:18px;
  --shadow:0 30px 60px -20px rgba(0,0,0,.55);
  --font-display:"Playfair Display",Georgia,"Times New Roman",serif;
  --font-body:"Inter","Segoe UI",Arial,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);    /* deceleración suave y gradual: uso general en todo el sitio (equivalente a power3.out) */
  --ease-soft:cubic-bezier(.45,0,.15,1); /* ease-in-out equilibrado: transiciones bidireccionales (menú, modales, acordeón) */
  --ease-out-back:cubic-bezier(.34,1.4,.64,1); /* leve "pop", solo para micro-confirmaciones puntuales */
  /* sistema de motion, 4 niveles — de menor a mayor protagonismo */
  --dur-micro:.2s;   /* nivel 1: hover, focus, press, íconos */
  --dur-s:.35s;      /* nivel 2: botones primarios, chips, controles */
  --dur-m:.5s;       /* nivel 3: tarjetas, paneles pequeños, imágenes */
  --dur-l:.8s;       /* nivel 4: revelado de secciones, modales grandes */
  --dur-stagger:.7s; /* nivel 4b: grupos escalonados — un poco más rápido que un revelado solo, para que la secuencia completa no se sienta lenta */
}

*,*::before,*::after{box-sizing:border-box;}

@media (prefers-reduced-motion:reduce){
  /* "Reducir movimiento" no debe significar "sin transición": las animaciones
     grandes/continuas (parallax, marquee, cursor, zoom del hero) se apagan
     por JS vía prefersReducedMotion(); acá solo acortamos el resto para que
     los fades y cambios de estado se sigan viendo suaves, pero rápidos —
     un salto seco (duración casi cero) se percibe como que "no hay animación". */
  *,*::before,*::after{
    animation-duration:.15s !important;
    animation-iteration-count:1 !important;
    transition-duration:.15s !important;
    scroll-behavior:auto !important;
  }
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}

/* ============================================================
   Rendimiento en celular — no cambia cómo se ve nada.
   ============================================================ */

/* El navegador se salta el trabajo de maquetar y pintar las secciones que
   están fuera de la pantalla, y las arma recién cuando te acercas
   desplazándote. contain-intrinsic-size le adelanta el alto aproximado para
   que la barra de scroll no salte. Es lo que más se nota en gama media. */
@media (max-width:900px){
  main > section{
    content-visibility:auto;
    contain-intrinsic-size:auto 600px;
  }
  /* el hero y la primera sección quedan fuera: son lo primero que se ve */
  main > section:first-of-type,
  main > .hero,
  main > section.hero{ content-visibility:visible; }
}

/* <picture> es un contenedor en línea; sin esto altera la caja de las fotos
   que estaban sueltas dentro de sus contenedores. */
picture{display:contents;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
/* El navegador le pone a <button> un fondo gris claro y texto negro de
   fábrica. En un sitio oscuro eso deja botones blancuzcos con la letra
   crema encima —o amarilla al pasar el mouse— prácticamente ilegibles, y
   solo en los que son <button>: el mismo botón escrito como <a> se veía
   bien. Se anula acá, en la base, para que no vuelva a pasar. */
button{font-family:inherit;cursor:pointer;background:none;color:inherit;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.15;margin:0;}
p{margin:0;}
.container{max-width:1240px;margin:0 auto;padding:0 2rem;}
@media (max-width:640px){ .container{padding:0 1.2rem;} }

/* ---------------- botones ---------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  padding:.9em 1.8em;border-radius:999px;font-size:.85rem;font-weight:600;
  letter-spacing:.02em;border:1px solid transparent;
  white-space:nowrap;
  transition:background-color var(--dur-s) var(--ease),border-color var(--dur-s) var(--ease),
             color var(--dur-s) var(--ease),transform var(--dur-s) var(--ease),box-shadow var(--dur-s) var(--ease);
}
.btn-primary{background:var(--brass-light);color:#1a1006;}
.btn-primary:hover{background:#f0c988;transform:translateY(-2px);box-shadow:0 12px 28px -12px rgba(234,183,101,.5);}
.btn-primary:active{transform:translateY(0) scale(.96);box-shadow:none;}
.btn-ghost{border-color:var(--line-strong);color:var(--ink);}
.btn-ghost:hover{border-color:var(--brass-light);color:var(--brass-light);}
.btn-ghost:active{transform:scale(.96);}
.btn-block{width:100%;}
.btn-sm{padding:.6em 1.2em;font-size:.78rem;}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.btn:disabled:active{transform:none;}

/* ---------------- splash ---------------- */
.splash{
  position:fixed;inset:0;z-index:10000;background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;
  transition:opacity .6s var(--ease),visibility .6s var(--ease);
}
.splash__mark{font-family:var(--font-display);font-size:1.6rem;letter-spacing:.04em;}
.splash__mark span{color:var(--brass-light);}
.splash__bar{width:160px;height:2px;background:var(--line);position:relative;overflow:hidden;border-radius:2px;}
.splash__bar::after{
  content:"";position:absolute;inset:0;width:40%;background:var(--brass-light);
  animation:splashLoad 1.3s ease-in-out infinite;
}
@keyframes splashLoad{0%{transform:translateX(-100%);}100%{transform:translateX(350%);}}

/* ---------------- header ---------------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:900;padding:1.2rem 0;transition:background-color var(--dur-s) var(--ease),padding var(--dur-s) var(--ease),box-shadow var(--dur-s) var(--ease);}
.site-header.is-scrolled{background:rgba(11,9,6,.92);backdrop-filter:blur(10px);box-shadow:0 8px 30px -12px rgba(0,0,0,.45);}
.site-header .container{display:flex;align-items:center;justify-content:space-between;}
.logo{font-family:var(--font-display);font-size:1.15rem;display:flex;flex-direction:column;line-height:1.2;}
.logo em{color:var(--brass-light);font-style:normal;}
.logo small{font-size:.6rem;color:var(--ink-faint);letter-spacing:.05em;font-family:var(--font-body);font-weight:400;}
.nav-main{display:flex;gap:2rem;}
.nav-main a{font-size:.85rem;color:var(--ink-dim);transition:color var(--dur-micro) var(--ease);position:relative;}
.nav-main a:hover,.nav-main a.is-active{color:var(--ink);}
.nav-main a::after{
  content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--brass-light);
  transform:scaleX(0);transform-origin:left;transition:transform var(--dur-s) var(--ease);
}
.nav-main a:hover::after,.nav-main a.is-active::after{transform:scaleX(1);}
.header-actions{display:flex;align-items:center;gap:1rem;}
.icon-btn{position:relative;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);transition:border-color .2s var(--ease),transform .2s var(--ease);}
.icon-btn:hover{border-color:var(--brass-light);}
.icon-btn:active{transform:scale(.9);}
.icon-btn svg{width:18px;height:18px;}
.cart-count{
  position:absolute;top:-6px;right:-6px;background:var(--brass-light);color:#1a1006;
  font-size:.62rem;font-weight:700;width:18px;height:18px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  transition:transform .35s var(--ease-out-back);
}
.burger{display:none;flex-direction:column;gap:5px;width:38px;height:38px;align-items:center;justify-content:center;background:none;border:none;}
.burger span{width:20px;height:2px;background:var(--ink);transition:transform .3s var(--ease),opacity .2s var(--ease);}
.burger.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.is-active span:nth-child(2){opacity:0;}
.burger.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-nav-overlay{
  position:fixed;inset:0;z-index:940;background:rgba(11,9,6,.55);backdrop-filter:blur(2px);
  opacity:0;pointer-events:none;transition:opacity .4s var(--ease-soft);
}
.mobile-nav-overlay.is-visible{opacity:1;pointer-events:auto;}
body.nav-open{overflow:hidden;}
.mobile-nav{
  position:fixed;top:0;right:-100%;width:min(320px,86vw);height:100vh;background:var(--bg-1);
  z-index:950;padding:6rem 2rem 2rem;display:flex;flex-direction:column;gap:1.4rem;
  transition:right .45s var(--ease-soft);border-left:1px solid var(--line);
}
.mobile-nav.is-open{right:0;}
.mobile-nav a{font-size:1rem;color:var(--ink-dim);transition:color .2s var(--ease);}
.mobile-nav a:hover{color:var(--ink);}
.mobile-nav .social-row{display:flex;gap:1rem;margin-top:1rem;}
.mobile-nav .social-row a{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;transition:border-color .2s var(--ease),transform .15s var(--ease);}
.mobile-nav .social-row a:hover{border-color:var(--brass-light);}
.mobile-nav .social-row a:active{transform:scale(.9);}
.mobile-nav .social-row svg{width:18px;height:18px;}
@media (max-width:900px){
  .nav-main{display:none;}
  .burger{display:flex;}
}

/* ---------------- hero ---------------- */
.hero{position:relative;height:100vh;min-height:600px;display:flex;align-items:flex-end;overflow:hidden;}
.hero__bg{position:absolute;inset:0;z-index:0;}
.hero__bg img,.hero__bg video{width:100%;height:100%;object-fit:cover;transform:scale(1.15);filter:brightness(.48) saturate(1.05);}
.hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,9,6,.15) 0%,rgba(11,9,6,.35) 55%,rgba(11,9,6,.96) 100%);}
.hero__glow{position:absolute;inset:0;background:radial-gradient(600px 400px at var(--mx,50%) var(--my,40%),rgba(234,183,101,.14),transparent 70%);pointer-events:none;}
.hero__content{position:relative;z-index:2;padding-bottom:4.5rem;}
.eyebrow{display:inline-flex;align-items:center;gap:.6em;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--brass-light);margin-bottom:.8rem;}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--brass-light);}
.hero h1{font-size:clamp(2.6rem,7vw,5.4rem);max-width:14em;}
.hero h1 em{color:var(--brass-light);font-style:normal;}
.hero__sub{max-width:36em;color:var(--ink-dim);font-size:1.05rem;margin:1.4rem 0 2rem;}
.hero__actions{display:flex;gap:1rem;flex-wrap:wrap;}
.hero__scroll{position:absolute;bottom:1.6rem;right:2rem;z-index:2;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);}

/* ---------------- marquee ---------------- */
.marquee{background:var(--bg-1);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1rem 0;overflow:hidden;white-space:nowrap;}
.marquee__track{display:inline-flex;animation:marqueeScroll 32s linear infinite;}
.marquee__track span{padding:0 1.5rem;font-size:.85rem;color:var(--ink-dim);}
.marquee__track em{color:var(--brass-light);font-style:normal;}
@keyframes marqueeScroll{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* ---------------- secciones base ---------------- */
section{position:relative;padding:6.5rem 0;}
.bg-alt{background:var(--bg-1);}
.text-center{text-align:center;}
.section-head{max-width:40em;margin-bottom:3rem;}
.section-head h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin-bottom:.8rem;}
.section-head p{color:var(--ink-dim);}
.text-center .section-head{margin-left:auto;margin-right:auto;text-align:center;}

/* ---------------- reveal / animaciones scroll ---------------- */
.reveal{opacity:0;transform:translateY(36px) scale(.98);transition:opacity var(--dur-l) var(--ease),transform var(--dur-l) var(--ease);}
.reveal.is-visible{opacity:1;transform:translateY(0) scale(1);}
.reveal[data-split]{opacity:1;transform:none;}
.split-word{display:inline-block;overflow:hidden;vertical-align:top;}
.split-word span{display:inline-block;transform:translateY(110%);transition:transform .85s var(--ease);}
.reveal.is-visible .split-word span{transform:translateY(0);}
.reveal-scale{opacity:0;transform:scale(.92);transition:opacity var(--dur-l) var(--ease),transform var(--dur-l) var(--ease);}
.reveal-scale.is-visible{opacity:1;transform:scale(1);}
.stagger > *{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.stagger.is-visible > *{opacity:1;transform:translateY(0);}
.stagger.is-visible > *:nth-child(1){transition-delay:.05s;}
.stagger.is-visible > *:nth-child(2){transition-delay:.15s;}
.stagger.is-visible > *:nth-child(3){transition-delay:.25s;}
.stagger.is-visible > *:nth-child(4){transition-delay:.35s;}
.stagger.is-visible > *:nth-child(5){transition-delay:.45s;}
.stagger.is-visible > *:nth-child(6){transition-delay:.55s;}
.stagger.is-visible > *:nth-child(7){transition-delay:.65s;}
.stagger.is-visible > *:nth-child(8){transition-delay:.75s;}

/* ---------------- imágenes que entran desde los lados ---------------- */
.edit-host{position:relative;}

/* ---------------- edición visual (solo dentro del iframe del panel admin) ---------------- */
body.is-edit-mode .edit-host{outline:2px dashed var(--brass-light);outline-offset:3px;border-radius:6px;cursor:pointer;}
body.is-edit-mode .edit-host:hover{outline-color:var(--wine);}
.edit-badge{
  display:none;position:absolute;top:-11px;right:-11px;
  width:26px;height:26px;border-radius:50%;
  background:var(--brass-light);color:#1a1006;
  align-items:center;justify-content:center;
  font-size:12px;z-index:60;box-shadow:0 4px 10px rgba(0,0,0,.35);
  pointer-events:none;
}
body.is-edit-mode .edit-badge{display:flex;}

/* barra flotante de edición: sustituye al panel/menú admin — con sesión
   iniciada, todo el sitio se edita directo sobre la página, tipo Canva. */
.edit-toolbar{
  position:fixed;left:1.2rem;bottom:1.2rem;z-index:950;
  display:none;flex-direction:column;gap:.7rem;
  max-width:280px;padding:1rem 1.2rem;
  background:rgba(15,10,6,.96);backdrop-filter:blur(10px);
  border:1px solid var(--line-strong);border-radius:var(--radius-lg);
  box-shadow:0 16px 40px rgba(0,0,0,.45);
  transition:bottom .35s var(--ease);
}
.edit-toolbar.is-visible{display:flex;}
.edit-toolbar--raised{bottom:5.6rem;}
.edit-toolbar__badge{font-size:.82rem;font-weight:700;color:var(--brass-light);}
.edit-toolbar__hint{font-size:.72rem;line-height:1.5;color:var(--ink-dim);}
.edit-toolbar__actions{display:flex;gap:.5rem;flex-wrap:wrap;}
@media (max-width:640px){ .edit-toolbar{left:.8rem;right:.8rem;max-width:none;bottom:.8rem;} .edit-toolbar--raised{bottom:5.2rem;} }

/* ---------------- value grid ---------------- */
.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;}
.value-card{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.8rem;transition:border-color .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease),opacity .7s var(--ease);}
.value-card:hover{border-color:var(--brass-light);transform:translateY(-4px);box-shadow:0 20px 40px -24px rgba(0,0,0,.5);}
.value-card .num{font-family:var(--font-display);font-size:.75rem;color:var(--brass-light);letter-spacing:.1em;}
.value-card h3{font-size:1.05rem;margin:.8rem 0 .6rem;}
.value-card p{color:var(--ink-dim);font-size:.88rem;}
@media (max-width:900px){ .value-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:640px){ .value-grid{grid-template-columns:1fr;} }

/* ---------------- product cards ---------------- */
.catalog-note{color:var(--ink-faint);font-size:.85rem;font-style:italic;max-width:44em;margin:-.8rem 0 1.6rem;}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;}
.card-product{position:relative;background:var(--bg-1);border:1px solid var(--line);overflow:hidden;transition:transform var(--dur-m) var(--ease),border-color var(--dur-m) var(--ease),box-shadow var(--dur-m) var(--ease),opacity var(--dur-m) var(--ease);border-radius:var(--radius-lg);}
.card-product:hover{transform:translateY(-6px);border-color:var(--line-strong);box-shadow:0 28px 52px -28px rgba(0,0,0,.55);}
.card-product.is-hidden{opacity:0;transform:scale(.94);pointer-events:none;}
.card-product__media{position:relative;aspect-ratio:4/5;overflow:hidden;background:#100d0a;border-radius:var(--radius-lg) var(--radius-lg) 0 0;}
.card-product__media img{width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.15);transition:transform 1s var(--ease),opacity var(--dur-l) var(--ease);}
.card-product.is-visible .card-product__media img{opacity:1;transform:scale(1);}
.card-product:hover .card-product__media img{transform:scale(1.07);}
.card-product__media .parallax-inner{position:absolute;inset:-12% 0;width:100%;height:124%;opacity:0;transform:scale(1.15);transition:transform 1s var(--ease),opacity var(--dur-l) var(--ease);}
.card-product.is-visible .card-product__media .parallax-inner{opacity:1;transform:scale(1);}
.card-product__media .parallax-inner img{width:100%;height:100%;}
.card-product:hover .card-product__media .parallax-inner img{transform:scale(1.07);}
.card-product__tag{
  position:absolute;top:.9rem;left:.9rem;z-index:2;
  background:rgba(11,9,6,.75);backdrop-filter:blur(6px);
  color:var(--brass-light);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;
  padding:.4em .8em;border:1px solid var(--line-strong);border-radius:999px;
}
.card-product__body{padding:1.4rem;}
.card-product__cat{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);}
.card-product__body h3{font-size:1.1rem;margin:.5rem 0;}
.card-product__body h3 a:hover{color:var(--brass-light);}
.card-product .desc{color:var(--ink-dim);font-size:.85rem;margin-bottom:1.2rem;min-height:2.6em;}
.card-product__foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.price{font-family:var(--font-display);font-size:1.1rem;color:var(--brass-light);}
.price small{font-size:.6rem;color:var(--ink-faint);margin-left:.3em;font-family:var(--font-body);}
@media (max-width:900px){ .product-grid{grid-template-columns:1fr 1fr;} }

/* agregar rápido desde la tarjeta (para productos sin personalización) */
.quickadd{display:flex;align-items:center;gap:.6rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);}
.qty-stepper--sm{transform:scale(.9);transform-origin:left center;}
.qty-stepper--sm button{width:32px;height:32px;font-size:1rem;}
.qty-stepper--sm input{width:34px;font-size:.85rem;}
.quickadd .js-quickadd-btn{flex:1;}

/* barra de pedido fija, estilo autoservicio: aparece apenas hay algo agregado */
.order-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:60;
  background:rgba(11,9,6,.92);backdrop-filter:blur(10px);
  border-top:1px solid var(--line-strong);
  transform:translateY(100%);opacity:0;
  transition:transform .45s var(--ease),opacity .45s var(--ease);
  pointer-events:none;
}
.order-bar.is-visible{transform:translateY(0);opacity:1;pointer-events:auto;}
.order-bar__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.4rem;}
.order-bar__info{display:flex;flex-direction:column;line-height:1.3;}
.order-bar__count{font-size:.85rem;color:var(--ink);}
.order-bar__total{font-family:var(--font-display);color:var(--brass-light);font-size:1.05rem;}
@media (max-width:640px){ .order-bar__inner{padding:.8rem 1rem;} }
@media (max-width:640px){ .product-grid{grid-template-columns:1fr;} }

/* ---------------- banner diseñador ---------------- */
.banner{background:linear-gradient(135deg,var(--bg-1),var(--bg));}
.banner__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center;}
.banner h2{font-size:clamp(1.8rem,3.4vw,2.6rem);margin:.8rem 0 1rem;}
.banner p{color:var(--ink-dim);max-width:32em;margin-bottom:1.6rem;}
.banner__badge{
  background:var(--bg-1);border:1px solid var(--line-strong);border-radius:var(--radius-lg);
  padding:2.4rem;text-align:center;
}
.banner__badge strong{display:block;font-family:var(--font-display);font-size:2.4rem;color:var(--brass-light);}
.banner__badge span{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);}
@media (max-width:900px){ .banner__grid{grid-template-columns:1fr;} }

/* ---------------- stats ---------------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;text-align:center;}
.stat b{
  display:block;font-family:var(--font-display);font-size:clamp(2rem,4vw,2.8rem);color:var(--brass-light);
  opacity:0;transform:translateY(10px);
  transition:opacity .8s var(--ease),transform .8s var(--ease);
}
.stat.is-counting b{
  opacity:1;transform:translateY(0);
}
.stat span{font-size:.78rem;color:var(--ink-faint);letter-spacing:.03em;}
@media (max-width:640px){ .stats{grid-template-columns:1fr 1fr;} }

/* ---------------- galería instagram ---------------- */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:.6rem;}
.gallery-grid a{position:relative;overflow:hidden;grid-row:span 1;border-radius:var(--radius);}
.gallery-grid a:nth-child(1),.gallery-grid a:nth-child(6){grid-row:span 2;}
.gallery-grid img{width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.18);transition:transform 1.2s var(--ease),filter .4s var(--ease),opacity var(--dur-l) var(--ease);filter:grayscale(.15) brightness(.9);}
.gallery-grid.is-visible img{opacity:1;transform:scale(1);}
.gallery-grid a:hover img{transform:scale(1.08);filter:grayscale(0) brightness(1);}
.gallery-grid a::after{content:"";position:absolute;inset:0;border:1px solid rgba(244,236,221,.08);pointer-events:none;}
.gallery-cta{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(11,9,6,.45);opacity:0;transition:opacity .3s var(--ease);color:var(--ink);
  font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;text-align:center;
}
.gallery-grid a:hover .gallery-cta{opacity:1;}

/* ---------------- testimonial / quote ---------------- */
.quote{max-width:44em;margin:0 auto;text-align:center;}
.quote p{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.35;color:var(--ink);}
.quote cite{display:block;margin-top:1.6rem;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-style:normal;}

/* ---------------- footer ---------------- */
.site-footer{background:var(--bg-1);border-top:1px solid var(--line);padding:5rem 0 2rem;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2.6rem;padding-bottom:3rem;}
.footer-brand p{color:var(--ink-dim);font-size:.88rem;margin:1rem 0 1.4rem;max-width:26em;}
.footer-brand .social-row{display:flex;gap:.8rem;}
.footer-brand .social-row a{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;transition:border-color .2s var(--ease),transform .15s var(--ease);}
.footer-brand .social-row a:hover{border-color:var(--brass-light);}
.footer-brand .social-row a:active{transform:scale(.9);}
.footer-brand .social-row svg{width:18px;height:18px;}
.footer-col h4{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:1rem;}
.footer-col a,.footer-col p{display:block;color:var(--ink-dim);font-size:.88rem;margin-bottom:.7rem;}
.footer-col a{
  width:fit-content;background-image:linear-gradient(currentColor,currentColor);
  background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;
  transition:color var(--dur-micro) var(--ease),background-size var(--dur-s) var(--ease);
}
.footer-col a:hover{color:var(--brass-light);background-size:100% 1px;}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;
  padding-top:2rem;border-top:1px solid var(--line);font-size:.78rem;color:var(--ink-faint);
}
.footer-bottom a{
  color:var(--ink-faint);background-image:linear-gradient(currentColor,currentColor);
  background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;
  transition:color var(--dur-micro) var(--ease),background-size var(--dur-s) var(--ease);
}
.footer-bottom a:hover{color:var(--brass-light);background-size:100% 1px;}
.footer-legal{display:flex;gap:1.4rem;flex-wrap:wrap;align-items:center;}
@media (max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:640px){ .footer-grid{grid-template-columns:1fr;} }

/* botón discreto "<>" */
.admin-trigger{
  width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:none;
  color:var(--ink-faint);font-family:monospace;font-size:.8rem;letter-spacing:-.05em;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  transition:opacity .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease),transform .2s var(--ease);
  opacity:.5;
}
.admin-trigger:hover{opacity:1;border-color:var(--brass-light);color:var(--brass-light);}
.admin-trigger:active{transform:scale(.9);}

/* ---------------- toast ---------------- */
.toast{
  position:fixed;bottom:2rem;left:50%;
  transform:translate(-50%,140%);
  background:var(--brass-light);color:#1a1006;
  padding:1em 1.6em;border-radius:var(--radius);font-size:.85rem;font-weight:600;
  display:flex;align-items:center;gap:.6em;
  z-index:9500;transition:transform .5s var(--ease-soft);
  box-shadow:var(--shadow);
}
.toast.is-visible{transform:translate(-50%,0);}
.toast .dot{width:8px;height:8px;border-radius:50%;background:var(--wine);flex:none;}
.toast .check{width:16px;height:16px;flex:none;display:none;}
.toast.success .dot{display:none;}
.toast.success .check{display:block;}
.toast.success .check circle{
  fill:none;stroke:#2e7d46;stroke-width:2;
  stroke-dasharray:63;stroke-dashoffset:63;
  animation:toastRing var(--dur-m) var(--ease) forwards;
}
.toast.success .check path{
  fill:none;stroke:#2e7d46;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:16;stroke-dashoffset:16;
  animation:toastCheck var(--dur-s) var(--ease) .18s forwards;
}
@keyframes toastRing{to{stroke-dashoffset:0;}}
@keyframes toastCheck{to{stroke-dashoffset:0;}}

/* ---------------- cursor personalizado (solo puntero fino) ---------------- */
.cursor-dot,.cursor-ring{
  position:fixed;top:0;left:0;z-index:9999;border-radius:50%;pointer-events:none;
  mix-blend-mode:exclusion;opacity:0;transition:opacity var(--dur-s) var(--ease);
}
.cursor-dot{width:6px;height:6px;background:#fff;}
.cursor-ring{
  width:30px;height:30px;border:1px solid #fff;
  transition:opacity var(--dur-s) var(--ease),width var(--dur-s) var(--ease),height var(--dur-s) var(--ease);
}
.cursor-dot.is-visible,.cursor-ring.is-visible{opacity:.7;}
.cursor-ring.is-hover{width:48px;height:48px;opacity:.9;}
@media (prefers-reduced-motion:reduce),(pointer:coarse){
  .cursor-dot,.cursor-ring{display:none;}
}

/* ---------------- admin gate (modal de inicio de sesión) ---------------- */
.admin-gate{
  position:fixed;inset:0;z-index:9800;
  display:flex;align-items:center;justify-content:center;
  padding:1.5rem;
  background:rgba(11,9,6,.72);
  backdrop-filter:blur(6px);
  opacity:0;pointer-events:none;
  transition:opacity .4s var(--ease-soft);
}
.admin-gate.is-visible{opacity:1;pointer-events:auto;}
.admin-gate__card{
  position:relative;width:100%;max-width:380px;
  background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:2.4rem 2.2rem 2rem;text-align:center;
  transform:translateY(14px);transition:transform .4s var(--ease-soft);
  box-shadow:var(--shadow);
}
.admin-gate.is-visible .admin-gate__card{transform:translateY(0);}
.admin-gate__close{
  position:absolute;top:.9rem;right:.9rem;width:32px;height:32px;border-radius:50%;
  border:1px solid var(--line);background:none;color:var(--ink-faint);
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s var(--ease),color .2s var(--ease),transform .2s var(--ease);
}
.admin-gate__close:hover{border-color:var(--brass-light);color:var(--brass-light);}
.admin-gate__close:active{transform:scale(.9);}
.admin-gate__logo{font-family:var(--font-display);font-size:1.3rem;margin-bottom:.3rem;}
.admin-gate__logo em{color:var(--brass-light);font-style:normal;}
.admin-gate__card h3{font-size:1.15rem;margin:1rem 0 .5rem;}
.admin-gate__card p{color:var(--ink-dim);font-size:.85rem;margin-bottom:1.6rem;}
.admin-gate__field{text-align:left;margin-bottom:1rem;}
.admin-gate__field label{display:block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.5rem;}
.admin-gate__field input{
  width:100%;background:var(--bg);border:1px solid var(--line-strong);color:var(--ink);
  padding:.85em 1em;border-radius:var(--radius);font-size:.9rem;outline:none;transition:border-color .2s var(--ease);
}
.admin-gate__field input:focus{border-color:var(--brass-light);}
.admin-gate__error{color:#d1594a;font-size:.78rem;min-height:1.1em;margin-bottom:.6rem;}
.admin-gate__skip{
  background:none;border:none;color:var(--ink-faint);font-size:.8rem;
  text-decoration:underline;cursor:pointer;margin-top:.6rem;
}
.admin-gate__skip:hover{color:var(--brass-light);}

/* ---------------- parallax de imágenes grandes ---------------- */
.parallax-frame{position:relative;width:100%;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);}
.parallax-frame img{width:100%;height:120%;object-fit:cover;position:absolute;top:-10%;left:0;will-change:transform;}

/* ============================================================
   PRODUCT PAGE
   ============================================================ */
.product-hero{padding-top:8.5rem;}
.product-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:3.5rem;margin-top:2rem;}
.gallery-main{position:sticky;top:6rem;align-self:start;}
.gallery-main__frame{aspect-ratio:1/1;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);background:var(--bg-1);}
.gallery-main__frame img{width:100%;height:100%;object-fit:cover;}
.gallery-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-top:.8rem;}
.gallery-thumbs button{border:2px solid transparent;border-radius:var(--radius-sm);overflow:hidden;aspect-ratio:1/1;padding:0;background:none;transition:border-color .2s var(--ease),transform .15s var(--ease);}
.gallery-thumbs button.is-active{border-color:var(--brass-light);}
.gallery-thumbs button:active{transform:scale(.94);}
.gallery-thumbs img{width:100%;height:100%;object-fit:cover;}

/* ============================================================
   DISEÑADOR DE GÜIRA — editor de 3 paneles (herramientas / lienzo / capas)
   ============================================================ */

/* -------- barra superior: deshacer / rehacer / autoguardado / vista previa -------- */
.designer-topbar{
  display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:1.6rem;
  background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);
  padding:.7rem .8rem;
}
/* Los botones llevan texto además del ícono: un ícono solo obliga a
   adivinar, y aquí adivinar es exactamente lo que hay que evitar. */
.dtool-btn{
  display:inline-flex;align-items:center;gap:.5em;min-height:44px;padding:.5em 1.05em;
  border-radius:999px;border:1px solid var(--line-strong);background:none;
  color:var(--ink-dim);font-size:.85rem;font-weight:600;white-space:nowrap;
  transition:border-color .2s var(--ease),color .2s var(--ease),background-color .2s var(--ease),transform .15s var(--ease),opacity .2s var(--ease);
}
.dtool-btn svg{width:17px;height:17px;flex-shrink:0;}
.dtool-btn:hover:not(:disabled){border-color:var(--brass-light);color:var(--brass-light);}
.dtool-btn:active:not(:disabled){transform:scale(.96);}
.dtool-btn:disabled{opacity:.35;cursor:not-allowed;}
.dtool-btn--add{border-color:var(--brass);color:var(--brass-light);background:rgba(200,134,63,.12);}
.dtool-btn--add:hover{background:rgba(200,134,63,.2);}
.designer-topbar__gap{flex:0 0 1px;height:26px;background:var(--line-strong);margin:0 .3rem;}
.designer-topbar__status{flex:1;min-width:80px;font-size:.78rem;color:var(--ink-faint);transition:opacity .3s var(--ease);}

/* -------- ayuda inicial (se muestra una sola vez) -------- */
.designer-hint{
  display:none;align-items:center;justify-content:space-between;gap:1rem;
  background:rgba(200,134,63,.1);border:1px solid var(--line-strong);border-radius:var(--radius);
  padding:.8rem 1.1rem;margin-top:1rem;font-size:.85rem;color:var(--ink-dim);
}
.designer-hint.is-visible{display:flex;}
.designer-hint button{background:none;border:none;color:var(--ink-faint);flex-shrink:0;font-size:1rem;line-height:1;transition:color .2s var(--ease);}
.designer-hint button:hover{color:var(--brass-light);}

.designer-shell{
  display:grid;grid-template-columns:270px 1fr 260px;gap:1.4rem;
  align-items:start;margin-top:1.2rem;
}
.designer-shell.is-preview{grid-template-columns:1fr;}
.designer-shell.is-preview .designer-tools,
.designer-shell.is-preview .designer-layers,
.designer-shell.is-preview .dselect,
.designer-shell.is-preview .designer-layers-toggle{display:none;}
.designer-shell.is-preview .designer-canvas-area{max-width:640px;margin:0 auto;}

/* -------- panel izquierdo: herramientas -------- */
.designer-tools{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.2rem;}
.dtabs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.2rem;border-bottom:1px solid var(--line);padding-bottom:1rem;}
.dtabs__btn{
  padding:.5em 1em;border-radius:999px;border:1px solid var(--line-strong);background:none;
  color:var(--ink-dim);font-size:.78rem;font-weight:600;
  transition:border-color .2s var(--ease),color .2s var(--ease),background-color .2s var(--ease),transform .15s var(--ease);
}
.dtabs__btn:hover{border-color:var(--brass-light);color:var(--ink);}
.dtabs__btn:active{transform:scale(.96);}
.dtabs__btn.is-active{border-color:var(--brass-light);color:var(--brass-light);background:rgba(200,134,63,.1);}
.dpanel{display:none;}
.dpanel.is-active{display:block;animation:dpanelIn .25s var(--ease);}
@keyframes dpanelIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.dpanel__hint{color:var(--ink-faint);font-size:.8rem;line-height:1.5;margin-bottom:1.1rem;}

.text-slot{border:1px solid var(--line);border-radius:var(--radius);padding:.9rem;margin-bottom:.9rem;transition:border-color .2s var(--ease),background-color .2s var(--ease);cursor:pointer;}
.text-slot.is-selected{border-color:var(--brass-light);background:rgba(200,134,63,.05);}
.text-slot__head{display:flex;align-items:center;gap:.5em;justify-content:space-between;margin-bottom:.6rem;}
.text-slot__head .title{margin:0;display:flex;align-items:center;gap:.5em;}
.text-slot__dot{display:none;width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.text-slot.has-text .text-slot__dot{display:inline-block;}
.text-slot input[type="text"]{
  width:100%;background:var(--bg);border:1px solid var(--line-strong);color:var(--ink);
  padding:.75em .9em;border-radius:var(--radius-sm);font-size:.9rem;outline:none;text-transform:uppercase;
  transition:border-color .2s var(--ease);cursor:text;
}
.text-slot input[type="text"]:focus{border-color:var(--brass-light);}
.text-slot__props{display:flex;flex-direction:column;gap:.7rem;margin-top:0;max-height:0;overflow:hidden;transition:max-height .35s var(--ease-soft),margin-top .35s var(--ease-soft);}
.text-slot.has-text.is-selected .text-slot__props{margin-top:.8rem;max-height:320px;}
.text-slot__hint{display:none;font-size:.72rem;color:var(--ink-faint);margin-top:.5rem;}
.text-slot.has-text:not(.is-selected) .text-slot__hint{display:block;}
.text-slot__row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;}
.text-slot__row .swatch-row,.text-slot__row .font-row{flex:1;}
.text-slot .swatch{width:26px;height:26px;}
.text-slot .font-option{padding:.5em .8em;font-size:.72rem;}
.text-slot__visibility{
  width:32px;height:32px;flex-shrink:0;border-radius:50%;border:1px solid var(--line-strong);background:none;
  color:var(--ink-faint);display:flex;align-items:center;justify-content:center;transition:border-color .2s var(--ease),color .2s var(--ease);
}
.text-slot__visibility:hover{border-color:var(--brass-light);color:var(--brass-light);}
.text-slot__visibility svg{width:15px;height:15px;}
.text-slot.is-hidden{opacity:.55;}

.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;}
.preset-thumb{
  border:1px solid var(--line-strong);border-radius:var(--radius);padding:.5rem;background:var(--bg);
  display:flex;flex-direction:column;align-items:center;gap:.4rem;cursor:pointer;
  transition:border-color .2s var(--ease),transform .15s var(--ease),background-color .2s var(--ease);
}
.preset-thumb:hover{border-color:var(--brass-light);}
.preset-thumb:active{transform:scale(.96);}
.preset-thumb.is-active{border-color:var(--brass-light);background:rgba(200,134,63,.08);}
.preset-thumb__svg{width:100%;height:38px;color:var(--ink-dim);}
.preset-thumb.is-active .preset-thumb__svg{color:var(--brass-light);}
.preset-thumb span{font-size:.66rem;color:var(--ink-dim);text-align:center;line-height:1.25;}

.image-status{font-size:.78rem;color:var(--ink-dim);margin-top:.8rem;min-height:1.2em;}
.image-status.is-error{color:#e58b7d;}
.image-status.is-success{color:#5fcf87;}
.tolerance-labels{display:flex;justify-content:space-between;font-size:.68rem;color:var(--ink-faint);margin-top:.4rem;}
#image-tolerance{width:100%;accent-color:var(--brass-light);}
.designer-image-actions{display:flex;gap:.5rem;margin-top:.8rem;}

/* -------- centro: lienzo -------- */
.designer-canvas-area{display:flex;flex-direction:column;gap:1rem;}
.designer-canvas-wrap{position:relative;background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1rem;}
/* Sin cuadrícula: la güira encendida sobre un fondo apagado es lo único
   que hace falta para entender dónde se diseña, y no parece un plano. */
#guira-canvas{
  width:100%;height:auto;display:block;border-radius:var(--radius);
  background:#070707;
  cursor:default;touch-action:none;
}

/* -------- barra de la selección, bajo el lienzo -------- */
.dselect{
  min-height:56px;display:flex;align-items:center;
  background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);
  padding:.5rem .8rem;
}
.dselect__empty{
  display:flex;align-items:center;gap:.6em;margin:0;
  font-size:.82rem;color:var(--ink-faint);line-height:1.4;
}
.dselect__empty svg{width:18px;height:18px;flex-shrink:0;}
.dselect__actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;width:100%;}
.dselect__actions[hidden],.dselect__empty[hidden]{display:none;}
.dselect__name{
  font-size:.8rem;font-weight:700;color:var(--brass-light);white-space:nowrap;
  padding-right:.4rem;margin-right:.2rem;border-right:1px solid var(--line-strong);
}
.dselect__btn{
  display:inline-flex;align-items:center;gap:.45em;min-height:44px;padding:.5em 1em;
  border-radius:999px;border:1px solid var(--line-strong);background:none;
  color:var(--ink);font-size:.85rem;font-weight:600;white-space:nowrap;
  transition:border-color .2s var(--ease),color .2s var(--ease),background-color .2s var(--ease),transform .15s var(--ease),opacity .2s var(--ease);
}
.dselect__btn svg{width:17px;height:17px;flex-shrink:0;}
.dselect__btn:hover:not(:disabled){border-color:var(--brass-light);color:var(--brass-light);background:rgba(200,134,63,.1);}
.dselect__btn:active:not(:disabled){transform:scale(.96);}
.dselect__btn:disabled{opacity:.32;cursor:not-allowed;}
.dselect__btn--danger:hover:not(:disabled){border-color:#e58b7d;color:#e58b7d;background:rgba(209,89,74,.14);}

/* estado vacío: primer contacto con el lienzo */
.designer-empty-state{
  position:absolute;inset:1rem;display:none;align-items:center;justify-content:center;
  pointer-events:none;border-radius:var(--radius);
}
.designer-empty-state.is-visible{display:flex;}
.designer-empty-state__card{
  pointer-events:auto;text-align:center;background:rgba(11,9,6,.9);backdrop-filter:blur(6px);
  border:1px solid var(--line-strong);border-radius:var(--radius-lg);padding:1.6rem 1.8rem;max-width:320px;
}
.designer-empty-state__card p{margin:0 0 .4rem;color:var(--ink-dim);font-size:.88rem;}
.designer-empty-state__card p strong{color:var(--ink);font-family:var(--font-display);font-size:1.05rem;}
.designer-empty-state__actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:1rem;}
.designer-price-bar{
  display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;
  background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.1rem 1.4rem;
}
.designer-price-bar__info .product-info__price{margin:.2rem 0 0;}
.designer-price-bar__actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;}

/* -------- panel derecho: capas -------- */
.designer-layers{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.2rem;position:sticky;top:6rem;}
.designer-layers__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;}
.designer-layers__head h3{font-size:1rem;margin:0;}
.designer-layers__close{display:none;}
.layers-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;}
.layer-row{
  display:flex;align-items:center;gap:.5rem;padding:.6em .7em;border:1px solid var(--line);border-radius:var(--radius-sm);
  cursor:pointer;transition:border-color .2s var(--ease),background-color .2s var(--ease);
}
.layer-row:hover{border-color:var(--line-strong);}
.layer-row.is-selected{border-color:var(--brass-light);background:rgba(200,134,63,.08);}
.layer-row.is-hidden-layer{opacity:.5;}
.layer-row__icon{width:26px;height:26px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.7rem;color:var(--ink-faint);}
.layer-row__name{flex:1;font-size:.82rem;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.layer-row.is-selected .layer-row__name{color:var(--ink);}
.layer-row__btns{display:flex;gap:.2rem;}
.layer-row__btns button{
  width:24px;height:24px;border-radius:50%;background:none;border:none;color:var(--ink-faint);
  display:flex;align-items:center;justify-content:center;transition:color .2s var(--ease),background-color .2s var(--ease);
}
.layer-row__btns button:hover{color:var(--brass-light);background:rgba(200,134,63,.12);}
.layer-row__btns svg{width:13px;height:13px;}
.designer-layers-toggle{display:none;}

@media (max-width:1100px){
  .designer-shell{grid-template-columns:1fr;}
  .designer-layers{
    position:fixed;left:0;right:0;bottom:0;top:auto;z-index:980;
    max-height:70vh;overflow-y:auto;border-radius:var(--radius-lg) var(--radius-lg) 0 0;
    transform:translateY(100%);transition:transform .35s var(--ease);
  }
  .designer-layers.is-open{transform:translateY(0);}
  .designer-layers__close{
    display:flex;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:none;
    color:var(--ink-faint);align-items:center;justify-content:center;
  }
  .designer-layers-toggle{
    display:inline-flex;align-items:center;gap:.5em;
  }
}
@media (max-width:640px){
  .preset-grid{grid-template-columns:1fr 1fr;}
  .designer-price-bar{flex-direction:column;align-items:stretch;}
  .designer-price-bar__actions{flex-direction:column;align-items:stretch;}
  .dtabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;}
  .designer-hint span{font-size:.8rem;}
  .designer-empty-state__card{padding:1.2rem 1.4rem;}

  /* En el teléfono los botones se reparten la fila en vez de encogerse:
     el objetivo es que el dedo acierte, no que quepan más cosas. */
  .designer-topbar{padding:.6rem;}
  .designer-topbar__gap{display:none;}
  .dtool-btn{flex:1 1 calc(50% - .3rem);justify-content:center;padding:.5em .6em;font-size:.82rem;}
  .designer-topbar__status{flex:1 1 100%;text-align:center;order:9;min-height:0;}
  #btn-preview{flex:1 1 100%;order:8;}

  .dselect{padding:.6rem;}
  .dselect__name{flex:1 1 100%;border-right:none;padding:0 0 .1rem;margin:0;}
  .dselect__btn{flex:1 1 calc(50% - .25rem);justify-content:center;padding:.5em .5em;font-size:.82rem;}
}

.product-info__cat{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);}
.product-info__price{margin:.8rem 0;}
.product-info__price .price{font-size:1.8rem;}
.product-info__desc{color:var(--ink-dim);margin-bottom:1.6rem;}
.stars{color:var(--brass-light);font-size:.9rem;margin-bottom:.6rem;}

.option-block{margin-bottom:1.6rem;}
.option-block .title{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.7rem;}
.size-options{display:flex;flex-wrap:wrap;gap:.7rem;}
.model-option,.size-option{
  padding:.7em 1.3em;border:1px solid var(--line-strong);border-radius:999px;
  background:none;color:var(--ink-dim);font-size:.85rem;
  transition:border-color .2s var(--ease),color .2s var(--ease),background-color .2s var(--ease),transform .15s var(--ease);
}
.model-option.is-active,.size-option.is-active{border-color:var(--brass-light);color:var(--ink);background:rgba(200,134,63,.08);}
.model-option:hover,.size-option:hover{border-color:var(--brass-light);color:var(--ink);}
.model-option:active,.size-option:active{transform:scale(.96);}

.size-pill{position:relative;display:flex;flex-direction:column;padding:.9em 1.3em;border:1px solid var(--line-strong);border-radius:var(--radius);cursor:pointer;transition:border-color .2s var(--ease),background-color .2s var(--ease),transform .15s var(--ease);min-width:150px;}
.size-pill:active{transform:scale(.98);}
.size-pill input{position:absolute;opacity:0;}
.size-pill span{font-size:.9rem;font-weight:600;}
.size-pill small{color:var(--ink-faint);font-size:.72rem;}
.size-pill.is-active{border-color:var(--brass-light);background:rgba(200,134,63,.08);}

.swatch-row{display:flex;flex-wrap:wrap;gap:.6rem;}
.swatch{width:38px;height:38px;border-radius:50%;border:2px solid var(--line-strong);cursor:pointer;padding:0;transition:transform .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease);position:relative;}
.swatch:hover{transform:translateY(-2px);}
.swatch:active{transform:translateY(0) scale(.92);}
.swatch.is-active{border-color:var(--brass-light);box-shadow:0 0 0 3px rgba(234,183,101,.25);}
.swatch.is-disabled{opacity:.25;cursor:not-allowed;filter:grayscale(.4);}
.swatch.is-disabled:hover{transform:none;}

.font-row{display:flex;flex-wrap:wrap;gap:.6rem;}
.font-option{padding:.7em 1.1em;border:1px solid var(--line-strong);border-radius:var(--radius);background:none;color:var(--ink-dim);font-size:.85rem;transition:border-color .2s var(--ease),color .2s var(--ease),background-color .2s var(--ease),transform .15s var(--ease);}
.font-option.is-active{border-color:var(--brass-light);color:var(--ink);background:rgba(200,134,63,.08);}
.font-option:hover{border-color:var(--brass-light);color:var(--ink);}
.font-option:active{transform:scale(.96);}

.char-count{font-size:.72rem;color:var(--ink-faint);}

.qty-stepper{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:999px;overflow:hidden;}
.qty-stepper button{width:40px;height:40px;background:none;border:none;color:var(--ink-dim);font-size:1.1rem;transition:color .2s var(--ease),background-color .2s var(--ease);}
.qty-stepper button:hover{color:var(--brass-light);background:rgba(200,134,63,.08);}
.qty-stepper button:active{background:rgba(200,134,63,.16);}
.qty-stepper input{width:44px;text-align:center;background:none;border:none;color:var(--ink);font-size:.95rem;}

.product-actions{display:flex;flex-direction:column;gap:.8rem;margin:1.6rem 0;}
.trust-row{display:flex;flex-direction:column;gap:.7rem;margin:1.6rem 0;font-size:.82rem;color:var(--ink-dim);}
.trust-row div{display:flex;align-items:center;gap:.6em;}
.trust-row svg{width:18px;height:18px;color:var(--brass-light);flex-shrink:0;}

.specs-table{width:100%;border-collapse:collapse;margin:1.6rem 0;font-size:.85rem;}
.specs-table td{padding:.7em 0;border-bottom:1px solid var(--line);color:var(--ink-dim);}
.specs-table td:first-child{color:var(--ink-faint);width:40%;}

.accordion-item{border-bottom:1px solid var(--line);}
.accordion-item button{
  width:100%;display:flex;justify-content:space-between;align-items:center;
  padding:1.1em 0;background:none;border:none;color:var(--ink);font-size:.92rem;text-align:left;
}
.accordion-item .plus{color:var(--brass-light);font-size:1.2rem;transition:transform .3s var(--ease);}
.accordion-item.is-open .plus{transform:rotate(45deg);}
.accordion-item__panel{max-height:0;overflow:hidden;transition:max-height .45s var(--ease-soft);}
.accordion-item.is-open .accordion-item__panel{max-height:260px;}
.accordion-item__panel p{color:var(--ink-dim);font-size:.86rem;padding-bottom:1.2em;}

/* ---------------- catálogo: filtros ---------------- */
.filters-bar{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:2.4rem;}
.filter-pill{
  padding:.6em 1.2em;border:1px solid var(--line);border-radius:999px;
  font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-dim);
  cursor:pointer;background:transparent;
  transition:border-color var(--dur-micro),color var(--dur-micro),background-color var(--dur-micro),transform .15s var(--ease);
}
.filter-pill.is-active,.filter-pill:hover{border-color:var(--brass-light);color:var(--ink);background:rgba(200,134,63,.1);}
.filter-pill:active{transform:scale(.96);}
.filters-search{margin-left:auto;display:flex;align-items:center;gap:.6rem;border-bottom:1px solid var(--line-strong);padding:.5rem .2rem;min-width:220px;transition:border-color .2s var(--ease);}
.filters-search:focus-within{border-color:var(--brass-light);}
.filters-search input{background:none;border:none;color:var(--ink);font-size:.85rem;width:100%;outline:none;}
.filters-search input::placeholder{color:var(--ink-faint);}
.empty-state{display:none;text-align:center;padding:4rem 0;color:var(--ink-faint);}
.empty-state.is-visible{display:block;}

/* ---------------- nosotros ---------------- */
.about-split{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;}
.timeline{border-left:1px solid var(--line);margin-left:.5rem;}
.timeline-item{position:relative;padding:0 0 2.6rem 2.2rem;}
.timeline-item::before{content:"";position:absolute;left:-5px;top:.3rem;width:9px;height:9px;border-radius:50%;background:var(--brass-light);}
.timeline-item h4{font-size:1rem;margin-bottom:.4rem;}
.timeline-item p{color:var(--ink-dim);font-size:.86rem;}

/* ---------------- formularios ---------------- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
.field{margin-bottom:1.2rem;}
.field label{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.6rem;}
.field input,.field select,.field textarea{
  width:100%;background:var(--bg-1);border:1px solid var(--line-strong);color:var(--ink);
  padding:.9em 1em;border-radius:var(--radius);font-size:.92rem;font-family:inherit;outline:none;transition:border-color .2s var(--ease);
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brass-light);}
.field.has-error label{color:#e58b7d;}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:#d1594a;}
.field__error{display:none;color:#e58b7d;font-size:.76rem;margin-top:.5rem;}
.field.has-error .field__error{display:block;}

/* ---------------- carrito / checkout ---------------- */
.cart-layout{display:grid;grid-template-columns:1.4fr .9fr;gap:3rem;align-items:start;}
.cart-item{display:flex;gap:1rem;align-items:center;padding:1.2rem 0;border-bottom:1px solid var(--line);}
.cart-item img{width:72px;height:72px;object-fit:cover;border-radius:var(--radius-sm);}
.cart-item h5{font-size:.95rem;margin:0 0 .3rem;}
.cart-item p{color:var(--ink-faint);font-size:.8rem;}
.cart-item__remove{background:none;border:none;color:var(--ink-faint);font-size:.78rem;text-decoration:underline;margin-left:auto;}
.cart-item__remove:hover{color:var(--wine);}
.order-summary{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.8rem;position:sticky;top:6rem;}
.order-summary h3{font-size:1.1rem;margin-bottom:1.2rem;}
.order-summary__row{display:flex;justify-content:space-between;font-size:.88rem;color:var(--ink-dim);padding:.5rem 0;}
.order-summary__row.total{border-top:1px solid var(--line);margin-top:.8rem;padding-top:1rem;font-size:1.05rem;color:var(--ink);font-weight:600;}
#order-deposit-note{margin-top:.9rem;padding-top:.9rem;border-top:1px dashed var(--line-strong);}
#order-deposit-note .order-summary__row span:last-child{color:var(--brass-light);font-weight:600;}
.order-summary__hint{font-size:.74rem;color:var(--ink-faint);line-height:1.55;margin-top:.5rem;}
.ship-option{display:flex;align-items:center;gap:.8rem;padding:.9em;border:1px solid var(--line-strong);border-radius:var(--radius);cursor:pointer;margin-bottom:.7rem;transition:border-color .2s var(--ease);}
.ship-option.is-active{border-color:var(--brass-light);background:rgba(200,134,63,.06);}
.ship-option input{accent-color:var(--brass-light);}
.ship-option div{flex:1;}
.ship-option strong{display:block;font-size:.88rem;}
.ship-option span{font-size:.76rem;color:var(--ink-faint);}
@media (max-width:900px){ .cart-layout,.contact-layout,.about-split,.product-layout{grid-template-columns:1fr;gap:2.4rem;} .gallery-main{position:relative;top:0;} .form-grid{grid-template-columns:1fr;} .footer-grid{grid-template-columns:1fr 1fr;gap:2.2rem;} }

/* ============================================================
   TIENDA — Comprar / Güiras / Peines
   ============================================================ */

/* Título que existe para lectores de pantalla y para el esquema del
   documento, pero que visualmente lo reemplaza el bloque generado. */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

.crumbs{display:flex;align-items:center;gap:.6rem;font-size:.8rem;color:var(--ink-faint);}
.crumbs a{color:var(--ink-dim);}
.crumbs a:hover{color:var(--brass-light);}

/* ---------------- hub: las dos categorías ---------------- */
.shop-cats{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;}
.shop-cat{
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);
  transition:transform var(--dur-m) var(--ease),border-color var(--dur-m) var(--ease),box-shadow var(--dur-m) var(--ease);
}
.shop-cat:hover{transform:translateY(-6px);border-color:var(--line-strong);box-shadow:0 28px 52px -28px rgba(0,0,0,.55);}
.shop-cat:active{transform:translateY(-2px);}
.shop-cat__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:#100d0a;}
.shop-cat__media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.shop-cat:hover .shop-cat__media img{transform:scale(1.06);}
.shop-cat__media--art{display:flex;align-items:center;justify-content:center;padding:1.6rem;background:radial-gradient(circle at 50% 40%,rgba(234,183,101,.09),transparent 68%),#100d0a;}
/* Foto vertical en tarjeta apaisada. Mostrarla entera dejaba la mitad del
   recuadro en gris plano; se recorta a la banda central, donde se ven las
   dos maderas, las dos virolas y el acero — llena la tarjeta y se sigue
   leyendo como un par de peines. */
.shop-cat__media--fit{background:#b2aca3;}
.shop-cat__media--fit img{object-position:50% 42%;}
.shop-cat__body{padding:1.8rem;display:flex;flex-direction:column;gap:.7rem;flex:1;}
.shop-cat__kicker{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-light);}
.shop-cat__body h2{font-size:clamp(1.5rem,3vw,2rem);}
.shop-cat__body p{color:var(--ink-dim);font-size:.9rem;}
.shop-cat__cta{
  margin-top:auto;padding-top:.6rem;display:inline-flex;align-items:center;gap:.5em;
  color:var(--brass-light);font-size:.85rem;font-weight:600;
}
.shop-cat__cta svg{transition:transform var(--dur-s) var(--ease);}
.shop-cat:hover .shop-cat__cta svg{transform:translateX(4px);}

/* ---------------- ilustración vectorial de peines ---------------- */
.peine-art{display:flex;align-items:center;justify-content:center;width:100%;}
.peine-art > div{flex:1;display:flex;justify-content:center;min-width:0;}
.peine-art__svg{width:100%;height:100%;max-height:100%;display:block;}
.peine-art--pair{gap:1.4rem;height:230px;}
.peine-art--pair .peine-art__svg{max-height:230px;}

/* ---------------- bloque de tier de güira ---------------- */
.guira-tier-section{padding:5.5rem 0;}
.tier__intro{max-width:44em;margin-bottom:2.6rem;}
.tier__title{font-size:clamp(1.9rem,4vw,2.9rem);margin:.8rem 0 1rem;}
.tier__desc{color:var(--ink-dim);font-size:.98rem;line-height:1.65;}
.tier__grid{display:grid;grid-template-columns:1fr 1fr;gap:2.6rem;align-items:start;}
.tier__media{
  border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);
  background:var(--bg-1);aspect-ratio:4/5;position:sticky;top:6rem;
}
.tier__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);}
.tier__media:hover img{transform:scale(1.04);}
.tier__panel{
  background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:2rem;display:flex;flex-direction:column;
}
.tier__label{
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-faint);margin:0 0 .9rem;font-family:var(--font-body);font-weight:600;
}
.tier__label + .tier__label,
.includes-list + .tier__label,
.addon-list + .tier__label{margin-top:1.8rem;}

/* selector de medidas */
.size-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:.7rem;}
.size-choice{
  display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;
  padding:.85em .9em;background:none;color:var(--ink-dim);text-align:left;
  border:1px solid var(--line-strong);border-radius:var(--radius);
  transition:border-color var(--dur-micro) var(--ease),background-color var(--dur-micro) var(--ease),
             color var(--dur-micro) var(--ease),transform .15s var(--ease);
}
.size-choice:hover{border-color:var(--brass-light);color:var(--ink);}
.size-choice:active{transform:scale(.97);}
.size-choice.is-active{border-color:var(--brass-light);background:rgba(200,134,63,.1);color:var(--ink);}
.size-choice__dim{font-size:1rem;font-weight:700;font-family:var(--font-display);}
.size-choice__unit{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);}
.size-choice__price{font-size:.86rem;color:var(--brass-light);font-weight:600;margin-top:.25rem;}

/* precio grande del tier */
.tier__price-box{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  margin:1.4rem 0 .4rem;padding:1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.tier__price-label{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);}
.tier__price{
  font-family:var(--font-display);font-size:clamp(1.7rem,3.6vw,2.3rem);
  color:var(--brass-light);font-weight:700;line-height:1;
}

/* incluye / adicionales */
.includes-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.65rem;}
.includes-list li{display:flex;align-items:flex-start;gap:.6rem;font-size:.88rem;color:var(--ink-dim);}
.includes-list svg{color:#5fbf83;flex:none;margin-top:.22em;}

.addon-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;}
.addon-row{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding:.6rem 0;border-bottom:1px dashed var(--line);font-size:.88rem;
}
.addon-row:last-child{border-bottom:none;}
.addon-row__name{color:var(--ink-dim);}
.addon-row__price{color:var(--ink);font-weight:600;white-space:nowrap;}
.addon-row__price s{color:var(--ink-faint);font-weight:400;margin-left:.35em;}
.addon-row--promo .addon-row__price{color:var(--brass-light);}

/* promoción */
.promo-card{
  margin-top:1.8rem;padding:1.1rem 1.2rem;border-radius:var(--radius);
  border:1px solid rgba(234,183,101,.36);
  background:linear-gradient(135deg,rgba(234,183,101,.12),rgba(234,183,101,.03));
}
.promo-card__badge{
  display:inline-block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--brass-light);font-weight:700;margin-bottom:.5rem;
}
.promo-card p{font-size:.87rem;color:var(--ink-dim);line-height:1.6;}

/* abono */
.deposit-box{
  margin-top:1.8rem;padding:1.2rem;border-radius:var(--radius);
  border:1px solid var(--line-strong);background:rgba(244,236,221,.03);
}
.deposit-box__title{font-size:.95rem;margin-bottom:.7rem;}
.deposit-box p{font-size:.85rem;color:var(--ink-dim);line-height:1.6;margin-bottom:.5rem;}
.deposit-box__balance{color:var(--ink-faint) !important;font-size:.8rem !important;}
.deposit-box__math{
  display:grid;grid-template-columns:1fr auto;gap:.45rem 1rem;
  margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--line);
  font-size:.85rem;color:var(--ink-dim);
}
.deposit-box__math b{text-align:right;color:var(--ink);font-weight:600;}
.deposit-box__math .is-total{color:var(--ink);font-weight:600;}
.deposit-box__math b.is-total{color:var(--brass-light);}

.tier__cta{margin-top:1.8rem;}
.tier__cta-note{font-size:.76rem;color:var(--ink-faint);text-align:center;margin-top:.7rem;}

/* ---------------- formas de pago ---------------- */
.payment-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.payment-item{
  display:flex;align-items:center;gap:.8rem;padding:1.1rem 1.2rem;
  border:1px solid var(--line-strong);border-radius:var(--radius);
  background:var(--bg-1);font-size:.88rem;color:var(--ink-dim);
}
.payment-item svg{color:var(--brass-light);flex:none;}

/* ---------------- tarjetas de peines ---------------- */
.peine-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;}
.peine-card{
  display:grid;grid-template-columns:150px 1fr;gap:0;overflow:hidden;
  background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);
  transition:transform var(--dur-m) var(--ease),border-color var(--dur-m) var(--ease),box-shadow var(--dur-m) var(--ease);
}
.peine-card:hover{transform:translateY(-5px);border-color:var(--line-strong);box-shadow:0 26px 48px -26px rgba(0,0,0,.55);}
.peine-card__art{
  padding:1.6rem 1rem;border-right:1px solid var(--line);
  background:radial-gradient(circle at 50% 40%,rgba(234,183,101,.09),transparent 70%),#100d0a;
}
.peine-card__art .peine-art__svg{max-height:270px;}
.peine-card__body{padding:1.6rem;display:flex;flex-direction:column;gap:.55rem;}
.peine-card__body h3{font-size:1.2rem;}
.peine-card__body .desc{font-size:.86rem;color:var(--ink-dim);line-height:1.6;}
.peine-card__foot{margin-top:auto;padding-top:1.1rem;display:flex;flex-direction:column;gap:.9rem;}
.peine-card__actions{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;}

@media (max-width:900px){
  .shop-cats{grid-template-columns:1fr;}
  .tier__grid{grid-template-columns:1fr;gap:1.8rem;}
  .tier__media{position:relative;top:0;aspect-ratio:16/10;}
  .peine-grid{grid-template-columns:1fr;}
  .payment-list{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .guira-tier-section{padding:4rem 0;}
  .tier__panel{padding:1.4rem;}
  .peine-card{grid-template-columns:1fr;}
  /* En una tarjeta a una columna el recuadro queda ancho y la ilustración
     es vertical: se le da más alto para que el peine se vea con presencia
     y no como una figura perdida en el fondo. */
  .peine-card__art{border-right:none;border-bottom:1px solid var(--line);padding:2rem 1rem;}
  .peine-card__art .peine-art__svg{max-height:290px;}
  .peine-art--pair{height:180px;}
  .peine-art--pair .peine-art__svg{max-height:180px;}
  .size-choices{grid-template-columns:1fr 1fr;}
}

/* ---------------- diseñador: extras y desglose de precio ---------------- */
.addon-check{
  display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:.7rem;
  padding:.85rem;margin-bottom:.6rem;cursor:pointer;
  border:1px solid var(--line-strong);border-radius:var(--radius);
  transition:border-color var(--dur-micro) var(--ease),background-color var(--dur-micro) var(--ease);
}
.addon-check:hover{border-color:var(--brass-light);}
.addon-check:focus-within{border-color:var(--brass-light);}
.addon-check input{accent-color:var(--brass-light);margin-top:.2em;}
.addon-check__name{font-size:.85rem;color:var(--ink);display:flex;flex-direction:column;gap:.2rem;}
.addon-check__name small{font-size:.72rem;color:var(--ink-faint);line-height:1.45;}
.addon-check__price{font-size:.85rem;font-weight:600;color:var(--brass-light);white-space:nowrap;}
.addon-check--promo{border-color:rgba(234,183,101,.4);background:rgba(234,183,101,.06);}
.is-promo{
  font-style:normal;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;
  color:#1a1006;background:var(--brass-light);border-radius:3px;padding:.1em .4em;margin-left:.4em;
}
.promo-note{
  margin-top:.9rem;padding:.8rem .9rem;border-radius:var(--radius);
  border:1px solid rgba(234,183,101,.32);background:rgba(234,183,101,.07);
  font-size:.8rem;color:var(--ink-dim);line-height:1.55;
}
.price-lines{display:flex;flex-direction:column;gap:.15rem;margin-top:.4rem;}
.price-line{display:flex;align-items:baseline;gap:.5rem;font-size:.76rem;color:var(--ink-faint);}
.price-line b{color:var(--ink-dim);font-weight:600;margin-left:auto;}
.deposit-inline{
  display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin-top:.6rem;
  padding-top:.6rem;border-top:1px solid var(--line);
  font-size:.76rem;color:var(--ink-faint);
}
.deposit-inline b{color:var(--brass-light);font-weight:600;margin-left:.3em;}

/* ---------------- aviso "agregado al pedido" ---------------- */
.added-sheet{
  position:fixed;inset:0;z-index:9700;
  display:flex;align-items:center;justify-content:center;padding:1.5rem;
  background:rgba(11,9,6,.72);backdrop-filter:blur(6px);
  opacity:0;pointer-events:none;
  transition:opacity var(--dur-s) var(--ease-soft);
}
.added-sheet.is-visible{opacity:1;pointer-events:auto;}
.added-sheet__card{
  position:relative;width:100%;max-width:420px;text-align:center;
  background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:2.4rem 2rem 2rem;box-shadow:var(--shadow);
  transform:translateY(16px);
  transition:transform var(--dur-s) var(--ease-soft);
}
.added-sheet.is-visible .added-sheet__card{transform:translateY(0);}
.added-sheet__close{
  position:absolute;top:.9rem;right:.9rem;width:32px;height:32px;border-radius:50%;
  border:1px solid var(--line);background:none;color:var(--ink-faint);
  display:inline-flex;align-items:center;justify-content:center;
  transition:border-color var(--dur-micro) var(--ease),color var(--dur-micro) var(--ease),transform .15s var(--ease);
}
.added-sheet__close:hover{border-color:var(--brass-light);color:var(--brass-light);}
.added-sheet__close:active{transform:scale(.9);}
.added-sheet__check{width:52px;height:52px;margin:0 auto .9rem;display:block;}
.added-sheet__check circle{
  fill:none;stroke:#5fbf83;stroke-width:1.8;
  stroke-dasharray:63;stroke-dashoffset:63;
  animation:sheetRing var(--dur-m) var(--ease) forwards;
}
.added-sheet__check path{
  fill:none;stroke:#5fbf83;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:16;stroke-dashoffset:16;
  animation:sheetCheck var(--dur-s) var(--ease) .2s forwards;
}
@keyframes sheetRing{to{stroke-dashoffset:0;}}
@keyframes sheetCheck{to{stroke-dashoffset:0;}}
.added-sheet h3{font-size:1.25rem;margin-bottom:.5rem;}
.added-sheet__item{color:var(--ink);font-size:.95rem;font-weight:600;margin-bottom:.3rem;}
.added-sheet__total{color:var(--ink-faint);font-size:.82rem;margin-bottom:1.6rem;}
.added-sheet__actions{display:flex;gap:.7rem;}
.added-sheet__actions .btn{flex:1;}
@media (max-width:420px){
  .added-sheet__actions{flex-direction:column;}
}

/* ---------------- páginas legales ---------------- */
.legal-content{max-width:52em;}
.legal-content h2{font-size:1.3rem;margin:2rem 0 1rem;}
.legal-content h2:first-child{margin-top:0;}
.legal-content p,.legal-content li{color:var(--ink-dim);font-size:.92rem;margin-bottom:.8rem;}
.legal-content ul{padding-left:1.4rem;}

@media (max-width:640px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px;}
  section{padding:4.5rem 0;}
}


/* ============================================================
   AJUSTES TÁCTILES — van al final a propósito: anulan reglas de
   más arriba y con la misma especificidad gana la última.
   ============================================================ */

/* En pantalla táctil se apagan los desenfoques de fondo. Son de lo más caro
   que existe para la GPU de un teléfono y acá sólo aportan un matiz sobre
   fondos que ya son oscuros. */
@media (hover:none),(pointer:coarse){
  .site-header.is-scrolled,
  .mobile-nav-overlay,
  .admin-gate,
  .added-sheet,
  .card-product__tag{ backdrop-filter:none; -webkit-backdrop-filter:none; }
  /* se compensa con algo más de opacidad para que el contraste no baje */
  .site-header.is-scrolled{ background:rgba(11,9,6,.97); }
  .mobile-nav-overlay{ background:rgba(11,9,6,.72); }
  .admin-gate,.added-sheet{ background:rgba(11,9,6,.88); }
  .card-product__tag{ background:rgba(11,9,6,.9); }
}
