/* Jewel Bar · sistema visual heredado de Beauty Bar (azul noche, oro, crema, arena; Gilda Display + Montserrat) */
:root{
  --azul:#202B44; --azul-hover:#2E3B5A; --oro:#BDA05D; --oro-texto:#7D6329; --arena:#DFD2C3;
  --crema:#F7F4EF; --blanco:#FFFFFF; --gris:#5B6272; --linea:#E5DDD2; --oro-suave:#F1EADF;
  --wa:#1F7A4D; --wa-hover:#18643F;
  --display:"Gilda Display",Georgia,"Times New Roman",serif; --sans:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r-s:8px; --r-m:16px; --r-pill:999px; --sombra:0 6px 18px rgba(32,43,68,.10);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--crema);color:var(--azul);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--oro);outline-offset:3px}
.in{max-width:1180px;margin:0 auto;padding-inline:max(16px,env(safe-area-inset-left))}
.skip{position:absolute;left:-9999px;top:8px;background:var(--azul);color:var(--crema);padding:8px 14px;border-radius:var(--r-s);z-index:100}
.skip:focus{left:12px}
.firma{font-weight:300;font-size:13px;letter-spacing:.3em;text-transform:uppercase;margin:0}
.etq{font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--oro-texto);margin:0 0 6px}
h1,h2,h3{font-family:var(--display);font-weight:400;margin:0;text-wrap:balance}
h2{font-size:clamp(32px,5vw,44px);line-height:1.1}

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:14px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;padding:14px 26px;border-radius:var(--r-pill);border:1px solid transparent;cursor:pointer;transition:background .2s,border-color .2s,color .2s;min-height:48px}
.btn-sm{padding:8px 16px;font-size:12px;min-height:40px}
.btn-block{width:100%}
.btn-gold{background:var(--oro);color:var(--azul)}
.btn-gold:hover{background:#C9AE6E}
.btn-ghost{border-color:var(--arena);color:var(--arena)}
.btn-ghost:hover{border-color:var(--oro);color:var(--oro)}
.btn-wa{background:var(--wa);color:#fff}
.btn-wa:hover{background:var(--wa-hover)}
.btn-wa[aria-disabled="true"]{opacity:.45;pointer-events:none}
.btn-cart{background:transparent;border-color:var(--oro);color:var(--crema)}
.btn-cart:hover{background:rgba(189,160,93,.15)}
.count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:var(--r-pill);background:var(--oro);color:var(--azul);font-size:12px;letter-spacing:0}
.link{background:none;border:0;font:inherit;font-size:13px;color:var(--gris);text-decoration:underline;cursor:pointer;padding:8px}

/* cabecera */
.top{position:sticky;top:0;z-index:20;background:var(--azul);color:var(--crema);padding-top:env(safe-area-inset-top,0px);border-bottom:1px solid rgba(223,210,195,.15)}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand span{font-family:var(--display);font-size:24px;color:var(--crema)}
.top-nav{display:flex;align-items:center;gap:22px}
.top-nav>a:not(.btn){font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--arena)}
.top-nav>a:not(.btn):hover{color:var(--oro)}

/* portada */
.hero{background:var(--azul);color:var(--arena);overflow:hidden}
.hero-in{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);align-items:center;gap:32px;padding-block:56px 64px}
.hero h1{font-size:clamp(56px,10vw,96px);line-height:.95;color:var(--crema);margin-top:14px}
.hero .lead{max-width:46ch;margin:24px 0 0;font-size:17px;line-height:1.6}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero-flor{width:100%;max-width:300px;justify-self:end;height:auto}
.hero-flor path{fill:var(--oro)}

/* categorías */
.cats-bar{position:sticky;top:calc(65px + env(safe-area-inset-top,0px));z-index:10;background:var(--crema);border-bottom:1px solid var(--linea);scroll-margin-top:65px}
.cats{display:flex;gap:8px;overflow-x:auto;padding-block:14px;scrollbar-width:none}
.cats::-webkit-scrollbar{display:none}
.cat{flex:none;font:inherit;font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:9px 18px;border-radius:var(--r-pill);border:1px solid var(--linea);background:var(--blanco);color:var(--azul);cursor:pointer;min-height:40px}
.cat:hover{border-color:var(--oro)}
.cat[aria-pressed="true"]{background:var(--azul);border-color:var(--azul);color:var(--crema)}
.cat small{font-size:11px;opacity:.7;margin-left:4px;letter-spacing:0}

/* colección */
main{outline:none}
.grupo{padding-block:44px 8px;scroll-margin-top:140px}
.grupo h2{margin-bottom:24px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:24px}
.card{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-m);overflow:hidden;display:flex;flex-direction:column;min-width:0;transition:box-shadow .2s,border-color .2s}
.card:hover{box-shadow:var(--sombra)}
.card.en-pedido{border-color:var(--oro)}
.ph{position:relative;aspect-ratio:4/5;background:var(--oro-suave);border:0;padding:0;cursor:zoom-in;width:100%}
.ph img{width:100%;height:100%;object-fit:cover}
.ult{position:absolute;left:12px;top:12px;font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:5px 12px;border-radius:var(--r-pill);background:var(--azul);color:var(--arena)}
.nfotos{position:absolute;right:12px;bottom:12px;font-size:11px;font-weight:500;padding:4px 10px;border-radius:var(--r-pill);background:rgba(255,255,255,.88);color:var(--azul)}
.info{padding:16px 20px 20px;display:flex;flex-direction:column;gap:6px;flex:1}
.nombre{font-size:25px;line-height:1.15}
.desc{font-size:14px;line-height:20px;color:var(--gris);margin:0}
.precio{font-weight:500;font-size:18px;line-height:24px;margin-top:2px;font-variant-numeric:tabular-nums}
.ref{font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--oro-texto);margin-top:2px;font-variant-numeric:tabular-nums}
.add{margin-top:auto;padding-top:12px}
.add .btn{width:100%;padding:12px 16px;font-size:12px;min-height:44px;background:var(--azul);color:var(--crema)}
.add .btn:hover{background:var(--azul-hover)}
.add .btn[aria-pressed="true"]{background:var(--oro-suave);color:var(--oro-texto);border-color:var(--oro)}
.l-corto{display:none}
.aviso{padding:48px 0;color:var(--gris)}

/* cómo pedir */
.pasos{padding-block:64px 16px}
.pasos-lista{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;counter-reset:p}
.pasos-lista li{counter-increment:p;background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-m);padding:24px;display:grid;gap:6px}
.pasos-lista li::before{content:counter(p);font-family:var(--display);font-size:40px;line-height:1;color:var(--oro)}
.pasos-lista b{font-weight:500;font-size:17px}
.pasos-lista span{color:var(--gris);font-size:15px}

/* pie */
.pie{background:var(--azul);color:var(--arena);margin-top:64px;padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
.pie-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px 48px;padding-block:48px}
.pie-marca{font-family:var(--display);font-size:36px;color:var(--crema);margin:0 0 8px;line-height:1}
.pie-contacto p{margin:0 0 6px}
.pie-contacto a{color:var(--oro);text-decoration:none;font-weight:500}
.pie-nota{font-size:13px;opacity:.8}

/* WhatsApp flotante y barra de pedido */
.wa-float{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:30;width:56px;height:56px;border-radius:50%;background:var(--wa);display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.2)}
.wa-float svg{width:30px;height:30px;fill:#fff}
.cart-bar{position:fixed;left:0;right:0;bottom:0;z-index:25;padding:12px max(16px,env(safe-area-inset-left)) calc(12px + env(safe-area-inset-bottom,0px));padding-right:88px;background:linear-gradient(transparent,rgba(247,244,239,.95) 30%)}
.cart-bar-btn{white-space:nowrap;width:100%;max-width:520px;display:flex;justify-content:space-between;align-items:center;gap:12px;font:inherit;font-weight:500;padding:14px 20px;border-radius:var(--r-pill);border:0;background:var(--azul);color:var(--crema);cursor:pointer;box-shadow:var(--sombra);min-height:56px}
.cart-bar-ver{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--oro)}

/* panel del pedido */
.carrito{position:fixed;inset:0;z-index:50;visibility:hidden}
.carrito.abierto{visibility:visible}
.carrito-fondo{position:absolute;inset:0;background:rgba(32,43,68,.45);opacity:0;transition:opacity .25s}
.carrito.abierto .carrito-fondo{opacity:1}
.carrito-panel{position:absolute;right:0;top:0;bottom:0;width:min(440px,100%);background:var(--crema);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .25s;padding-top:env(safe-area-inset-top,0px)}
.carrito.abierto .carrito-panel{transform:none}
.carrito-head{display:flex;justify-content:space-between;align-items:center;padding:20px 20px 12px;border-bottom:1px solid var(--linea)}
.carrito-head h2{font-size:32px}
.carrito-cerrar,.visor-cerrar{width:44px;height:44px;border-radius:50%;border:1px solid var(--linea);background:var(--blanco);font-size:24px;line-height:1;color:var(--azul);cursor:pointer}
.carrito-lista{list-style:none;margin:0;padding:8px 20px;overflow-y:auto;flex:1}
.carrito-lista li{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--linea)}
.carrito-lista img{width:64px;height:80px;object-fit:cover;border-radius:var(--r-s)}
.carrito-lista b{font-family:var(--display);font-weight:400;font-size:19px;line-height:1.2;display:block}
.carrito-lista small{font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--oro-texto)}
.c-precio{display:block;font-weight:500;font-size:15px;margin-top:2px}
.c-total-row{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid var(--linea)}
.c-total-row span{font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--gris)}
.c-total-row b{font-family:var(--display);font-weight:400;font-size:30px}
.quitar{background:none;border:0;color:var(--gris);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer;padding:8px}
.carrito-vacio{padding:24px 20px;color:var(--gris);margin:0}
.carrito-pie{padding:16px 20px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--linea);display:grid;gap:8px;background:var(--blanco)}
.campo{font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--gris)}
.campo span{text-transform:none;letter-spacing:0;font-weight:400}
.input{font:inherit;font-size:16px;padding:10px 14px;border:1px solid var(--linea);border-radius:var(--r-s);background:var(--crema);color:var(--azul);width:100%;resize:vertical}
.input:focus{border-color:var(--oro);outline:none}
.carrito-nota{font-size:12px;color:var(--gris);margin:0;text-align:center}

/* visor de fotos */
.visor{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;width:100%;height:100%;margin:0}
.visor::backdrop{background:rgba(20,26,40,.92)}
.visor-in{position:relative;height:100%;display:grid;place-items:center;padding:64px 16px 96px}
.visor figure{margin:0;display:grid;gap:12px;justify-items:center;max-width:min(92vw,720px)}
.visor img{max-height:calc(100vh - 220px);width:auto;max-width:100%;border-radius:var(--r-m);object-fit:contain}
.visor figcaption{text-align:center;color:var(--arena);display:grid;gap:4px}
.visor-nombre{font-family:var(--display);font-size:26px;color:var(--crema)}
.visor-ref{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--oro)}
.visor-cerrar{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));right:16px}
.visor-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0;background:rgba(247,244,239,.9);color:var(--azul);font-size:28px;cursor:pointer}
.visor-nav.prev{left:12px}.visor-nav.next{right:12px}
.visor-nav[hidden]{display:none}
.visor-add{position:absolute;bottom:calc(20px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);white-space:nowrap}
.visor-add[aria-pressed="true"]{background:var(--oro-suave);color:var(--oro-texto)}

/* celular */
@media (max-width:720px){
  .top-nav>a:not(.btn){display:none}
  .hero-in{grid-template-columns:1fr;padding-block:36px 44px}
  .hero-flor{order:-1;width:72px;justify-self:start}
  .hero .lead{font-size:16px}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .info{padding:12px 12px 14px}
  .nombre{font-size:19px}
  .desc{font-size:13px;line-height:18px}
  .ref{font-size:10px;letter-spacing:.1em}
  .precio{font-size:16px}
  .add .btn{font-size:11px;letter-spacing:.05em;padding:10px 8px}
  .ult{left:8px;top:8px;font-size:10px;padding:4px 9px}
  .nfotos{right:8px;bottom:8px}
  .grupo{padding-block:32px 4px}
  .l-largo{display:none}.l-corto{display:inline}
}
