/* =====================================================================
   ImaginJoy — styles.css
   Índice:
   1. Variables (colores, tipografías, espaciados)  ← cambia aquí el look
   2. Reset y base
   3. Utilidades y botones
   4. Header y navegación
   5. Hero
   6. Productos
   7. Beneficios
   8. Cómo jugar
   9. Aprender a su ritmo
   10. Sobre ImaginJoy
   11. Por qué elegir
   12. FAQ
   13. CTA final
   14. Footer
   15. Diálogo de producto
   16. Animaciones (reveal) y accesibilidad
   ===================================================================== */

/* ---------- 0. TIPOGRAFÍAS (opcional) ----------
   Por defecto se usan fuentes redondeadas del sistema (sin cargar nada externo,
   mejor rendimiento y privacidad). Para usar Fredoka + Nunito:
   1) Descarga los .woff2 (p. ej. en https://gwfh.mranftl.com/fonts) a /assets/fonts/
   2) Quita los comentarios de este bloque.

@font-face{font-family:"Fredoka";font-weight:500 700;font-display:swap;src:url("../assets/fonts/fredoka-latin-600.woff2") format("woff2")}
@font-face{font-family:"Nunito";font-weight:400;font-display:swap;src:url("../assets/fonts/nunito-latin-400.woff2") format("woff2")}
@font-face{font-family:"Nunito";font-weight:700;font-display:swap;src:url("../assets/fonts/nunito-latin-700.woff2") format("woff2")}
*/

/* ---------- 1. VARIABLES ---------- */
:root{
  /* Colores de marca (sacados del logo: azul #0068FF, cian, amarillo, rosa, naranja, verde, morado) */
  --cream:#E6F1FF;          /* fondo general: azul claro */
  --cream-2:#D6E8FF;        /* fondo de secciones alternas */
  --paper:#FFFFFF;
  --ink:#0E2A5C;          /* texto principal (azul marino) */
  --ink-soft:#4A5F85;     /* texto secundario (contraste AA) */
  --line:#C3D9F4;

  --blue:#0068FF;         /* color de marca: botón principal, acentos */
  --blue-dark:#0050CC;
  --peach:#FFE3D1;        /* naranja suave */
  --mint:#D4F5E1;         /* verde suave */
  --sky:#C9E0FF;          /* azul suave */
  --lilac:#E8DEFF;        /* morado suave */
  --butter:#FFF0BD;       /* amarillo suave */
  --pink-soft:#FFDCEC;    /* rosa suave */
  --aqua:#D2F4F7;         /* cian suave */

  --coral:#FF5BA7;        /* rosa del logo (decorativo) */
  --coral-text:#C0176B;   /* rosa oscuro para texto (contraste AA) */
  --sun:#FDBE01;          /* amarillo del logo: botón Amazon */
  --sun-hover:#FFCC33;

  /* Tipografía */
  --font-head:"Fredoka","Baloo 2","Varela Round",ui-rounded,"SF Pro Rounded","Nunito","Trebuchet MS",system-ui,sans-serif;
  --font-body:"Nunito",ui-rounded,"SF Pro Rounded","Segoe UI",system-ui,-apple-system,Roboto,sans-serif;

  /* Forma */
  --r-sm:14px; --r-md:22px; --r-lg:34px; --r-xl:48px;
  --shadow-sm:0 2px 8px rgba(14,42,92,.06);
  --shadow-md:0 12px 32px -12px rgba(14,42,92,.18);
  --shadow-lg:0 28px 60px -24px rgba(14,42,92,.28);

  --container:1180px;
  --header-h:88px;
  --ease:cubic-bezier(.22,.8,.3,1);
}

/* ---------- 2. RESET Y BASE ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
img{height:auto}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:600;line-height:1.12;letter-spacing:-.01em;margin:0 0 .5em;color:var(--ink)}
h1{font-size:clamp(2.5rem,5.6vw,4.4rem)}
h2{font-size:clamp(2rem,3.8vw,3rem)}
h3{font-size:1.35rem}
p{margin:0 0 1em}
a{color:inherit}
ul{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:8px}
.skip-link{position:absolute;left:12px;top:-60px;background:var(--ink);color:#fff;padding:10px 18px;border-radius:12px;z-index:200;transition:top .2s}
.skip-link:focus{top:12px}

/* ---------- 3. UTILIDADES Y BOTONES ---------- */
.container{width:min(100% - 40px,var(--container));margin-inline:auto}
.section{padding-block:clamp(72px,10vw,128px);position:relative}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-head);font-weight:500;font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;color:var(--coral-text);margin-bottom:14px}
.eyebrow::before{content:"";width:22px;height:3px;border-radius:3px;background:var(--coral)}
.section-head{max-width:640px;margin:0 auto clamp(40px,6vw,64px);text-align:center}
.section-head .eyebrow{justify-content:center}
.section-head p{color:var(--ink-soft);font-size:1.15rem}
.icon{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}

.btn{--bg:var(--blue);--fg:#fff;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 28px;border:2px solid var(--bg);border-radius:999px;background:var(--bg);color:var(--fg);font-family:var(--font-head);font-weight:500;font-size:1.05rem;line-height:1.1;text-decoration:none;cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background-color .25s,color .25s;will-change:transform}
.btn .icon{font-size:1.15em;transition:transform .35s var(--ease)}
.btn:hover{transform:translateY(-3px);box-shadow:0 14px 26px -12px rgba(0,80,204,.55)}
.btn:not(.btn--amazon):not(.btn--ghost):hover{--bg:var(--blue-dark);background:var(--blue-dark);border-color:var(--blue-dark)}
.btn:hover .icon{transform:translateX(4px)}
.btn:active{transform:translateY(-1px)}
.btn--amazon{--bg:var(--sun);--fg:var(--ink);border-color:var(--sun)}
.btn--amazon:hover{background:var(--sun-hover);border-color:var(--sun-hover);box-shadow:0 14px 26px -12px rgba(200,140,0,.6)}
.btn--ghost{--bg:transparent;--fg:var(--blue);border-color:var(--blue)}
.btn--ghost:hover{--bg:var(--blue);background:var(--blue);color:#fff}
.btn--sm{padding:11px 20px;font-size:.98rem}
.btn--block{width:100%}

/* ---------- 4. HEADER ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(230,241,255,.88);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.site-header.is-scrolled{border-color:var(--line);box-shadow:0 6px 24px -16px rgba(14,42,92,.3)}
.header-inner{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--font-head);font-weight:600;font-size:1.7rem;letter-spacing:-.02em;color:var(--ink)}
.logo img{width:72px;height:72px;transition:transform .5s var(--ease);filter:drop-shadow(0 4px 8px rgba(0,104,255,.25))}
.logo--lg img{width:128px;height:128px}
.logo:hover img{transform:rotate(-8deg) scale(1.08)}
.logo span b{color:var(--coral-text);font-weight:600}
.main-nav ul{display:flex;align-items:center;gap:6px}
.main-nav a{display:block;padding:9px 14px;border-radius:999px;text-decoration:none;font-weight:700;font-size:.98rem;color:var(--ink-soft);transition:background-color .25s,color .25s}
.main-nav a:hover,.main-nav a.is-active{background:var(--sky);color:var(--blue-dark)}
.header-cta{display:flex;align-items:center;gap:12px}
.nav-toggle{display:none;width:46px;height:46px;border:2px solid var(--blue);color:var(--blue);border-radius:50%;background:transparent;cursor:pointer;align-items:center;justify-content:center;font-size:1.4rem}
.nav-toggle .icon-close{display:none}
.nav-toggle[aria-expanded="true"] .icon-menu{display:none}
.nav-toggle[aria-expanded="true"] .icon-close{display:block}

@media (max-width:1020px){
  .nav-toggle{display:inline-flex}
  .header-cta .btn{display:none}
  .main-nav{position:fixed;inset:var(--header-h) 0 auto 0;background:var(--cream);padding:18px 20px 28px;border-bottom:1px solid var(--line);box-shadow:0 30px 40px -30px rgba(14,42,92,.35);transform:translateY(-12px);opacity:0;visibility:hidden;transition:opacity .3s,transform .35s var(--ease),visibility .3s}
  .main-nav.is-open{opacity:1;visibility:visible;transform:none}
  .main-nav ul{flex-direction:column;align-items:stretch;gap:4px}
  .main-nav a{padding:14px 18px;font-size:1.1rem;border-radius:16px}
  .main-nav .nav-cta-mobile{display:block;margin-top:12px}
}
@media (min-width:1021px){.nav-cta-mobile{display:none}}

/* ---------- 5. HERO ---------- */
.hero{position:relative;padding-block:clamp(40px,6vw,88px) clamp(72px,9vw,120px);overflow:hidden;isolation:isolate}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,64px);align-items:center}
.hero h1 em{font-style:normal;position:relative;white-space:nowrap;color:var(--blue);isolation:isolate}
.hero h1 em::after{content:"";position:absolute;left:-2%;right:-2%;bottom:.04em;height:.13em;background:linear-gradient(90deg,#00C2D2,#FDBE01 22%,#FF5BA7 45%,#8A4FE0 68%,#FF6806 84%,#07D54F);border-radius:99px;z-index:-1}
.hero-lead{font-size:clamp(1.1rem,1.6vw,1.3rem);color:var(--ink-soft);max-width:34em;margin-bottom:2em}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px}
.hero-note{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:34px;font-weight:700;font-size:.95rem;color:var(--ink-soft)}
.hero-note li{display:inline-flex;align-items:center;gap:8px}
.hero-note .icon{color:var(--coral);font-size:1.25rem}
.hero-media{position:relative}
.hero-frame{position:relative;border-radius:var(--r-xl) var(--r-xl) 220px var(--r-xl);overflow:hidden;aspect-ratio:1200/1059;background:#f6f9fc;box-shadow:var(--shadow-lg)}
.hero-frame img{width:100%;height:100%;object-fit:cover;object-position:center}
.float{position:absolute;pointer-events:none;aspect-ratio:1/1;height:auto}
.float--a{top:-22px;left:-26px;width:84px;animation:bob 6s ease-in-out infinite}
.float--b{right:-16px;bottom:24%;width:60px;animation:bob 7s ease-in-out -2s infinite}
.float--c{left:-34px;top:42%;width:70px;animation:bob 8s ease-in-out -4s infinite}
.hero-badge{position:absolute;left:-18px;top:6%;background:var(--paper);border-radius:var(--r-md);padding:14px 20px;box-shadow:var(--shadow-md);display:flex;align-items:center;gap:12px;font-family:var(--font-head);font-weight:500;line-height:1.2}
.hero-badge .icon{font-size:1.8rem;color:var(--coral)}
.hero-badge small{display:block;font-family:var(--font-body);font-weight:600;font-size:.82rem;color:var(--ink-soft)}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-14px) rotate(4deg)}}
.blob{position:absolute;border-radius:50%;filter:blur(2px);z-index:-1;pointer-events:none}
.hero::before{content:"";position:absolute;width:560px;height:560px;right:-160px;top:-180px;border-radius:50%;background:var(--sky);opacity:.8;z-index:-1}
.hero::after{content:"";position:absolute;width:360px;height:360px;left:-140px;bottom:-120px;border-radius:50%;background:var(--butter);opacity:.7;z-index:-1}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .hero-media{max-width:560px;margin-inline:auto;width:100%}
  .hero-frame{aspect-ratio:1200/1059;border-radius:var(--r-xl) var(--r-xl) 120px var(--r-xl)}
  .float--c{display:none}
  .hero-badge{left:8px}
}

/* ---------- 6. PRODUCTOS ---------- */
.products{background:var(--cream-2);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:0 -20px 60px -40px rgba(14,42,92,.25)}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.card{--tint:var(--peach);display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .3s}
.card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:transparent}
.card--2{--tint:var(--sky)}
.card--3{--tint:var(--lilac)}
.card-media{position:relative;aspect-ratio:1/1;background:var(--tint);overflow:hidden}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.card:hover .card-media img{transform:scale(1.06) rotate(-1deg)}
.card-tag{position:absolute;left:16px;top:16px;background:rgba(255,255,255,.92);padding:6px 14px;border-radius:999px;font-family:var(--font-head);font-weight:500;font-size:.85rem}
.card-body{display:flex;flex-direction:column;flex:1;padding:26px 26px 28px}
.card h3{margin-bottom:.35em}
.card-desc{color:var(--ink-soft);font-size:1rem;margin-bottom:16px}
.card-age{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;background:var(--tint);padding:7px 14px;border-radius:18px;line-height:1.3;font-weight:800;font-size:.88rem;margin-bottom:18px}
.card-age .icon{font-size:1.1rem}
.card-benefits{display:grid;gap:10px;margin-bottom:26px}
.card-benefits li{display:flex;gap:10px;align-items:flex-start;font-weight:700;font-size:.98rem;line-height:1.4}
.card-benefits .icon{color:var(--coral-text);font-size:1.25rem;margin-top:1px}
.card-actions{display:grid;gap:10px;margin-top:auto}
@media (max-width:980px){.product-grid{grid-template-columns:1fr;max-width:520px;margin-inline:auto}}

/* ---------- 7. BENEFICIOS ---------- */
.benefits-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.benefit{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px 26px;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.benefit:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.benefit-icon{width:64px;height:64px;border-radius:22px;display:grid;place-items:center;font-size:2rem;margin-bottom:18px;background:var(--c,var(--peach));transition:transform .5s var(--ease)}
.benefit:hover .benefit-icon{transform:rotate(-8deg) scale(1.08)}
.benefit h3{font-size:1.2rem;margin-bottom:.4em}
.benefit p{color:var(--ink-soft);font-size:.98rem;margin:0}
.benefit:nth-child(7n+1){--c:var(--peach)}.benefit:nth-child(7n+2){--c:var(--sky)}.benefit:nth-child(7n+3){--c:var(--butter)}
.benefit:nth-child(7n+4){--c:var(--mint)}.benefit:nth-child(7n+5){--c:var(--lilac)}.benefit:nth-child(7n+6){--c:var(--peach)}.benefit:nth-child(7n+7){--c:var(--sky)}
.benefit--note{grid-column:span 1;background:var(--ink);border-color:var(--ink);color:#fff;display:flex;flex-direction:column;justify-content:center}
.benefit--note h3{color:#fff}
.benefit--note p{color:#CFE0FA}
.disclaimer{max-width:760px;margin:34px auto 0;text-align:center;font-size:.92rem;color:var(--ink-soft)}
@media (max-width:1060px){.benefits-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.benefits-grid{grid-template-columns:1fr}}

/* ---------- 8. CÓMO JUGAR ---------- */
.how{background:linear-gradient(180deg,var(--cream),#C8EEF4 140%)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;counter-reset:step}
.step{position:relative;background:var(--paper);border-radius:var(--r-lg);padding:34px 28px 30px;border:2px dashed var(--line);transition:transform .45s var(--ease),border-color .3s,border-style .3s}
.step:hover{transform:translateY(-6px) rotate(-.6deg);border-color:var(--coral)}
.step::before{counter-increment:step;content:counter(step);position:absolute;top:-20px;left:26px;width:42px;height:42px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-family:var(--font-head);font-weight:600;font-size:1.15rem}
.step .icon{font-size:2.4rem;color:var(--coral-text);margin-bottom:14px}
.step h3{margin-bottom:.35em}
.step p{margin:0;color:var(--ink-soft);font-size:1rem}
@media (max-width:960px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.steps{grid-template-columns:1fr;gap:34px}}

/* ---------- 9. APRENDER A SU RITMO ---------- */
.rhythm-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(32px,6vw,80px);align-items:center}
.rhythm-media{position:relative}
.rhythm-media .frame{border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/3;background:var(--peach);box-shadow:var(--shadow-lg);transform:rotate(-2deg);transition:transform .8s var(--ease)}
.rhythm-media:hover .frame{transform:rotate(0)}
.rhythm-media img{width:100%;height:100%;object-fit:cover}
.rhythm-media::after{content:"";position:absolute;inset:auto -20px -20px auto;width:140px;height:140px;border-radius:50%;background:var(--butter);z-index:-1}
.rhythm-quote{font-family:var(--font-head);font-weight:500;font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.2;margin-bottom:.7em}
.rhythm-quote span{color:var(--coral-text)}
.rhythm p{color:var(--ink-soft);font-size:1.15rem}
.verbs{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.verbs li{padding:9px 20px;border-radius:999px;font-family:var(--font-head);font-weight:500;background:var(--c)}
.verbs li:nth-child(1){--c:var(--peach)}.verbs li:nth-child(2){--c:var(--sky)}.verbs li:nth-child(3){--c:var(--mint)}.verbs li:nth-child(4){--c:var(--lilac)}
.rhythm{background:var(--cream-2)}
@media (max-width:900px){.rhythm-grid{grid-template-columns:1fr}}

/* ---------- 10. SOBRE IMAGINJOY ---------- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
.about p{color:var(--ink-soft);font-size:1.12rem}
.about-panel{position:relative;background:var(--lilac);border-radius:var(--r-xl);padding:clamp(32px,5vw,56px);overflow:hidden}
.about-panel::before{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.5)}
.about-panel ul{position:relative;display:grid;gap:22px}
.about-panel li{display:flex;gap:16px;align-items:flex-start}
.about-panel li .ico{flex:none;width:52px;height:52px;border-radius:18px;background:var(--paper);display:grid;place-items:center;font-size:1.6rem;color:var(--coral-text);box-shadow:var(--shadow-sm)}
.about-panel li strong{display:block;font-family:var(--font-head);font-weight:600;font-size:1.2rem;line-height:1.2;margin-bottom:2px}
.about-panel li span{color:var(--ink-soft);font-size:.98rem;line-height:1.5}
@media (max-width:900px){.about-grid{grid-template-columns:1fr}}

/* ---------- 11. POR QUÉ ELEGIR ---------- */
.why{background:var(--mint);border-radius:var(--r-xl);margin-inline:clamp(0px,1.5vw,20px)}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.why-item{background:var(--paper);border-radius:var(--r-lg);padding:30px 26px;text-align:left;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.why-item:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.why-item .icon{font-size:2.4rem;color:var(--coral-text);margin-bottom:16px}
.why-item h3{font-size:1.2rem}
.why-item p{margin:0;color:var(--ink-soft);font-size:.98rem}
@media (max-width:1000px){.why-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.why-grid{grid-template-columns:1fr}}

/* ---------- 12. FAQ ---------- */
.faq-list{max-width:820px;margin-inline:auto;display:grid;gap:14px}
.faq-item{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);transition:box-shadow .3s,border-color .3s}
.faq-item[open]{box-shadow:var(--shadow-md);border-color:transparent}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 26px;font-family:var(--font-head);font-weight:500;font-size:1.15rem;line-height:1.3}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .plus{flex:none;width:36px;height:36px;border-radius:50%;background:var(--peach);display:grid;place-items:center;font-size:1.2rem;transition:transform .4s var(--ease),background-color .3s}
.faq-item[open] summary .plus{transform:rotate(45deg);background:var(--sun)}
.faq-item summary:hover .plus{background:var(--sun)}
.faq-answer{padding:0 26px 24px;color:var(--ink-soft);animation:fadeDown .45s var(--ease)}
.faq-answer p:last-child{margin:0}
@keyframes fadeDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ---------- 13. CTA FINAL ---------- */
.cta{padding-block:clamp(32px,5vw,64px) clamp(80px,10vw,120px)}
.cta-box{position:relative;overflow:hidden;background:linear-gradient(155deg,#1A7BFF,#0058E0 60%,#0048B8);color:#fff;border-radius:var(--r-xl);padding:clamp(48px,8vw,96px) clamp(24px,6vw,80px);text-align:center;isolation:isolate}
.cta-box h2{color:#fff;max-width:14em;margin-inline:auto}
.cta-box p{color:#E6F0FF;font-size:1.2rem;max-width:30em;margin:0 auto 2em}
.cta-box::before,.cta-box::after{content:"";position:absolute;border-radius:50%;z-index:-1}
.cta-box::before{width:380px;height:380px;left:-120px;top:-140px;background:rgba(0,194,210,.35)}
.cta-box::after{width:300px;height:300px;right:-90px;bottom:-120px;background:rgba(138,79,224,.4)}
.cta-box .float{opacity:.95}
.cta-box .float--a{top:14%;left:8%;width:54px}
.cta-box .float--b{top:20%;right:9%;width:46px}
.cta-box .float--c{bottom:14%;left:14%;width:40px;display:block}
.btn--lg{padding:19px 38px;font-size:1.2rem}

/* ---------- 14. FOOTER ---------- */
.site-footer{background:#0B2A66;color:#fff;border-radius:var(--r-xl) var(--r-xl) 0 0;padding-top:clamp(48px,7vw,80px)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:48px}
.footer-brand p{color:#BBD0F0;max-width:26em;margin:14px 0 22px;font-size:1rem}
.footer-col h3{font-size:1.05rem;margin-bottom:14px;color:#fff}
.footer-col li+li{margin-top:8px}
.footer-col a{text-decoration:none;font-weight:700;color:#C9DBF7;transition:color .2s}
.footer-col a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.social{display:flex;gap:10px}
.social a{width:46px;height:46px;border-radius:50%;background:var(--paper);color:var(--blue);display:grid;place-items:center;font-size:1.3rem;transition:transform .35s var(--ease),background-color .25s,color .25s}
.social a:hover{transform:translateY(-4px) rotate(-6deg);background:var(--blue);color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.18);padding-block:22px;display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between;font-size:.9rem;color:#BBD0F0}
.footer-bottom a{color:#fff}
.footer-bottom p{margin:0}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media (max-width:480px){.footer-grid{grid-template-columns:1fr}}

/* ---------- 15. DIÁLOGO DE PRODUCTO ---------- */
.product-dialog{width:min(920px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;border:0;border-radius:var(--r-lg);background:var(--cream);color:var(--ink);box-shadow:0 40px 100px -20px rgba(14,42,92,.55);overflow:auto}
.product-dialog::backdrop{background:rgba(14,42,92,.55);backdrop-filter:blur(4px)}
.product-dialog[open]{animation:pop .45s var(--ease)}
@keyframes pop{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
.dialog-grid{display:grid;grid-template-columns:1fr 1fr}
.dialog-media{background:var(--tint,var(--peach));aspect-ratio:1/1;align-self:start}
.dialog-media img{width:100%;height:100%;object-fit:cover}
.dialog-body{padding:clamp(24px,4vw,44px)}
.dialog-body h3{font-size:1.7rem}
.dialog-body h4{font-size:1.05rem;margin:22px 0 10px}
.dialog-body p{color:var(--ink-soft)}
.dialog-body ul{display:grid;gap:8px}
.dialog-body li{display:flex;gap:10px;font-weight:700;font-size:.98rem}
.dialog-body li .icon{color:var(--coral-text);font-size:1.2rem;margin-top:2px}
.dialog-body .btn{margin-top:26px}
.dialog-close{position:absolute;right:14px;top:14px;width:44px;height:44px;border-radius:50%;border:0;background:var(--paper);box-shadow:var(--shadow-md);cursor:pointer;display:grid;place-items:center;font-size:1.3rem;z-index:2;transition:transform .3s var(--ease)}
.dialog-close:hover{transform:rotate(90deg)}
.dialog-small{font-size:.85rem;color:var(--ink-soft)}
@media (max-width:760px){.dialog-grid{grid-template-columns:1fr}.dialog-media{aspect-ratio:4/3}}

/* ---------- 16. ANIMACIONES Y ACCESIBILIDAD ---------- */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s)}
.js .reveal.is-visible{opacity:1;transform:none}
.js .reveal--left{transform:translateX(-32px)}
.js .reveal--right{transform:translateX(32px)}
.js .reveal--pop{transform:scale(.94)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  .js .reveal{opacity:1;transform:none}
}
@media print{.site-header,.hero-media,.cta{display:none}}

/* Evita scroll horizontal por elementos que entran desde el lateral */
.section{overflow-x:clip}
@media (max-width:900px){
  .js .reveal--left,.js .reveal--right{transform:translateY(28px)}
}
.dialog-body li::before{content:"";flex:none;width:10px;height:10px;border-radius:50%;background:var(--coral);margin-top:.55em}

/* Detalle de producto flotante en el hero (página de pesca) */
.card-media img[src$=".webp"]{object-fit:contain}

.footer-brand .footer-mail{margin:0 0 22px}
.footer-mail a{display:inline-flex;align-items:center;gap:10px;color:#fff;font-weight:800;text-decoration:none;border-bottom:2px solid rgba(255,255,255,.35);padding-bottom:2px;transition:border-color .25s}
.footer-mail a:hover{border-color:var(--sun)}
.footer-mail .icon{font-size:1.25rem;color:var(--sun)}
