/* =========================================================
   The Shopping Club | Navidad 2026 (solo /shopping-club/navidad.html)
   Alegre y moderno: rojo Navidad, blanco bastón de caramelo, verde fresco
   y dorado cálido sobre mucho blanco crema. Títulos en Fredoka, texto en Inter.
   Modo oscuro con [data-theme="dark"] en <html> (llave bdl_theme).
   ========================================================= */
:root{
  --nv-bg:#FFFBF5;
  --nv-bg2:#FFF1E8;
  --nv-surface:#FFFFFF;
  --nv-ink:#2B1A1D;
  --nv-muted:#5E4A4D;
  --nv-head:#B3122B;
  --nv-red:#D42A3C;
  --nv-red-h:#B3122B;
  --nv-red-t:#C8102E;
  --nv-green:#0E7C45;
  --nv-green-2:#0B6A3A;
  --nv-green-t:#0B7A43;
  --nv-gold:#F6B930;
  --nv-gold-h:#FFC94D;
  --nv-gold-t:#8A5A00;
  --nv-sky:#5BB8F0;
  --nv-line:#F0DDD5;
  --nv-chip:#FFFFFF;
  --nv-cane:repeating-linear-gradient(-45deg, #D42A3C 0 10px, #FFFFFF 10px 20px);
  --nv-cane-g:repeating-linear-gradient(-45deg, #D42A3C 0 10px, #FFFFFF 10px 20px, #0E7C45 20px 30px, #FFFFFF 30px 40px);
  --nv-shadow:0 1px 2px rgba(120,20,30,.06), 0 16px 34px -18px rgba(150,20,40,.32);
  --nv-display:'Fredoka', 'Baloo 2', ui-rounded, 'Nunito', 'Segoe UI', system-ui, sans-serif;
  --nv-ease:cubic-bezier(.2,.75,.2,1);
  --nv-spring:cubic-bezier(.34,1.56,.64,1);
  --nv-nav-h:61px;
  --navy-dark:#0A1A2C;
  color-scheme:light;
}
html[data-theme="dark"]{
  --nv-bg:#0E1726;
  --nv-bg2:#122036;
  --nv-surface:#17253D;
  --nv-ink:#EEF2F8;
  --nv-muted:#B3C0D3;
  --nv-head:#FF9AA8;
  --nv-red:#D42A3C;
  --nv-red-h:#E5394F;
  --nv-red-t:#FF8A9A;
  --nv-green:#13814A;
  --nv-green-2:#17945A;
  --nv-green-t:#6EDCA4;
  --nv-gold:#FFC94D;
  --nv-gold-h:#FFD873;
  --nv-gold-t:#FFC94D;
  --nv-line:#27395A;
  --nv-chip:#17253D;
  --nv-shadow:0 1px 2px rgba(0,0,0,.4), 0 16px 36px -18px rgba(0,0,0,.75);
  /* variables de style.css que usa el carrito */
  --paper:#17253D;
  --mist:#122036;
  --mist-deep:#1B2C48;
  --ink:#EEF2F8;
  --ink-soft:#B3C0D3;
  --line:#27395A;
  --line-strong:#3A5079;
  --blue-soft:#18294A;
  --orange-soft:#2A1C10;
  --success:#6FD39C;
  --success-bg:#0F2A1D;
  --warn:#F3A766;
  --warn-bg:#2A1C10;
  --navy-dark:#F2F6F3;
  color-scheme:dark;
}

body.nv{ background:var(--nv-bg); color:var(--nv-ink); overflow-x:hidden; }
@supports (overflow:clip){ body.nv{ overflow-x:clip; } }
.nv main{ display:block; }
.nv-sr{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.nv-hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.nv section[id], .nv header[id]{ scroll-margin-top:calc(var(--nv-nav-h) + 58px); }
.nv :focus-visible{ outline:3px solid var(--nv-green); outline-offset:2px; }
html[data-theme="dark"] .nv :focus-visible{ outline-color:var(--nv-gold); }
.nv-hero :focus-visible, .nv-banner :focus-visible, .nv-band :focus-visible{ outline-color:#FFE08A; }

/* ---------- barra superior ---------- */
.nv .nav-right{ gap:10px; }
.nv .nav-link.active{ color:var(--nv-red-t); }
.theme-btn{ width:40px; height:40px; border-radius:50%; border:1.5px solid var(--line-strong); background:transparent; display:inline-flex; align-items:center; justify-content:center; color:var(--navy); padding:0; transition:transform .2s var(--nv-ease), border-color .2s; }
.theme-btn:hover{ border-color:var(--navy); transform:rotate(-12deg); }
.theme-btn svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.theme-btn .ico-moon{ fill:currentColor; stroke:none; }
.theme-btn .ico-sun{ display:none; }
html[data-theme="dark"] .theme-btn .ico-sun{ display:block; }
html[data-theme="dark"] .theme-btn .ico-moon{ display:none; }
.nv .nav-toggle{ color:var(--navy); line-height:0; padding:6px; }
.nv-cart-btn{ position:relative; width:42px; height:42px; border-radius:50%; border:0; background:var(--nv-red); color:#fff; display:inline-flex; align-items:center; justify-content:center; padding:0; flex:none; box-shadow:0 6px 16px -8px rgba(212,42,60,.8); }
.nv-cart-btn:hover{ background:var(--nv-red-h); }
.nv-cart-btn .cart-count[hidden]{ display:none; }
.nv-cart-btn svg{ width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.nv-cart-btn .cart-count{ position:absolute; top:-4px; right:-4px; width:auto; min-width:19px; height:19px; padding:0 5px; border-radius:10px; background:var(--nv-green); color:#fff; font:700 11px/19px var(--sans); border:2px solid var(--nv-bg); box-sizing:content-box; }
html[data-theme="dark"] .nav{ background:rgba(14,23,38,.9); border-bottom-color:var(--line); }
html[data-theme="dark"] .nav-brand{ background:#F4F6F9; border-radius:12px; padding:2px 8px; }
html[data-theme="dark"] .nav-link, html[data-theme="dark"] .theme-btn, html[data-theme="dark"] .nav-toggle{ color:#DCE4F0; }
html[data-theme="dark"] .lang-toggle{ border-color:#3A5079; }
html[data-theme="dark"] .lang-btn.active{ background:#24375A; }
html[data-theme="dark"] h1, html[data-theme="dark"] h2, html[data-theme="dark"] h3, html[data-theme="dark"] h4{ color:var(--nv-head); }
@media (max-width:860px){
  html[data-theme="dark"] .nav-links{ background:var(--nv-surface); }
  .nv .nav-links .nav-link{ font-size:1rem; }
}
@media (max-width:600px){
  .nv .container{ padding:0 16px; }
  .nv .nav-inner{ padding:10px 16px; gap:8px; }
  .nv .nav-right{ gap:7px; }
  .nv .lang-btn{ padding:7px 9px; }
  .theme-btn{ width:36px; height:36px; }
  .nv-cart-btn{ width:38px; height:38px; }
}
@media (max-width:359px){ .nv .lang-btn{ padding:6px 6px; } .nv .lang-btn .flag{ width:20px; height:14px; } }

/* ---------- botones ---------- */
.nv-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:50px; padding:0 24px; border-radius:999px; border:2px solid transparent; font:700 .98rem/1.15 var(--sans); text-align:center; cursor:pointer; text-decoration:none; transition:transform .25s var(--nv-spring), background .2s, box-shadow .2s, border-color .2s, color .2s; }
.nv-btn:hover{ transform:translateY(-3px); }
.nv-btn:active{ transform:translateY(1px) scale(.98); }
.nv-btn small{ font-weight:600; opacity:.85; }
.nv-btn-gold{ background:var(--nv-gold); color:#2B1A1D; box-shadow:0 5px 0 #C98F12, 0 14px 26px -12px rgba(120,60,0,.6); }
.nv-btn-gold:hover{ background:var(--nv-gold-h); }
.nv-btn-gold:active{ box-shadow:0 2px 0 #C98F12; }
.nv-btn-white{ background:#fff; color:#B3122B; box-shadow:0 5px 0 rgba(120,10,25,.35); }
.nv-btn-white:hover{ background:#FFF4F5; }
.nv-btn-red{ background:var(--nv-red); color:#fff; box-shadow:0 5px 0 #8E0E22; }
.nv-btn-red:hover{ background:var(--nv-red-h); }
.nv-btn-red:active{ box-shadow:0 2px 0 #8E0E22; }
.nv-btn-line-dark{ border-color:var(--nv-green); color:var(--nv-green-t); background:var(--nv-surface); }
.nv-btn-line-dark:hover{ background:var(--nv-green); color:#fff; }
html[data-theme="dark"] .nv-btn-line-dark{ border-color:#4CC487; }
.nv-btn-ghost{ background:none; color:var(--nv-muted); text-decoration:underline; text-underline-offset:3px; }
.nv-btn-sm{ min-height:44px; padding:0 18px; font-size:.92rem; }

/* ---------- 1. hero: rojo alegre con luces, trineo y Santa ---------- */
.nv-hero{ position:relative; isolation:isolate; overflow:hidden; color:#fff; padding-top:40px;
  background:radial-gradient(120% 70% at 15% 0%, #E8414F 0%, rgba(232,65,79,0) 60%), linear-gradient(165deg, #D42A3C 0%, #BF1A31 55%, #A8102A 100%); }
.nv-hero::before{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.16) 2px, transparent 2.6px), radial-gradient(rgba(255,255,255,.09) 1.4px, transparent 2px);
  background-size:46px 46px, 30px 30px; background-position:0 0, 15px 21px; }
html[data-theme="dark"] .nv-hero{ background:radial-gradient(120% 70% at 15% 0%, #A31D33 0%, rgba(163,29,51,0) 60%), linear-gradient(165deg, #8C1528 0%, #6E0E1F 55%, #520916 100%); }
.nv-hero-in{ position:relative; z-index:1; display:grid; gap:22px; padding-top:14px; padding-bottom:72px; }
.nv-hero-copy{ min-width:0; }
.nv-hero-pic{ position:relative; margin:0; order:-1; }
.nv-hero-pic img{ display:block; width:100%; height:auto; aspect-ratio:16/11; object-fit:cover; object-position:50% 30%; border-radius:28px; border:6px solid #fff; background:#F6D9C8; box-shadow:0 22px 40px -22px rgba(60,0,10,.7); transform:rotate(-1.2deg); }
.nv-hero-bubble{ position:absolute; top:-10px; right:6px; background:#fff; color:#B3122B; font:700 1rem/1 var(--nv-display); padding:10px 14px; border-radius:18px 18px 18px 4px; box-shadow:0 8px 18px -8px rgba(60,0,10,.55); transform:rotate(4deg); }
.nv-hero-tag{ position:absolute; left:-4px; bottom:-14px; width:58px; height:58px; display:grid; place-items:center; font-size:1.9rem; background:var(--nv-gold); border-radius:50%; border:4px solid #fff; box-shadow:0 10px 20px -10px rgba(60,0,10,.6); transform:rotate(-8deg); }
.nv-kicker{ display:inline-flex; align-items:center; gap:8px; font:700 .74rem/1 var(--sans); letter-spacing:.12em; text-transform:uppercase; color:#B3122B; background:#fff; padding:8px 14px; border-radius:999px; margin-bottom:14px; box-shadow:0 6px 14px -8px rgba(60,0,10,.5); }
.nv-kicker::before{ content:"★"; color:var(--nv-gold); font-size:.95rem; }
.nv-title{ font-family:var(--nv-display); font-weight:700; font-size:clamp(3.1rem, 14vw, 6.6rem); line-height:.95; letter-spacing:-.01em; color:#fff !important; margin:0 0 14px; text-shadow:0 4px 0 rgba(110,0,20,.35); }
.nv-title em{ font-style:normal; color:#FFE08A; display:inline-block; transform:rotate(-3deg); }
.nv-count{ display:inline-flex; align-items:center; gap:10px; flex-wrap:wrap; background:#fff; color:var(--nv-ink); border-radius:20px; padding:8px 16px 8px 8px; font:600 1rem/1.25 var(--sans); margin-bottom:16px; box-shadow:0 10px 22px -12px rgba(60,0,10,.6); }
.nv-count[hidden]{ display:none; }
.nv-count-ico{ width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:#FFF1E8; font-size:1.35rem; flex:none; }
.nv-count b{ color:var(--nv-red-t); }
.nv-count .nv-count-n{ display:inline-block; min-width:2.2ch; padding:2px 8px; margin:0 2px; border-radius:10px; background:#0E7C45; color:#fff; font:700 1.25rem/1.2 var(--nv-display); text-align:center; }
html[data-theme="dark"] .nv-count{ background:#17253D; color:#EEF2F8; }
html[data-theme="dark"] .nv-count-ico{ background:#24375A; }
html[data-theme="dark"] .nv-count b{ color:#FF9AA8; }
html[data-theme="dark"] .nv-count .nv-count-n{ color:#fff; }
.nv-lede{ font-size:clamp(1.04rem, 2.6vw, 1.26rem); line-height:1.5; max-width:34em; color:#fff; margin-bottom:18px; }
.nv-ship{ display:grid; grid-template-columns:1fr 1fr; gap:10px; max-width:520px; margin-bottom:10px; }
.nv-ship li{ display:flex; flex-direction:column; gap:3px; padding:11px 14px; border-radius:16px; background:rgba(255,255,255,.14); border:1.5px dashed rgba(255,255,255,.55); font-size:.95rem; }
.nv-ship b{ font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#FFE08A; line-height:1.3; }
.nv-hint{ font-size:.86rem; color:#FFEDEF; margin-bottom:24px; max-width:40em; }
.nv-cta{ display:flex; flex-wrap:wrap; gap:12px 10px; }
@media (max-width:520px){ .nv-cta .nv-btn{ flex:1 1 100%; } }
.nv-hero-drift{ position:absolute; left:0; bottom:-1px; width:100%; height:44px; fill:var(--nv-bg); z-index:1; }
@media (min-width:900px){
  .nv-hero{ padding-top:44px; }
  .nv-hero-in{ grid-template-columns:minmax(0, 1.08fr) minmax(0, .92fr); align-items:center; gap:56px; padding-top:30px; padding-bottom:110px; }
  .nv-hero-pic{ order:0; }
  .nv-hero-pic img{ aspect-ratio:4/4.4; max-height:600px; border-width:8px; border-radius:36px; transform:rotate(2deg); }
  .nv-hero-bubble{ top:-16px; right:-10px; font-size:1.3rem; padding:14px 18px; }
  .nv-hero-tag{ left:-22px; bottom:28px; width:78px; height:78px; font-size:2.5rem; }
  .nv-hero-drift{ height:70px; }
}

/* luces colgantes */
.nv-lights{ position:absolute; left:0; right:0; top:0; height:46px; display:flex; overflow:hidden; pointer-events:none; z-index:2;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='20' viewBox='0 0 48 20'%3E%3Cpath d='M0 4 Q24 20 48 4' fill='none' stroke='%230B4D2C' stroke-width='2'/%3E%3C/svg%3E") repeat-x 0 0 / 48px 20px; }
.nv-lights i{ flex:0 0 48px; position:relative; }
.nv-lights i::before{ content:""; position:absolute; left:50%; top:9px; width:7px; height:7px; margin-left:-3.5px; background:#0B4D2C; border-radius:2px; }
.nv-lights i::after{ content:""; position:absolute; left:50%; top:14px; width:11px; height:17px; margin-left:-5.5px; border-radius:50% 50% 50% 50% / 42% 42% 58% 58%; background:var(--c, #FFD34D); box-shadow:0 0 10px 2px var(--c, #FFD34D); transform-origin:50% -4px; animation:nv-twinkle 2.6s ease-in-out infinite; animation-delay:var(--d, 0s); }
.nv-lights i:nth-child(4n+1){ --c:#FFD34D; }
.nv-lights i:nth-child(4n+2){ --c:#5BE08F; }
.nv-lights i:nth-child(4n+3){ --c:#7FD3FF; }
.nv-lights i:nth-child(4n+4){ --c:#FFF6F7; }
@keyframes nv-twinkle{
  0%, 100%{ opacity:1; transform:rotate(-7deg); filter:brightness(1.1); }
  50%{ opacity:.55; transform:rotate(7deg); filter:brightness(.8); }
}

/* trineo que cruza una vez */
.nv-sleigh{ position:absolute; top:58px; left:0; z-index:3; pointer-events:none; opacity:0; will-change:transform; }
.nv-sleigh svg{ display:block; width:200px; height:auto; filter:drop-shadow(0 6px 10px rgba(60,0,10,.35)); }
.nv-sleigh.go{ animation:nv-vuelo 7s cubic-bezier(.45,.05,.55,.95) .9s 1 forwards; }
@keyframes nv-vuelo{
  0%{ transform:translate(calc(100vw + 20px), 90px) rotate(6deg); opacity:0; }
  6%{ opacity:1; }
  50%{ transform:translate(calc(50vw - 100px), 10px) rotate(-2deg); }
  92%{ opacity:1; }
  100%{ transform:translate(-260px, 60px) rotate(-8deg); opacity:0; }
}
@media (min-width:900px){ .nv-sleigh{ top:70px; } .nv-sleigh svg{ width:250px; } }

/* ---------- 2. barra de secciones ---------- */
.nv-secnav{ position:sticky; top:var(--nv-nav-h); z-index:40; background:color-mix(in srgb, var(--nv-bg) 92%, transparent); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.nv-secnav::after{ content:""; position:absolute; left:0; right:0; bottom:-4px; height:4px; background:var(--nv-cane); background-size:28px 28px; opacity:.9; }
.nv-secnav-row{ display:flex; gap:8px; overflow-x:auto; padding:10px max(16px, calc((100% - 1172px) / 2)); max-width:1220px; margin:0 auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.nv-secnav-row::-webkit-scrollbar{ display:none; }
.nv-secnav-row a{ flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:0 15px; border-radius:999px; border:1.5px solid var(--nv-line); background:var(--nv-chip); color:var(--nv-ink); font:600 .88rem/1 var(--sans); white-space:nowrap; transition:background .2s, color .2s, border-color .2s, transform .25s var(--nv-spring); }
.nv-secnav-row a:hover{ border-color:var(--nv-red); transform:translateY(-1px); }
.nv-secnav-row a[aria-current]{ background:var(--nv-green); border-color:var(--nv-green); color:#fff; }
.nv-secnav-row a.nv-secnav-carta{ border-color:color-mix(in srgb, var(--nv-red) 55%, transparent); color:var(--nv-red-t); background:color-mix(in srgb, var(--nv-red) 7%, var(--nv-chip)); }
.nv-secnav-row a.nv-secnav-carta[aria-current]{ background:var(--nv-red); border-color:var(--nv-red); color:#fff; }
.nv-carta-n{ min-width:20px; height:20px; padding:0 6px; border-radius:10px; background:var(--nv-red); color:#fff; font-size:.72rem; line-height:20px; text-align:center; }
.nv-secnav-carta[aria-current] .nv-carta-n{ background:#fff; color:#B3122B; }

/* ---------- encabezados de sección ---------- */
.nv-sec{ padding:48px 0 8px; }
.nv-head{ margin-bottom:22px; max-width:720px; }
.nv-eyebrow{ display:inline-flex; align-items:center; gap:8px; font:700 .76rem/1 var(--sans); letter-spacing:.12em; text-transform:uppercase; color:var(--nv-green-t); margin-bottom:10px; }
.nv-eyebrow::before{ content:"★"; color:var(--nv-gold); font-size:1rem; }
.nv-h2{ font-family:var(--nv-display); font-weight:700; font-size:clamp(1.85rem, 6vw, 2.8rem); line-height:1.05; letter-spacing:-.005em; color:var(--nv-head); margin:0 0 8px; }
.nv-sub{ color:var(--nv-muted); font-size:1.03rem; line-height:1.55; }
@media (min-width:900px){ .nv-sec{ padding:68px 0 12px; } }

/* ---------- 3. regalos por edad ---------- */
.nv-picker{ display:grid; grid-template-columns:repeat(4, 1fr); gap:16px 8px; margin-bottom:24px; }
.nv-pick{ --ring:var(--nv-red); display:flex; flex-direction:column; align-items:center; gap:8px; padding:0; border:0; background:none; color:var(--nv-ink); font:600 .8rem/1.25 var(--sans); text-align:center; cursor:pointer; -webkit-tap-highlight-color:transparent; border-radius:14px; }
.nv-pick:nth-child(3n+2){ --ring:var(--nv-green); }
.nv-pick:nth-child(3n){ --ring:var(--nv-gold); }
.nv-pick-img{ display:block; width:100%; max-width:84px; aspect-ratio:1/1; border-radius:50%; overflow:hidden; background:var(--nv-bg2); box-shadow:0 0 0 3px var(--nv-bg), 0 0 0 5px var(--ring); transition:box-shadow .2s, transform .35s var(--nv-spring); }
.nv-pick-img img{ width:100%; height:100%; object-fit:cover; }
.nv-pick:hover .nv-pick-img{ transform:translateY(-4px) rotate(-3deg); }
.nv-pick[aria-checked="true"] .nv-pick-img{ box-shadow:0 0 0 3px var(--nv-bg), 0 0 0 8px var(--nv-red); transform:scale(1.04); }
.nv-pick[aria-checked="true"] b{ color:var(--nv-red-t); }
.nv-pick[aria-checked="true"] b::after{ content:" ✓"; }
.nv-pick b{ font-weight:700; }
@media (min-width:760px){
  .nv-picker{ grid-template-columns:repeat(8, 1fr); gap:18px; }
  .nv-pick{ font-size:.9rem; }
  .nv-pick-img{ max-width:none; border-radius:24px; aspect-ratio:4/5; }
}
.nv-picked{ min-height:60px; }
.nv-picked-t{ font:700 .8rem/1 var(--sans); letter-spacing:.08em; text-transform:uppercase; color:var(--nv-green-t); margin:6px 0 14px; }
.nv-picked-empty{ color:var(--nv-muted); background:var(--nv-surface); border:2px dashed var(--nv-line); border-radius:18px; padding:18px; text-align:center; font-size:.95rem; }
.nv-grid{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }
@media (min-width:600px){ .nv-grid{ grid-template-columns:repeat(3, minmax(0, 1fr)); } }
@media (min-width:900px){ .nv-grid{ grid-template-columns:repeat(4, minmax(0, 1fr)); gap:18px; } }
@media (min-width:1200px){ .nv-grid{ grid-template-columns:repeat(6, minmax(0, 1fr)); } }

/* ---------- 4. secciones de productos ---------- */
.nv-banner{ --b:var(--nv-red); --b2:#A8102A; position:relative; isolation:isolate; overflow:hidden; display:grid; grid-template-columns:minmax(0, 1fr) 38%; min-height:156px; border-radius:24px; margin-bottom:18px; background:linear-gradient(135deg, var(--b) 0%, var(--b2) 100%); color:#fff; box-shadow:var(--nv-shadow); }
.nv-prod:nth-child(even) .nv-banner{ --b:#0E7C45; --b2:#0A5E34; }
html[data-theme="dark"] .nv-banner{ --b:#B3122B; --b2:#7E0E20; }
html[data-theme="dark"] .nv-prod:nth-child(even) .nv-banner{ --b:#0E6B3C; --b2:#08472A; }
.nv-banner::before{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background-image:radial-gradient(rgba(255,255,255,.14) 2px, transparent 2.6px); background-size:30px 30px; }
.nv-banner::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:8px; background:var(--nv-cane); background-size:28px 28px; }
.nv-banner-txt{ position:relative; padding:18px 14px 24px 18px; align-self:center; min-width:0; }
.nv-banner-e{ display:inline-grid; place-items:center; width:42px; height:42px; border-radius:50%; background:#fff; font-size:1.35rem; margin-bottom:8px; box-shadow:0 6px 14px -8px rgba(0,0,0,.5); }
.nv-banner .nv-h2{ color:#fff !important; margin-bottom:4px; font-size:clamp(1.45rem, 5.4vw, 2.4rem); overflow-wrap:anywhere; }
.nv-banner p{ color:#fff; font-size:.92rem; line-height:1.45; opacity:.95; }
.nv-banner-pic{ position:relative; min-height:100%; }
.nv-banner-pic img{ position:absolute; inset:10px 10px 18px 0; width:calc(100% - 10px); height:calc(100% - 28px); object-fit:cover; border-radius:18px; background:rgba(255,255,255,.18); border:3px solid rgba(255,255,255,.85); }
@media (hover:hover){ .nv-banner:hover .nv-banner-e{ animation:nv-wiggle .6s ease-in-out; } }
@media (min-width:900px){
  .nv-banner{ grid-template-columns:minmax(0, 1fr) 42%; min-height:210px; }
  .nv-banner-txt{ padding:30px 28px 34px 34px; }
  .nv-banner-e{ width:52px; height:52px; font-size:1.6rem; }
  .nv-banner-pic img{ inset:14px 14px 22px 0; width:calc(100% - 14px); height:calc(100% - 36px); border-radius:22px; }
}

.nv-subs{ display:flex; gap:8px; overflow-x:auto; margin:0 -16px 12px; padding:2px 16px 6px; scrollbar-width:none; }
.nv-subs::-webkit-scrollbar{ display:none; }
.nv-chip{ flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:0 15px; border-radius:999px; border:1.5px solid var(--nv-line); background:var(--nv-chip); color:var(--nv-ink); font:600 .86rem/1 var(--sans); cursor:pointer; white-space:nowrap; transition:border-color .2s, transform .25s var(--nv-spring); }
.nv-chip:hover{ border-color:var(--nv-red); transform:translateY(-1px); }
.nv-chip small{ font-weight:500; color:var(--nv-muted); font-size:.75rem; }
.nv-chip.on{ background:var(--nv-red); border-color:var(--nv-red); color:#fff; }
.nv-chip.on small{ color:rgba(255,255,255,.88); }

.nv-row{ display:flex; gap:12px; overflow-x:auto; margin:0 -16px; padding:6px 16px 16px; scroll-snap-type:x mandatory; scroll-padding:0 16px; -webkit-overflow-scrolling:touch; scrollbar-width:thin; overscroll-behavior-x:contain; }
.nv-row > .nv-card{ flex:0 0 44%; max-width:230px; scroll-snap-align:start; }
.nv-row > .nv-picked-empty{ flex:1 1 100%; }
.nv-row.nv-row-all{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); margin:0; padding:6px 0 16px; overflow:visible; }
.nv-row.nv-row-all > .nv-card{ max-width:none; }
@media (min-width:600px){
  .nv-row > .nv-card{ flex-basis:30%; }
  .nv-row.nv-row-all{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
}
@media (min-width:900px){
  .nv-row, .nv-row.nv-row-all{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:18px; margin:0; padding:6px 0 16px; overflow:visible; }
  .nv-row > .nv-card{ max-width:none; }
  .nv-subs{ margin:0 0 14px; padding:2px 0 6px; flex-wrap:wrap; }
}
@media (min-width:1200px){ .nv-row, .nv-row.nv-row-all{ grid-template-columns:repeat(6, minmax(0, 1fr)); } }
.nv-more{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; padding:8px 0 4px; }
.nv-more:empty{ display:none; }

/* ---------- tarjetas ---------- */
.nv-card{ position:relative; display:flex; flex-direction:column; background:var(--nv-surface); border:1.5px solid var(--nv-line); border-radius:20px; overflow:hidden; transition:transform .3s var(--nv-spring), box-shadow .25s var(--nv-ease), border-color .2s; min-width:0; }
@media (hover:hover){
  .nv-card:not(.nv-sk):hover{ transform:translateY(-4px); box-shadow:var(--nv-shadow); border-color:color-mix(in srgb, var(--nv-red) 35%, var(--nv-line)); }
  .nv-card:not(.nv-sk):hover .nv-thumb{ animation:nv-wiggle .55s ease-in-out; }
}
@keyframes nv-wiggle{ 0%, 100%{ transform:rotate(0); } 25%{ transform:rotate(-2deg); } 50%{ transform:rotate(1.6deg); } 75%{ transform:rotate(-.8deg); } }
.nv-thumb{ position:relative; aspect-ratio:1/1; background:#fff; }
.nv-qvbtn{ display:block; width:100%; height:100%; padding:0; border:0; background:#fff; cursor:zoom-in; }
.nv-qvbtn img{ width:100%; height:100%; object-fit:contain; padding:10px; box-sizing:border-box; font-size:0; color:transparent; }
.nv-noimg{ font-size:2.6rem; }
.nv-store{ position:absolute; left:8px; bottom:8px; font:700 10.5px/1 var(--sans); letter-spacing:.02em; color:#0A5E34; background:#EFFAF3; border:1px solid #BFE6CF; padding:5px 8px; border-radius:999px; pointer-events:none; max-width:calc(100% - 16px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nv-fav{ position:absolute; top:8px; right:8px; width:36px; height:36px; border-radius:50%; border:0; background:rgba(255,255,255,.96); box-shadow:0 2px 10px rgba(150,20,40,.18); display:grid; place-items:center; cursor:pointer; padding:0; -webkit-tap-highlight-color:transparent; }
.nv-fav svg{ width:19px; height:19px; fill:none; stroke:#5E4A4D; stroke-width:2; transition:fill .2s, stroke .2s; }
.nv-fav.on svg{ fill:#D42A3C; stroke:#D42A3C; }
.nv-fav-big{ top:12px; right:12px; width:44px; height:44px; }
.pop{ animation:nv-pop .4s var(--nv-ease); }
@keyframes nv-pop{ 40%{ transform:scale(1.3); } 100%{ transform:scale(1); } }
.nv-info{ display:flex; flex-direction:column; flex:1; padding:10px 12px 12px; gap:6px; }
.nv-name{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.6em; padding:0; border:0; background:none; text-align:left; font:600 .86rem/1.3 var(--sans); color:var(--nv-ink); cursor:pointer; }
.nv-name:hover{ text-decoration:underline; text-underline-offset:2px; }
.nv-price{ font:700 1.08rem/1.2 var(--nv-display); color:var(--nv-green-t); margin-top:auto; }
.nv-acts{ display:flex; flex-direction:column; gap:4px; }
.nv-add{ display:flex; align-items:center; justify-content:center; min-height:42px; border-radius:14px; border:0; background:var(--nv-red); color:#fff; font:700 .85rem/1.1 var(--sans); text-align:center; text-decoration:none; padding:6px 8px; cursor:pointer; box-shadow:0 3px 0 #8E0E22; transition:background .2s, transform .2s var(--nv-spring), box-shadow .2s; }
.nv-add:hover{ background:var(--nv-red-h); }
.nv-add:active{ transform:translateY(2px); box-shadow:0 1px 0 #8E0E22; }
.nv-add.nv-opt{ background:var(--nv-surface); color:var(--nv-red-t); border:2px solid var(--nv-red); box-shadow:none; }
.nv-add.nv-opt:hover{ background:var(--nv-red); color:#fff; }
.nv-santa{ min-height:34px; border:0; background:none; color:var(--nv-green-t); font:700 .8rem/1 var(--sans); cursor:pointer; border-radius:10px; padding:0 4px; }
.nv-santa:hover{ background:color-mix(in srgb, var(--nv-green) 10%, transparent); }
.nv-santa.on{ background:color-mix(in srgb, var(--nv-green) 13%, transparent); }
.nv-santa.on::before{ content:"✓ "; }
/* esqueletos con la misma altura que una tarjeta */
.nv-sk i{ display:block; background:linear-gradient(90deg, var(--nv-bg2) 0%, var(--nv-line) 50%, var(--nv-bg2) 100%); background-size:200% 100%; animation:nv-sk 1.2s ease-in-out infinite; }
.nv-sk i:first-child{ aspect-ratio:1/1; }
.nv-sk i:nth-child(2){ height:34px; margin:12px 12px 0; border-radius:6px; }
.nv-sk i:last-child{ height:96px; margin:10px 12px 12px; border-radius:10px; opacity:.6; }
@keyframes nv-sk{ to{ background-position:-200% 0; } }

/* ---------- ficha rápida (sobre tienda-ux.css) ---------- */
.nv-sheet .ux-sheet-panel{ background:var(--nv-surface); }
.nv-sheet .ux-sheet-panel::before{ content:""; display:block; height:6px; background:var(--nv-cane); background-size:28px 28px; }
.nv-sheet .ux-sheet-head h3{ display:flex; gap:6px; flex-wrap:wrap; }
.nv-sheet .ux-pill{ background:#EFFAF3; color:#0A5E34; }
.nv-sheet .nv-pill-xmas{ background:#FDE7EA; color:#A8102A; }
.nv-sheet .ux-qv h2{ font-family:var(--nv-display); font-weight:600; color:var(--nv-head); }
.nv-sheet .ux-qv-price{ color:var(--nv-green-t); font-family:var(--nv-display); }
.nv-sheet .ux-qv-nota{ color:var(--nv-muted); }
.nv-sheet .ux-primary{ background:var(--nv-red); box-shadow:0 4px 0 #8E0E22; }
.nv-sheet .ux-primary:hover{ background:var(--nv-red-h); }
.nv-sheet .ux-secondary{ background:var(--nv-bg2); color:var(--nv-ink); }
.nv-sheet .nv-santa-big{ color:var(--nv-green-t); }
.nv-sheet .ux-x{ background:var(--nv-bg2); color:var(--nv-ink); }
html[data-theme="dark"] .nv-sheet .ux-qv-img{ border-color:#2C3F62; }

/* ---------- banda: pide con tiempo ---------- */
.nv-band{ position:relative; isolation:isolate; overflow:hidden; margin-top:56px; color:#fff; background:#0E7C45; }
.nv-band::after, .nv-band-in::before{ content:""; position:absolute; left:0; right:0; height:10px; background:var(--nv-cane); background-size:28px 28px; }
.nv-band::after{ top:0; }
.nv-band-in::before{ bottom:0; }
.nv-band-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.nv-band::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(100deg, rgba(14,124,69,.97) 0%, rgba(14,124,69,.9) 55%, rgba(11,94,52,.72) 100%); }
html[data-theme="dark"] .nv-band::before{ background:linear-gradient(100deg, rgba(8,71,42,.97) 0%, rgba(8,71,42,.9) 55%, rgba(8,71,42,.75) 100%); }
.nv-band-in{ position:static; padding-top:60px; padding-bottom:60px; max-width:820px; }
.nv-band h2{ font-family:var(--nv-display); font-weight:700; font-size:clamp(1.9rem, 5.4vw, 2.7rem); color:#fff !important; margin-bottom:12px; }
.nv-band p{ color:#F2FBF5; line-height:1.6; margin-bottom:24px; }

/* ---------- 5. carta a Santa ---------- */
.nv-carta-sec{ position:relative; padding-bottom:72px; background:#FFF1EE; background-image:radial-gradient(rgba(212,42,60,.09) 2px, transparent 2.6px); background-size:34px 34px; }
html[data-theme="dark"] .nv-carta-sec{ background-color:var(--nv-bg2); background-image:radial-gradient(rgba(255,255,255,.06) 2px, transparent 2.6px); }
.nv-carta-grid{ display:grid; gap:26px; }
.nv-santa-fig{ position:relative; margin:20px 0 0; }
.nv-santa-img{ display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:26px; border:6px solid #fff; background:#F6D9C8; box-shadow:var(--nv-shadow); transform:rotate(-1.5deg); }
.nv-santa-sticker{ position:absolute; right:10px; bottom:-14px; background:var(--nv-gold); color:#2B1A1D; font:700 1.05rem/1 var(--nv-display); padding:12px 16px; border-radius:999px; border:3px solid #fff; box-shadow:0 10px 20px -10px rgba(120,60,0,.6); transform:rotate(-5deg); }
@media (max-width:899px){ .nv-santa-img{ aspect-ratio:16/9; } }
@media (min-width:900px){ .nv-carta-grid{ grid-template-columns:5fr 7fr; gap:48px; align-items:start; } .nv-carta-intro{ position:sticky; top:calc(var(--nv-nav-h) + 76px); } }

.nv-letter{
  --lp:#FFFDF8; --lp-ink:#2B1A1D; --lp-muted:#5E4A4D; --lp-line:#EBD9CF; --lp-red:#C8102E; --lp-green:#0E7C45;
  position:relative; color:var(--lp-ink); border-radius:6px; padding:26px 16px 22px;
  border:10px solid transparent; border-image:repeating-linear-gradient(45deg, #D42A3C 0 12px, #FFFFFF 12px 24px, #0E7C45 24px 36px, #FFFFFF 36px 48px) 10;
  background-color:var(--lp);
  background-image:repeating-linear-gradient(180deg, transparent 0, transparent 35px, rgba(91,184,240,.22) 35px, rgba(91,184,240,.22) 36px);
  box-shadow:0 26px 50px -26px rgba(150,20,40,.45);
}
html[data-theme="dark"] .nv-letter{ --lp:#FFF8EE; box-shadow:0 22px 50px -20px rgba(0,0,0,.8); }
.nv-dear{ position:relative; padding-right:108px; min-height:86px; }
.nv-stamp{ position:absolute; top:-6px; right:4px; width:62px; height:72px; padding:6px; transform:rotate(5deg); filter:drop-shadow(0 3px 4px rgba(80,0,10,.25));
  background:radial-gradient(circle, transparent 2.4px, #fff 2.9px) -4px -4px / 8px 8px; }
.nv-stamp-in{ display:grid; place-items:center; width:100%; height:100%; background:linear-gradient(160deg, #D42A3C, #A8102A); font-size:1.9rem; border-radius:2px; }
.nv-postmark{ position:absolute; top:30px; right:50px; width:52px; height:52px; display:grid; place-items:center; text-align:center; border:2px solid rgba(14,124,69,.6); border-radius:50%; color:rgba(14,124,69,.8); font:700 .5rem/1.15 var(--sans); letter-spacing:.06em; transform:rotate(-14deg); pointer-events:none; }
.nv-letter .nv-hand{ font-family:var(--nv-display); font-weight:700; font-size:2.1rem; line-height:1.05; color:var(--lp-red) !important; margin:6px 0 4px; }
.nv-letter-p{ font-family:var(--nv-display); font-weight:500; font-size:1.22rem; line-height:1.35; color:var(--lp-ink); margin-bottom:10px; }
.nv-letter[data-modo="nino"] .nv-a, .nv-letter[data-modo="adulto"] .nv-k{ display:none !important; }
.nv-who{ border:0; padding:0; margin:0 0 20px; }
.nv-who legend{ font:700 .78rem/1.2 var(--sans); letter-spacing:.06em; text-transform:uppercase; color:var(--lp-muted); margin-bottom:8px; padding:0; }
.nv-seg{ display:grid; grid-template-columns:1fr 1fr; gap:8px; max-width:440px; }
.nv-seg button{ min-height:54px; padding:6px 12px; border:2px solid var(--lp-line); border-radius:18px; background:#fff; color:var(--lp-ink); font:700 .95rem/1.15 var(--sans); cursor:pointer; transition:transform .25s var(--nv-spring), background .2s, border-color .2s; }
.nv-seg button:hover{ transform:translateY(-2px); border-color:var(--lp-red); }
.nv-seg button[data-quien="nino"][aria-checked="true"]{ background:var(--nv-red); border-color:var(--nv-red); color:#fff; box-shadow:0 4px 0 #8E0E22; }
.nv-seg button[data-quien="adulto"][aria-checked="true"]{ background:var(--lp-green); border-color:var(--lp-green); color:#fff; box-shadow:0 4px 0 #0A5E34; }
.nv-elf{ display:flex; gap:10px; align-items:flex-start; background:#EFFAF3; border:2px dashed #9ED8B8; color:#0A5E34; border-radius:16px; padding:10px 12px; font-size:.9rem; line-height:1.4; margin:4px 0 14px; }
.nv-elf > span:first-child{ font-size:1.4rem; line-height:1; }
.nv-wishes{ list-style:none; margin:0 0 8px; padding:0; display:grid; gap:6px; counter-reset:w; }
.nv-wish{ display:flex; align-items:center; gap:10px; padding:6px 4px; border-bottom:2px dotted var(--lp-line); animation:nv-in .4s var(--nv-spring); }
@keyframes nv-in{ from{ opacity:0; transform:translateY(8px) scale(.97); } }
.nv-wish img{ width:46px; height:46px; object-fit:contain; background:#fff; border-radius:12px; border:1.5px solid var(--lp-line); flex:none; }
.nv-wish-ico{ width:26px; text-align:center; color:#E0A21A; font-size:1.2rem; flex:none; }
.nv-wish-t{ flex:1; min-width:0; font-family:var(--nv-display); font-weight:500; font-size:1.15rem; line-height:1.2; color:var(--lp-ink); }
.nv-wish-p .nv-wish-t > span{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nv-wish-price{ display:block; font:700 .8rem/1.4 var(--sans); color:var(--lp-green); margin-top:2px; }
.nv-wish-x{ flex:none; width:36px; height:36px; border-radius:50%; border:0; background:transparent; color:var(--lp-muted); cursor:pointer; font-size:.9rem; }
.nv-wish-x:hover{ background:#FDE7EA; color:var(--lp-red); }
.nv-wishes-empty{ font-size:.92rem; color:var(--lp-muted); margin:2px 0 12px; }
.nv-wish-add{ display:flex; gap:8px; align-items:flex-end; }
.nv-wish-add .nv-input{ flex:1; min-width:0; }
.nv-wish-add .nv-btn{ box-shadow:0 3px 0 #8E0E22; }
.nv-from-shop{ display:inline-block; margin:12px 0 18px; font:700 .92rem var(--sans); color:var(--lp-red); text-decoration:underline; text-underline-offset:3px; }
.nv-label{ display:block; font:600 .82rem/1.3 var(--sans); color:var(--lp-muted); margin-bottom:2px; }
.nv-input{ width:100%; border:0; border-bottom:2px dashed #C9B3A6; background:transparent; color:var(--lp-ink); font:500 1rem/1.3 var(--sans); padding:10px 2px; border-radius:0; }
.nv-input::placeholder{ color:#7A6568; opacity:1; }
.nv-input:focus{ outline:none; border-bottom:2px solid var(--lp-green); }
.nv-input:focus-visible{ outline:none; box-shadow:0 2px 0 0 var(--lp-green); }
.nv-textarea{ border:2px dashed #C9B3A6; border-radius:14px; padding:10px 12px; background:rgba(255,255,255,.7); resize:vertical; min-height:84px; margin-bottom:16px; }
.nv-textarea:focus{ border:2px solid var(--lp-green); }
.nv-sign{ display:grid; gap:12px; margin-bottom:12px; }
.nv-sign > div:first-child .nv-label{ font-family:var(--nv-display); font-weight:600; font-size:1.2rem; color:var(--lp-red); }
@media (min-width:600px){ .nv-sign{ grid-template-columns:1fr 1fr; } .nv-sign > div:first-child{ grid-column:1 / -1; } }
.nv-adult-note{ font-size:.88rem; color:#0A5E34; background:#EFFAF3; border-radius:12px; padding:10px 12px; margin-bottom:12px; }
.nv-send{ width:100%; margin-top:8px; min-height:58px; padding:8px 14px; font-size:clamp(.98rem, 3.9vw, 1.08rem); text-wrap:balance; }
.nv-legal{ font-size:.78rem; color:var(--lp-muted); margin-top:12px; line-height:1.45; }
.nv-legal a{ text-decoration:underline; }
@media (min-width:600px){ .nv-letter{ padding:34px 32px 28px; } .nv-letter .nv-hand{ font-size:2.5rem; } }

/* éxito */
.nv-ok{ display:none; text-align:center; padding:20px 6px 8px; color:var(--lp-ink); }
.nv-ok h3{ color:var(--lp-green) !important; font-family:var(--nv-display); font-weight:700; font-size:1.6rem; margin:10px 0 8px; }
.nv-ok .nv-hand{ font-size:2.4rem; }
.nv-ok p{ font-size:1.05rem; line-height:1.5; }
.nv-ok .nv-ok-small{ font-size:.88rem; color:var(--lp-muted); margin-top:8px; }
.nv-ok .nv-btn{ margin-top:20px; border-color:var(--lp-green); color:var(--lp-green); background:#fff; }
.nv-ok .nv-btn:hover{ color:#fff; background:var(--lp-green); }
.nv-ok[data-modo="nino"] .nv-ok-adult, .nv-ok[data-modo="adulto"] .nv-ok-kid{ display:none; }
.nv-ok-santa{ font-size:3.4rem; line-height:1; display:inline-block; transform-origin:70% 90%; animation:nv-saluda 1.2s ease-in-out .3s 3; }
@keyframes nv-saluda{ 0%, 100%{ transform:rotate(0); } 25%{ transform:rotate(-12deg); } 75%{ transform:rotate(10deg); } }
.nv-ok-ico{ width:64px; height:64px; margin:0 auto; border-radius:50%; display:grid; place-items:center; background:#EFFAF3; color:var(--lp-green); font-size:1.7rem; }
.nv-envelope{ position:relative; width:128px; height:84px; margin:10px auto 4px; }
.nv-env-body{ position:absolute; inset:0; background:#fff; border:3px solid #D42A3C; border-radius:8px; }
.nv-env-body::before{ content:""; position:absolute; inset:4px; border-radius:4px; border:4px solid transparent; border-image:repeating-linear-gradient(45deg, #D42A3C 0 6px, #fff 6px 12px, #0E7C45 12px 18px, #fff 18px 24px) 4; }
.nv-env-flap{ position:absolute; left:3px; right:3px; top:3px; height:52px; background:#FFE9EC; clip-path:polygon(0 0, 100% 0, 50% 100%); }
.nv-env-heart{ position:absolute; left:50%; top:38px; transform:translate(-50%, -50%); width:28px; height:28px; border-radius:50%; background:#D42A3C; color:#fff; font-size:.8rem; display:grid; place-items:center; }
.nv-envelope.go{ animation:nv-vuela 2.4s cubic-bezier(.5,0,.3,1) .2s forwards; }
.nv-env-wrap{ position:relative; height:100px; }
.nv-sparkle{ position:absolute; left:50%; top:50%; transform:translate(-50%, -50%) scale(.6); font-size:2.6rem; opacity:0; }
.nv-envelope.go + .nv-sparkle{ animation:nv-brilla .9s var(--nv-ease) 2.2s forwards; }
@keyframes nv-vuela{
  0%{ transform:none; }
  18%{ transform:translateY(8px) rotate(-3deg); }
  100%{ transform:translate(160px, -340px) rotate(22deg) scale(.35); opacity:0; }
}
@keyframes nv-brilla{ to{ opacity:1; transform:translate(-50%, -50%) scale(1); } }

/* ---------- confeti ---------- */
.nv-confeti{ position:fixed; inset:0; pointer-events:none; z-index:1300; overflow:hidden; }
.nv-confeti i{ position:absolute; display:block; border-radius:2px; transform:translate(-50%, -50%); }

/* ---------- nieve ---------- */
.nv-snow{ position:fixed; inset:0; width:100%; height:100%; pointer-events:none; z-index:45; }
.nv-snow-btn{ position:fixed; left:12px; bottom:calc(12px + env(safe-area-inset-bottom)); z-index:60; width:44px; height:44px; border-radius:50%; border:2px solid #fff; background:#2F8FD6; color:#fff; font-size:1.35rem; line-height:1; box-shadow:0 8px 18px -8px rgba(20,60,110,.7); cursor:pointer; display:grid; place-items:center; transition:transform .25s var(--nv-spring), opacity .2s; }
html[data-theme="dark"] .nv-snow-btn{ border-color:#3A5079; background:#1E5E93; }
.nv-snow-btn:hover{ transform:rotate(30deg) scale(1.05); }
.nv-snow-btn.off{ opacity:.85; background:var(--nv-surface); color:var(--nv-muted); border-color:var(--nv-line); }
.nv-snow-btn.off::after{ content:""; position:absolute; width:26px; height:2px; background:currentColor; transform:rotate(-45deg); border-radius:2px; }
.nv-snow-btn[hidden]{ display:none; }

/* ---------- carrito y pie en esta página ---------- */
.ux-bump{ animation:nv-bump .45s var(--nv-ease); }
@keyframes nv-bump{ 35%{ transform:scale(1.22); } }
html[data-theme="dark"] .cart-drawer{ background:var(--nv-surface); }
html[data-theme="dark"] .cart-drawer-close{ color:var(--nv-ink); }
html[data-theme="dark"] .cart-item-name, html[data-theme="dark"] .cart-subtotal strong{ color:var(--nv-ink); }
html[data-theme="dark"] .qty-btn{ background:var(--nv-surface); color:var(--nv-ink); }
html[data-theme="dark"] .form-input, html[data-theme="dark"] .form-select{ background:#0E1726; color:var(--nv-ink); border-color:var(--line-strong); }
html[data-theme="dark"] .envio-op{ background:#0E1726; }
html[data-theme="dark"] .envio-op-nombre, html[data-theme="dark"] .envio-op-precio{ color:var(--nv-ink); }
html[data-theme="dark"] .toast{ background:#0E6B3C; }
.nv .footer{ position:relative; background:#0A4A2A; }
.nv .footer::before{ content:""; position:absolute; left:0; right:0; top:0; height:8px; background:var(--nv-cane); background-size:28px 28px; }
html[data-theme="dark"] .nv .footer{ background:#08111E; }
.nv .footer-bottom a, .nv .footer-inner a{ color:#EAF6EE; }
@media (max-width:700px){ .nv .toast{ bottom:calc(76px + env(safe-area-inset-bottom)); max-width:calc(100vw - 32px); text-align:center; } }

@media (prefers-reduced-motion: reduce){
  .nv-envelope.go{ animation:none; }
  .nv-envelope.go + .nv-sparkle{ animation:none; opacity:0; }
  .nv-sk i{ animation:none; }
  .nv-card, .nv-pick-img, .nv-btn, .nv-chip, .nv-seg button, .nv-secnav-row a{ transition:none; }
  .nv-card:not(.nv-sk):hover .nv-thumb, .nv-banner:hover .nv-banner-e{ animation:none !important; }
  .nv-lights i::after{ animation:none; }
  .nv-sleigh{ display:none !important; }
  .nv-ok-santa, .nv-wish{ animation:none; }
  .nv-confeti{ display:none; }
}

/* el carrito cerrado no proyecta sombra dentro de la pantalla */
.cart-drawer:not(.open){ box-shadow:none; visibility:hidden; transition:transform .3s cubic-bezier(.4,0,.2,1), visibility 0s .3s; }
.cart-drawer.open{ visibility:visible; transition:transform .3s cubic-bezier(.4,0,.2,1); }
