/* ==========================================================
   AMOURE — estilos globales
   Paleta: crema / blush / rose gold / ciruela
   ========================================================== */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500&family=Jost:wght@300;400;500;600&display=swap');

:root{
  --cream:#FBF6F1; --ivory:#F5EBE3; --sand:#EAD8CE; --blush:#F1D9DA; --blush-2:#E7C2C6;
  --rose:#B5566A; --rosegold:#A8842F; --rosegold-2:#7E6222; --gold:#C9A24D; --gold-2:#E8CF8C; --gold-3:#F6E7BF;
  --wine:#5A1130; --wine-2:#7A1F44; --plum:#3E0C1F; --mauve:#7D4A5C; --mauve-2:#A9808F; --white:#FFFFFF;
  --shadow:0 20px 60px -20px rgba(62,12,31,.3);
  --shadow-sm:0 8px 24px -12px rgba(62,12,31,.28);
  --r:22px; --r-sm:14px;
  --ease:cubic-bezier(.22,1,.36,1);
  --font-d:'Cormorant Garamond',Georgia,serif;
  --font-b:'Jost','Helvetica Neue',Arial,sans-serif;
  --nav-h:78px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-b);font-weight:300;color:var(--plum);background:var(--cream);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.no-cursor,body.no-cursor *{cursor:none!important}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
ul{list-style:none}
h1,h2,h3,h4{font-family:var(--font-d);font-weight:400;line-height:1.05;letter-spacing:-.01em}
h1{font-size:clamp(3rem,7.5vw,6.8rem)}
h2{font-size:clamp(2.2rem,4.5vw,3.8rem)}
h3{font-size:clamp(1.4rem,2.2vw,1.9rem)}
em,.it{font-style:italic;font-weight:300}
.serif{font-family:var(--font-d)}
.wrap{width:min(1280px,92vw);margin-inline:auto}
.eyebrow{font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:var(--rosegold);font-weight:500;display:inline-flex;align-items:center;gap:.7em}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--rosegold)}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:"";width:28px;height:1px;background:var(--rosegold)}
.lead{font-size:1.1rem;color:var(--mauve);max-width:56ch}
.center{text-align:center}
.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mt-3{margin-top:3rem}
section{padding:clamp(4rem,9vw,8rem) 0;position:relative}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:3rem;flex-wrap:wrap}
.sec-head h2{margin-top:.6rem}

/* ---------- Selección & scrollbar ---------- */
::selection{background:var(--blush);color:var(--plum)}
::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--ivory)}
::-webkit-scrollbar-thumb{background:var(--rose);border-radius:10px;border:2px solid var(--ivory)}

/* ---------- Grano + fondo ---------- */
.grain{position:fixed;inset:0;pointer-events:none;z-index:9000;opacity:.045;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;pointer-events:none;animation:drift 18s ease-in-out infinite alternate}
.blob.b1{width:520px;height:520px;background:radial-gradient(circle,var(--blush) 0%,transparent 70%);top:-120px;right:-80px}
.blob.b2{width:420px;height:420px;background:radial-gradient(circle,var(--gold-2) 0%,transparent 70%);bottom:-100px;left:-120px;animation-delay:-8s}
@keyframes drift{from{transform:translate(0,0) scale(1)}to{transform:translate(40px,60px) scale(1.15)}}

/* ---------- Cursor personalizado ---------- */
#cursor,#cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;border-radius:50%;transform:translate(-50%,-50%);will-change:transform}
#cursor{width:8px;height:8px;background:var(--gold);mix-blend-mode:multiply;transition:width .25s,height .25s,background .25s,opacity .3s}
#cursor-ring{width:38px;height:38px;border:1px solid var(--rosegold);opacity:.7;transition:width .35s var(--ease),height .35s var(--ease),border-color .3s,background .3s,opacity .3s;display:grid;place-items:center}
#cursor-ring span{opacity:0;transition:opacity .25s,transform .4s var(--ease);transform:scale(.4);display:grid;place-items:center}#cursor-ring span img{width:34px;height:30px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35));animation:gemFloat 2.4s ease-in-out infinite}
@keyframes gemFloat{0%,100%{transform:translateY(0) rotateY(0)}50%{transform:translateY(-3px) rotateY(180deg)}}
body.cur-hover #cursor{width:4px;height:4px}
body.cur-hover #cursor-ring{width:64px;height:64px;background:rgba(184,131,111,.14);border-color:transparent}
body.cur-view #cursor{opacity:0}
body.cur-view #cursor-ring{width:84px;height:84px;background:var(--wine);border-color:transparent;opacity:.95}
body.cur-view #cursor-ring span{opacity:1;transform:scale(1)}
body.cur-text #cursor{width:2px;height:24px;border-radius:2px}
body.cur-text #cursor-ring{opacity:0}
body.cur-down #cursor-ring{transform:translate(-50%,-50%) scale(.85)}
#sparkles{position:fixed;inset:0;pointer-events:none;z-index:9998}
@media (pointer:coarse){#cursor,#cursor-ring,#sparkles{display:none}body.no-cursor,body.no-cursor *{cursor:auto!important}}

/* ---------- Cortina de carga ---------- */
#curtain{position:fixed;inset:0;z-index:10000;background:radial-gradient(ellipse at center,var(--wine),var(--plum) 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform 1s var(--ease),opacity .6s;transform-origin:top}
#curtain .mark{width:120px;height:120px;border-radius:50%;margin-bottom:1.4rem;animation:markIn 1.1s var(--ease) both;filter:drop-shadow(0 20px 40px rgba(0,0,0,.4))}#curtain small{color:var(--gold-2);font-family:var(--font-d);font-style:italic;letter-spacing:.08em;font-size:1.1rem;margin-top:1rem;animation:logoIn 1.3s var(--ease) both}
@keyframes markIn{from{opacity:0;transform:scale(.5) rotate(-20deg)}to{opacity:1;transform:none}}
#curtain .logo{font-family:var(--font-d);color:var(--cream);font-size:clamp(3rem,8vw,6rem);letter-spacing:.35em;font-weight:300;animation:logoIn 1.1s var(--ease) both}
#curtain .logo i{color:var(--gold-2);font-style:italic}
#curtain.off{transform:translateY(-100%)}
@keyframes logoIn{from{opacity:0;letter-spacing:.8em;filter:blur(8px)}to{opacity:1;letter-spacing:.35em;filter:blur(0)}}

/* ---------- Nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:900;height:var(--nav-h);display:flex;align-items:center;transition:background .4s,box-shadow .4s,height .4s}
.nav.solid{background:rgba(251,247,243,.85);backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 1px 0 rgba(62,12,31,.06);height:66px}
.nav .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.nav .links{display:flex;gap:2.2rem;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;font-weight:400}
.nav .links a{position:relative;padding:.4rem 0}
.nav .links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:linear-gradient(90deg,var(--wine),var(--gold));transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav .links a:hover::after,.nav .links a.active::after{transform:scaleX(1);transform-origin:left}
.brand{font-family:var(--font-d);font-size:1.9rem;letter-spacing:.32em;font-weight:400;padding-left:.32em;text-align:center;display:inline-flex;align-items:center;justify-content:center;gap:.55em}.brand .wm{display:flex;flex-direction:column;align-items:flex-end;line-height:1}.brand .wm small{font-family:var(--font-d);font-style:italic;font-size:.62rem;letter-spacing:.06em;color:var(--rosegold);margin-top:.25em;text-transform:none;font-weight:400}.brand .mark{width:40px;height:40px;border-radius:50%;transition:transform .6s var(--ease)}.brand:hover .mark{transform:rotate(360deg) scale(1.08)}
.brand i{color:var(--rosegold);font-style:italic}
.nav .actions{display:flex;justify-content:flex-end;gap:1.2rem;align-items:center}
.icon-btn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;position:relative;transition:background .3s,transform .3s var(--ease)}
.icon-btn:hover{background:var(--blush);transform:translateY(-2px)}
.icon-btn svg{width:20px;height:20px;stroke:var(--plum);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.icon-btn .badge{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--wine);color:var(--gold-3);font-size:.65rem;display:grid;place-items:center;font-weight:500;transform:scale(0);transition:transform .35s var(--ease)}
.icon-btn .badge.on{transform:scale(1)}
.icon-btn .badge.pop{animation:pop .5s var(--ease)}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.5)}100%{transform:scale(1)}}
.burger{display:none}
.announce{position:fixed;top:0;left:0;right:0;z-index:901;height:34px;background:linear-gradient(90deg,var(--plum),var(--wine),var(--plum));color:var(--gold-3);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;display:flex;align-items:center;overflow:hidden;transition:transform .4s var(--ease)}
.announce .track{display:flex;gap:4rem;white-space:nowrap;animation:marq 32s linear infinite;padding-left:2rem}
.announce .track span{display:inline-flex;gap:.8em;align-items:center}
.announce .track i{color:var(--gold-2);font-style:normal}
body.has-announce .nav{top:34px}
body.has-announce .nav.solid{top:0}
body.has-announce.scrolled .announce{transform:translateY(-100%)}
@keyframes marq{to{transform:translateX(-50%)}}

/* menú móvil */
.mobile-menu{position:fixed;inset:0;z-index:950;background:var(--cream);display:flex;flex-direction:column;justify-content:center;padding:2rem 8vw;transform:translateY(-100%);transition:transform .7s var(--ease);visibility:hidden}
.mobile-menu.open{transform:none;visibility:visible}
.mobile-menu a{font-family:var(--font-d);font-size:clamp(2.4rem,9vw,4rem);padding:.3rem 0;display:block;opacity:0;transform:translateY(20px);transition:.6s var(--ease)}
.mobile-menu.open a{opacity:1;transform:none}
.mobile-menu .close{position:absolute;top:1.4rem;right:6vw;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.8em;padding:1rem 2.2rem;border-radius:999px;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;position:relative;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s,background .3s,color .3s;isolation:isolate;white-space:nowrap}
.btn-primary{background:linear-gradient(135deg,var(--wine),var(--plum));color:var(--gold-3);border:1px solid rgba(201,162,77,.35)}
.btn-primary::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.25) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s var(--ease);z-index:-1}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 18px 36px -14px rgba(90,17,48,.7),0 0 0 4px rgba(201,162,77,.18);border-color:var(--gold)}
.btn-primary:hover::before{transform:translateX(120%)}
.btn-outline{border:1px solid var(--plum);color:var(--plum);background:transparent}
.btn-outline::after{content:"";position:absolute;inset:0;background:var(--plum);transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease);z-index:-1}
.btn-outline:hover{color:var(--cream)}.btn-outline:hover::after{transform:scaleY(1)}
.btn-rose{background:linear-gradient(135deg,var(--gold),#A8842F);color:var(--plum)}
.btn-rose:hover{background:linear-gradient(135deg,var(--gold-2),var(--gold));transform:translateY(-3px);box-shadow:0 18px 36px -14px rgba(184,131,111,.6)}
.btn-ghost{color:var(--plum);padding:.6rem 0;border-bottom:1px solid var(--plum);border-radius:0;letter-spacing:.2em}
.btn-ghost:hover{color:var(--rosegold);border-color:var(--rosegold)}
.btn .arrow{transition:transform .4s var(--ease)}.btn:hover .arrow{transform:translateX(5px)}
.btn[disabled]{opacity:.5;pointer-events:none}
.btn-block{width:100%}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(36px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal-stagger>*{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal-stagger.in>*{opacity:1;transform:none}
.reveal-stagger.in>*:nth-child(1){transition-delay:.05s}.reveal-stagger.in>*:nth-child(2){transition-delay:.15s}
.reveal-stagger.in>*:nth-child(3){transition-delay:.25s}.reveal-stagger.in>*:nth-child(4){transition-delay:.35s}
.reveal-stagger.in>*:nth-child(5){transition-delay:.45s}.reveal-stagger.in>*:nth-child(6){transition-delay:.55s}
.reveal-stagger.in>*:nth-child(7){transition-delay:.65s}.reveal-stagger.in>*:nth-child(8){transition-delay:.75s}
.split .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding:0 .04em .16em;margin-bottom:-.16em}
.split .w span{display:inline-block;transform:translateY(110%);transition:transform 1.1s var(--ease)}
.split.in .w span{transform:none}

/* ---------- HERO ---------- */
.hero{min-height:100vh;display:grid;align-items:center;padding:calc(var(--nav-h) + 4rem) 0 4rem;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:4rem;align-items:center}
.hero h1{margin:1.2rem 0 1.6rem}
.hero h1 .line{display:block}
.hero h1 em,.hero h1 em .w span{background:linear-gradient(120deg,#8F6E2A,var(--gold) 40%,var(--gold-2) 55%,var(--gold) 70%,#8F6E2A);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% auto;animation:goldShine 5s linear infinite}
.hero .cta{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap;margin-top:2.4rem}
.hero .stats{display:flex;gap:2.5rem;margin-top:3.5rem;flex-wrap:wrap}
.hero .stats b{font-family:var(--font-d);font-size:2.2rem;font-weight:400;display:block;line-height:1}
.hero .stats small{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mauve)}
.hero-visual{position:relative;height:min(78vh,720px)}
.hero-visual .main{position:absolute;inset:6% 8% 0 12%;border-radius:200px 200px 28px 28px;overflow:hidden;box-shadow:var(--shadow);animation:floatY 7s ease-in-out infinite}
.hero-visual .main img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);transition:transform 1.5s var(--ease)}
.hero-visual:hover .main img{transform:scale(1)}
.hero-visual .card{position:absolute;background:rgba(255,255,255,.75);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.7);border-radius:var(--r-sm);padding:.9rem 1.1rem;box-shadow:var(--shadow-sm);display:flex;gap:.8rem;align-items:center;animation:floatY 6s ease-in-out infinite}
.hero-visual .card img{width:52px;height:52px;border-radius:10px;object-fit:cover}
.hero-visual .card b{display:block;font-weight:500;font-size:.85rem}
.hero-visual .card small{color:var(--mauve);font-size:.72rem;letter-spacing:.08em}
.hero-visual .c1{left:-4%;top:18%;animation-delay:-2s}
.hero-visual .c2{right:-2%;bottom:14%;animation-delay:-4s}
.hero-visual .c3{left:4%;bottom:-2%;animation-delay:-1s}
.hero-visual .ring{position:absolute;right:-6%;top:-4%;width:150px;height:150px;animation:spin 18s linear infinite}
.hero-visual .ring text{font-family:var(--font-b);font-size:9.5px;letter-spacing:3px;text-transform:uppercase;fill:var(--rosegold)}
.hero .scroll-hint{position:absolute;left:50%;bottom:1.6rem;transform:translateX(-50%);font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:var(--mauve);display:flex;flex-direction:column;align-items:center;gap:.6rem}
.hero .scroll-hint i{width:1px;height:44px;background:linear-gradient(var(--rosegold),transparent);animation:scrollHint 2s ease-in-out infinite}
@keyframes scrollHint{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Marquee marcas ---------- */
.brands-strip{padding:2.2rem 0;border-block:1px solid rgba(62,12,31,.08);overflow:hidden;background:var(--ivory)}
.brands-strip .track{display:flex;gap:5rem;white-space:nowrap;animation:marq 40s linear infinite;width:max-content}
.brands-strip:hover .track{animation-play-state:paused}
.brands-strip span{font-family:var(--font-d);font-size:1.7rem;letter-spacing:.3em;color:var(--plum);opacity:.55;transition:opacity .3s,color .3s;display:inline-flex;align-items:center;gap:5rem}
.brands-strip span i{font-style:normal;color:var(--rosegold);font-size:1rem;opacity:.9}
.brands-strip span:hover{opacity:1;color:var(--rosegold)}

/* ---------- Categorías ---------- */
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.cat{position:relative;aspect-ratio:3/4;border-radius:var(--r);overflow:hidden;background:var(--sand);display:block}
.cat img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),filter .6s}
.cat::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(62,12,31,.75),rgba(62,12,31,0) 55%);transition:opacity .5s}
.cat .lbl{position:absolute;left:1.4rem;right:1.4rem;bottom:1.4rem;color:#fff;z-index:2;display:flex;justify-content:space-between;align-items:flex-end}
.cat .lbl h3{color:#fff;font-size:1.7rem}
.cat .lbl small{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;opacity:.8}
.cat .lbl .go{width:40px;height:40px;border:1px solid rgba(255,255,255,.6);border-radius:50%;display:grid;place-items:center;transition:background .4s,transform .4s var(--ease)}
.cat .lbl .go svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:1.5}
.cat:hover img{transform:scale(1.08)}
.cat:hover .lbl .go{background:var(--rosegold);border-color:var(--rosegold);transform:rotate(-45deg)}
.cats.small .cat{aspect-ratio:1}

/* ---------- Product card ---------- */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem 1.4rem}
.pcard{position:relative;display:flex;flex-direction:column;gap:.9rem}
.pcard .media{position:relative;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;background:var(--ivory);isolation:isolate}
.pcard .media img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease),opacity .6s}
.pcard .media img.alt{position:absolute;inset:0;opacity:0}
.pcard:hover .media img.main{transform:scale(1.06)}
.pcard:hover .media img.alt{opacity:1;transform:scale(1.02)}
.pcard .tags{position:absolute;top:.9rem;left:.9rem;display:flex;gap:.4rem;flex-wrap:wrap;z-index:2}
.tag{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;padding:.35rem .7rem;border-radius:999px;background:rgba(255,255,255,.85);backdrop-filter:blur(6px);font-weight:500}
.tag.rose{background:linear-gradient(135deg,var(--gold),#A8842F);color:var(--plum)}.tag.dark{background:var(--wine);color:var(--gold-3)}
.pcard .wish{position:absolute;top:.8rem;right:.8rem;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.85);display:grid;place-items:center;z-index:2;opacity:0;transform:translateY(-6px);transition:.4s var(--ease)}
.pcard:hover .wish{opacity:1;transform:none}
.pcard .wish svg{width:16px;height:16px;fill:none;stroke:var(--plum);stroke-width:1.5}
.pcard .wish.on svg{fill:var(--rosegold);stroke:var(--rosegold)}
.pcard .quick{position:absolute;left:.8rem;right:.8rem;bottom:.8rem;z-index:2;transform:translateY(120%);transition:transform .5s var(--ease)}
.pcard:hover .quick{transform:none}
.pcard .quick .btn{width:100%;padding:.85rem;font-size:.7rem;background:rgba(62,12,31,.92);backdrop-filter:blur(8px);color:#fff}
.pcard .info{display:flex;flex-direction:column;gap:.25rem;padding:0 .2rem}
.pcard .b{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--rosegold);font-weight:500}
.pcard .n{font-family:var(--font-d);font-size:1.25rem;line-height:1.15}
.pcard .p{display:flex;gap:.7rem;align-items:baseline;font-weight:400}
.pcard .p s{color:var(--mauve-2);font-weight:300;font-size:.9em}
.pcard .swatches{display:flex;gap:5px;margin-top:.2rem;align-items:center}
.swatches i{width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.swatches small{font-size:.65rem;color:var(--mauve);margin-left:.3rem}
.stars{color:var(--gold);font-size:.7rem;letter-spacing:.05em}.stars small{color:var(--mauve);margin-left:.4em;letter-spacing:0}

/* ---------- Shade lab (home) ---------- */
.shade-lab{background:radial-gradient(ellipse at 20% 20%,var(--wine-2),var(--plum) 60%);color:var(--cream);overflow:hidden}
.shade-lab .eyebrow{color:var(--gold-2)}.shade-lab .eyebrow::before{background:var(--gold-2)}
.shade-lab .wrap{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.shade-lab .lead{color:rgba(251,247,243,.7)}
.lab-visual{position:relative;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden}
.lab-visual img{width:100%;height:100%;object-fit:cover}
.lab-visual .tint{position:absolute;inset:0;mix-blend-mode:color;opacity:.0;transition:opacity .6s,background .6s;pointer-events:none}
.lab-visual .lipstick{position:absolute;left:8%;bottom:8%;width:44px;height:150px;border-radius:8px 8px 4px 4px;background:linear-gradient(90deg,#111,#3a3a3a 50%,#111);box-shadow:0 20px 40px -10px rgba(0,0,0,.6)}
.lab-visual .lipstick::before{content:"";position:absolute;left:8px;right:8px;top:-60px;height:70px;border-radius:14px 3px 3px 3px;background:var(--sh,#C1121F);transition:background .5s;box-shadow:inset -6px 0 12px rgba(0,0,0,.25)}
.lab-visual .lipstick::after{content:"";position:absolute;left:3px;right:3px;top:-6px;height:12px;border-radius:2px;background:linear-gradient(90deg,#8a7a4a,#e6d29a,#8a7a4a)}
.shade-picker{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}
.shade-picker button{width:52px;height:52px;border-radius:50%;border:2px solid transparent;position:relative;transition:transform .4s var(--ease),border-color .3s}
.shade-picker button::after{content:attr(data-n);position:absolute;top:110%;left:50%;transform:translateX(-50%);font-size:.6rem;letter-spacing:.1em;white-space:nowrap;opacity:0;transition:.3s;color:var(--cream)}
.shade-picker button:hover,.shade-picker button.on{transform:scale(1.15);border-color:var(--gold-2)}
.shade-picker button.on::after{opacity:.8}
.shade-name{font-family:var(--font-d);font-size:2rem;margin-top:2.6rem;min-height:1.2em}
.shade-name span{display:inline-block;animation:fadeUp .5s var(--ease)}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- Editorial / banner ---------- */
.editorial .wrap{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.editorial .pic{position:relative}
.editorial .pic img{border-radius:var(--r);aspect-ratio:4/5;object-fit:cover;width:100%}
.editorial .pic .pic2{position:absolute;right:-12%;bottom:-10%;width:48%;border-radius:var(--r-sm);box-shadow:var(--shadow);aspect-ratio:1;border:6px solid var(--cream)}
.editorial .pic .stamp{position:absolute;left:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,var(--wine-2),var(--wine));color:var(--gold-3);border:1px solid var(--gold);display:grid;place-items:center;text-align:center;font-family:var(--font-d);font-style:italic;font-size:1.1rem;line-height:1.1;animation:floatY 6s ease-in-out infinite;box-shadow:var(--shadow)}
.banner{position:relative;min-height:70vh;display:grid;place-items:center;overflow:hidden;color:#fff;text-align:center;border-radius:var(--r);margin:0 4vw}
.banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.15)}
.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(62,12,31,.35),rgba(62,12,31,.65))}
.banner .in{position:relative;z-index:2;padding:4rem 2rem;max-width:760px}
.banner h2{color:#fff;font-size:clamp(2.6rem,6vw,5rem)}
.banner .eyebrow{color:var(--gold-2)}.banner .eyebrow::before,.banner .eyebrow::after{background:var(--gold-2)}

/* ---------- Envíos ---------- */
.ship{background:var(--ivory)}
.ship-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.ship-card{background:var(--white);border-radius:var(--r);padding:2.4rem 2rem;position:relative;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s}
.ship-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.ship-card .ic{width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,var(--blush),var(--gold-3));display:grid;place-items:center;margin-bottom:1.4rem}
.ship-card .ic svg{width:26px;height:26px;stroke:var(--rosegold-2);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.ship-card h3{margin-bottom:.5rem}
.ship-card p{color:var(--mauve);font-size:.95rem}
.ship-card .hl{position:absolute;top:1.4rem;right:1.4rem;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--rosegold);font-weight:500}

/* ---------- Testimonios ---------- */
.testi{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.tcard{background:var(--white);border-radius:var(--r);padding:2.2rem;position:relative}
.tcard::before{content:"“";position:absolute;top:.4rem;left:1.4rem;font-family:var(--font-d);font-size:6rem;color:var(--blush-2);line-height:1}
.tcard p{font-family:var(--font-d);font-size:1.35rem;line-height:1.4;position:relative;margin:1.4rem 0 1.6rem}
.tcard .who{display:flex;align-items:center;gap:.9rem}
.tcard .who i{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--wine),var(--gold));font-style:normal;display:grid;place-items:center;font-family:var(--font-d);color:#fff;font-size:1.1rem}
.tcard .who b{font-weight:500;font-size:.9rem;display:block}.tcard .who small{color:var(--mauve);font-size:.75rem;letter-spacing:.08em}

/* ---------- Newsletter ---------- */
.news{background:radial-gradient(ellipse at 80% 0%,var(--wine-2),var(--plum) 65%);color:var(--cream);border-radius:var(--r);margin:0 4vw;padding:5rem 2rem;text-align:center;position:relative;overflow:hidden}
.news h2{color:#fff}
.news form{display:flex;max-width:520px;margin:2.2rem auto 0;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.35rem;background:rgba(255,255,255,.06)}
.news input{flex:1;background:none;border:0;padding:.8rem 1.4rem;color:#fff;outline:0}
.news input::placeholder{color:rgba(255,255,255,.5)}
.news .btn{padding:.85rem 1.6rem}

/* ---------- Footer ---------- */
footer{padding:5rem 0 2rem;background:var(--cream)}
footer .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(62,12,31,.1)}
footer h4{font-family:var(--font-b);font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;margin-bottom:1.2rem;font-weight:500}
footer li{margin:.5rem 0;color:var(--mauve);font-size:.95rem}
footer li a:hover{color:var(--rosegold)}
footer .brand{text-align:left;padding:0;justify-content:flex-start}
footer .foot-brand p{color:var(--mauve);margin-top:1rem;max-width:36ch}
footer .socials{display:flex;gap:.6rem;margin-top:1.4rem}
footer .socials a{width:38px;height:38px;border:1px solid rgba(62,12,31,.15);border-radius:50%;display:grid;place-items:center;transition:.3s}
footer .socials a:hover{background:var(--plum);color:#fff;border-color:var(--plum)}
footer .socials svg{width:16px;height:16px;fill:currentColor}
footer .bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.6rem;font-size:.75rem;color:var(--mauve);letter-spacing:.08em}
footer .pay{display:flex;gap:.5rem;flex-wrap:wrap}
footer .pay span{border:1px solid rgba(62,12,31,.15);border-radius:6px;padding:.25rem .6rem;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase}

/* ---------- Cart drawer ---------- */
.overlay{position:fixed;inset:0;background:rgba(62,12,31,.45);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:.5s;z-index:960}
.overlay.on{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(460px,100vw);background:var(--cream);z-index:970;transform:translateX(105%);transition:transform .7s var(--ease);display:flex;flex-direction:column;box-shadow:-20px 0 60px -20px rgba(62,12,31,.3)}
.drawer.open{transform:none}
.drawer .head{display:flex;justify-content:space-between;align-items:center;padding:1.6rem 1.8rem;border-bottom:1px solid rgba(62,12,31,.08)}
.drawer .head h3{font-size:1.6rem}
.drawer .body{flex:1;overflow:auto;padding:1.2rem 1.8rem}
.drawer .foot{padding:1.4rem 1.8rem;border-top:1px solid rgba(62,12,31,.08);background:var(--ivory)}
.drawer .foot .row{display:flex;justify-content:space-between;margin-bottom:.4rem;font-size:.95rem}
.drawer .foot .row.total{font-family:var(--font-d);font-size:1.5rem;margin:.6rem 0 1.2rem;color:var(--wine)}
.ci{display:grid;grid-template-columns:78px 1fr auto;gap:1rem;padding:1rem 0;border-bottom:1px solid rgba(62,12,31,.07);align-items:center;animation:fadeUp .5s var(--ease)}
.ci img{width:78px;height:92px;object-fit:cover;border-radius:12px}
.ci .b{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rosegold)}
.ci .n{font-family:var(--font-d);font-size:1.1rem;line-height:1.15}
.ci .sh{font-size:.75rem;color:var(--mauve);display:flex;align-items:center;gap:.4rem;margin-top:.2rem}
.ci .sh i{width:10px;height:10px;border-radius:50%;display:inline-block}
.ci .price{font-weight:400;margin-top:.3rem}
.qty{display:inline-flex;align-items:center;border:1px solid rgba(62,12,31,.15);border-radius:999px;overflow:hidden}
.qty button{width:32px;height:32px;display:grid;place-items:center;transition:background .3s}
.qty button:hover{background:var(--blush)}
.qty span{min-width:28px;text-align:center;font-size:.9rem}
.ci .rm{font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--mauve);margin-top:.5rem;display:block}
.ci .rm:hover{color:var(--rosegold)}
.empty{text-align:center;padding:4rem 1rem;color:var(--mauve)}
.empty .big{font-family:var(--font-d);font-size:2rem;color:var(--plum);margin-bottom:.6rem}
.free-bar{margin:.2rem 0 .8rem;font-size:.75rem;color:var(--mauve)}
.free-bar .bar{height:4px;border-radius:4px;background:rgba(62,12,31,.08);margin-top:.4rem;overflow:hidden}
.free-bar .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--wine),var(--gold));transition:width .8s var(--ease)}

/* ---------- Toast ---------- */
.toast{position:fixed;left:50%;bottom:2rem;transform:translate(-50%,120%);background:var(--plum);color:var(--cream);padding:.9rem 1.4rem;border-radius:999px;font-size:.85rem;z-index:980;transition:transform .6s var(--ease);display:flex;gap:.7rem;align-items:center;box-shadow:var(--shadow)}
.toast.on{transform:translate(-50%,0)}
.toast i{color:var(--gold-2);font-style:normal}

/* ---------- Page header ---------- */
.page-head{padding:calc(var(--nav-h) + 5rem) 0 3rem;text-align:center;position:relative;overflow:hidden}
.page-head h1{font-size:clamp(2.6rem,6vw,4.6rem);margin-top:.8rem}
.crumbs{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mauve)}
.crumbs a:hover{color:var(--rosegold)}

/* ---------- Tienda ---------- */
.shop{display:grid;grid-template-columns:260px 1fr;gap:3rem;align-items:start;padding-bottom:6rem}
.filters{position:sticky;top:calc(var(--nav-h) + 1rem)}
.fgroup{margin-bottom:2rem}
.fgroup h4{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;margin-bottom:.9rem;font-weight:500;display:flex;justify-content:space-between}
.chips{display:flex;flex-wrap:wrap;gap:.45rem}
.chip{padding:.5rem .95rem;border-radius:999px;border:1px solid rgba(62,12,31,.15);font-size:.75rem;letter-spacing:.06em;transition:.3s;background:transparent}
.chip:hover{border-color:var(--rosegold);color:var(--rosegold)}
.chip.on{background:var(--wine);color:var(--gold-3);border-color:var(--wine)}
.fam{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem}
.fam button{aspect-ratio:1;border-radius:50%;border:2px solid transparent;transition:.3s}
.fam button.on,.fam button:hover{transform:scale(1.12);border-color:var(--plum)}
.range{width:100%;accent-color:var(--rosegold)}
.range-lbl{display:flex;justify-content:space-between;font-size:.8rem;color:var(--mauve);margin-top:.4rem}
.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.6rem;gap:1rem;flex-wrap:wrap}
.toolbar .count{color:var(--mauve);font-size:.9rem}
.select{border:1px solid rgba(62,12,31,.15);border-radius:999px;padding:.6rem 1.2rem;background:transparent;font-size:.8rem;letter-spacing:.06em;outline:0}
.search{display:flex;align-items:center;border:1px solid rgba(62,12,31,.15);border-radius:999px;padding:.2rem .4rem .2rem 1rem;gap:.5rem;background:#fff}
.search input{border:0;background:none;outline:0;padding:.5rem 0;min-width:180px}
.search svg{width:18px;height:18px;stroke:var(--mauve);fill:none;stroke-width:1.5}
.shop .grid{grid-template-columns:repeat(3,1fr)}
.no-results{grid-column:1/-1;text-align:center;padding:5rem 1rem;color:var(--mauve)}
.filters-toggle{display:none}
.clear{font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--rosegold)}

/* ---------- Producto ---------- */
.product{display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;padding:calc(var(--nav-h) + 3rem) 0 5rem;align-items:start}
.gallery{display:grid;grid-template-columns:84px 1fr;gap:1rem;position:sticky;top:calc(var(--nav-h) + 1rem)}
.thumbs{display:flex;flex-direction:column;gap:.7rem}
.thumbs img{width:84px;height:100px;object-fit:cover;border-radius:12px;opacity:.55;border:2px solid transparent;transition:.3s;cursor:pointer}
.thumbs img.on,.thumbs img:hover{opacity:1;border-color:var(--rosegold)}
.main-img{position:relative;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;background:var(--ivory)}
.main-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease),opacity .4s}
.main-img:hover img{transform:scale(1.04)}
.main-img .tint{position:absolute;inset:0;mix-blend-mode:color;opacity:0;transition:.5s;pointer-events:none}
.main-img .tint.on{opacity:.35}
.pinfo .brand-lnk{font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--rosegold);font-weight:500}
.pinfo h1{font-size:clamp(2rem,4vw,3.2rem);margin:.6rem 0 .8rem}
.pinfo .price{font-size:1.7rem;font-family:var(--font-d);color:var(--wine);display:flex;gap:1rem;align-items:baseline;margin:.6rem 0 1.4rem}
.pinfo .price s{font-size:1.1rem;color:var(--mauve-2)}
.pinfo .price .off{font-family:var(--font-b);font-size:.65rem;letter-spacing:.2em;background:var(--blush);padding:.3rem .7rem;border-radius:999px;color:var(--rosegold-2)}
.pinfo .desc{color:var(--mauve);font-size:1.02rem;margin-bottom:1.8rem}
.shade-sel h4{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;font-weight:500;margin-bottom:.8rem;display:flex;gap:.6rem}
.shade-sel h4 span{color:var(--rosegold);text-transform:none;letter-spacing:.04em;font-family:var(--font-d);font-size:1.05rem;font-style:italic;font-weight:400}
.shade-sel .sw{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:1.8rem}
.shade-sel .sw button{width:40px;height:40px;border-radius:50%;border:2px solid transparent;box-shadow:0 0 0 1px rgba(0,0,0,.08) inset;transition:transform .35s var(--ease),border-color .3s;position:relative}
.shade-sel .sw button.on,.shade-sel .sw button:hover{transform:scale(1.15);border-color:var(--plum)}
.shade-sel .sw button.on::after{content:"";position:absolute;inset:3px;border-radius:50%;border:2px solid #fff}
.buy{display:flex;gap:1rem;align-items:center;margin:1.4rem 0}
.buy .qty button{width:44px;height:44px}
.buy .btn{flex:1}
.ship-note{display:grid;gap:.6rem;margin-top:1.4rem;padding:1.2rem;background:var(--ivory);border-radius:var(--r-sm);font-size:.88rem}
.ship-note div{display:flex;gap:.7rem;align-items:flex-start}
.ship-note svg{width:18px;height:18px;stroke:var(--rosegold);fill:none;stroke-width:1.5;flex:none;margin-top:2px}
.ship-note b{font-weight:500}
.acc{border-top:1px solid rgba(62,12,31,.1);margin-top:2rem}
.acc details{border-bottom:1px solid rgba(62,12,31,.1)}
.acc summary{padding:1.1rem 0;cursor:pointer;list-style:none;display:flex;justify-content:space-between;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500}
.acc summary::after{content:"+";font-size:1.2rem;font-weight:300;transition:.3s}
.acc details[open] summary::after{transform:rotate(45deg)}
.acc .c{padding:0 0 1.2rem;color:var(--mauve);font-size:.95rem}
.acc .c li{padding:.25rem 0;padding-left:1.2rem;position:relative}
.acc .c li::before{content:"✦";position:absolute;left:0;color:var(--rosegold);font-size:.7rem;top:.5rem}
.stock-ok{font-size:.75rem;color:#4a8a5c;letter-spacing:.08em;display:flex;align-items:center;gap:.4rem}
.stock-ok::before{content:"";width:7px;height:7px;border-radius:50%;background:#4a8a5c;box-shadow:0 0 0 3px rgba(74,138,92,.2);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 3px rgba(74,138,92,.2)}50%{box-shadow:0 0 0 6px rgba(74,138,92,0)}}

/* ---------- Checkout ---------- */
.checkout{display:grid;grid-template-columns:1.1fr .9fr;gap:3.5rem;padding:calc(var(--nav-h) + 3rem) 0 6rem;align-items:start}
.form-card{background:#fff;border-radius:var(--r);padding:2.2rem;box-shadow:var(--shadow-sm);margin-bottom:1.4rem}
.form-card h3{margin-bottom:1.4rem;display:flex;align-items:center;gap:.8rem}
.form-card h3 i{width:30px;height:30px;border-radius:50%;background:var(--wine);color:var(--gold-3);font-style:normal;font-family:var(--font-b);font-size:.75rem;display:grid;place-items:center}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}
.field label{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mauve);font-weight:500}
.field input,.field select,.field textarea{border:1px solid rgba(62,12,31,.15);border-radius:12px;padding:.85rem 1rem;background:var(--cream);outline:0;transition:border .3s,box-shadow .3s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--rosegold);box-shadow:0 0 0 4px rgba(184,131,111,.12)}
.field.err input{border-color:#c0392b}
.pm{display:grid;gap:.8rem}
.pm label{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;border:1px solid rgba(62,12,31,.12);border-radius:var(--r-sm);padding:1rem 1.2rem;cursor:pointer;transition:.3s;background:var(--cream)}
.pm label:hover{border-color:var(--rosegold)}
.pm label.on{border-color:var(--plum);background:#fff;box-shadow:var(--shadow-sm)}
.pm label.off{opacity:.45;pointer-events:none}
.pm input{accent-color:var(--plum);width:18px;height:18px}
.pm b{font-weight:500;display:block;font-size:.95rem}
.pm small{color:var(--mauve);font-size:.8rem}
.pm .logos{display:flex;gap:.4rem;margin-top:.4rem;flex-wrap:wrap}
.pm .logos span{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;border:1px solid rgba(62,12,31,.15);border-radius:5px;padding:.2rem .5rem}
.summary{background:var(--ivory);border-radius:var(--r);padding:2rem;position:sticky;top:calc(var(--nav-h) + 1rem)}
.summary h3{margin-bottom:1rem}
.summary .ci{grid-template-columns:60px 1fr auto}
.summary .ci img{width:60px;height:70px}
.summary .row{display:flex;justify-content:space-between;padding:.4rem 0;font-size:.95rem}
.summary .row.total{font-family:var(--font-d);font-size:1.6rem;border-top:1px solid rgba(62,12,31,.1);margin-top:.6rem;padding-top:1rem}
.ship-pill{display:inline-flex;align-items:center;gap:.5rem;background:#fff;border-radius:999px;padding:.5rem 1rem;font-size:.78rem;margin:.8rem 0}
.ship-pill i{width:8px;height:8px;border-radius:50%;background:#4a8a5c;font-style:normal}
.secure{font-size:.72rem;color:var(--mauve);text-align:center;margin-top:1rem;display:flex;gap:.5rem;justify-content:center;align-items:center}
.secure svg{width:14px;height:14px;stroke:var(--mauve);fill:none;stroke-width:1.5}

/* ---------- Gracias ---------- */
.thanks{min-height:80vh;display:grid;place-items:center;padding:calc(var(--nav-h) + 3rem) 0 5rem;text-align:center}
.thanks .box{max-width:640px;background:#fff;border-radius:var(--r);padding:3rem;box-shadow:var(--shadow)}
.thanks .check{width:84px;height:84px;border-radius:50%;background:var(--blush);display:grid;place-items:center;margin:0 auto 1.4rem;animation:pop .8s var(--ease)}
.thanks .check svg{width:36px;height:36px;stroke:var(--rosegold-2);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.thanks .ref{font-family:var(--font-d);font-size:1.5rem;letter-spacing:.1em;margin:.6rem 0}
.status{display:inline-block;padding:.35rem .9rem;border-radius:999px;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500}
.status.pagado{background:#dff3e4;color:#2f6b3f}.status.pendiente_pago,.status.pendiente_confirmacion{background:#fff2d6;color:#8a5a00}
.status.rechazado,.status.error,.status.anulado{background:#fde2e2;color:#9b2c2c}.status.enviado{background:#e3ecfb;color:#2c4f8a}.status.entregado{background:#e9e3fb;color:#4f2c8a}

/* ---------- Marcas ---------- */
.brand-list{display:grid;gap:1.6rem}
.brand-row{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--r);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);min-height:380px}
.brand-row:nth-child(even) .pic{order:2}
.brand-row .pic{position:relative;overflow:hidden}
.brand-row .pic img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.brand-row:hover .pic img{transform:scale(1.06)}
.brand-row .txt{padding:3rem;display:flex;flex-direction:column;justify-content:center;gap:1rem}
.brand-row .txt h2{font-size:2.4rem;letter-spacing:.15em}
.brand-row .txt p{color:var(--mauve)}

/* ---------- Admin ---------- */
.admin{padding:calc(var(--nav-h) + 2rem) 0 5rem}
.admin .tabs{display:flex;gap:.5rem;margin-bottom:2rem;flex-wrap:wrap}
.admin table{width:100%;border-collapse:collapse;font-size:.88rem;background:#fff;border-radius:var(--r-sm);overflow:hidden}
.admin th,.admin td{padding:.8rem 1rem;text-align:left;border-bottom:1px solid rgba(62,12,31,.08);vertical-align:middle}
.admin th{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mauve);background:var(--ivory)}
.admin td img{width:44px;height:52px;object-fit:cover;border-radius:8px}
.admin .mini{padding:.45rem .9rem;font-size:.65rem}
.admin .login{max-width:420px;margin:6rem auto;background:#fff;padding:2.5rem;border-radius:var(--r);box-shadow:var(--shadow)}
.modal{position:fixed;inset:0;z-index:990;display:grid;place-items:center;background:rgba(62,12,31,.5);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:.4s}
.modal.on{opacity:1;visibility:visible}
.modal .box{background:var(--cream);border-radius:var(--r);width:min(860px,94vw);max-height:90vh;overflow:auto;padding:2.2rem;transform:translateY(20px);transition:.5s var(--ease)}
.modal.on .box{transform:none}
.shade-rows{display:grid;gap:.5rem}
.shade-rows .r{display:grid;grid-template-columns:1fr 110px auto;gap:.5rem;align-items:center}
.shade-rows input[type=color]{width:100%;height:40px;border:0;border-radius:8px;background:none;padding:0}
.hint{font-size:.78rem;color:var(--mauve)}
code{font-family:ui-monospace,Menlo,monospace;font-size:.85em;background:var(--ivory);padding:.1em .4em;border-radius:4px}

/* ---------- Petals canvas ---------- */
#petals{position:absolute;inset:0;pointer-events:none;z-index:1}

/* ---------- Responsive ---------- */
@media (max-width:1100px){.grid{grid-template-columns:repeat(3,1fr)}.cats{grid-template-columns:repeat(2,1fr)}.shop .grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){
  .nav .links{display:none}.burger{display:grid}
  .nav .wrap{grid-template-columns:auto 1fr auto}
  .hero .wrap,.shade-lab .wrap,.editorial .wrap,.product,.checkout,.brand-row{grid-template-columns:1fr}
  .hero{padding-top:calc(var(--nav-h) + 3rem)}.hero-visual{height:70vw;margin-top:2rem}
  .hero-visual .c1{left:0}.hero-visual .c2{right:0}
  .ship-grid,.testi{grid-template-columns:1fr}
  footer .cols{grid-template-columns:1fr 1fr}
  .shop{grid-template-columns:1fr}
  .filters{position:fixed;inset:0;z-index:955;background:var(--cream);padding:5rem 6vw 2rem;overflow:auto;transform:translateX(-100%);transition:.6s var(--ease)}
  .filters.open{transform:none}
  .filters-toggle{display:inline-flex}
  .gallery{position:static;grid-template-columns:1fr}.thumbs{flex-direction:row;order:2}
  .editorial .pic .pic2{right:0}
  .brand-row:nth-child(even) .pic{order:0}
  .summary{position:static}
}
@media (max-width:600px){.grid,.shop .grid{grid-template-columns:repeat(2,1fr);gap:1rem .8rem}.cats{grid-template-columns:1fr 1fr;gap:.8rem}.f2{grid-template-columns:1fr}footer .cols{grid-template-columns:1fr}.hero .stats{gap:1.4rem}.banner{margin:0 2vw}.news{margin:0 2vw}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal,.reveal-stagger>*{opacity:1;transform:none}}

/* ==========================================================
   ANIMACIONES EXTRA — oro, vino, polvo y movimiento
   ========================================================== */
@keyframes goldShine{to{background-position:200% center}}
.gold-text{background:linear-gradient(120deg,#8F6E2A,var(--gold) 40%,var(--gold-2) 55%,var(--gold) 70%,#8F6E2A);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% auto;animation:goldShine 5s linear infinite}
h2 em,.sec-head h2 em,.page-head h1 em{color:var(--wine)}
.shade-lab h2 em,.shade-lab h2 em .w span,.banner h2 em,.news h2 em{background:linear-gradient(120deg,var(--gold),var(--gold-2),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% auto;animation:goldShine 4s linear infinite}
.pcard .n:hover{color:var(--wine)}
.pcard .p{color:var(--wine)}

/* transición entre páginas */
.wipe{position:fixed;inset:0;z-index:9500;pointer-events:none;background:linear-gradient(160deg,var(--wine),var(--plum));transform:scaleY(0);transform-origin:bottom;transition:transform .55s var(--ease)}
.wipe-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.6);opacity:0;transition:opacity .35s,transform .6s var(--ease);width:110px;height:110px}
.wipe-logo img{width:100%;height:100%;filter:drop-shadow(0 20px 40px rgba(0,0,0,.4))}
.wipe-logo i{position:absolute;color:var(--gold-2);font-style:normal;font-size:1.1rem;opacity:0;animation:twinkle 1.2s ease-in-out infinite}
.wipe-logo i:nth-child(2){top:-14px;right:-6px}.wipe-logo i:nth-child(3){bottom:4px;left:-18px;font-size:.8rem;animation-delay:.3s}.wipe-logo i:nth-child(4){top:30px;right:-24px;font-size:.7rem;animation-delay:.6s}
@keyframes twinkle{0%,100%{opacity:0;transform:scale(.4)}50%{opacity:1;transform:scale(1.2)}}
body.leaving .wipe{transform:scaleY(1)}body.leaving .wipe-logo{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:.15s}
.wipe.enter .wipe-logo{opacity:1;transform:translate(-50%,-50%) scale(1)}
.wipe.enter{transform:scaleY(1);transform-origin:top;transition:none}
main{transition:opacity .45s var(--ease),transform .45s var(--ease)}
body.leaving main{opacity:0;transform:translateY(-16px)}

/* volando a la bolsa */
.fly-img{position:fixed;z-index:9600;pointer-events:none;border-radius:16px;object-fit:cover;box-shadow:0 20px 50px -10px rgba(62,12,31,.5);border:2px solid var(--gold-2);will-change:transform}
@keyframes wiggle{0%,100%{transform:rotate(0)}20%{transform:rotate(-14deg) scale(1.15)}40%{transform:rotate(12deg) scale(1.15)}60%{transform:rotate(-8deg)}80%{transform:rotate(6deg)}}
.icon-btn.wiggle{animation:wiggle .7s var(--ease)}
.icon-btn.wiggle::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--gold);animation:ringOut .8s var(--ease) forwards}
@keyframes ringOut{from{transform:scale(.6);opacity:1}to{transform:scale(1.8);opacity:0}}

/* brillo sobre tarjetas */
.pcard .media::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.35) 48%,rgba(246,231,191,.5) 52%,transparent 65%);transform:translateX(-120%);transition:transform 0s}
.pcard:hover .media::before{transform:translateX(120%);transition:transform 1.1s var(--ease)}
.pcard .media{transform-style:preserve-3d;transition:transform .5s var(--ease),box-shadow .5s}
.pcard:hover .media{box-shadow:0 30px 50px -24px rgba(62,12,31,.45)}
.pcard .media img{backface-visibility:hidden}

/* número que cambia */
@keyframes numPop{0%{transform:translateY(8px);opacity:0;color:var(--gold)}100%{transform:none;opacity:1}}
.num-anim{display:inline-block;animation:numPop .45s var(--ease)}
.ci.out{animation:ciOut .35s var(--ease) forwards}
@keyframes ciOut{to{opacity:0;transform:translateX(40px);height:0;padding:0;margin:0}}

/* botones magnéticos y loading */
.btn.magnet{transition:transform .25s var(--ease),box-shadow .4s,background .3s,color .3s}
.btn.loading{pointer-events:none;background:linear-gradient(110deg,var(--wine) 30%,var(--wine-2) 50%,var(--wine) 70%);background-size:200% auto;animation:goldShine 1.2s linear infinite;color:var(--gold-3)}
.btn.loading::after{content:"";width:14px;height:14px;border:2px solid var(--gold-2);border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}

/* producto: glitter y aura */
.main-img canvas.glitter{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.main-img::after{content:"";position:absolute;inset:-2px;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(201,162,77,.25)}
.shade-sel .sw button{transition:transform .35s var(--ease),border-color .3s,box-shadow .3s}
.shade-sel .sw button.on{box-shadow:0 0 0 3px var(--cream),0 0 0 5px var(--gold)}
.shade-sel .sw button.pop{animation:swPop .5s var(--ease)}
@keyframes swPop{40%{transform:scale(1.45)}}
.pinfo>*{animation:fadeUp .8s var(--ease) both}
.pinfo>*:nth-child(1){animation-delay:.05s}.pinfo>*:nth-child(2){animation-delay:.1s}.pinfo>*:nth-child(3){animation-delay:.15s}.pinfo>*:nth-child(4){animation-delay:.2s}.pinfo>*:nth-child(5){animation-delay:.25s}.pinfo>*:nth-child(6){animation-delay:.3s}.pinfo>*:nth-child(7){animation-delay:.35s}.pinfo>*:nth-child(8){animation-delay:.4s}.pinfo>*:nth-child(9){animation-delay:.45s}.pinfo>*:nth-child(10){animation-delay:.5s}.pinfo>*:nth-child(11){animation-delay:.55s}
.gallery{animation:galIn 1s var(--ease) both}
@keyframes galIn{from{opacity:0;transform:scale(.96) translateY(20px)}to{opacity:1;transform:none}}
.thumbs img.on{box-shadow:0 0 0 2px var(--gold)}

/* checkout */
.checkout .form-card{animation:fadeUp .8s var(--ease) both}
.checkout .form-card:nth-child(2){animation-delay:.1s}.checkout .form-card:nth-child(3){animation-delay:.2s}.checkout .form-card:nth-child(4){animation-delay:.3s}
.summary{animation:fadeUp .9s var(--ease) .2s both}
.pm label.on{border-color:var(--gold);box-shadow:0 0 0 4px rgba(201,162,77,.14),var(--shadow-sm)}
.pm label.on b{color:var(--wine)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(201,162,77,.16)}
.thanks .check{background:linear-gradient(135deg,var(--gold-3),var(--gold-2));box-shadow:0 0 0 8px rgba(201,162,77,.15)}
.thanks .check svg{stroke:var(--wine)}
.thanks .ref{color:var(--wine)}

/* polvo dorado ambiente */
canvas.dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.shade-lab .wrap,.news>*{position:relative;z-index:1}

/* admin: pedidos */
.order-card{background:#fff;border-radius:var(--r);padding:1.4rem 1.6rem;margin-bottom:1rem;box-shadow:var(--shadow-sm);display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:1.2rem;align-items:start;border-left:4px solid var(--gold)}
.order-card.pagado{border-left-color:#4a8a5c}.order-card.enviado{border-left-color:#2c4f8a}.order-card.entregado{border-left-color:#6a4f9a}.order-card.rechazado,.order-card.anulado{border-left-color:#9b2c2c}
.order-card h4{font-family:var(--font-d);font-size:1.3rem;letter-spacing:.06em;color:var(--wine);margin-bottom:.3rem}
.order-card .k{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mauve);font-weight:500;margin-top:.6rem}
.order-card .acts{display:flex;flex-direction:column;gap:.45rem;min-width:170px}
.order-card .acts .btn{padding:.6rem 1rem;font-size:.62rem;justify-content:center}
.wa-btn{background:#25D366!important;color:#fff!important;border:0!important}
.timeline{display:flex;gap:.3rem;margin:.6rem 0;flex-wrap:wrap}
.timeline span{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;padding:.25rem .55rem;border-radius:999px;background:var(--ivory);color:var(--mauve)}
.timeline span.done{background:var(--wine);color:var(--gold-3)}
@media (max-width:900px){.order-card{grid-template-columns:1fr}}

/* ---------- Cuenta / rastreo ---------- */
.icon-btn.logged::after{content:"";position:absolute;bottom:6px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 2px var(--cream)}
.auth{max-width:520px;margin:0 auto;background:#fff;border-radius:var(--r);padding:2.4rem;box-shadow:var(--shadow)}
.auth .tabs{display:flex;gap:.5rem;margin-bottom:1.6rem}
.auth .tabs button{flex:1;padding:.8rem;border-radius:999px;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;border:1px solid rgba(62,12,31,.15)}
.auth .tabs button.on{background:var(--wine);color:var(--gold-3);border-color:var(--wine)}
.acct{display:grid;grid-template-columns:300px 1fr;gap:2rem;align-items:start}
.acct .side{background:#fff;border-radius:var(--r);padding:1.8rem;box-shadow:var(--shadow-sm);position:sticky;top:calc(var(--nav-h) + 1rem)}
.acct .side .av{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--wine),var(--gold));display:grid;place-items:center;font-family:var(--font-d);font-size:1.8rem;color:var(--gold-3);margin-bottom:1rem}
.ocard{background:#fff;border-radius:var(--r);padding:1.6rem 1.8rem;box-shadow:var(--shadow-sm);margin-bottom:1.2rem;border-top:3px solid var(--gold);animation:fadeUp .7s var(--ease) both}
.ocard.entregado{border-top-color:#4a8a5c}.ocard.enviado{border-top-color:#2c4f8a}.ocard.rechazado,.ocard.anulado{border-top-color:#9b2c2c}
.ocard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}
.ocard .b{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--rosegold);font-weight:500}
.ocard .ref{font-family:var(--font-d);font-size:1.5rem;letter-spacing:.06em;color:var(--wine)}
.tl{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:relative;margin:1.2rem 0 .6rem}
.tl::before{content:"";position:absolute;left:12%;right:12%;top:13px;height:2px;background:rgba(62,12,31,.1)}
.tl-step{text-align:center;position:relative}
.tl-step i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fff;border:2px solid rgba(62,12,31,.15);margin:0 auto .5rem;font-style:normal;font-size:.7rem;color:var(--gold-3);position:relative;z-index:1;transition:.4s}
.tl-step.done i{background:var(--wine);border-color:var(--wine)}
.tl-step.cur i{box-shadow:0 0 0 5px rgba(201,162,77,.25);animation:pulseGold 2s infinite}
@keyframes pulseGold{0%,100%{box-shadow:0 0 0 4px rgba(201,162,77,.25)}50%{box-shadow:0 0 0 9px rgba(201,162,77,0)}}
.tl-step b{display:block;font-weight:500;font-size:.8rem}
.tl-step small{color:var(--mauve);font-size:.68rem}
.tl-step:not(.done) b{color:var(--mauve-2)}
.tl.bad .tl-step i{border-color:#e0c2c2}
.tl-bad{text-align:center;font-size:.8rem;color:#9b2c2c;margin:.4rem 0}
.ocard-items{border-top:1px solid rgba(62,12,31,.08);margin-top:1rem;padding-top:.8rem}
.ocard-items div{display:grid;grid-template-columns:44px 1fr auto;gap:.8rem;align-items:center;padding:.35rem 0;font-size:.9rem}
.ocard-items img{width:44px;height:52px;object-fit:cover;border-radius:8px}
.ocard-foot{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin-top:1rem;border-top:1px solid rgba(62,12,31,.08);padding-top:1rem}
.ocard-foot .tot{font-family:var(--font-d);font-size:1.3rem;color:var(--wine);margin-top:.3rem}
.ocard-foot .acts{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.ocard-foot .acts .btn{padding:.7rem 1.2rem;font-size:.65rem}
.ocard-foot .guia{font-size:.8rem;color:var(--mauve);background:var(--ivory);padding:.5rem .9rem;border-radius:999px}
.track-box{max-width:640px;margin:0 auto}
@media (max-width:900px){.acct{grid-template-columns:1fr}.acct .side{position:static}.tl-step b{font-size:.7rem}}

/* ---------- Login premium ---------- */
.auth-wrap{display:grid;grid-template-columns:1.05fr .95fr;min-height:calc(100vh - var(--nav-h));margin-top:calc(var(--nav-h) + 34px)}
.auth-visual{position:relative;overflow:hidden;background:radial-gradient(ellipse at 30% 20%,var(--wine-2),var(--plum) 65%);color:var(--cream);display:flex;flex-direction:column;justify-content:flex-end;padding:4rem 4.5rem;isolation:isolate}
.auth-visual canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.auth-visual .txt{position:relative;z-index:3;max-width:30rem}
.auth-visual h2{color:#fff;font-size:clamp(2.4rem,4vw,3.6rem);margin:.6rem 0 1rem}
.auth-visual h2 em{background:linear-gradient(120deg,var(--gold),var(--gold-2),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% auto;animation:goldShine 4s linear infinite}
.auth-visual p{color:rgba(251,247,243,.72);font-size:1.02rem}
.auth-visual .perks{display:flex;gap:1.6rem;margin-top:1.8rem;flex-wrap:wrap}
.auth-visual .perks div{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2);display:flex;align-items:center;gap:.5rem}
.auth-visual .perks i{font-style:normal;font-size:.9rem}
.float-card{position:absolute;z-index:2;width:150px;border-radius:18px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);border:1px solid rgba(232,207,140,.35);animation:floatY 7s ease-in-out infinite;transform-style:preserve-3d;transition:transform .6s var(--ease)}
.float-card img{width:100%;height:190px;object-fit:cover;display:block}
.float-card span{position:absolute;left:0;right:0;bottom:0;padding:.6rem .8rem;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-3);background:linear-gradient(transparent,rgba(62,12,31,.85))}
.float-card.f1{right:6%;top:9%;animation-delay:-1s;transform:rotate(6deg)}
.float-card.f2{right:30%;top:18%;width:130px;animation-delay:-3s;transform:rotate(-7deg)}
.float-card.f3{right:12%;top:34%;width:120px;animation-delay:-5s;transform:rotate(3deg)}
.float-card:hover{z-index:5}
/* trazos de labial que se dibujan */
.swatches-art{position:absolute;left:3rem;top:3rem;width:260px;z-index:2;opacity:.95}
.swatches-art path{fill:none;stroke-linecap:round;stroke-dasharray:420;stroke-dashoffset:420;animation:drawStroke 2.2s var(--ease) forwards}
.swatches-art path:nth-child(1){animation-delay:.3s}.swatches-art path:nth-child(2){animation-delay:.7s}.swatches-art path:nth-child(3){animation-delay:1.1s}.swatches-art path:nth-child(4){animation-delay:1.5s}
@keyframes drawStroke{to{stroke-dashoffset:0}}
.auth-visual .ring-badge{position:absolute;right:3rem;bottom:3rem;width:120px;height:120px;z-index:3;animation:spin 22s linear infinite;opacity:.9}
.auth-visual .ring-badge text{font-family:var(--font-b);font-size:9px;letter-spacing:3px;text-transform:uppercase;fill:var(--gold-2)}
.auth-visual .ring-badge img{display:none}
.auth-visual .mark-center{position:absolute;right:calc(3rem + 34px);bottom:calc(3rem + 34px);width:52px;height:52px;border-radius:50%;z-index:4;box-shadow:0 0 0 6px rgba(201,162,77,.15)}

.auth-panel{display:grid;place-items:center;padding:4rem 2rem;position:relative;overflow:hidden}
.auth-panel .blob{opacity:.35}
.glass{width:min(460px,100%);background:rgba(255,255,255,.72);backdrop-filter:blur(22px) saturate(1.2);border:1px solid rgba(255,255,255,.9);border-radius:28px;padding:2.6rem 2.4rem;box-shadow:0 40px 80px -30px rgba(62,12,31,.35),inset 0 1px 0 rgba(255,255,255,.9);position:relative;animation:glassIn 1s var(--ease) both}
@keyframes glassIn{from{opacity:0;transform:translateY(30px) scale(.97)}to{opacity:1;transform:none}}
.glass::before{content:"";position:absolute;inset:-1px;border-radius:29px;padding:1px;background:linear-gradient(135deg,rgba(201,162,77,.7),transparent 40%,transparent 60%,rgba(201,162,77,.5));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.glass .top{text-align:center;margin-bottom:1.6rem}
.glass .top img{width:64px;height:64px;border-radius:50%;margin:0 auto .8rem;box-shadow:0 12px 30px -10px rgba(62,12,31,.5);animation:floatY 6s ease-in-out infinite}
.glass h3{font-size:2rem;line-height:1}
.glass .top p{color:var(--mauve);font-size:.9rem;margin-top:.4rem}
.seg{position:relative;display:grid;grid-template-columns:1fr 1fr;background:var(--ivory);border-radius:999px;padding:4px;margin-bottom:1.6rem}
.seg button{position:relative;z-index:1;padding:.75rem;border-radius:999px;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mauve);transition:color .3s}
.seg button.on{color:var(--gold-3)}
.seg .pill{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:linear-gradient(135deg,var(--wine),var(--plum));transition:transform .5s var(--ease);box-shadow:0 6px 16px -6px rgba(62,12,31,.6)}
.seg.reg .pill{transform:translateX(100%)}
.ff{position:relative;margin-bottom:1.1rem}
.ff input{width:100%;border:1px solid rgba(62,12,31,.14);background:#fff;border-radius:14px;padding:1.25rem 1rem .55rem;outline:0;transition:border .3s,box-shadow .3s;font-size:.98rem}
.ff label{position:absolute;left:1rem;top:.95rem;font-size:.85rem;color:var(--mauve);pointer-events:none;transition:.25s var(--ease);letter-spacing:.02em}
.ff input:focus,.ff input:not(:placeholder-shown){border-color:var(--gold)}
.ff input:focus{box-shadow:0 0 0 4px rgba(201,162,77,.18)}
.ff input:focus+label,.ff input:not(:placeholder-shown)+label{top:.45rem;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rosegold)}
.ff .eye{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:var(--mauve)}
.ff .eye:hover{background:var(--ivory)}.ff .eye svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
.f2 .ff{margin-bottom:1.1rem}
.strength{height:6px;border-radius:6px;background:rgba(62,12,31,.08);margin:-.4rem 0 1.1rem;overflow:hidden;position:relative}
.strength i{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:6px;background:linear-gradient(90deg,var(--rose),var(--wine),var(--gold));transition:width .5s var(--ease)}
.strength i::after{content:"";position:absolute;right:-3px;top:-3px;width:12px;height:12px;border-radius:50% 50% 50% 0;background:var(--gold);transform:rotate(-45deg);opacity:0;transition:.3s}
.strength i.on::after{opacity:1}
.strength-lbl{font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mauve);margin:-.6rem 0 1rem;text-align:right;min-height:1em}
.auth-form{animation:fadeUp .6s var(--ease) both}
.glass .btn-primary{width:100%;padding:1.1rem}
.glass .alt{text-align:center;font-size:.82rem;color:var(--mauve);margin-top:1.2rem}
.glass .alt a{color:var(--wine);text-decoration:underline;text-underline-offset:3px}
.glass .divider{display:flex;align-items:center;gap:.8rem;color:var(--mauve-2);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;margin:1.2rem 0}
.glass .divider::before,.glass .divider::after{content:"";flex:1;height:1px;background:rgba(62,12,31,.1)}
.glass .wa{display:flex;align-items:center;justify-content:center;gap:.6rem;border:1px solid rgba(62,12,31,.12);border-radius:999px;padding:.8rem;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;transition:.3s;background:#fff}
.glass .wa:hover{border-color:#25D366;color:#128C7E}
.glass.shake{animation:shake .5s}
@keyframes shake{20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
@media (max-width:1000px){.auth-wrap{grid-template-columns:1fr}.auth-visual{min-height:0;padding:15rem 1.6rem 2.6rem}.auth-visual .txt{max-width:100%}.auth-visual h2{font-size:2.2rem}.auth-visual p{font-size:.92rem}.float-card{width:104px}.float-card img{height:130px}.float-card.f1{right:1.2rem;top:2.2rem;width:110px}.float-card.f1 img{height:140px}.float-card.f2{display:none}.float-card.f3{right:9.2rem;top:4.6rem}.swatches-art{width:150px;left:1.2rem;top:1.6rem}.auth-visual .ring-badge,.auth-visual .mark-center{display:none}.auth-visual .perks{gap:.8rem 1.2rem;margin-top:1.2rem}.auth-panel{padding:1.4rem 1rem 3rem;margin-top:-1.4rem}.glass{padding:2rem 1.4rem}}

/* ---------- Admin: tablero e inventario ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.6rem}
.kpi{background:#fff;border-radius:var(--r-sm);padding:1.2rem 1.4rem;box-shadow:var(--shadow-sm);border-top:3px solid var(--gold);animation:fadeUp .6s var(--ease) both}
.kpi:nth-child(2){animation-delay:.05s}.kpi:nth-child(3){animation-delay:.1s}.kpi:nth-child(4){animation-delay:.15s}.kpi:nth-child(5){animation-delay:.2s}.kpi:nth-child(6){animation-delay:.25s}.kpi:nth-child(7){animation-delay:.3s}.kpi:nth-child(8){animation-delay:.35s}
.kpi b{font-family:var(--font-d);font-size:2rem;font-weight:400;color:var(--wine);display:block;line-height:1}
.kpi span{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mauve);display:block;margin-top:.4rem}
.kpi small{color:var(--mauve-2);font-size:.75rem}
.dash2{display:grid;grid-template-columns:1.1fr .9fr;gap:1.2rem;align-items:start}
.lowrow,.toprow{display:grid;grid-template-columns:auto 1fr auto auto;gap:.9rem;align-items:center;padding:.6rem 0;border-bottom:1px solid rgba(62,12,31,.07);font-size:.9rem}
.lowrow img{width:40px;height:48px;object-fit:cover;border-radius:8px}
.toprow{grid-template-columns:auto 1fr auto}
.toprow i{width:26px;height:26px;border-radius:50%;background:var(--wine);color:var(--gold-3);font-style:normal;display:grid;place-items:center;font-size:.72rem}
table.inv tr.low td{background:#fff8e6}table.inv tr.out td{background:#fdecec}
.stk{display:inline-flex;align-items:center;border:1px solid rgba(62,12,31,.15);border-radius:999px;overflow:hidden;background:#fff}
.stk button{width:30px;height:32px}.stk button:hover{background:var(--blush)}
.stk input{width:58px;text-align:center;border:0;outline:0;font-weight:500;background:transparent;-moz-appearance:textfield}
.stk input::-webkit-outer-spin-button,.stk input::-webkit-inner-spin-button{-webkit-appearance:none}
.sw-dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:.4rem;vertical-align:middle;border:1px solid rgba(0,0,0,.1)}
.hint-warn{color:#8a5a00;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;display:block;margin-top:.3rem}
.hint-bad{color:#9b2c2c;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;display:block;margin-top:.3rem}
.checks{background:var(--ivory);border-radius:12px;padding:1rem 1.2rem;font-size:.88rem;display:grid;gap:.35rem}
.checks.ok{background:#eef7f0}.c-ok{color:#2f6b3f}.c-bad{color:#9b2c2c;font-weight:500}
@media (max-width:1000px){.kpis{grid-template-columns:repeat(2,1fr)}.dash2{grid-template-columns:1fr}}
.shade-sel .sw button.out{opacity:.35;position:relative}.shade-sel .sw button.out::before{content:'';position:absolute;left:-4px;right:-4px;top:50%;height:2px;background:var(--plum);transform:rotate(-45deg)}

/* ---------- Detalles de otro nivel ---------- */
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:9400;pointer-events:none}
.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--wine),var(--gold),var(--gold-2));transform-origin:left;transform:scaleX(0);box-shadow:0 0 12px rgba(201,162,77,.7)}
.totop{position:fixed;right:1.6rem;bottom:1.6rem;width:52px;height:52px;border-radius:50%;background:var(--wine);display:grid;place-items:center;z-index:940;box-shadow:var(--shadow);opacity:0;transform:translateY(20px) scale(.8);transition:.5s var(--ease)}
.totop.on{opacity:1;transform:none}.totop img{width:24px;animation:gemFloat 2.4s ease-in-out infinite}
.totop:hover{background:var(--wine-2);box-shadow:0 0 0 6px rgba(201,162,77,.2),var(--shadow)}
.nav{transition:background .4s,box-shadow .4s,height .4s,transform .5s var(--ease),top .4s}
body.nav-hide .nav{transform:translateY(-130%)}
/* revelado de imágenes */
.reveal-img{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s var(--ease)}
.reveal-img.in{clip-path:inset(0 0 0 0)}
.cat.reveal-img{opacity:1;transform:none}
/* cinta gigante */
.band{overflow:hidden;padding:1.6rem 0;border-block:1px solid rgba(62,12,31,.06);background:var(--cream)}
.band .track{display:flex;white-space:nowrap;will-change:transform}
.band span{font-family:var(--font-d);font-size:clamp(3rem,7vw,6.5rem);letter-spacing:.08em;color:transparent;-webkit-text-stroke:1px rgba(62,12,31,.35);padding-right:2rem;line-height:1}
.band.gold{background:var(--plum)}.band.gold span{-webkit-text-stroke:1px rgba(201,162,77,.7)}
/* imagen que sigue el cursor */
.hover-prev{position:fixed;left:0;top:0;width:220px;height:280px;border-radius:18px;overflow:hidden;pointer-events:none;z-index:9300;opacity:0;transition:opacity .35s,scale .4s var(--ease);box-shadow:0 30px 60px -20px rgba(62,12,31,.5);border:1px solid rgba(201,162,77,.5);scale:.8}
.hover-prev.on{opacity:1;scale:1}.hover-prev img{width:100%;height:100%;object-fit:cover}
.brands-strip a{display:inline-flex}
/* categorías: borde dorado que gira */
.cat::before{content:"";position:absolute;inset:-2px;border-radius:calc(var(--r) + 2px);background:conic-gradient(from var(--a,0deg),transparent 0 70%,var(--gold) 85%,var(--gold-2) 90%,transparent 100%);z-index:-1;opacity:0;transition:opacity .4s}
.cat{isolation:auto;z-index:0}
.cat:hover::before{opacity:1;animation:spinBorder 2.2s linear infinite}
@property --a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes spinBorder{to{--a:360deg}}
.cat>img,.cat .lbl,.cat::after{border-radius:var(--r)}
/* testimonios activos */
.tcard{transition:transform .6s var(--ease),box-shadow .6s,border-color .6s;border:1px solid transparent}
.tcard.active{transform:translateY(-8px) scale(1.02);box-shadow:var(--shadow);border-color:var(--gold-2)}
/* vista rápida */
.qv{position:fixed;inset:0;z-index:985;background:rgba(62,12,31,.55);backdrop-filter:blur(8px);display:grid;place-items:center;opacity:0;visibility:hidden;transition:.45s;padding:1rem}
.qv.on{opacity:1;visibility:visible}
.qv-box{width:min(960px,100%);max-height:92vh;overflow:auto;background:var(--cream);border-radius:28px;display:grid;grid-template-columns:1fr 1fr;position:relative;transform:translateY(30px) scale(.97);transition:.55s var(--ease);box-shadow:0 50px 100px -30px rgba(0,0,0,.6);border:1px solid rgba(201,162,77,.35)}
.qv.on .qv-box{transform:none}
.qv-close{position:absolute;top:.9rem;right:.9rem;width:40px;height:40px;border-radius:50%;background:#fff;display:grid;place-items:center;z-index:3;box-shadow:var(--shadow-sm)}
.qv-close svg{width:18px;height:18px;stroke:var(--plum);fill:none;stroke-width:1.6}
.qv-media{position:relative;background:var(--ivory);min-height:420px}
.qv-media>img{width:100%;height:100%;min-height:420px;object-fit:cover;display:block}
.qv-media .tint{position:absolute;inset:0;mix-blend-mode:color;opacity:0;transition:.4s;pointer-events:none}.qv-media .tint.on{opacity:.35}
.qv-thumbs{position:absolute;left:1rem;bottom:1rem;display:flex;gap:.5rem}
.qv-thumbs img{width:52px;height:60px;object-fit:cover;border-radius:10px;border:2px solid #fff;opacity:.6;cursor:pointer;transition:.3s}.qv-thumbs img.on,.qv-thumbs img:hover{opacity:1;border-color:var(--gold)}
.qv-info{padding:2.4rem 2.2rem;display:flex;flex-direction:column;gap:.7rem}
.qv-info .b{font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--rosegold);font-weight:500}
.qv-info h3{font-size:1.9rem;line-height:1.1}.qv-info .price{font-family:var(--font-d);font-size:1.6rem;color:var(--wine);display:flex;gap:.8rem;align-items:baseline}.qv-info .price s{font-size:1rem;color:var(--mauve-2)}
.qv-info p{color:var(--mauve);font-size:.92rem}
.qv-info .buy{margin:.6rem 0 .2rem}
.pcard .quick-row{display:flex;gap:.4rem}.pcard .quick-row .btn:first-child{flex:1}
.pcard .qv-btn{width:44px;padding:.85rem 0!important;flex:none;background:rgba(255,255,255,.92)!important;color:var(--plum)!important}
/* lupa */
.lens{position:absolute;width:180px;height:180px;border-radius:50%;border:2px solid var(--gold-2);box-shadow:0 20px 40px -10px rgba(62,12,31,.5),inset 0 0 0 1px rgba(255,255,255,.6);pointer-events:none;transform:translate(-50%,-50%);opacity:0;transition:opacity .25s;background-repeat:no-repeat;z-index:3}
.lens.on{opacity:1}
/* barra fija móvil */
.sticky-buy{position:fixed;left:0;right:0;bottom:0;z-index:930;background:rgba(251,246,241,.92);backdrop-filter:blur(14px);border-top:1px solid rgba(201,162,77,.35);padding:.7rem 1rem;display:grid;grid-template-columns:48px 1fr auto;gap:.8rem;align-items:center;transform:translateY(110%);transition:transform .5s var(--ease)}
.sticky-buy.on{transform:none}.sticky-buy img{width:48px;height:56px;object-fit:cover;border-radius:10px}
.sticky-buy b{display:block;font-weight:500;font-size:.85rem;line-height:1.2}.sticky-buy small{color:var(--wine)}.sticky-buy .btn{padding:.8rem 1.2rem}
@media (max-width:760px){.qv-box{grid-template-columns:1fr}.qv-media,.qv-media>img{min-height:300px;max-height:340px}.band span{font-size:2.6rem}.totop{bottom:5rem;right:1rem}}

/* ---------- WhatsApp asesoría ---------- */
.wa-fab-wrap{position:fixed;left:1.4rem;bottom:1.4rem;z-index:945;display:flex;flex-direction:column;align-items:flex-start;gap:.8rem}
.wa-fab{position:relative;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#25D366,#128C7E);display:grid;place-items:center;box-shadow:0 18px 40px -12px rgba(18,140,126,.7);transition:transform .4s var(--ease);order:2}
.wa-fab:hover{transform:translateY(-3px) scale(1.06)}
.wa-fab svg{width:30px;height:30px;fill:#fff;position:relative;z-index:1}
.wa-pulse{position:absolute;inset:0;border-radius:50%;border:2px solid var(--gold-2);animation:waPulse 2.2s ease-out infinite}
.wa-pulse::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;animation:waPulse 2.2s ease-out .7s infinite}
@keyframes waPulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.9);opacity:0}}
.wa-badge{position:absolute;top:-2px;right:-2px;width:20px;height:20px;border-radius:50%;background:var(--wine);color:var(--gold-3);font-size:.65rem;display:grid;place-items:center;font-weight:500;border:2px solid #fff;z-index:2}
.wa-tip{order:3;background:#fff;color:var(--plum);padding:.6rem 1rem;border-radius:999px;font-size:.8rem;box-shadow:var(--shadow-sm);border:1px solid rgba(201,162,77,.4);opacity:0;transform:translateY(10px);transition:.5s var(--ease);pointer-events:none;cursor:pointer;position:absolute;left:70px;bottom:14px;white-space:nowrap}
.wa-tip.on{opacity:1;transform:none;pointer-events:auto}
.wa-panel{order:1;width:min(340px,calc(100vw - 2.8rem));background:var(--cream);border-radius:22px;box-shadow:0 40px 80px -24px rgba(62,12,31,.5);border:1px solid rgba(201,162,77,.4);overflow:hidden;transform:translateY(20px) scale(.92);opacity:0;visibility:hidden;transition:.5s var(--ease);transform-origin:bottom left;position:relative}
.wa-panel.open{transform:none;opacity:1;visibility:visible}
.wa-head{display:flex;align-items:center;gap:.8rem;padding:1rem 1.1rem;background:linear-gradient(135deg,var(--wine),var(--plum));color:#fff}
.wa-head b{display:block;font-weight:500;font-size:.95rem}.wa-head small{color:var(--gold-2);font-size:.7rem}
.wa-av{position:relative}.wa-av img{width:46px;height:46px;border-radius:50%;border:2px solid var(--gold)}
.wa-av i{position:absolute;right:0;bottom:2px;width:11px;height:11px;border-radius:50%;background:#25D366;border:2px solid var(--wine);animation:pulse 2s infinite}
.wa-close{margin-left:auto;width:32px;height:32px;border-radius:50%;display:grid;place-items:center}.wa-close svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:1.6}
.wa-body{padding:1rem;background:radial-gradient(circle at 20% 0%,var(--blush),transparent 50%),var(--ivory)}
.wa-msg{background:#fff;border-radius:4px 16px 16px 16px;padding:.8rem 1rem;font-size:.88rem;box-shadow:var(--shadow-sm);position:relative;animation:fadeUp .6s var(--ease) .2s both;line-height:1.45}
.wa-msg span{display:block;text-align:right;font-size:.62rem;color:var(--mauve-2);margin-top:.3rem}
.wa-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin:.9rem 0}
.wa-chips button{background:#fff;border:1px solid rgba(62,12,31,.12);border-radius:999px;padding:.55rem .9rem;font-size:.78rem;transition:.3s;animation:fadeUp .5s var(--ease) both}
.wa-chips button:nth-child(2){animation-delay:.1s}.wa-chips button:nth-child(3){animation-delay:.2s}.wa-chips button:nth-child(4){animation-delay:.3s}
.wa-chips button:hover{border-color:#25D366;background:#eafaf0;transform:translateY(-2px)}
.wa-write{display:flex;gap:.4rem;background:#fff;border-radius:999px;padding:.3rem .3rem .3rem 1rem;border:1px solid rgba(62,12,31,.12)}
.wa-write input{flex:1;border:0;outline:0;background:none;font-size:.88rem;min-width:0}
.wa-write button{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#25D366,#128C7E);display:grid;place-items:center;flex:none}
.wa-write button svg{width:18px;height:18px;stroke:#fff;fill:none;stroke-width:1.6;stroke-linejoin:round}
.wa-going{position:absolute;inset:0;background:linear-gradient(160deg,var(--wine),var(--plum));display:grid;place-items:center;text-align:center;color:var(--gold-3);opacity:0;visibility:hidden;transition:.4s;padding:2rem}
.wa-going>*{grid-area:1/1}
.wa-panel.going .wa-going{opacity:1;visibility:visible}
.wa-going .wa-ring{width:130px;height:130px;border-radius:50%;border:2px solid rgba(201,162,77,.5);animation:waRing 1.1s ease-out infinite}
@keyframes waRing{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.6);opacity:0}}
.wa-going img{width:40px;animation:gemFly 1.1s var(--ease) forwards}
@keyframes gemFly{0%{transform:translateY(40px) scale(.6);opacity:0}40%{transform:translateY(0) scale(1.1);opacity:1}100%{transform:translateY(-60px) scale(.8);opacity:0}}
.wa-going b{font-family:var(--font-d);font-size:1.4rem;font-weight:400;margin-top:110px;display:block}
.wa-going small{margin-top:150px;display:block;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(246,231,191,.7)}
/* sección asesoría */
.advisor{padding-top:0}
.adv-card{position:relative;overflow:hidden;border-radius:var(--r);background:radial-gradient(ellipse at 80% 20%,var(--wine-2),var(--plum) 60%);color:var(--cream);display:grid;grid-template-columns:320px 1fr;gap:3rem;align-items:center;padding:3.5rem;isolation:isolate}
.adv-card canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.adv-card>*{position:relative;z-index:1}
.adv-photo{position:relative;width:260px;height:260px;margin:0 auto;display:grid;place-items:center}
.adv-photo img{width:200px;height:200px;border-radius:50%;object-fit:cover;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);border:3px solid var(--gold)}
.adv-ring{position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(201,162,77,.6);animation:spin 30s linear infinite}
.adv-ring::before{content:"✦";position:absolute;top:-10px;left:50%;color:var(--gold-2);font-size:1.1rem}
.adv-online{position:absolute;bottom:26px;right:26px;background:#25D366;color:#fff;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;padding:.35rem .7rem;border-radius:999px;box-shadow:0 0 0 4px rgba(37,211,102,.25);animation:pulse 2s infinite}
.adv-txt h2{color:#fff;margin:.6rem 0 .8rem}
.adv-txt h2 em{background:linear-gradient(120deg,var(--gold),var(--gold-2),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% auto;animation:goldShine 4s linear infinite}
.adv-txt p{color:rgba(251,247,243,.75);max-width:52ch}
.adv-chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.4rem}
.adv-chips a{border:1px solid rgba(201,162,77,.45);border-radius:999px;padding:.65rem 1.1rem;font-size:.82rem;color:var(--gold-3);transition:.35s var(--ease);background:rgba(255,255,255,.04)}
.adv-chips a:hover{background:var(--gold);color:var(--plum);transform:translateY(-3px);border-color:var(--gold)}
.adv-note{display:block;margin-top:1rem;font-size:.72rem;letter-spacing:.1em;color:rgba(246,231,191,.6)}

/* ---------- Pulido iPad y celular ---------- */
@media (max-width:1100px){.adv-card{grid-template-columns:1fr;text-align:center;padding:2.6rem 1.6rem}.adv-txt p{margin:0 auto}.adv-chips{justify-content:center}.hero .wrap{gap:2.5rem}.hero-visual .card b{font-size:.78rem}}
@media (max-width:900px){
  .brand{font-size:1.5rem;letter-spacing:.24em}.brand .mark{width:34px;height:34px}.brand .wm small{font-size:.55rem}
  .nav .actions{gap:.4rem}.icon-btn{width:38px;height:38px}
  .hero{padding-top:calc(var(--nav-h) + 2.5rem);min-height:auto}.hero h1{font-size:clamp(2.6rem,11vw,4.5rem)}.hero-visual{height:78vw;max-height:520px;margin-top:1.5rem}
  .hero-visual .main{inset:4% 6% 0 10%}.hero .scroll-hint{display:none}
  .sec-head{margin-bottom:2rem}.sec-head .btn-ghost{font-size:.68rem}
  .shade-lab .wrap{gap:2.4rem}.shade-picker button{width:44px;height:44px}
  .editorial .pic .pic2{width:42%;right:2%;bottom:-6%}.editorial .pic .stamp{width:96px;height:96px;left:-10px;top:-10px;font-size:.9rem}
  .banner{min-height:56vh}.news{padding:3.5rem 1.4rem}.news form{flex-direction:column;border-radius:20px;gap:.4rem}.news .btn{width:100%}
  .drawer{width:100vw}.toast{max-width:92vw;text-align:center}
  .product{padding-top:calc(var(--nav-h) + 1.5rem)}.buy{flex-wrap:wrap}.buy .btn{flex:1 1 100%;order:3}.buy .icon-btn{order:2}
  .checkout .form-card{padding:1.6rem 1.2rem}.summary{padding:1.4rem}
  .wa-fab-wrap{left:1rem;bottom:calc(1rem + env(safe-area-inset-bottom))}.totop{right:1rem;bottom:calc(5.4rem + env(safe-area-inset-bottom))}
  .sticky-buy{padding-bottom:calc(.7rem + env(safe-area-inset-bottom))}
  body.has-sticky .wa-fab-wrap{bottom:calc(5.6rem + env(safe-area-inset-bottom))}
  .ocard-head{flex-direction:column}.tl-step small{display:none}
  .glass{padding:2rem 1.4rem}.kpis{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .announce{font-size:.6rem}.eyebrow{font-size:.62rem}
  .hero .stats b{font-size:1.7rem}.hero .cta .btn{width:100%}
  .cats{grid-template-columns:1fr 1fr;gap:.7rem}.cat .lbl h3{font-size:1.2rem}.cat .lbl .go{width:32px;height:32px}
  .grid,.shop .grid{gap:1.2rem .7rem}.pcard .n{font-size:1.05rem}.pcard .quick{transform:none;position:static;margin-top:.5rem}.pcard .media{aspect-ratio:4/5}.pcard .wish{opacity:1;transform:none}
  .band span{font-size:2.2rem}.testi .tcard p{font-size:1.15rem}
  .pinfo h1{font-size:2rem}.gallery{grid-template-columns:1fr}.thumbs{order:2;flex-direction:row}.thumbs img{width:64px;height:76px}
  .page-head{padding-top:calc(var(--nav-h) + 3rem)}.page-head h1{font-size:2.4rem}
  .toolbar{gap:.6rem}.search input{min-width:120px}
  .wa-panel{width:calc(100vw - 2rem)}.wa-tip{display:none}
  .auth-visual{min-height:40vh}.auth-visual h2{font-size:2rem}
  footer .cols{gap:1.8rem}footer .bottom{flex-direction:column;align-items:flex-start}
  .order-card .acts{flex-direction:row;flex-wrap:wrap}.admin table{font-size:.78rem}
}
@media (hover:none){.pcard .quick{transform:none;position:static;margin-top:.5rem}.pcard .quick .btn{background:var(--wine)}.pcard .wish{opacity:1;transform:none}.cat:hover img{transform:none}}
@media (max-width:600px){.brand{font-size:1.2rem;letter-spacing:.16em;padding-left:0;gap:.4em}.brand .mark{width:30px;height:30px}.brand .wm small{font-size:.5rem}.nav .wrap{width:94vw}.icon-btn{width:34px;height:34px}.icon-btn svg{width:18px;height:18px}.nav .actions{gap:.15rem}}

/* ---------- Foto de la modelo (Tali) ---------- */
.model-img{object-position:center 18%}
.hero-visual .main{border-radius:220px 220px 32px 32px;box-shadow:0 40px 80px -30px rgba(62,12,31,.55),0 0 0 1px rgba(201,162,77,.35),0 0 0 10px rgba(251,246,241,.9),0 0 0 11px rgba(201,162,77,.35)}
.hero-visual .main::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(62,12,31,.55),transparent 45%);pointer-events:none}
.hero-sign{position:absolute;left:1.4rem;bottom:1.3rem;z-index:2;color:#fff}
.hero-sign small{display:block;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-2)}
.hero-sign b{font-family:var(--font-d);font-weight:400;font-style:italic;font-size:1.6rem;line-height:1.1}
.banner-model{object-position:center 22%}
.lab-visual img.model-img{object-position:center 15%}
/* favoritos de Tali */
.picks{padding-top:0}
.picks-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:3.5rem;align-items:center}
.picks-photo{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:3/4;box-shadow:var(--shadow)}
.picks-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.picks-photo:hover img{transform:scale(1.05)}
.picks-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(62,12,31,.7),transparent 50%)}
.picks-tag{position:absolute;left:1.6rem;bottom:1.6rem;z-index:2;color:#fff}
.picks-tag small{display:block;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-2)}
.picks-tag b{font-family:var(--font-d);font-weight:400;font-size:3rem;line-height:1;font-style:italic}
.picks-list{grid-template-columns:1fr 1fr;margin-top:2rem}
/* login: fondo con la modelo */
.auth-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 15%;opacity:.28;mix-blend-mode:luminosity;z-index:0;pointer-events:none;mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 90%);-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 90%)}
.auth-visual .txt,.auth-visual .float-card,.auth-visual .swatches-art,.auth-visual .ring-badge,.auth-visual .mark-center{z-index:2}
/* asesoría: foto redonda */
.adv-photo img.model-img{object-position:center 12%}
@media (max-width:1000px){.picks-grid{grid-template-columns:1fr}.picks-photo{aspect-ratio:4/3;max-height:420px}.picks-list{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.picks-list{grid-template-columns:1fr 1fr;gap:.7rem}.hero-sign b{font-size:1.2rem}}

/* ---------- Admin: inventario inteligente ---------- */
.inv-top{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-bottom:1.2rem}
.inv-top .kpi{padding:1rem 1.2rem}.inv-top .kpi b{font-size:1.6rem}
.inv-bar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:1.2rem}
.inv-bar .search{flex:1;min-width:220px}
.inv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.icard{background:#fff;border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;position:relative;transition:transform .35s var(--ease),box-shadow .35s;animation:fadeUp .5s var(--ease) both}
.icard:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.icard .im{position:relative;aspect-ratio:5/4;background:var(--ivory)}
.icard .im img{width:100%;height:100%;object-fit:cover}
.icard .lvl{position:absolute;top:.6rem;left:.6rem;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;padding:.3rem .6rem;border-radius:999px;background:#dff3e4;color:#2f6b3f;font-weight:500}
.icard.low .lvl{background:#fff2d6;color:#8a5a00}.icard.out .lvl{background:#fde2e2;color:#9b2c2c}
.icard.low{box-shadow:0 0 0 2px #f1c982,var(--shadow-sm)}.icard.out{box-shadow:0 0 0 2px #e9a3a3,var(--shadow-sm)}
.icard .bd{padding:.9rem 1rem 1rem;display:flex;flex-direction:column;gap:.4rem;flex:1}
.icard .nm{font-weight:500;font-size:.9rem;line-height:1.25}.icard .br{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rosegold)}
.icard .big{display:flex;align-items:baseline;gap:.4rem;margin-top:.2rem}
.icard .big b{font-family:var(--font-d);font-size:2.4rem;font-weight:400;color:var(--wine);line-height:1}
.icard .big small{color:var(--mauve);font-size:.72rem}
.icard .stk{align-self:flex-start;margin-top:.2rem}
.icard .stk button{width:36px;height:34px;font-size:1.1rem}.icard .stk input{width:54px;font-size:1rem}
.icard .row2{display:flex;gap:.4rem;margin-top:auto;padding-top:.6rem}
.icard .row2 .btn{padding:.55rem .8rem;font-size:.6rem;flex:1;justify-content:center}
.icard .shades-mini{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.3rem}
.icard .shades-mini span{display:inline-flex;align-items:center;gap:.3rem;font-size:.68rem;background:var(--ivory);border-radius:999px;padding:.2rem .55rem .2rem .3rem;cursor:pointer;transition:.25s}
.icard .shades-mini span:hover{background:var(--blush)}
.icard .shades-mini i{width:12px;height:12px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.1)}
.icard .shades-mini span.zero{opacity:.55;text-decoration:line-through}
.icard .shades-mini b{font-weight:500}
.wizard{max-width:720px}
.wizard .steps{display:flex;gap:.5rem;margin-bottom:1.4rem}
.wizard .steps span{flex:1;height:4px;border-radius:4px;background:rgba(62,12,31,.1)}.wizard .steps span.on{background:linear-gradient(90deg,var(--wine),var(--gold))}
.drop{border:2px dashed rgba(201,162,77,.6);border-radius:16px;padding:1.4rem;text-align:center;background:var(--ivory);cursor:pointer;transition:.3s;position:relative;overflow:hidden;min-height:150px;display:grid;place-items:center}
.drop:hover,.drop.over{background:var(--blush);border-color:var(--wine)}
.drop img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.drop .lbl{position:relative;z-index:1;font-size:.85rem;color:var(--mauve)}
.drop.has .lbl{background:rgba(255,255,255,.85);padding:.4rem .8rem;border-radius:999px}
.recep{display:grid;gap:.6rem}
.recep .r{display:grid;grid-template-columns:44px 1fr 120px;gap:.8rem;align-items:center;background:#fff;border-radius:12px;padding:.5rem .8rem}
.recep .r img{width:44px;height:50px;object-fit:cover;border-radius:8px}
.recep .r input{width:100%;border:1px solid rgba(62,12,31,.15);border-radius:10px;padding:.5rem;text-align:center;font-weight:500}
.recep .r .hint{font-size:.7rem}
.pick-list{max-height:260px;overflow:auto;border:1px solid rgba(62,12,31,.1);border-radius:12px;background:#fff}
.pick-list div{padding:.55rem .8rem;cursor:pointer;display:flex;justify-content:space-between;font-size:.88rem}
.pick-list div:hover{background:var(--blush)}
@media (max-width:900px){.inv-top{grid-template-columns:1fr 1fr}.inv-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}
