/* YOTOYS / ¡Yo aquiToy! — art direction 2026 · Additive styles, preserves functional legacy UI */
:root{--red:#ef4444;--blue:#3b82f6;--yellow:#fbbf24;--ink:#151515;--cream:#fffaf2;--ease:cubic-bezier(.2,.82,.2,1)}
::selection{background:#fbbf24;color:#141414}
body{background:#fffdf7}
.header{box-shadow:0 8px 24px rgba(18,18,18,.045)}
.header-inner{min-height:80px}
.logo,.logo img{width:171px}
.announcement{background:#171717;color:white;height:34px}
.nav a{font-size:13px}
.nav-cta{background:#ef4444;color:#fff;border-radius:100px;box-shadow:4px 5px 0 rgba(20,20,20,.95)}
.nav-cta span{color:white}
.nav-cta:hover{background:#171717;box-shadow:0 0 0 rgba(20,20,20,0)}
/* BIG CAMPAIGN HERO */
.hero-v3{grid-template-columns:minmax(0,53%) minmax(0,47%);min-height:730px;max-height:920px;isolation:isolate;background:#fff8eb;overflow:hidden}
.hero-v3 .hero-background-mark{position:absolute;font-family:var(--display);font-size:clamp(290px,40vw,660px);font-weight:900;letter-spacing:-.13em;opacity:.035;left:-40px;top:34%;transform:rotate(-11deg);pointer-events:none;z-index:0;line-height:1}
.hero-v3 .hero-copy{padding:65px 0 94px clamp(32px,6.1vw,112px);justify-content:center;overflow:visible}
.hero-v3 .hero-kicker{font-size:11px;letter-spacing:.13em;color:#25221e;margin-bottom:26px;border:1px solid rgba(24,24,24,.17);padding:10px 15px;border-radius:80px;background:#fff;white-space:nowrap}
.hero-v3 .kicker-dot{background:var(--red)}
.hero-title-v3{font-size:clamp(82px,9.15vw,147px)!important;line-height:.79!important;margin:0 0 29px!important;letter-spacing:-.101em!important;position:relative;z-index:4}
.hero-title-v3 span{display:block!important}
.hero-title-v3 .hello{color:#181818;text-transform:none}
.hero-title-v3 .slogan{color:var(--blue);position:relative;text-transform:none;text-shadow:0 0 0 var(--blue);padding-bottom:.16em}
.hero-title-v3 .bang{display:inline!important;color:var(--red)}
.hero-title-v3 .slogan:after{content:'';position:absolute;background:#fbbf24;height:clamp(8px,1.4vw,19px);border-radius:50%;left:4%;right:4%;bottom:.11em;transform:rotate(-2deg);z-index:-1}
.hero-tagline-line{display:flex;align-items:center;gap:15px;margin:0 0 16px;font-family:var(--display);font-size:clamp(18px,1.7vw,25px);font-weight:900;letter-spacing:-.044em;line-height:1.1}
.hero-line{width:35px;height:4px;border-radius:8px;background:var(--red);flex:none}
.hero-v3 .hero-lead{font-size:16px;line-height:1.55;max-width:500px;letter-spacing:-.012em;margin-bottom:30px}
.hero-v3 .hero-actions{gap:12px}
.hero-v3 .btn{font-size:12px;border-radius:16px;min-height:60px;padding:17px 23px}
.hero-v3 .btn-ink{background:#141414;box-shadow:0 6px 0 #29292922}
.hero-v3 .btn-outline{background:white;border:2px solid #151515}
.hero-v3 .hero-caption{margin-top:43px;font-size:11px}
.hero-v3 .avatar-shapes span{width:40px;height:40px}
/* staged graphic composition: transparent child + geometric motion */
.hero-scene-v3{height:auto;min-height:730px;overflow:hidden;background:radial-gradient(circle at 64% 37%,#ffe98d 0 17%,transparent 48%),linear-gradient(146deg,#ffcf43,#ffba14 85%)}
.hero-scene-v3:before{content:'';position:absolute;inset:9% 7% 9% 8%;border:2px solid rgba(255,255,255,.35);border-radius:47% 53% 51% 49%;transform:rotate(-17deg);z-index:1}
.hero-scene-v3:after{content:'';position:absolute;width:140%;height:200px;left:-15%;bottom:-80px;background:#ffedac;border-radius:50% 50% 0 0;z-index:1;filter:blur(10px);opacity:.55}
.hero-scene-v3 .hero-boy{width:114%;height:auto;position:absolute;z-index:4;bottom:-17%;left:-10%;right:auto;top:auto;object-fit:contain;object-position:bottom center;transform:rotate(0deg);animation:heroEntrance 1.15s var(--ease) both,childBreath 6s 1.15s ease-in-out infinite alternate;filter:drop-shadow(0px 24px 27px rgba(104,59,8,.12))}
.hero-scene-v3 .shape{position:absolute;display:block;z-index:2;filter:drop-shadow(0 11px 18px rgba(85,45,8,.1))}
.shape-red{width:120px;height:120px;border-radius:28px;top:12%;left:-2%;transform:rotate(-23deg);background:#ef4444;animation:toyFloat 7s ease-in-out infinite}
.shape-blue{width:105px;height:105px;border-radius:50%;top:12%;right:7%;background:#2878ff;animation:toyFloat 6.7s ease-in-out infinite reverse}
.shape-yellow{width:62px;height:62px;border-radius:16px;bottom:11%;right:9%;transform:rotate(-15deg);background:#ffeb7e;animation:toyFloat 5.2s ease-in-out infinite}
.scene-ring{position:absolute;z-index:1;width:55%;height:55%;top:14%;right:-20%;border-radius:50%;border:45px solid rgba(255,255,255,.38)}
.starlet{position:absolute;z-index:5;color:#fff;font-size:50px;pointer-events:none}.starlet-a{top:26%;left:8%;animation:toyFloat 4s ease-in-out infinite}.starlet-b{right:7%;bottom:27%;font-size:36px;color:#ef4444;animation:toyFloat 5s ease-in-out infinite}
.scene-sticker{position:absolute;z-index:8;right:clamp(10px,4vw,65px);top:7%;width:145px;height:145px;display:flex;align-items:center;justify-content:center;flex-direction:column;line-height:1.04;transform:rotate(12deg);border-radius:50%;background:#ef4444;color:white;text-align:center;font-family:var(--display);font-weight:900;font-size:20px;box-shadow:0 12px 0 rgba(162,43,43,.17);animation:badgeDance 7s ease-in-out infinite}
.scene-sticker:before{content:'';position:absolute;inset:6px;border:1px dashed rgba(255,255,255,.5);border-radius:50%}
.scene-sticker strong{font-size:33px}.scene-sticker span{font-size:25px;color:#ffd540}
.scene-bottom-pill{position:absolute;z-index:9;bottom:70px;left:2%;display:flex;gap:12px;align-items:center;transform:rotate(-7deg);padding:16px 18px;border-radius:22px;background:white;box-shadow:0 18px 38px rgba(62,48,16,.18);font-weight:800;font-size:11px;line-height:1.3}
.scene-bottom-pill b{font-family:var(--display);font-size:25px;letter-spacing:-.075em}
.mini-bullet{display:block;width:12px;height:12px;border-radius:50%;background:var(--red);align-self:flex-start}
.arrow-pill{background:#ffcb3e;padding:10px;border-radius:50%;font-size:18px}
.corner-brand{position:absolute;z-index:6;right:5%;bottom:8%;font-family:var(--display);font-size:12px;font-weight:900;line-height:1.15;letter-spacing:.1em;transform:rotate(-8deg);text-align:right;color:#171717}
.hero-v3 .hero-bottom{z-index:15;background:#fff9eeec;letter-spacing:.11em}
/* STRONG TYPOGRAPHIC MARQUEE */
.ticker-red{background:#ef4444;color:white;border-top:2px solid #ef4444;border-bottom:2px solid #ef4444;padding:12px 0}
.ticker-red .ticker-track{font-size:1.08em}
.promise-grid{padding-top:28px;padding-bottom:28px}
.promise-item strong{font-size:16px}
.promise-symbol{box-shadow:4px 4px 0 #16161617}
/* storytelling interlude */
.play-interlude{display:grid;grid-template-columns:50% 50%;background:#285dff;min-height:510px;position:relative;overflow:hidden;isolation:isolate}
.play-interlude-image{position:relative;min-height:510px;overflow:hidden}.play-interlude-image img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:53% center;transition:transform 1.2s var(--ease)}.play-interlude:hover .play-interlude-image img{transform:scale(1.07)}
.play-interlude-copy{padding:65px clamp(30px,5vw,90px);display:flex;flex-direction:column;align-items:start;justify-content:center;color:white;position:relative;z-index:3}
.play-interlude-copy .small-pill{font-size:10px;font-weight:900;letter-spacing:.16em;background:#fff;color:#1d1d1d;padding:11px 16px;border-radius:60px}
.play-interlude h2{font-size:clamp(64px,8vw,130px);line-height:.84;letter-spacing:-.085em;margin:35px 0 18px;font-weight:900}
.play-interlude h2 em{font-style:normal;color:#fbd13d}
.play-interlude-copy p{font-size:16px;line-height:1.52;max-width:440px;color:#eef1ff}
.play-interlude-cta{display:flex;gap:24px;align-items:center;background:#fff;color:#1c1c1c;border-radius:100px;padding:18px 21px;font-size:11px;font-weight:900;margin-top:16px;box-shadow:6px 6px 0 #171717}
.play-interlude-cta:hover{transform:translate(-2px,-3px);box-shadow:8px 9px 0 #171717}
.interlude-scribble{position:absolute;z-index:2;color:rgba(255,255,255,.11);font-size:400px;right:-2%;top:-20%;animation:slowSpin 42s linear infinite;pointer-events:none}
/* More considered content scale and visual polish */
.discover{background:#faf8f3}
.discover .section-heading h2{font-size:clamp(68px,6.9vw,111px)}
.category{border-radius:29px;border:1px solid rgba(0,0,0,.04)}
.category:hover{box-shadow:0px 25px 42px #1818181a}
.cat-image img{transition:transform .6s var(--ease)}
.category:hover .cat-image img{transform:scale(1.11) rotate(-4deg)}
.statement{background:#181818;color:#fff}
.statement p span{color:#f9c533}
.retail-block{background:#ef4444}.wholesale-block{background:#2c64ec}
.vibe{background:#fffdf8}
.quiz-section{background:#ffe8a2}
.channel{border-radius:29px}
.faq{background:#fffdf7}
.contact{background:#ffbc1e;color:#141414}
.contact .contact-form{box-shadow:15px 17px 0 #101010}
.footer{background:#f3f2ed}
.wa-float{background:#151515;color:white;border:1px solid rgba(255,255,255,.2)}
.wa-float:hover{background:#ef4444}
/* keyboard / motion */
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #2c68ff;outline-offset:4px}
@keyframes heroEntrance{from{opacity:0;transform:translate(15%,8%) scale(.95)}to{opacity:1;transform:translate(0,0) scale(1)}}
@keyframes childBreath{from{transform:translateY(0)}to{transform:translateY(-8px)}}
@keyframes toyFloat{0%,100%{translate:0 0}50%{translate:0 -20px}}
@keyframes badgeDance{0%,100%{transform:rotate(12deg)}50%{transform:rotate(6deg) translateY(-9px)}}
@keyframes slowSpin{to{transform:rotate(360deg)}}
@media(min-width:1450px){.hero-v3{min-height:800px}.hero-v3 .hero-copy{padding-left:max(6vw,calc((100vw - 1540px)/2 + 88px))}.hero-scene-v3 .hero-boy{width:110%;left:-8%;bottom:-20%}}
@media(max-width:1200px){.hero-v3{min-height:660px}.hero-v3 .hero-copy{padding-left:5vw;padding-right:10px}.hero-title-v3{font-size:clamp(75px,8.55vw,118px)!important}.hero-scene-v3{min-height:660px}.hero-scene-v3 .hero-boy{bottom:-11%;width:122%;left:-14%}.scene-sticker{height:115px;width:115px;font-size:16px}.scene-sticker strong{font-size:27px}.play-interlude{min-height:450px}.play-interlude-image{min-height:450px}}
@media(max-width:940px){.header-inner{min-height:78px}.nav{top:78px}.hero-v3{grid-template-columns:minmax(0,53%) minmax(0,47%);min-height:570px}.hero-v3 .hero-copy{padding:46px 10px 64px 4vw}.hero-title-v3{font-size:clamp(64px,8.4vw,85px)!important}.hero-v3 .hero-kicker{font-size:8px;padding:8px 9px;gap:7px}.hero-v3 .hero-lead{font-size:13px}.hero-v3 .btn{font-size:10px;min-height:50px;padding:12px 16px}.hero-tagline-line{font-size:16px}.hero-scene-v3{min-height:570px}.hero-scene-v3 .hero-boy{width:141%;left:-27%;bottom:-13%}.scene-sticker{right:5%;top:6%;height:97px;width:97px;font-size:14px}.scene-sticker strong{font-size:22px}.scene-bottom-pill{bottom:46px;left:0;padding:10px 12px;font-size:9px}.scene-bottom-pill b{font-size:21px}.corner-brand{display:none}.play-interlude h2{font-size:clamp(55px,7.3vw,93px)}.play-interlude-copy{padding:36px}}
@media(max-width:650px){.header-inner{min-height:72px}.nav{top:72px}.hero-v3{display:flex;flex-direction:column;max-height:none}.hero-v3 .hero-copy{padding:46px 23px 35px}.hero-title-v3{font-size:clamp(77px,16vw,126px)!important;margin-bottom:15px!important}.hero-v3 .hero-kicker{font-size:9px;margin-bottom:27px}.hero-tagline-line{font-size:18px}.hero-v3 .hero-lead{font-size:14px;max-width:480px;margin-bottom:23px}.hero-v3 .hero-actions{gap:8px}.hero-v3 .btn{min-height:52px;padding:13px 15px;font-size:10px}.hero-v3 .hero-caption{margin-top:26px;margin-bottom:4px}.hero-scene-v3{width:100%;min-height:460px;height:460px}.hero-scene-v3 .hero-boy{width:95%;left:5%;bottom:-25%;}.shape-red{width:80px;height:80px}.shape-blue{width:75px;height:75px}.scene-sticker{right:6%;top:4%;width:97px;height:97px}.scene-bottom-pill{left:5%;bottom:43px}.hero-v3 .hero-bottom{height:34px;font-size:7px;padding:0 14px}.play-interlude{grid-template-columns:1fr}.play-interlude-image{min-height:260px}.play-interlude-copy{padding:44px 25px 60px}.play-interlude h2{font-size:clamp(70px,14.5vw,110px);margin:24px 0 12px}.play-interlude-copy p{font-size:14px}.interlude-scribble{font-size:240px;top:auto;bottom:1%}.discover .section-heading h2{font-size:clamp(57px,11.5vw,84px)}.category{border-radius:20px}.contact .contact-form{box-shadow:7px 9px 0 #151515}}
@media(max-width:390px){.hero-title-v3{font-size:clamp(70px,15.9vw,90px)!important}.hero-v3 .hero-kicker{font-size:8px}.hero-v3 .btn{gap:8px}.hero-scene-v3 .hero-boy{width:109%;left:0%;bottom:-20%}}
@media(prefers-reduced-motion:reduce){.hero-scene-v3 .hero-boy{animation:none!important;transform:none!important}.scene-sticker,.shape,.starlet,.interlude-scribble{animation:none!important}}
/* Prevent a few off-canvas decorative elements in mobile layouts from adding scroll width */
html,body{max-width:100%;overflow-x:clip}

/* ===== Fondo blanco en toda la página =====
   Los cremas originales (#fffdf7, #fff8eb, #fff8ef, #fffaf2, #fffbf4) se
   unifican en blanco. Se dejan intactos los bloques de color: tarjetas de
   categoría, tickers rojo/azul, canales y el bloque de contacto. */
/* El degradado del hero de la version Next: blanco al centro y azul hacia
   los bordes. Va en el body y las secciones quedan transparentes para que
   se vea a traves; `fixed` lo mantiene parejo al hacer scroll en una pagina
   tan larga. */
body {
  background-color: #fff;
  background-image: radial-gradient(
    ellipse 90% 70% at 50% 30%,
    #ffffff 42%,
    #3b82f61f 74%,
    #3b82f647 100%
  );
  background-attachment: fixed;
  background-repeat: no-repeat;
}

.hero,
.hero-v3,
.discover,
.channels,
.footer {
  background: transparent;
}

/* El borde de los circulitos imitaba el crema del hero; en blanco se nota. */
.avatar-shapes span {
  border-color: #fff;
}

/* ===== Banda de marcas (sustituye al ticker rojo bajo el hero) =====
   Cada logotipo va sobre su propia placa blanca: es lo que los hace legibles
   sobre el rojo y evita recolorear marcas de terceros. */
.marcas-banda {
  background: linear-gradient(115deg, #ef4444 0%, #dc2626 55%, #b91c1c 100%);
  padding: 30px 0;
  overflow: hidden;
}

.marcas-viewport {
  overflow: hidden;
  /* Los logos entran y salen difuminados, sin cortarse en seco. */
  -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
}

.marcas-track {
  display: flex;
  width: max-content;
  animation: marcasDesfile 52s linear infinite;
}

.marcas-banda:hover .marcas-track,
.marcas-banda:focus-within .marcas-track {
  animation-play-state: paused;
}

.marcas-fila {
  display: flex;
  align-items: center;
  gap: 22px;
  padding-right: 22px;
  margin: 0;
  list-style: none;
  flex: none;
}

.marcas-plate,
.marca-plate {
  flex: none;
  width: 192px;
  height: 108px;
  display: grid;
  place-items: center;
  padding: 0 28px;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .14);
}

.marca-plate img { width: auto; object-fit: contain; }

/* Tamaño óptico por logotipo: uno horizontal largo necesita menos altura que
   uno compacto para pesar lo mismo en la fila. */
.marca-plate .alto-sm { max-height: 40px; }
.marca-plate .alto-md { max-height: 52px; }
.marca-plate .alto-lg { max-height: 66px; }
.marca-plate .alto-xl { max-height: 80px; }

@keyframes marcasDesfile {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
  .marcas-track { animation: none; flex-wrap: wrap; justify-content: center; }
  .marcas-fila:nth-child(2) { display: none; }
}

@media (max-width: 760px) {
  .marcas-banda { padding: 30px 0; }
  .marca-plate { width: 170px; height: 100px; padding: 0 20px; }
  .marca-plate .alto-xl { max-height: 70px; }
  .marca-plate .alto-lg { max-height: 60px; }
  .marca-plate .alto-md { max-height: 48px; }
  .marca-plate .alto-sm { max-height: 36px; }
}

/* ===== Categorías: de ilustración a fotografía =====
   Las tarjetas estaban pensadas para SVG sueltos (rotados, object-fit
   contain y con sombra). Con foto real eso se ve mal: ahora es un cuadrado
   1:1 recortado a cover, con esquinas redondeadas y un zoom discreto. */
.cat-image {
  height: auto;
  padding: 0;
  border-radius: 16px;
  overflow: hidden;
}

.cat-image img {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  /* Sin rotación ni sombra: la foto ya trae su propio fondo de color. */
  filter: none;
  transform: none;
  transition: transform .35s var(--ease);
}

.category:hover .cat-image img {
  transform: scale(1.05);
}

@media (prefers-reduced-motion: reduce) {
  .cat-image img,
  .category:hover .cat-image img { transition: none; transform: none; }
}

/* ===== Lockup del titular =====
   Con el slogan corto ("Toy!") la curva amarilla quedaba suelta: .slogan era
   display:block, así que el subrayado medía todo el ancho del h1 en vez del
   ancho de la palabra. Pasa a inline-block para que lo abrace. */
.hero-title-v3 .slogan {
  display: inline-block !important;
  padding-bottom: .1em;
}

.hero-title-v3 .slogan:after {
  left: -.02em;
  right: -.02em;
  bottom: .06em;
  height: clamp(10px, 1.6vw, 22px);
}

/* Las dos líneas se leen como una sola unidad. */
.hero-title-v3 {
  line-height: .82 !important;
  letter-spacing: -.085em !important;
}

/* "¡Aquí" pesaba menos que "Toy!"; un pelo más de cuerpo las empareja. */
.hero-title-v3 .hello {
  font-size: .92em;
  letter-spacing: -.07em;
}

/* El ticker inferior pasa de negro a azul de marca. */
.ticker-dark {
  background: var(--blue);
  color: #fff;
}

/* ===== Categorías en carrusel =====
   Scroll-snap nativo: en móvil se desliza con el dedo como la gente ya
   espera, sin librerías ni listeners de touch. Las flechas son solo una
   ayuda extra en escritorio. */
.categories-grid {
  display: flex !important;
  grid-template-columns: none !important;
  gap: 18px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-left: 0;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 6px;
}

.categories-grid::-webkit-scrollbar { display: none; }

.categories-grid:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 6px;
  border-radius: 24px;
}

.categories-grid > .category {
  flex: 0 0 calc((100% - 36px) / 3);
  scroll-snap-align: start;
  min-height: 0;
}

/* Flechas: se ocultan donde el dedo es el control natural. */
.cat-nav { display: flex; gap: 10px; margin-top: 18px; }

.cat-nav-btn {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 2px solid var(--ink);
  background: transparent;
  font-size: 24px;
  line-height: 1;
  display: grid;
  place-items: center;
  transition: background .2s, color .2s, opacity .2s;
}

.cat-nav-btn:hover { background: var(--ink); color: #fff; }
.cat-nav-btn[disabled] { opacity: .3; cursor: default; }
.cat-nav-btn[disabled]:hover { background: transparent; color: inherit; }

@media (max-width: 1024px) {
  .categories-grid > .category { flex: 0 0 calc((100% - 18px) / 2); }
}

/* En móvil asoma la siguiente tarjeta: avisa que hay más sin explicarlo. */
@media (max-width: 680px) {
  .categories-grid {
    gap: 14px;
    /* Se sale del contenedor para que el carrusel llegue a los bordes. */
    margin-inline: calc(var(--pad, 20px) * -1);
    padding-inline: var(--pad, 20px);
    scroll-padding-left: var(--pad, 20px);
  }
  .categories-grid > .category { flex: 0 0 82%; }
  .cat-nav { display: none; }
}

/* ===== FAQ y footer en degradado rojo =====
   Al invertir el fondo hay que subir todo el texto a blanco: sobre rojo, los
   grises originales (#555, #777) no alcanzan contraste legible. */
.faq {
  background:
    radial-gradient(circle at 72% 28%, rgba(255, 255, 255, .32) 0 16%, transparent 52%),
    linear-gradient(146deg, #60a5fa 0%, #3b82f6 58%, #1d4ed8 100%);
  color: #fff;
}

.faq .eyebrow { color: #ffe08a; }
.faq h2,
.faq h2 span { color: #fff; }
.faq > .wrap > div > p { color: rgba(255, 255, 255, .85); }

.faq details {
  border-color: rgba(255, 255, 255, .28);
}

.faq summary,
.faq summary span { color: #fff; }
.faq details p { color: rgba(255, 255, 255, .88); }

.footer-brand p,
.footer-links a,
.footer-links b { color: #fff; }

.footer-links a { opacity: .88; }
.footer-links a:hover { opacity: 1; color: #ffe08a; }

.footer-bottom {
  border-top-color: rgba(255, 255, 255, .25);
  color: rgba(255, 255, 255, .8);
}

/* El logotipo y el isotipo son oscuros: sobre rojo necesitan su propio
   campo claro para no perderse. No se altera el SVG. */
.footer-brand img {
  background: #fff;
  border-radius: 14px;
  padding: 12px 16px;
}

.footer-icon img { opacity: .85; }

/* Dirección de oficinas y crédito del footer sobre el fondo rojo. */
.footer-direccion {
  margin-top: 18px;
  font-style: normal;
  font-size: 12px;
  line-height: 1.6;
  color: rgba(255, 255, 255, .85);
}

.footer-direccion b {
  display: inline-block;
  margin-bottom: 4px;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #ffe08a;
}

.credito-web {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.credito-web:hover { color: #ffe08a; }

/* ===== Escena del hero: degradado azul y niño a la derecha =====
   El amarillo plano competía con el camión. Sobre azul, la playera blanca y
   el juguete amarillo resaltan. Con el niño a la derecha, todos los
   elementos flotantes se agrupan a la izquierda para que nada lo tape. */
.hero-scene-v3 {
  background:
    radial-gradient(circle at 72% 28%, rgba(255, 255, 255, .32) 0 16%, transparent 52%),
    linear-gradient(146deg, #60a5fa 0%, #3b82f6 58%, #1d4ed8 100%);
}

.hero-boy {
  left: auto !important;
  right: -6%;
  width: 100%;
  object-position: bottom right;
}

/* El cuadro azul decorativo desaparecía sobre fondo azul. */
.shape-blue { background: #ffffff; opacity: .9; }

.corner-brand { color: #fff; }

/* Texto y adornos se van a la izquierda, lejos del niño. */
.scene-sticker {
  right: auto;
  left: clamp(10px, 4vw, 48px);
  top: 8%;
}

.scene-bottom-pill {
  left: clamp(10px, 3vw, 38px);
  bottom: 86px;
}

.corner-brand {
  right: auto;
  left: clamp(14px, 4vw, 52px);
  bottom: 42px;
  text-align: left;
}

@media (max-width: 860px) {
  /* `left:auto` repetido a proposito: reglas previas fijan `left` en estos
     anchos y, con left+right+width a la vez, gana `left` y lo manda a la
     izquierda otra vez. */
  .hero-boy { left: auto; right: -12%; width: 118%; }
  .corner-brand { display: none; }
}

@media (max-width: 680px) {
  .hero-boy { left: auto; right: -6%; width: 108%; }
  .scene-sticker { left: 5%; top: 5%; }
  .scene-bottom-pill { left: 4%; bottom: 46px; }
}

/* El bloque del asesor pasa de amarillo plano a degradado, con el mismo
   tratamiento (brillo radial + diagonal) que el hero y el footer. */
.quiz-section {
  background:
    radial-gradient(circle at 72% 28%, rgba(255, 255, 255, .38) 0 16%, transparent 52%),
    linear-gradient(146deg, #fde68a 0%, #fbbf24 58%, #f59e0b 100%);
}

/* ===== Contacto: contraste sobre amarillo =====
   El diseño original tenía fondo negro, así que el eyebrow, el "JUGAR?" y
   la meta venían en amarillo/blanco. Sobre el amarillo nuevo eran
   prácticamente invisibles. */
.contact-eyebrow { color: #8a5100; }

.contact h2 { color: var(--ink); }
.contact h2 em { color: var(--red); }

.contact > .wrap > div > p { color: rgba(20, 20, 20, .82); }

.contact-meta { color: #3d2a00; }
.contact-meta span::first-letter { color: var(--red); }

/* ===== Yo! Bot ===== */
.bot-launcher{position:fixed;right:96px;bottom:22px;z-index:60;display:flex;align-items:center;gap:8px;
 height:52px;padding:0 20px;border:none;border-radius:999px;background:var(--blue);color:#fff;
 font-family:var(--display);font-weight:900;font-size:13px;cursor:pointer;
 box-shadow:0 14px 30px rgba(29,78,216,.32);transition:transform .2s,background .2s}
.bot-launcher:hover{transform:translateY(-3px);background:var(--ink)}

.bot-panel{position:fixed;right:20px;bottom:86px;z-index:61;width:min(23rem,calc(100vw - 40px));
 max-height:min(70vh,560px);display:none;flex-direction:column;overflow:hidden;border-radius:24px;
 background:#fff;box-shadow:0 26px 60px rgba(0,0,0,.26)}
.bot-panel.abierto{display:flex}

.bot-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;
 background:var(--blue);color:#fff}
.bot-head b{display:block;font-family:var(--display);font-size:15px}
.bot-head small{font-size:11px;opacity:.8}
.bot-close{border:none;background:transparent;color:#fff;font-size:18px;cursor:pointer;padding:4px 8px;border-radius:50%}
.bot-close:hover{background:rgba(255,255,255,.18)}

.bot-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.bot-burbuja{max-width:86%;padding:10px 13px;border-radius:16px;font-size:13.5px;line-height:1.5}
.bot-burbuja.bot{background:#f3f4f6;color:var(--ink);border-top-left-radius:4px}
.bot-burbuja.yo{align-self:flex-end;background:var(--blue);color:#fff;border-top-right-radius:4px}
.bot-wa{display:block;margin-top:4px;padding:12px;border-radius:999px;background:var(--red);color:#fff;
 text-align:center;font-weight:900;font-size:13px}
.bot-wa:hover{background:var(--ink)}

.bot-acciones{border-top:1px solid rgba(0,0,0,.08);padding:12px 16px 14px}
.bot-hint{margin:0 0 8px;font-size:10px;font-weight:900;letter-spacing:.12em;color:#8a8a8a}
.bot-opciones{display:flex;flex-wrap:wrap;gap:6px}
.bot-opciones button{border:1px solid rgba(0,0,0,.12);background:#fff;border-radius:999px;
 padding:7px 12px;font-size:12px;font-weight:700;cursor:pointer}
.bot-opciones button:hover{border-color:var(--blue);color:var(--blue)}
.bot-humano{display:block;margin-top:10px;text-align:center;font-size:11px;color:#777;text-decoration:underline}

@media (max-width:680px){
 .bot-launcher{right:82px;bottom:16px;height:46px;padding:0 15px;font-size:12px}
 .bot-panel{right:12px;left:12px;width:auto;bottom:72px}
}

/* ===== Panel de la foto sin fondo propio =====
   Se borra su fondo para que pase el degradado del hero: un solo bloque de
   color continuo en vez de dos mitades con su propio azul. */
.hero-scene-v3 {
  background: transparent;
}

/* Sobre el azul del hero, el cuadro azul decorativo se perdia. */
.hero-scene-v3 .shape-blue { background: var(--blue); opacity: 1; }
.hero-scene-v3 .corner-brand { color: var(--ink); }
.hero-scene-v3 .scene-ring { border-color: rgba(59, 130, 246, .16); }

/* ===== Botones flotantes separados =====
   El lanzador del bot y el de WhatsApp se encimaban en la esquina. */
.wa-float { right: 20px; bottom: 20px; z-index: 59; }
.bot-launcher { right: 20px; bottom: 84px; }

@media (max-width: 680px) {
  .wa-float { right: 14px; bottom: 14px; }
  .bot-launcher { right: 14px; bottom: 72px; }
}

/* El boton secundario quedaba con texto blanco sobre relleno blanco (una
   regla previa le pone fondo claro). Relleno blanco + texto oscuro: es lo
   que mejor se lee sobre el azul. */
.hero-v3 .hero-actions .btn-outline {
  background: #fff;
  border-color: #fff;
  color: var(--ink);
}

.hero-v3 .hero-actions .btn-outline:hover {
  background: var(--yellow);
  border-color: var(--yellow);
  color: var(--ink);
}

/* Fuera la forma roja de la escena: chocaba con el sticker rojo "¡Yo toy
   feliz!" que esta justo encima. */
.hero-scene-v3 .shape-red { display: none; }

.footer-brand p { color: #4b4b4b; }
.footer-links a { color: #57534f; opacity: 1; }
.footer-links a:hover { color: var(--red); }
.footer-links b { color: var(--blue); }

.footer-direccion { color: #5a5a5a; }
.footer-direccion b { color: var(--red); }

.footer-bottom {
  border-top-color: rgba(0, 0, 0, .1);
  color: #777;
}

.credito-web { color: var(--blue); }
.credito-web:hover { color: var(--red); }

/* El logotipo ya no necesita su placa blanca: el fondo ya es claro. */
.footer-brand img { background: none; border-radius: 0; padding: 0; }
.footer-icon img { opacity: 1; }

/* ===== Redes del footer ===== */
.footer-redes {
  display: flex;
  gap: 10px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.red-ico {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
}

.red-ico svg { width: 20px; height: 20px; fill: currentColor; }

.red-wa { background: #25d366; transition: transform .2s; }
.red-wa:hover { transform: translateY(-3px); }

.red-tiktok { background: var(--ink); }
.red-comunidad { background: var(--blue); }

/* Las que aun no tienen enlace se ven apagadas y no invitan al clic. */
.red-ico.pendiente { opacity: .4; cursor: default; }

/* ===== Degradado favorito (el del build de Next) en hero y footer =====
   Blanco al centro y azul suave hacia los bordes. Al ser fondo claro, el
   texto se queda oscuro: no hay que invertir nada. */
.hero-v3,
.footer {
  background: radial-gradient(
    ellipse 90% 70% at 50% 30%,
    #ffffff 42%,
    #3b82f61f 74%,
    #3b82f647 100%
  );
}

/* La franja inferior del hero vuelve a su velo claro original. */
.hero-v3 .hero-bottom {
  background: rgba(255, 255, 255, .72);
  backdrop-filter: blur(7px);
  color: #34302a;
}

.hero-v3 .hero-bottom b { color: var(--red); }

/* El icono de comunidad es de trazo (Lucide), no de relleno como los de
   marca: necesita stroke en vez de fill. */
.red-ico .ico-trazo {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
