/* ==========================================================================
   Delicatessen Antonio · Web pública
   Rosa #C84078 · blancos y grises · Alice (títulos) + Outfit (texto)
   ========================================================================== */
:root{
  --pink:#C84078;--pink-600:#a93263;--pink-700:#8d2852;--pink-50:#fdf2f7;--pink-100:#f9dfeb;--pink-200:#f1bdd4;
  --ink:#1c1f2a;--ink-2:#4a5061;--muted:#8a90a0;--line:#ebedf1;--bg:#f7f7f9;--bg-2:#f1f2f5;--white:#fff;
  --ok:#16a34a;--warn:#d97706;--err:#dc2626;
  --r:18px;--r-sm:12px;--r-xs:9px;
  --shadow:0 1px 2px rgba(20,24,40,.04),0 10px 30px -14px rgba(20,24,40,.16);
  --shadow-pink:0 16px 36px -16px rgba(200,64,120,.55);
  --ease:cubic-bezier(.2,.8,.2,1);--wrap:1320px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Outfit',system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.6;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4,.serif{font-family:'Alice',Georgia,serif;font-weight:400;line-height:1.15;letter-spacing:-.01em;margin:0 0 .5em}
p{margin:0 0 1em}
a{color:inherit;text-decoration:none;transition:color .2s}
a:hover{color:var(--pink)}
img{max-width:100%;height:auto;display:block}
button{font:inherit;cursor:pointer}
[hidden]{display:none!important}
::selection{background:var(--pink-100)}
:focus-visible{outline:2px solid var(--pink);outline-offset:3px;border-radius:6px}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--ink);color:#fff;padding:8px 14px;border-radius:8px}
.skip:focus{left:8px}
.muted{color:var(--muted)}
.center{text-align:center}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 26px;border-radius:999px;border:1.5px solid transparent;background:var(--pink);color:#fff;font-weight:500;letter-spacing:.01em;white-space:nowrap;transition:transform .2s var(--ease),box-shadow .25s,background .2s,color .2s,border-color .2s}
.btn:hover{color:#fff;background:var(--pink-600);box-shadow:var(--shadow-pink);transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.98)}
.btn svg{width:18px;height:18px}
.btn-dark{background:var(--ink)} .btn-dark:hover{background:#000;box-shadow:0 14px 30px -14px rgba(0,0,0,.5)}
.btn-light{background:#fff;color:var(--ink);border-color:var(--line)} .btn-light:hover{background:#fff;color:var(--pink);border-color:var(--pink-200);box-shadow:var(--shadow)}
.btn-outline{background:transparent;color:var(--pink);border-color:var(--pink)} .btn-outline:hover{background:var(--pink);color:#fff}
.btn-sm{height:38px;padding:0 16px;font-size:14px}
.btn-block{width:100%}
.btn[disabled]{opacity:.5;pointer-events:none}
.link{color:var(--pink);font-weight:500;display:inline-flex;align-items:center;gap:6px}
.link svg{width:16px;height:16px;transition:transform .25s var(--ease)}
.link:hover svg{transform:translateX(4px)}

/* ---------- Barra superior ---------- */
.topbar{background:var(--ink);color:#d7d9e0;font-size:13px}
.topbar .wrap{display:flex;align-items:center;gap:18px;min-height:38px}
.topbar a:hover{color:#fff}
.topbar .msgs{flex:1;overflow:hidden;position:relative;height:38px}
.topbar .msgs span{position:absolute;inset:0;display:flex;align-items:center;opacity:0;transform:translateY(100%);transition:all .6s var(--ease)}
.topbar .msgs span.on{opacity:1;transform:none}
.topbar .msgs span.out{opacity:0;transform:translateY(-100%)}
.topbar .links{display:flex;gap:18px}
.topbar .xmas{flex:none;display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 14px;border-radius:999px;background:var(--pink);color:#fff;font-weight:600;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;box-shadow:0 0 0 1px rgba(255,255,255,.25) inset}
.topbar .xmas:hover{background:var(--pink-600);color:#fff}
.topbar .xmas-alt{background:#fff;color:var(--pink-700)}
.topbar .xmas-alt:hover{background:var(--pink-50);color:var(--pink-700)}
.topbar .wrap{gap:10px}.topbar .links{margin-left:8px}
.topbar .xmas b{display:none;font-weight:inherit}
@media (max-width:1100px){.topbar .xmas span{display:none}.topbar .xmas b{display:inline}}
@media (max-width:640px){.topbar .msgs{display:none}.topbar .wrap{justify-content:center}.topbar .xmas{padding:0 10px;font-size:11.5px}}

/* ---------- Cabecera ---------- */
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.6) blur(14px);transition:box-shadow .3s,transform .35s var(--ease)}
.header.stuck{box-shadow:0 10px 30px -20px rgba(20,24,40,.35)}
.header-main .wrap{display:flex;align-items:center;gap:28px;min-height:86px;transition:min-height .3s var(--ease)}
.header.stuck .header-main .wrap{min-height:70px}
.logo{display:flex;align-items:center;gap:12px;flex:none}
.logo img{height:56px;width:auto;border-radius:10px;transition:height .3s var(--ease)}
.header.stuck .logo img{height:46px}
.logo b{font-family:'Alice',serif;font-weight:400;font-size:22px;line-height:1;color:var(--ink)}
.logo small{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--pink);margin-top:4px}
.search{flex:1;min-width:0;position:relative}
.search form{display:flex;align-items:center;background:var(--bg);border:1.5px solid var(--bg);border-radius:999px;padding:5px 5px 5px 20px;transition:border-color .2s,background .2s,box-shadow .2s}
.search form:focus-within{background:#fff;border-color:var(--pink-200);box-shadow:0 0 0 5px var(--pink-50)}
.search input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:15px;outline:0;padding:8px 0}
.search button{height:42px;padding:0 22px;border-radius:999px;border:0;background:var(--pink);color:#fff;display:flex;align-items:center;gap:6px;font-weight:500;transition:background .2s}
.search button:hover{background:var(--pink-600)}
.search button svg{width:17px;height:17px}
.suggest{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border-radius:var(--r-sm);box-shadow:0 24px 60px -20px rgba(20,24,40,.35);border:1px solid var(--line);overflow:hidden;z-index:60;animation:pop .25s var(--ease)}
.suggest a{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line)}
.suggest a:hover,.suggest a.on{background:var(--pink-50);color:var(--ink)}
.suggest img{width:44px;height:44px;border-radius:8px;object-fit:cover;background:var(--bg)}
.suggest .p{margin-left:auto;font-weight:600;color:var(--pink)}
.suggest .all{justify-content:center;color:var(--pink);font-weight:500}
.hactions{display:flex;align-items:center;gap:6px;margin-left:auto}
.hbtn{position:relative;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:14px;background:none;border:0;color:var(--ink);transition:background .2s}
.hbtn:hover{background:var(--bg);color:var(--ink)}
.hbtn svg{width:24px;height:24px}
.hbtn .t{display:flex;flex-direction:column;line-height:1.15;font-size:12px;color:var(--muted);text-align:left}
.hbtn .t b{font-weight:500;color:var(--ink);font-size:14px}
.badge-count{position:absolute;top:2px;left:26px;min-width:19px;height:19px;padding:0 5px;border-radius:99px;background:var(--pink);color:#fff;font-size:11px;font-weight:600;display:grid;place-items:center;border:2px solid #fff}
.badge-count.bump{animation:bump .6s var(--ease)}
@keyframes bump{30%{transform:scale(1.45)}60%{transform:scale(.9)}}
.burger{display:none}

/* ---------- Navegación ---------- */
.nav{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.nav .wrap{display:flex;align-items:center;gap:8px;min-height:56px}
.cat-toggle{display:flex;align-items:center;gap:10px;height:42px;padding:0 20px;border-radius:999px;border:0;background:var(--pink);color:#fff;font-weight:500;flex:none}
.cat-toggle svg{width:18px;height:18px}
.menu{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:none}
.menu::-webkit-scrollbar{display:none}
.menu>li>a{display:flex;align-items:center;height:42px;padding:0 11px;border-radius:999px;font-size:14.5px;font-weight:450;white-space:nowrap;color:var(--ink-2);position:relative}
.menu>li>a:hover,.menu>li>a.on{color:var(--pink);background:var(--pink-50)}
.nav .phone{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);flex:none}
.nav .phone b{display:block;color:var(--ink);font-size:15px;font-weight:600}
.nav .phone .ic{width:38px;height:38px;border-radius:50%;background:var(--pink-50);color:var(--pink);display:grid;place-items:center}
.nav .phone svg{width:18px;height:18px}
/* con todas las secciones en la barra, el teléfono se queda en el icono salvo en pantallas muy anchas */
.nav .phone .phone-txt{display:none}
.menu{flex:1;min-width:0}
/* desplegables de la barra (Cestas, Navidad). La barra solo se desliza de lado en pantallas estrechas: ahí el enlace va directo */
@media (min-width:1101px){.menu{overflow:visible}}
.menu>li.has-sub{position:relative}
.menu>li.has-sub>a{gap:4px}
.menu>li.has-sub>a svg{width:14px;height:14px;opacity:.6;transition:transform .2s}
.menu>li.has-sub:hover>a svg,.menu>li.has-sub:focus-within>a svg{transform:rotate(180deg)}
.menu .xmas-link{color:var(--pink);font-weight:600}
.menu .sub{position:absolute;left:0;top:100%;z-index:60;min-width:230px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s}
.menu>li.has-sub:hover .sub,.menu>li.has-sub:focus-within .sub{opacity:1;visibility:visible;transform:none}
.menu .sub a{display:block;padding:9px 12px;border-radius:var(--r-xs);font-size:14.5px;color:var(--ink-2);white-space:nowrap}
.menu .sub a:hover{background:var(--pink-50);color:var(--pink)}
.menu .sub a.all{margin-top:4px;border-top:1px solid var(--line);border-radius:0 0 var(--r-xs) var(--r-xs);color:var(--pink);font-weight:500}
@media (max-width:1100px){.menu .sub{display:none}}
.menu>li.has-sub>a{padding-right:8px}
.menu>li:nth-last-child(-n+3) .sub{left:auto;right:0}
/* con Cestas y Navidad la barra va justa: el teléfono (está en el pie y en Contacto) y Ofertas/Blog (franja de arriba) salen de ella */
.nav .phone{display:none}
.menu>li>a{padding-left:7px;padding-right:5px}
.menu>li.has-sub>a{padding-right:5px}
.menu>li.has-sub>a svg{width:12px;height:12px}
/* en portátiles se quitan las flechitas para que quepa todo (el desplegable sigue saliendo al pasar el ratón) */
@media (max-width:1300px){.menu>li>a{padding-left:6px;padding-right:6px;font-size:13.5px}.menu>li.has-sub>a svg{display:none}}
@media (max-width:1300px){.nav .phone{display:none}.nav .wrap{gap:4px}.cat-toggle{padding:0 14px}.menu>li>a{padding:0 8px;font-size:14px}}

.mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 30px 60px -30px rgba(20,24,40,.35);opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .3s var(--ease);z-index:45}
.mega.open{opacity:1;visibility:visible;transform:none}
.nav .mega .wrap{display:grid;grid-template-columns:290px 1fr;align-items:stretch;gap:0;min-height:0;padding-top:24px;padding-bottom:28px}
.mega-roots{list-style:none;margin:0;padding:0 18px 0 0;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.mega-roots a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-radius:12px;font-size:15px;color:var(--ink-2);transition:background .2s,color .2s}
.mega-roots a svg{opacity:0;transform:translateX(-4px);transition:all .25s var(--ease);color:var(--pink);flex:none}
.mega-roots a:hover,.mega-roots a.on{background:var(--pink-50);color:var(--pink)}
.mega-roots a.on svg,.mega-roots a:hover svg{opacity:1;transform:none}
.mega-panel{display:grid;grid-template-columns:1fr 260px;gap:32px;padding:6px 0 6px 34px;align-items:start;animation:fadeUp .35s var(--ease)}
.mega-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.mega-head h4{font-family:'Alice',serif;font-weight:400;font-size:26px;margin:0;color:var(--ink)}
.mega-subs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mega-subs a{display:flex;align-items:center;justify-content:space-between;gap:10px;height:100%;min-height:50px;padding:10px 14px 10px 16px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);font-size:14.5px;font-weight:500;line-height:1.3;color:var(--ink);transition:background .2s,border-color .2s,color .2s,box-shadow .25s,transform .25s var(--ease)}
.mega-subs a::after{content:"";flex:none;width:28px;height:28px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%23C84078' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 5l7 7-7 7'/%3E%3C/svg%3E") no-repeat center;box-shadow:0 1px 3px rgba(20,24,40,.08);transition:transform .25s var(--ease),background-color .2s}
.mega-subs a:hover,.mega-subs a:focus-visible{background:var(--pink-50);border-color:var(--pink);color:var(--pink);transform:translateY(-2px);box-shadow:0 10px 22px -14px rgba(200,64,120,.6)}
.mega-subs a:hover::after,.mega-subs a:focus-visible::after{transform:translateX(3px)}
.mega-card{display:flex;flex-direction:column;border-radius:var(--r);background:var(--bg);overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s}
.mega-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);color:inherit}
.mega-card-img{aspect-ratio:4/3;display:grid;place-items:center;background:var(--pink-50)}
.mega-card-img img{width:70%;height:80%;object-fit:contain;mix-blend-mode:multiply}
.mega-card-txt{display:flex;flex-direction:column;gap:4px;padding:14px 16px}
.mega-card-txt small{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--pink)}
.mega-card-txt>b{font-weight:500;font-size:14.5px;line-height:1.35}
.mega-card-txt .price b{font-size:17px}
@media (max-width:1200px){.mega-subs{grid-template-columns:repeat(2,minmax(0,1fr))}.mega-panel{grid-template-columns:1fr 210px}}

/* ---------- Drawer (menú móvil y carrito) ---------- */
.drawer{position:fixed;inset:0;z-index:100;visibility:hidden}
.drawer.open{visibility:visible}
.drawer .scrim{position:absolute;inset:0;background:rgba(20,22,32,.45);opacity:0;transition:opacity .35s;backdrop-filter:blur(2px)}
.drawer.open .scrim{opacity:1}
.drawer .panel{position:absolute;top:0;bottom:0;right:0;width:min(440px,100%);background:#fff;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .45s var(--ease);box-shadow:-30px 0 60px -30px rgba(0,0,0,.35)}
.drawer.left .panel{right:auto;left:0;transform:translateX(-100%)}
.drawer.open .panel{transform:none}
.drawer .dh{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}
.drawer .dh h3{margin:0;font-size:24px}
.drawer .db{flex:1;overflow-y:auto;padding:10px 22px}
.drawer .df{padding:18px 22px;border-top:1px solid var(--line);background:var(--bg)}
.x{width:40px;height:40px;border-radius:50%;border:0;background:var(--bg);display:grid;place-items:center;transition:background .2s,transform .3s var(--ease)}
.x:hover{background:var(--pink-50);color:var(--pink);transform:rotate(90deg)}
.x svg{width:18px;height:18px}
.mline{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);animation:fadeUp .4s var(--ease) both}
.mline img{width:72px;height:72px;border-radius:12px;object-fit:cover;background:var(--bg);flex:none}
.mline .n{font-size:14.5px;line-height:1.35;font-weight:500}
.mline .q{display:flex;align-items:center;gap:10px;margin-top:6px;font-size:14px;color:var(--muted)}
.mline .pr{margin-left:auto;font-weight:600;white-space:nowrap}
.mline .rm{border:0;background:none;color:var(--muted);font-size:13px;padding:0;text-decoration:underline}
.mline .rm:hover{color:var(--err)}
.free-bar{font-size:13.5px;margin-bottom:12px}
.free-bar .bar{height:7px;border-radius:99px;background:#e5e7eb;overflow:hidden;margin-top:6px}
.free-bar .bar span{display:block;height:100%;background:linear-gradient(90deg,var(--pink),#e580ab);border-radius:99px;transition:width .8s var(--ease)}
.mob-nav a{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:16px}
.mob-nav details summary{list-style:none;display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);cursor:pointer;font-size:16px}
.mob-nav details summary::after{content:"+";color:var(--pink);font-size:20px;line-height:1;transition:transform .25s}
.mob-nav details[open] summary::after{transform:rotate(45deg)}
.mob-nav details a{padding-left:14px;font-size:15px;color:var(--ink-2)}

/* ---------- Secciones ---------- */
.section{padding-block:64px}
.section.tight{padding-block:40px}
.section.gray{background:var(--bg)}
.sh{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}
.sh h2{font-size:clamp(28px,3.4vw,40px);margin:0}
.sh .eyebrow{display:block;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--pink);margin-bottom:8px}
.sh p{margin:6px 0 0;color:var(--muted)}
.sh .line{flex:1;height:1px;background:var(--line);margin:0 12px 12px}
.arrows{display:flex;gap:8px}
.arrows button{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line);background:#fff;display:grid;place-items:center;transition:all .2s}
.arrows button:hover{border-color:var(--pink);color:var(--pink);background:var(--pink-50)}
.arrows svg{width:18px;height:18px}

/* ---------- Hero ---------- */
.hero{padding:22px 0 10px}
.slider{position:relative;border-radius:28px;overflow:hidden;background:var(--pink-50);aspect-ratio:1320/520;min-height:360px;isolation:isolate}
.slide{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;align-items:center;opacity:0;visibility:hidden;transition:opacity .9s var(--ease),visibility .9s}
.slide.on{opacity:1;visibility:visible;z-index:1}
.slide .media{position:absolute;inset:0;z-index:-1}
.slide .media img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 7s linear}
.slide.on .media img{transform:scale(1)}
/* Sin oscurecer la foto: el texto va en una tarjeta clara */
.slide .copy{padding:0 64px;max-width:640px;min-width:0;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.45),0 1px 3px rgba(0,0,0,.35)}
.slide .copy>*{opacity:0;transform:translateY(24px);transition:all .8s var(--ease)}
.slide.on .copy>*{opacity:1;transform:none}
.slide.on .copy>*:nth-child(2){transition-delay:.12s}.slide.on .copy>*:nth-child(3){transition-delay:.24s}.slide.on .copy>*:nth-child(4){transition-delay:.36s}
.slide .eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px;color:#f07aac;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.slide .eyebrow::before{content:"";width:28px;height:2px;background:currentColor;box-shadow:0 1px 6px rgba(0,0,0,.3)}
.slide h1,.slide h2{font-size:clamp(30px,4.4vw,60px);color:#fff;margin:0 0 20px;overflow-wrap:anywhere;hyphens:auto}
.slide p{font-size:17px;color:#fff}
.slide .sticker{position:absolute;right:8%;top:14%;width:118px;height:118px;border-radius:50%;background:var(--pink);color:#fff;display:grid;place-items:center;text-align:center;font-family:'Alice',serif;font-size:26px;line-height:1;box-shadow:var(--shadow-pink);animation:float 5s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-12px) rotate(-6deg)}}
.slide .copy .btn{background:transparent;border-color:#fff;color:#fff;text-shadow:none;box-shadow:0 4px 18px -6px rgba(0,0,0,.35);backdrop-filter:none}
.slide .copy .btn:hover{background:var(--pink);border-color:var(--pink);color:#fff}
.dots{position:absolute;left:64px;bottom:34px;display:flex;gap:8px;z-index:3}
.dots button{width:10px;height:10px;border-radius:99px;border:0;background:rgba(255,255,255,.75);box-shadow:0 1px 4px rgba(0,0,0,.25);padding:0;transition:all .4s var(--ease)}
.dots button.on{width:34px;background:var(--pink)}
.slider .arrows{position:absolute;right:28px;bottom:26px;z-index:3}
.slider .arrows button{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.35);color:#fff;backdrop-filter:blur(6px)}
.slider .arrows button:hover{background:#fff;color:var(--pink)}
.progress{position:absolute;left:0;bottom:0;height:3px;background:var(--pink);z-index:3;width:0}
.progress.run{animation:prog linear forwards}
@keyframes prog{to{width:100%}}

/* ---------- Tira de categorías ---------- */
.cats{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(128px,1fr);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 2px 14px;scrollbar-width:none}
.cats::-webkit-scrollbar{display:none}
.cat{scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;font-size:14.5px;font-weight:500}
.cat .ring{width:112px;height:112px;border-radius:50%;background:var(--pink-50);display:grid;place-items:center;overflow:hidden;position:relative;transition:transform .35s var(--ease),box-shadow .35s}
.cat .ring::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid transparent;transition:border-color .3s,inset .3s var(--ease)}
.cat img{width:100%;height:100%;object-fit:contain;padding:14%;mix-blend-mode:multiply;transition:transform .5s var(--ease)}
.cat:hover .ring{transform:translateY(-6px);box-shadow:var(--shadow-pink)}
.cat:hover .ring::after{border-color:var(--pink);inset:4px}
.cat:hover img{transform:scale(1.1)}
.cat .ph{font-family:'Alice',serif;font-size:40px;color:var(--pink)}
.cat .ring.is-icon{background:var(--pink-50);color:var(--pink)}
.cat .ring.is-icon svg{width:52%;height:52%;transition:transform .35s var(--ease)}
.cat:hover .ring.is-icon{background:var(--pink);color:#fff}
.cat:hover .ring.is-icon svg{transform:scale(1.08)}

/* ---------- Ventajas ---------- */
.features{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.feature{display:flex;gap:14px;align-items:center;padding:20px;border-radius:var(--r);background:var(--bg);transition:background .3s,transform .3s var(--ease)}
.feature:hover{background:var(--pink-50);transform:translateY(-3px)}
.feature .ic{width:52px;height:52px;border-radius:16px;background:#fff;color:var(--pink);display:grid;place-items:center;flex:none;box-shadow:var(--shadow)}
.feature .ic svg{width:24px;height:24px}
.feature b{display:block;font-weight:600}
.feature span{font-size:14px;color:var(--muted);line-height:1.4}

/* ---------- Tarjeta de producto ---------- */
.grid-products{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:20px}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 4*20px)/5);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 18px;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail>*{scroll-snap-align:start}
.card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -26px rgba(20,24,40,.35);border-color:transparent}
.card .img{position:relative;display:block;aspect-ratio:1;border-radius:13px;background:var(--bg);overflow:hidden;margin-bottom:14px}
.card .img img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;padding:8%;transition:transform .6s var(--ease)}
.card:hover .img img{transform:scale(1.07)}
.tag{position:absolute;top:10px;left:10px;z-index:2;font-size:12px;font-weight:600;padding:4px 10px;border-radius:99px;background:var(--pink);color:#fff}
.tag.dark{background:var(--ink)} .tag.gray{background:#fff;color:var(--muted);border:1px solid var(--line)}
.card .brand{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.card h3{font-family:'Outfit',sans-serif;font-size:15.5px;font-weight:500;line-height:1.35;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}
.card .foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px}
.price{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.price b{font-size:19px;font-weight:600;color:var(--ink)}
.price.sale b{color:var(--pink)}
.price del{font-size:14px;color:var(--muted)}
.add{width:44px;height:44px;border-radius:50%;border:0;background:var(--pink-50);color:var(--pink);display:grid;place-items:center;flex:none;transition:all .3s var(--ease)}
.add svg{width:20px;height:20px;transition:transform .3s var(--ease)}
.add:hover{background:var(--pink);color:#fff;transform:rotate(90deg);box-shadow:var(--shadow-pink)}
.add.done{background:var(--ok);color:#fff}
.add.loading svg{animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.stock{font-size:12.5px;display:inline-flex;align-items:center;gap:6px;color:var(--muted);margin-bottom:8px}
.stock::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok)}
.stock.backorder::before{background:var(--warn)} .stock.out::before{background:var(--err)}

/* ---------- Banners ---------- */
.banners{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.banner{position:relative;overflow:hidden;border-radius:24px;min-height:260px;display:flex;align-items:center;padding:36px;background:var(--ink);isolation:isolate}
.banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .9s var(--ease)}
.banner::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(17,19,26,.9) 0%,rgba(17,19,26,.72) 45%,rgba(17,19,26,.2) 85%)}
.banner:hover img{transform:scale(1.06)}
.banner .copy{max-width:58%}
.banner .eyebrow{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--pink-200)}
.banner h3{font-size:clamp(24px,2.4vw,32px);margin:8px 0 10px;color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.35)}
.banner p{color:rgba(255,255,255,.88);font-size:15px}
.banner.wide{grid-column:1/-1;min-height:200px;background:var(--pink)}
.banner.wide::before{background:linear-gradient(90deg,rgba(200,64,120,.95) 0%,rgba(200,64,120,.7) 45%,rgba(200,64,120,.1) 80%)}
.banner.wide h3,.banner.wide p,.banner.wide .eyebrow{color:#fff}

/* ---------- Oferta semana ---------- */
.deal{display:grid;grid-template-columns:380px 1fr;gap:24px;align-items:stretch}
.deal .box{position:relative;overflow:hidden;border-radius:24px;background:var(--ink);color:#fff;padding:34px;display:flex;flex-direction:column;justify-content:flex-end;min-height:420px;isolation:isolate}
.deal .box img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;opacity:.55}
.deal .box h2{color:#fff;font-size:38px}
.countdown{display:flex;gap:10px;margin:16px 0 20px}
.countdown div{background:rgba(255,255,255,.14);backdrop-filter:blur(6px);border-radius:12px;padding:8px 10px;min-width:62px;text-align:center}
.countdown b{display:block;font-family:'Alice',serif;font-size:26px;line-height:1.1}
.countdown span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;opacity:.8}

/* ---------- Blog ---------- */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.post-card{display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--line);transition:transform .35s var(--ease),box-shadow .35s}
.post-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.post-card .img{aspect-ratio:16/10;overflow:hidden;background:var(--pink-50)}
.post-card .img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.post-card:hover .img img{transform:scale(1.06)}
.post-card .img img[src$='.jpg'],.post-card .img img{background:#fff}
.post-card .post-ph{display:grid;place-items:center;height:100%;background:linear-gradient(135deg,var(--pink-50),#fff)}
.post-card .post-ph img{width:40%;height:auto;object-fit:contain;mix-blend-mode:multiply;opacity:.8}
.post-card .body{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1}
.post-card .meta{font-size:13px;color:var(--muted);margin-bottom:8px}
.post-card h3{font-size:22px;margin:0 0 10px}
.post-card p{font-size:15px;color:var(--ink-2);flex:1}

/* ---------- Newsletter ---------- */
.newsletter{position:relative;overflow:hidden;border-radius:28px;background:linear-gradient(135deg,var(--pink) 0%,var(--pink-700) 100%);color:#fff;padding:56px;display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:center;isolation:isolate}
.newsletter::before,.newsletter::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.08);z-index:-1;animation:float 9s ease-in-out infinite}
.newsletter::before{width:360px;height:360px;right:-90px;top:-140px}
.newsletter::after{width:200px;height:200px;left:38%;bottom:-120px;animation-delay:-3s}
.newsletter h2{color:#fff;font-size:clamp(28px,3vw,40px)}
.newsletter form{display:flex;background:#fff;border-radius:999px;padding:6px}
.newsletter input{flex:1;min-width:0;border:0;outline:0;font:inherit;padding:0 18px;color:var(--ink);background:none}
.newsletter .note{font-size:12.5px;opacity:.8;margin-top:10px}
.newsletter .note a{text-decoration:underline}

/* ---------- Descarga de la app: tarjeta rosa en la columna derecha del hero ---------- */
.hero .wrap{position:relative}
.hero-app{position:absolute;right:46px;top:50%;transform:translateY(-50%);z-index:4;width:min(330px,38%);
  padding:26px 24px;border-radius:22px;color:#fff;
  background:linear-gradient(145deg,var(--pink) 0%,var(--pink-700) 100%);
  border:2px solid #fff;
  box-shadow:0 26px 60px -24px rgba(141,40,82,.75),0 0 0 1px rgba(255,255,255,.25);
  animation:appIn .8s var(--ease) both .4s, appFloat 4.5s ease-in-out 1.2s infinite}
/* Destello que recorre la tarjeta cada pocos segundos */
.hero-app::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;overflow:hidden;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.35) 48%,transparent 60%);
  background-size:260% 100%;background-position:160% 0;animation:appShine 5s ease-in-out 2s infinite}
@keyframes appFloat{0%,100%{transform:translateY(-50%)}50%{transform:translateY(calc(-50% - 9px))}}
@keyframes appShine{0%,70%{background-position:160% 0}100%{background-position:-60% 0}}
.hero-app-ic{animation:appPulse 2.6s ease-in-out 1.5s infinite}
@keyframes appPulse{0%,100%{transform:translateY(0)}40%{transform:translateY(-4px)}60%{transform:translateY(0)}}
.hero-app .store{position:relative;overflow:hidden}
@keyframes appIn{from{opacity:0;transform:translate(16px,-50%)}}
.hero-app-txt{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.hero-app-ic{width:44px;height:44px;flex:none;border-radius:13px;display:grid;place-items:center;background:rgba(255,255,255,.18);color:#fff}
.hero-app-txt b{display:block;font-family:'Alice',serif;font-weight:400;font-size:22px;line-height:1.2;color:#fff}
.hero-app-txt small{display:block;margin-top:4px;font-size:13px;line-height:1.45;color:rgba(255,255,255,.85)}
.hero-app-cta{display:grid;gap:9px}
.hero-app .store{width:100%;justify-content:flex-start;padding:10px 16px;border-radius:12px;border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.14);color:#fff}
.hero-app .store:hover{background:#fff;border-color:#fff;color:var(--pink-700);transform:translateY(-2px)}
@media (max-width:1100px){.hero-app{right:28px;width:min(290px,42%);padding:20px 18px}.hero-app-txt small{display:none}}
@media (max-width:860px){
  .hero-app{position:static;transform:none;width:auto;margin-top:14px;padding:20px;border-radius:18px;border-width:2px;animation:none}
  .hero-app::after,.hero-app-ic{animation:none}
  .hero-app-txt small{display:block}
  .hero-app-cta{grid-template-columns:1fr 1fr}
  .hero-app .store{justify-content:center;padding:10px 8px}
}

/* ---------- Banner de la app (sección independiente) ---------- */
.appbox{position:relative;overflow:hidden;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;padding:34px 40px;border-radius:24px;background:linear-gradient(120deg,var(--ink) 0%,#2b3040 55%,var(--pink-700) 100%);color:#fff;isolation:isolate}
.appbox::after{content:"";position:absolute;right:-60px;top:-80px;width:280px;height:280px;border-radius:50%;background:rgba(200,64,120,.35);z-index:-1}
.appbox .eyebrow{display:block;font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--pink-200);margin-bottom:8px}
.appbox h2{color:#fff;font-size:clamp(26px,3vw,36px);margin:0}
.appbox p{margin:8px 0 0;color:rgba(255,255,255,.82);max-width:520px}
.appbox-cta{display:flex;flex-wrap:wrap;gap:12px}
.store{display:flex;align-items:center;gap:12px;padding:10px 20px;border-radius:14px;border:1.5px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;transition:background .25s,border-color .25s,transform .25s var(--ease)}
.store:hover{background:#fff;border-color:#fff;color:var(--ink);transform:translateY(-2px)}
.store small{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.8;line-height:1.2}
.store b{font-size:16px;font-weight:600;line-height:1.2}
@media (max-width:760px){.appbox{padding:26px 22px;border-radius:20px}.appbox-cta{width:100%}.store{flex:1 1 calc(50% - 12px);justify-content:center;padding:10px 12px}}

/* ---------- Pie ---------- */
.footer{background:var(--bg);margin-top:64px;padding-top:64px;font-size:15px}
.footer .cols{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:40px;padding-bottom:48px}
.footer h4{font-family:'Outfit',sans-serif;font-size:15px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:16px}
.footer ul{list-style:none;margin:0;padding:0}
.footer li{margin-bottom:9px}
.footer li a{color:var(--ink-2)}
.footer li a:hover{color:var(--pink);padding-left:4px}
.footer .about p{color:var(--ink-2);max-width:360px}
.socials{display:flex;gap:8px;margin-top:18px}
.socials a{width:42px;height:42px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--ink);transition:all .3s var(--ease)}
.socials a:hover{background:var(--pink);color:#fff;transform:translateY(-3px)}
.socials svg{width:18px;height:18px}
.contact-list li{display:flex;gap:10px;color:var(--ink-2)}
.contact-list svg{width:18px;height:18px;color:var(--pink);flex:none;margin-top:3px}
.bottom{border-top:1px solid var(--line);padding:22px 0;font-size:13.5px;color:var(--muted)}
.bottom .wrap{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between}
.pay{display:flex;gap:8px;align-items:center}
.pay span{padding:4px 10px;border-radius:6px;background:#fff;border:1px solid var(--line);font-size:12px;font-weight:600;color:var(--ink-2)}

/* ---------- Migas / cabeceras de página ---------- */
.crumbs{font-size:13.5px;color:var(--muted);padding:18px 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.crumbs a:hover{color:var(--pink)}
.crumbs span.sep{opacity:.5}
.page-head{padding:22px 0 30px}
.page-head h1{font-size:clamp(32px,4vw,50px);margin:6px 0 8px}
.page-head p{color:var(--muted);max-width:760px}
.hero-soft{background:linear-gradient(180deg,var(--pink-50),#fff);border-radius:0 0 40px 40px}

/* ---------- Listado / filtros ---------- */
.listing{display:grid;grid-template-columns:270px 1fr;gap:34px;align-items:start}
/* Los hijos de grid no deben forzar un ancho mayor que la pantalla */
.listing>*,.pdp>*,.two-col>*,.deal>*,.legal-layout>*,.newsletter>*,.auth>*{min-width:0}
.filters{position:sticky;top:160px;display:flex;flex-direction:column;gap:14px}
.fbox{border:1px solid var(--line);border-radius:var(--r-sm);padding:16px 18px;background:#fff}
.fbox+.fbox{margin-top:14px}
.fbox h4{font-family:'Outfit',sans-serif;font-size:15px;font-weight:600;margin:0 0 10px;display:flex;justify-content:space-between}
.fbox ul{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto}
.fbox li a{display:flex;justify-content:space-between;padding:5px 0;font-size:14.5px;color:var(--ink-2)}
.fbox li a.on{color:var(--pink);font-weight:600}
.fbox li a small{color:var(--muted)}
.check{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:14.5px;cursor:pointer}
.check input{accent-color:var(--pink);width:17px;height:17px}
.range{display:flex;gap:8px;align-items:center}
.range input{width:100%}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between;margin-bottom:20px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:99px;background:var(--bg);font-size:14px;border:1.5px solid transparent;transition:all .2s}
.chip:hover,.chip.on{border-color:var(--pink);color:var(--pink);background:var(--pink-50)}
.select,.input,.textarea{width:100%;font:inherit;font-size:15px;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:var(--r-xs);padding:11px 14px;transition:border-color .2s,box-shadow .2s}
.select{width:auto;padding-right:36px;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%238a90a0' stroke-width='2'%3E%3Cpath d='m2 4 4 4 4-4'/%3E%3C/svg%3E") no-repeat right 14px center}
.input:focus,.select:focus,.textarea:focus{outline:0;border-color:var(--pink);box-shadow:0 0 0 4px var(--pink-50)}
.textarea{min-height:140px;resize:vertical}
.filters-toggle{display:none}
.empty{padding:60px 20px;text-align:center;color:var(--muted);background:var(--bg);border-radius:var(--r)}
.empty h3{color:var(--ink)}
.pagination{display:flex;gap:8px;justify-content:center;margin-top:40px;flex-wrap:wrap}
.pagination a,.pagination span{min-width:44px;height:44px;padding:0 12px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--line);font-weight:500}
.pagination a:hover{border-color:var(--pink);color:var(--pink)}
.pagination .on{background:var(--pink);border-color:var(--pink);color:#fff}
.pagination .dis{opacity:.4}
.seo-text{margin-top:56px;padding:34px;border-radius:var(--r);background:var(--bg);color:var(--ink-2)}
.seo-text.clamp{max-height:260px;overflow:hidden;position:relative}
.seo-text.clamp::after{content:"";position:absolute;left:0;right:0;bottom:0;height:100px;background:linear-gradient(transparent,var(--bg))}

/* ---------- Ficha de producto ---------- */
.pdp{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:start;padding-top:18px}
.gallery{position:sticky;top:150px;display:grid;grid-template-columns:84px 1fr;gap:14px}
.gallery .thumbs{display:flex;flex-direction:column;gap:10px;max-height:560px;overflow:auto;scrollbar-width:none}
.gallery .thumbs button{border:1.5px solid var(--line);background:var(--bg);border-radius:12px;padding:4px;aspect-ratio:1;transition:border-color .2s}
.gallery .thumbs button.on,.gallery .thumbs button:hover{border-color:var(--pink)}
.gallery .thumbs img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.gallery .main{position:relative;border-radius:24px;background:var(--bg);aspect-ratio:1;overflow:hidden;cursor:zoom-in}
.gallery .main img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;padding:6%;transition:transform .25s ease-out,opacity .3s}
.gallery.single{grid-template-columns:1fr}
.pinfo .brand{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--pink);font-weight:600}
.pinfo h1{font-size:clamp(30px,3.4vw,44px);margin:8px 0 14px}
.pinfo .price b{font-size:34px;font-family:'Alice',serif;font-weight:400}
.pinfo .price del{font-size:18px}
.pinfo .tax{font-size:13px;color:var(--muted);margin:2px 0 18px}
.pinfo .short{color:var(--ink-2);margin:18px 0 22px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.buy{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.qty{display:flex;align-items:center;height:52px;border:1.5px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}
.qty button{width:46px;height:100%;border:0;background:none;font-size:20px;color:var(--ink-2);transition:background .2s,color .2s}
.qty button:hover{background:var(--pink-50);color:var(--pink)}
.qty input{width:48px;border:0;text-align:center;font:inherit;font-weight:600;outline:0;-moz-appearance:textfield}
.qty input::-webkit-inner-spin-button{display:none}
.buy .btn{height:52px;flex:1;min-width:220px}
.perks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
.perks div{display:flex;gap:10px;align-items:center;font-size:14px;padding:12px 14px;border-radius:12px;background:var(--bg)}
.perks svg{width:20px;height:20px;color:var(--pink);flex:none}
.meta-list{font-size:14px;color:var(--muted);margin-top:20px}
.meta-list span{color:var(--ink)}
.tabs{margin-top:64px}
.tabs .tl{display:flex;gap:6px;border-bottom:1px solid var(--line);overflow-x:auto}
.tabs .tl button{border:0;background:none;padding:14px 20px;font-size:17px;color:var(--muted);position:relative;white-space:nowrap}
.tabs .tl button.on{color:var(--ink)}
.tabs .tl button::after{content:"";position:absolute;left:20px;right:20px;bottom:-1px;height:2px;background:var(--pink);transform:scaleX(0);transition:transform .35s var(--ease)}
.tabs .tl button.on::after{transform:scaleX(1)}
.tabs .tp{padding:30px 0;animation:fadeUp .45s var(--ease)}
.specs{width:100%;max-width:720px;border-collapse:collapse}
.specs th,.specs td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line)}
.specs th{width:40%;color:var(--muted);font-weight:500}
.specs tr:nth-child(odd){background:var(--bg)}
.sticky-buy{position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--line);box-shadow:0 -12px 30px -18px rgba(20,24,40,.3);transform:translateY(110%);transition:transform .4s var(--ease)}
.sticky-buy.show{transform:none}
.sticky-buy .wrap{display:flex;align-items:center;gap:14px;min-height:72px}
.sticky-buy img{width:48px;height:48px;border-radius:10px;object-fit:contain;background:var(--bg)}
.sticky-buy .n{flex:1;min-width:0;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- Contenido editorial ---------- */
.prose{font-size:17px;line-height:1.8;color:var(--ink-2);max-width:820px}
.prose h2{font-size:30px;color:var(--ink);margin:1.6em 0 .5em}
.prose h3{font-size:24px;color:var(--ink);margin:1.4em 0 .4em}
.prose a{color:var(--pink);text-decoration:underline;text-underline-offset:3px}
.prose img{border-radius:var(--r-sm);margin:1.4em auto;height:auto!important}
.prose ul,.prose ol{padding-left:1.3em}
.prose li{margin-bottom:.4em}
.prose table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}
.prose td,.prose th{border:1px solid var(--line);padding:8px 12px}
.prose blockquote{margin:1.6em 0;padding:18px 24px;border-left:3px solid var(--pink);background:var(--pink-50);border-radius:0 12px 12px 0;font-family:'Alice',serif;font-size:21px;color:var(--ink)}
.legal-layout{display:grid;grid-template-columns:260px 1fr;gap:48px;align-items:start}
.legal-nav{position:sticky;top:160px;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px}
.legal-nav a{display:block;padding:9px 12px;border-radius:9px;font-size:14.5px;color:var(--ink-2)}
.legal-nav a.on,.legal-nav a:hover{background:var(--pink-50);color:var(--pink)}
.article-hero{border-radius:28px;overflow:hidden;aspect-ratio:21/9;background:var(--pink-50);margin:10px 0 36px}
.article-hero img{width:100%;height:100%;object-fit:cover}

/* ---------- Formularios / carrito / checkout ---------- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.form-grid .full{grid-column:1/-1}
.field label{display:block;font-size:14px;font-weight:500;margin-bottom:6px;color:var(--ink-2)}
.field .err{color:var(--err);font-size:13px;margin-top:4px}
.is-invalid{border-color:var(--err)!important}
.alert{padding:14px 18px;border-radius:12px;margin-bottom:20px;font-size:15px}
.alert.ok{background:#ecfdf3;color:#166534;border:1px solid #bbf7d0}
.alert.err{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.alert.info{background:var(--pink-50);color:var(--pink-700);border:1px solid var(--pink-100)}
.two-col{display:grid;grid-template-columns:1fr 400px;gap:36px;align-items:start}
.summary{position:sticky;top:150px;border-radius:var(--r);background:var(--bg);padding:26px}
.summary h3{font-size:26px}
.summary .row{display:flex;justify-content:space-between;padding:8px 0;font-size:15px}
.summary .row.total{border-top:1px solid var(--line-2,#dfe2e8);margin-top:8px;padding-top:16px;font-size:20px;font-weight:600}
.cart-table{width:100%;border-collapse:collapse}
.cart-table td{padding:18px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.cart-table img{width:86px;height:86px;border-radius:14px;object-fit:contain;background:var(--bg);mix-blend-mode:multiply}
.step{border:1px solid var(--line);border-radius:var(--r);padding:26px;margin-bottom:18px;background:#fff}
.step h3{display:flex;align-items:center;gap:12px;font-size:24px}
.step h3 i{font-style:normal;width:34px;height:34px;border-radius:50%;background:var(--pink);color:#fff;display:grid;place-items:center;font-family:'Outfit',sans-serif;font-size:15px;font-weight:600}
.opt{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1.5px solid var(--line);border-radius:14px;cursor:pointer;transition:border-color .2s,background .2s}
.opt+.opt{margin-top:10px}
.opt:has(input:checked){border-color:var(--pink);background:var(--pink-50)}
.opt input{accent-color:var(--pink);width:18px;height:18px}
.opt .d{font-size:13.5px;color:var(--muted)}
.opt .c{margin-left:auto;font-weight:600}
.auth{max-width:960px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:28px}
.auth .step{margin:0}
.account-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.status{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;padding:4px 12px;border-radius:99px;color:var(--c);background:color-mix(in srgb,var(--c) 12%,#fff)}
.status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c)}
.table{width:100%;border-collapse:collapse}
.table th{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;padding:12px;border-bottom:1px solid var(--line)}
.table td{padding:14px 12px;border-bottom:1px solid var(--line)}
.table-wrap{overflow-x:auto}

/* ---------- Buscador a pantalla completa ---------- */
.searchlayer{position:fixed;inset:0;z-index:150;background:#fff;display:flex;flex-direction:column;animation:slIn .35s var(--ease)}
.searchlayer.closing{animation:slOut .25s var(--ease) forwards}
@keyframes slIn{from{opacity:0;transform:scale(.99)}}
@keyframes slOut{to{opacity:0;transform:scale(.99)}}
body.search-open{overflow:hidden}
.sl-head{border-bottom:1px solid var(--line);background:#fff;flex:none}
.sl-head .wrap{display:flex;align-items:center;gap:18px;padding-top:18px;padding-bottom:18px}
.sl-form{flex:1;display:flex;align-items:center;gap:12px;min-width:0;color:var(--muted)}
.sl-form input{flex:1;min-width:0;border:0;outline:0;font:inherit;font-family:'Alice',serif;font-size:clamp(20px,3vw,30px);color:var(--ink);background:none;padding:6px 0}
.sl-form input::placeholder{color:var(--muted);opacity:.7}
/* Se oculta la "x" nativa del navegador en los campos de búsqueda: usamos la nuestra */
.sl-form input::-webkit-search-cancel-button,.sl-form input::-webkit-search-decoration,
.search input::-webkit-search-cancel-button,.search input::-webkit-search-decoration{-webkit-appearance:none;appearance:none;display:none}
.sl-form input,.search input{appearance:none}

.sl-clear{border:0;background:var(--bg);color:var(--ink-2);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex:none}
.sl-clear:hover{background:var(--pink-50);color:var(--pink)}
.sl-close{display:flex;align-items:center;gap:8px;border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:9px 18px;color:var(--ink-2);flex:none;transition:all .2s}
.sl-close:hover{border-color:var(--pink);color:var(--pink);background:var(--pink-50)}
.sl-body{flex:1;overflow-y:auto;padding-bottom:40px;-webkit-overflow-scrolling:touch}
.sl-body .wrap{padding-top:28px}
/* En el buscador la foto de categoría llena el círculo (en la portada es un producto y va con margen) */
.searchlayer .cats{display:grid;grid-auto-flow:row;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:18px;overflow:visible}
.searchlayer .cat .ring{background:var(--bg)}
.searchlayer .cat img{object-fit:cover;padding:0;mix-blend-mode:normal;width:100%;height:100%}

.sl-start h3,.sl-fbox h4{font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}
.sl-pop{margin-bottom:34px}
.sl-results{display:grid;grid-template-columns:250px minmax(0,1fr);gap:34px;align-items:start}
.sl-filters{position:sticky;top:0;display:flex;flex-direction:column;gap:16px}
.sl-fbox{border:1px solid var(--line);border-radius:var(--r-sm);padding:14px 16px}
.sl-fbox div{display:flex;flex-direction:column;gap:2px;max-height:240px;overflow:auto}
.sl-f{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;border:0;background:none;border-radius:9px;font:inherit;font-size:14.5px;color:var(--ink-2);text-align:left;cursor:pointer;transition:background .2s,color .2s}
.sl-f:hover{background:var(--bg);color:var(--ink)}
.sl-f.on{background:var(--pink-50);color:var(--pink);font-weight:600}
.sl-f span{color:var(--muted);font-size:12.5px}
.sl-f.on span{color:var(--pink)}
.sl-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;color:var(--muted);font-size:14.5px}
.sl-toolbar .select{margin-left:auto}
.sl-filters-toggle{display:none}
.sl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.sl-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px;position:relative;transition:transform .25s var(--ease),box-shadow .25s,border-color .25s;animation:fadeUp .4s var(--ease) both}
.sl-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:transparent;color:inherit}
.sl-card .im{aspect-ratio:1;border-radius:10px;background:var(--bg);overflow:hidden;display:grid;place-items:center;margin-bottom:10px}
.sl-card .im img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;padding:8%}
.sl-card .br{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.sl-card .nm{font-size:14.5px;line-height:1.35;margin:2px 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sl-card .pr{margin-top:auto;display:flex;align-items:baseline;gap:8px;font-weight:600}
.sl-card .pr del{font-weight:400;font-size:13px;color:var(--muted)}
.sl-card .tag{top:8px;left:8px}
.sl-card.out{opacity:.65}
.sl-more{text-align:center;margin-top:26px}
.sl-empty{text-align:center;padding:50px 20px;color:var(--muted)}
.sl-empty svg{color:var(--pink);opacity:.6}
.sl-empty h3{color:var(--ink);margin:12px 0 6px;font-size:24px}
@media (max-width:860px){
  .sl-results{grid-template-columns:1fr}
  .sl-filters{position:fixed;inset:0 auto 0 0;z-index:160;width:min(320px,88%);background:#fff;padding:20px;overflow:auto;transform:translateX(-100%);transition:transform .35s var(--ease);box-shadow:20px 0 50px -24px rgba(0,0,0,.4)}
  .sl-filters.open{transform:none}
  .sl-filters-toggle{display:inline-flex}
  .sl-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
  .sl-head .wrap{gap:10px;padding-top:12px;padding-bottom:12px}
  .sl-close span{display:none}
}

/* ---------- Toast ---------- */
.toast{position:fixed;left:50%;bottom:28px;z-index:120;transform:translate(-50%,30px);opacity:0;display:flex;align-items:center;gap:12px;padding:12px 18px 12px 12px;border-radius:999px;background:var(--ink);color:#fff;box-shadow:0 20px 50px -18px rgba(0,0,0,.5);transition:all .45s var(--ease);max-width:calc(100% - 32px)}
.toast.show{transform:translate(-50%,0);opacity:1}
.toast img{width:40px;height:40px;border-radius:50%;object-fit:cover;background:#fff}
.toast a{color:var(--pink-200);font-weight:500;margin-left:6px}

/* ---------- Banner de cookies ---------- */
.cookies{position:fixed;left:16px;right:16px;bottom:16px;z-index:140;display:flex;justify-content:center;pointer-events:none}
.cookies-box{pointer-events:auto;width:min(760px,100%);background:#fff;border-radius:22px;border:1px solid var(--line);box-shadow:0 30px 70px -20px rgba(20,24,40,.35);padding:22px 24px;animation:cookiesIn .6s var(--ease) both}
@keyframes cookiesIn{from{opacity:0;transform:translateY(30px)}}
.cookies.out .cookies-box{animation:cookiesOut .4s var(--ease) forwards}
@keyframes cookiesOut{to{opacity:0;transform:translateY(30px)}}
.cookies-main{display:flex;gap:16px;align-items:flex-start}
.cookies-ic{width:48px;height:48px;border-radius:14px;background:var(--pink-50);display:grid;place-items:center;font-size:24px;flex:none}
.cookies h2{font-size:22px;margin:2px 0 6px}
.cookies p{font-size:14.5px;color:var(--ink-2);margin:0}
.cookies p a{color:var(--pink);text-decoration:underline;text-underline-offset:3px}
.cookies-prefs{margin:18px 0 4px;display:grid;gap:8px;animation:fadeUp .35s var(--ease)}
.cookie-opt{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-radius:12px;background:var(--bg);cursor:pointer}
.cookie-opt b{display:block;font-weight:600;font-size:14.5px}
.cookie-opt small{color:var(--muted);font-size:13px;line-height:1.35;display:block}
.toggle{position:relative;flex:none}
.toggle input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.toggle i{display:block;width:44px;height:26px;border-radius:99px;background:#d5d8df;position:relative;transition:background .25s}
.toggle i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .25s var(--ease)}
.toggle input:checked+i{background:var(--pink)}
.toggle input:checked+i::after{transform:translateX(18px)}
.toggle input:focus-visible+i{box-shadow:0 0 0 4px var(--pink-100)}
.toggle.disabled{opacity:.6}
.cookies-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:18px}
.linkish{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.linkish:hover{color:var(--pink)}
@media (max-width:560px){.cookies{left:10px;right:10px;bottom:10px}.cookies-box{padding:18px}.cookies-actions .btn{flex:1 1 calc(50% - 8px)}.cookies-ic{display:none}}

/* ---------- 404 ---------- */
.notfound{text-align:center;padding-block:60px}
.notfound .big{font-family:'Alice',serif;font-size:clamp(90px,16vw,180px);line-height:1;color:var(--pink);background:linear-gradient(135deg,var(--pink),#f2a5c6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* ---------- Animaciones de entrada ---------- */
/* Solo se anima si hay JS: sin JS el contenido siempre es visible */
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-reveal].in,.js [data-reveal].in{opacity:1;transform:none}
.js [data-reveal-stagger]>*{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js [data-reveal-stagger].in>*{opacity:1;transform:none}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}}
@keyframes pop{from{opacity:0;transform:translateY(-6px) scale(.98)}}
.fly{position:fixed;z-index:130;width:60px;height:60px;border-radius:50%;object-fit:cover;pointer-events:none;box-shadow:var(--shadow-pink);transition:all .8s cubic-bezier(.55,0,.35,1)}

/* ---------- Responsive ---------- */
@media (max-width:1200px){.rail{grid-auto-columns:calc((100% - 3*20px)/4)}.features{grid-template-columns:repeat(2,1fr)}.footer .cols{grid-template-columns:1fr 1fr}}
@media (max-width:1024px){
  .nav .phone,.hbtn .t,.topbar .links{display:none}
  .listing{grid-template-columns:1fr}
  .filters{position:fixed;inset:0 auto 0 0;z-index:110;width:min(340px,90%);background:#fff;padding:20px;overflow:auto;transform:translateX(-100%);transition:transform .4s var(--ease);box-shadow:30px 0 60px -30px rgba(0,0,0,.4)}
  .filters.open{transform:none}
  .filters-toggle{display:inline-flex}
  .pdp{grid-template-columns:1fr;gap:30px}.gallery{position:static}
  .two-col{grid-template-columns:1fr}.summary{position:static}
  .deal{grid-template-columns:1fr}
  .posts{grid-template-columns:1fr 1fr}
  .legal-layout{grid-template-columns:1fr}.legal-nav{position:static;display:flex;overflow-x:auto;gap:4px}.legal-nav a{white-space:nowrap}
  .rail{grid-auto-columns:calc((100% - 2*16px)/3);gap:16px}
}
@media (max-width:760px){
  body{font-size:15.5px}
  .buy .btn{min-width:0}
  .qty{flex:none}
  .wrap{padding:0 16px}
  .topbar{font-size:12px}
  .header-main .wrap{flex-wrap:wrap;gap:10px 12px;min-height:0;padding-top:10px;padding-bottom:12px}
  .header.stuck .header-main .wrap{min-height:0}
  .logo img{height:44px}.logo b{font-size:18px}.logo small{display:none}
  .search{order:3;flex-basis:100%;max-width:none}
  .search button span{display:none}.search button{padding:0 16px}
  .burger{display:flex}
  .nav{display:none}
  .section{padding-block:44px}
  .slider{aspect-ratio:auto;min-height:440px;border-radius:22px}
  .slide{grid-template-columns:1fr;align-items:end}
  .slide .copy{padding:0 22px 70px;max-width:100%}
  .slide h1,.slide h2{font-size:clamp(26px,8vw,36px);margin-bottom:16px}
  .slide .eyebrow{font-size:11.5px;letter-spacing:.14em}
  .slide .copy .btn{height:44px;padding:0 20px;font-size:15px}
  .slide .sticker{width:86px;height:86px;font-size:19px;right:18px;top:18px}
  .dots{left:24px;bottom:28px}.slider .arrows{display:none}
  .rail{grid-auto-columns:calc((100% - 12px)/2);gap:12px}
  .grid-products{grid-template-columns:repeat(2,1fr);gap:12px}
  .card{padding:10px;border-radius:14px}.card h3{font-size:14px}.price b{font-size:16px}.add{width:38px;height:38px}
  .features{grid-template-columns:1fr;gap:10px}.feature{padding:14px}
  .banners{grid-template-columns:1fr}.banner{min-height:220px;padding:26px}.banner .copy{max-width:80%}.banner::before{background:linear-gradient(90deg,rgba(17,19,26,.88) 0%,rgba(17,19,26,.7) 60%,rgba(17,19,26,.45) 100%)}
  .posts{grid-template-columns:1fr}
  .newsletter{grid-template-columns:1fr;padding:34px 24px;border-radius:22px}
  .footer .cols{grid-template-columns:1fr;gap:28px}
  .gallery{grid-template-columns:1fr}.gallery .thumbs{flex-direction:row;order:2;max-height:none}.gallery .thumbs button{width:70px;flex:none}
  .perks{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .auth{grid-template-columns:1fr}
  .sh{flex-wrap:wrap}.sh .line{display:none}
  .cart-table img{width:64px;height:64px}
  .cart-table .hide-sm{display:none}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}[data-reveal],[data-reveal-stagger]>*{opacity:1;transform:none}}

/* Verificación de edad (categorías con alcohol) */
.agegate{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px;background:rgba(17,17,20,.72);backdrop-filter:blur(6px);animation:agIn .25s ease both}
.agegate[hidden]{display:none}
.agegate-box{width:100%;max-width:440px;background:#fff;border-radius:22px;padding:34px 28px;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.35);animation:agUp .35s cubic-bezier(.2,.8,.3,1) both}
.agegate-logo{height:42px;width:auto;margin:0 auto 14px;display:block}
.agegate-box h2{font-family:Alice,serif;font-size:1.5rem;margin:0 0 10px;color:#1a1a1f}
.agegate-box p{margin:0 0 18px;color:#5b5b66;font-size:.95rem;line-height:1.55}
.agegate-actions{display:flex;flex-direction:column;gap:10px}
.agegate-actions .btn{width:100%;justify-content:center}
.agegate-actions .btn.ghost{background:#fff;color:#5b5b66;border:1px solid #e3e3ea}
.agegate-actions .btn.ghost:hover{border-color:#C84078;color:#C84078}
.agegate-legal{margin:16px 0 0!important;font-size:.78rem;color:#8a8a96}
.agegate-legal a{color:#C84078}
@keyframes agIn{from{opacity:0}to{opacity:1}}
@keyframes agUp{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.agegate,.agegate-box{animation:none}}

/* Página de descarga de la app */
.appdl{display:grid;grid-template-columns:1.6fr 1fr;gap:28px;align-items:start}
.appdl-main,.appdl-side{background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px}
.appdl-main h2,.appdl-side h3{font-family:Alice,serif;margin:0 0 10px;color:#1a1a1f}
.appdl-main p,.appdl-side p{color:#5b5b66;line-height:1.6}
.appdl .btn-lg{margin:8px 0 22px;padding:16px 28px;font-size:1.05rem}
.appdl-steps{margin:0;padding-left:20px;color:#5b5b66;line-height:1.7}
.appdl-steps li{margin-bottom:8px}
.appdl-note{margin-top:20px;padding-top:18px;border-top:1px solid var(--line);font-size:.88rem;color:#8a8a96}
@media (max-width:860px){.appdl{grid-template-columns:1fr}}
/* Filtro de precio: barra con dos tiradores */
.pslider-vals{display:flex;justify-content:space-between;font-size:15px;margin-bottom:10px}
.pslider-vals b{font-weight:600;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px 12px}
.pslider-track{position:relative;height:26px;margin:0 2px}
.pslider-track::before{content:"";position:absolute;left:0;right:0;top:11px;height:4px;border-radius:99px;background:var(--bg-2)}
.pslider-track i{position:absolute;top:11px;height:4px;border-radius:99px;background:var(--pink)}
.pslider-track input[type=range]{position:absolute;left:0;top:0;width:100%;height:26px;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none;z-index:3}
.pslider-track input[type=range]::-webkit-slider-runnable-track{background:none;height:26px}
.pslider-track input[type=range]::-moz-range-track{background:none;height:26px}
.pslider-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;pointer-events:auto;width:22px;height:22px;margin-top:2px;border-radius:50%;background:#fff;border:2px solid var(--pink);box-shadow:0 2px 6px rgba(20,24,40,.2);cursor:grab}
.pslider-track input[type=range]::-moz-range-thumb{pointer-events:auto;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--pink);box-shadow:0 2px 6px rgba(20,24,40,.2);cursor:grab}
.pslider-track input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--pink-100)}
