:root{
    --navy:#0a1638;
    --navy-2:#0e2159;
    --blue:#154a99;
    --blue-2:#1c63c9;
    --mint:#2fe0b8;
    --pink:#ef1361;
    --ink:#f3f6ff;
    --muted:#9fb0d9;
    --card:#0f2761;
    --line:rgba(255,255,255,0.12);
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; scroll-padding-top:env(safe-area-inset-top,0px);}
  body{
    margin:0;
    background:var(--navy);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    line-height:1.55;
    overflow-x:hidden;
  }
  img{max-width:100%; display:block;}
  h1,h2,h3,.wordmark{font-family:'Anton', sans-serif; font-weight:400; letter-spacing:0.5px; line-height:0.95;}
  a{color:inherit;}
  .wrap{max-width:1080px; margin:0 auto; padding:0 24px;}
  section{min-height:100vh; padding:88px 0; display:flex; flex-direction:column; justify-content:center;}
  /* Cada sección ocupa al menos todo el viewport, también en móvil.
     Puede crecer por encima de 100vh si su contenido lo requiere. */
  @supports (min-height: 100dvh){ section{min-height:100dvh;} }
  .eyebrow{color:var(--mint); font-size:16.8px; font-weight:600; margin:0 0 10px;}
  .lede{color:var(--muted); max-width:60ch; font-size:20.4px;}

  /* NAV */
  nav{
    position:sticky; top:0; z-index:50;
    background:rgba(10,22,56,0.88); backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
    padding-top:env(safe-area-inset-top,0px);
  }
  .nav-inner{max-width:1080px; margin:0 auto; padding:14px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px;}
  .brand{display:flex; align-items:center; gap:10px; font-family:'Anton',sans-serif; font-size:24px;}
  .navlinks{display:flex; gap:22px; font-size:16.8px; font-weight:600; overflow-x:auto; scrollbar-width:none;}
  .navlinks::-webkit-scrollbar{display:none;}
  .navlinks a{white-space:nowrap; opacity:0.8; text-decoration:none;}
  .navlinks a:hover{opacity:1; color:var(--mint);}
  .hamburger{
    display:none; flex-direction:column; justify-content:center; gap:5px;
    width:36px; height:36px; padding:0; border:none; background:transparent; cursor:pointer;
    flex:0 0 auto;
  }
  .hamburger span{display:block; width:100%; height:2px; background:#fff; border-radius:2px; transition:transform .3s ease, opacity .3s ease;}
  .hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .hamburger.open span:nth-child(2){opacity:0;}
  .hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  /* WHATSAPP FLOATING BUTTON */
  /* FLOATING NEXT-SECTION CONTROL */
  .section-next{
    position:fixed;
    left:50%;
    bottom:calc(18px + env(safe-area-inset-bottom,0px));
    transform:translateX(-50%);
    z-index:50;
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.22);
    border-radius:50%;
    background:rgba(10,22,56,.78);
    color:var(--ink);
    box-shadow:0 10px 28px rgba(0,0,0,.32);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    cursor:pointer;
    transition:opacity .25s ease, transform .25s ease, background .25s ease;
    animation:sectionNextPulse 2s ease-in-out infinite;
  }
  .section-next:hover{
    background:rgba(21,74,153,.92);
    transform:translateX(-50%) translateY(-3px);
  }
  .section-next svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  .section-next.is-hidden{opacity:0;pointer-events:none;}
  .section-next-label{
    position:absolute;
    right:calc(100% + 10px);
    white-space:nowrap;
    font-size:13.2px;
    font-weight:600;
    color:var(--muted);
    opacity:0;
    transform:translateX(5px);
    transition:opacity .2s ease, transform .2s ease;
    pointer-events:none;
  }
  .section-next:hover .section-next-label{opacity:1;transform:translateX(0);}
  @keyframes sectionNextPulse{0%,100%{box-shadow:0 10px 28px rgba(0,0,0,.32),0 0 0 0 rgba(47,224,184,.18);}50%{box-shadow:0 10px 28px rgba(0,0,0,.32),0 0 0 8px rgba(47,224,184,0);}}

  /* EXTRA PARALLAX ORBITS */

  .whatsapp-float{
    position:fixed;
    right:22px;
    bottom:calc(22px + env(safe-area-inset-bottom,0px));
    width:58px; height:58px;
    background:#25D366;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 24px -6px rgba(0,0,0,0.5);
    z-index:80;
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .whatsapp-float:hover{transform:scale(1.08); box-shadow:0 10px 28px -4px rgba(0,0,0,0.55);}
  .whatsapp-float svg{width:30px; height:30px;}
  @media (max-width:640px){
    section{min-height:100vh; min-height:100svh; padding:64px 0;}
    @supports (min-height: 100dvh){ section{min-height:100dvh;} }
    .section-next{width:44px; height:44px; bottom:calc(14px + env(safe-area-inset-bottom,0px));}
    .section-next-label{display:none;}
    .hero{min-height:100vh; min-height:100svh; min-height:100dvh; padding:96px 0 72px;}
    .whatsapp-float{width:52px; height:52px; right:16px; bottom:calc(16px + env(safe-area-inset-bottom,0px));}
    .whatsapp-float svg{width:27px; height:27px;}
  }

  /* HERO */
  .hero{
    position:relative;
    min-height:100vh;
    min-height:100svh;
    min-height:100dvh;
    display:flex;
    align-items:center;
    padding:110px 0 90px;
    background:
      radial-gradient(1100px 500px at 15% -10%, rgba(28,99,201,0.55), transparent 60%),
      radial-gradient(900px 500px at 100% 0%, rgba(239,19,97,0.28), transparent 55%),
      linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);
    overflow:hidden;
  }
  .hero-inner{position:relative; z-index:2;}
  .hero-bg-icon{position:absolute; top:-10%; right:-12%; width:70%; max-width:820px; opacity:0.10; z-index:1; will-change:transform;}
  .hero-wordmark{width:min(720px,92%); margin-bottom:22px; will-change:transform;}
  .hero .tagline{color:var(--ink); font-size:18px; letter-spacing:2px; text-transform:uppercase; font-weight:600; opacity:0.75; margin-bottom:34px;}
  .hero-meta{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:36px;}
  .pill{border:1px solid var(--line); border-radius:999px; padding:9px 18px; font-size:16.8px; font-weight:600; color:var(--ink); background:rgba(255,255,255,0.04);}
  .pill b{color:var(--mint);}
  .cta{
    display:inline-flex; align-items:center; gap:10px;
    background:var(--pink); color:#fff; text-decoration:none;
    font-weight:700; padding:15px 28px; border-radius:10px; font-size:18px;
    box-shadow:0 10px 30px -8px rgba(239,19,97,0.6);
  }
  .cta:hover{background:#ff2470;}
  .cta.outline{background:transparent; border:1.5px solid rgba(255,255,255,0.4); box-shadow:none;}
  .cta.outline:hover{border-color:#fff;}

  .swoosh-divider{display:block; width:100%; height:36px; margin:0;}
  .section-decor{position:absolute; pointer-events:none; z-index:0; will-change:transform;}
  section{position:relative; overflow:hidden;}
  section > .wrap{position:relative; z-index:1;}

  /* ABOUT */
  #acerca{background:var(--navy);}
  .about-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:start;}
  .verse{
    margin-top:36px; border-left:3px solid var(--mint); padding-left:22px;
    font-size:19.2px; color:var(--ink);
  }
  .verse .highlight{color:var(--pink); font-weight:600;}
  .verse cite{display:block; margin-top:14px; font-style:normal; font-family:'Anton',sans-serif; font-size:18px; color:var(--mint);}
  .expect-list{display:flex; flex-direction:column; gap:18px;}
  .expect-item{display:flex; gap:16px; border:1px solid var(--line); border-radius:14px; padding:18px 20px; background:var(--card);}
  .expect-item .num{font-family:'Anton',sans-serif; color:var(--pink); font-size:26.4px; flex:0 0 auto;}
  .expect-item h3{font-size:19.2px; margin:0 0 4px; font-family:'Work Sans',sans-serif; font-weight:700;}
  .expect-item p{margin:0; color:var(--muted); font-size:16.8px;}

  /* FECHAS Y COSTOS */
  #fechas{background:linear-gradient(180deg, var(--navy-2), var(--navy));}
  .price-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:44px;}
  .price-card{border:1px solid var(--line); border-radius:16px; padding:28px 24px; background:var(--card); display:flex; flex-direction:column; gap:14px;}
  .price-card.featured{border-color:var(--mint); background:linear-gradient(160deg, rgba(47,224,184,0.10), var(--card));}
  .price-card h3{font-family:'Work Sans'; font-weight:700; font-size:18px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); margin:0;}
  .price-card .amount{font-family:'Anton',sans-serif; font-size:48px; color:#fff;}
  .price-card .amount small{font-size:19.2px; color:var(--muted); font-family:'Work Sans'; font-weight:600;}
  .price-card ul{margin:0; padding-left:18px; color:var(--muted); font-size:16.8px; display:flex; flex-direction:column; gap:8px;}
  .price-card ul li::marker{color:var(--pink);}
  .kit-row{display:flex; gap:20px; align-items:center; margin-top:16px; padding-top:16px; border-top:1px dashed var(--line);}
  .kit-row img{width:88px; border-radius:10px; background:radial-gradient(circle at 50% 42%, rgba(255,255,255,.95) 0%, rgba(255,255,255,.88) 52%, rgba(225,235,245,.78) 100%); box-shadow:0 0 0 1px rgba(255,255,255,.18), 0 0 22px rgba(255,255,255,.12), 0 10px 28px rgba(0,0,0,.22); padding:4px; object-fit:contain;}
  .kit-row span{font-size:15.6px; color:var(--muted);}

  /* KIDS */
  #ninos{background:var(--navy);}
  .kids-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:44px;}
  .kid-card{border-radius:16px; padding:26px 22px; text-align:left; position:relative; overflow:hidden;}
  .kid-card.babies{background:linear-gradient(160deg,#1c2f6b,#0f2761);}
  .kid-card.tods{background:linear-gradient(160deg,#123a63,#0f2761);}
  .kid-card.kids{background:linear-gradient(160deg,#274b8f,#0f2761);}
  .kid-card h3{font-family:'Anton'; font-size:31.2px; margin:0 0 6px; color:#fff;}
  .kid-card .age{color:var(--mint); font-weight:700; font-size:16.8px; margin-bottom:4px;}
  .kid-card .req{color:var(--muted); font-size:15.6px; margin-bottom:14px;}
  .kid-card .program{font-size:15.6px; color:var(--ink); opacity:0.85; margin-bottom:16px;}
  .kid-card .cost{font-family:'Anton'; font-size:24px; color:var(--pink);}

  /* CONFERENCISTAS — carousel */
  #conferencistas{background:linear-gradient(180deg, var(--navy), var(--navy-2));}
  .carousel{position:relative; margin-top:48px;}
  .car-track{
    display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory;
    padding:8px 6px 28px; scrollbar-width:none; -webkit-overflow-scrolling:touch;
  }
  .car-track::-webkit-scrollbar{display:none;}
  .car-card{
    flex:0 0 auto; width:min(76vw,290px); background:var(--card);
    border:1px solid var(--line); border-radius:18px; overflow:hidden;
    scroll-snap-align:center; opacity:0.5; transform:scale(0.9);
    transition:opacity .4s ease, transform .4s ease, border-color .4s ease, box-shadow .4s ease;
  }
  .car-card.active{opacity:1; transform:scale(1); border-color:var(--mint); box-shadow:0 20px 44px -20px rgba(47,224,184,0.4);}
  .car-photo{width:100%; aspect-ratio:1/1; object-fit:cover; filter:grayscale(0.55) brightness(0.85); transition:filter .5s ease;}
  .car-card.active .car-photo{filter:grayscale(0) brightness(1);}
  .car-info{padding:18px 20px 22px;}
  .car-info h3{margin:0 0 2px; font-size:20.4px; font-family:'Work Sans',sans-serif; font-weight:700;}
  .car-info .role{color:var(--mint); font-size:15px; font-weight:600; margin-bottom:8px;}
  .car-info .talk{color:var(--muted); font-size:16.2px;}
  .car-info .talk b{color:var(--ink);}
  .car-btn{
    position:absolute; top:38%; transform:translateY(-50%);
    width:46px; height:46px; border-radius:50%; z-index:5;
    background:rgba(255,255,255,0.06); border:1px solid var(--line); color:#fff;
    font-size:24px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;
  }
  .car-btn:hover{border-color:var(--mint); color:var(--mint);}
  .car-btn.prev{left:-6px;}
  .car-btn.next{right:-6px;}
  .car-dots{display:flex; justify-content:center; gap:8px; margin-top:2px;}
  .car-dot{width:8px; height:8px; border-radius:50%; background:var(--line); border:none; cursor:pointer; padding:0;}
  .car-dot.active{background:var(--mint); width:22px; border-radius:5px;}
  @media (max-width:640px){ .car-btn{display:none;} }

  /* UBICACION */
  #ubicacion{background:var(--navy-2); padding-top:0; padding-bottom:0;}
  .loc-photo-wrap{position:relative; height:340px; overflow:hidden;}
  .loc-photo-wrap img{
    position:absolute; top:-34%; left:-4%; width:108%; height:168%;
    object-fit:cover; will-change:transform;
  }
  .loc-photo-wrap::after{
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(10,22,56,0.15) 0%, rgba(14,33,89,0.55) 55%, var(--navy-2) 100%);
  }
  .loc-inner{padding:80px 0 88px;}
  .loc-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center;}
  .loc-card{border:1px solid var(--line); border-radius:18px; padding:30px; background:var(--card);}
  .loc-card h3{font-family:'Anton'; font-size:33.6px; margin:0 0 6px;}
  .loc-card .date-badge{display:inline-block; background:var(--mint); color:var(--navy); font-weight:700; font-size:15.6px; padding:6px 14px; border-radius:999px; margin-bottom:16px;}
  .loc-card p{color:var(--muted); font-size:17.4px; margin:6px 0;}
  .map-frame{border:1px solid var(--line); border-radius:18px; overflow:hidden; aspect-ratio:4/3; position:relative;}
  .map-frame iframe{width:100%; height:100%; border:0; filter:grayscale(0.3) invert(0.92) contrast(0.9);}

  /* PLAYLIST */
  #playlist{background:linear-gradient(180deg, var(--navy-2), var(--navy)); text-align:center;}
  .playlist-card{
    max-width:520px; margin:44px auto 0; border-radius:20px; padding:36px 30px;
    background:linear-gradient(160deg, rgba(47,224,184,0.14), var(--card));
    border:1px solid var(--line);
  }
  .playlist-card h3{font-family:'Anton'; font-size:28.8px; margin:0 0 8px;}
  .playlist-card p{color:var(--muted); font-size:16.8px; margin:0 0 20px;}
  .spotify-embed{border-radius:14px; overflow:hidden; margin-bottom:18px; line-height:0;}
  .spotify-embed iframe{display:block; border:0;}
  .stream-links{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
  .stream-btn{display:flex; align-items:center; gap:8px; border:1px solid var(--line); border-radius:10px; padding:11px 18px; font-size:16.8px; font-weight:600; text-decoration:none;}
  .stream-btn:hover{border-color:var(--mint);}

  /* FOOTER */
  footer{background:#071230; border-top:1px solid var(--line); padding:56px 0 30px;}
  .foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px;}
  .foot-brand{font-family:'Anton'; font-size:28.8px; margin-bottom:10px;}
  footer p{color:var(--muted); font-size:16.8px;}
  .foot-col h4{font-size:15.6px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); margin:0 0 14px;}
  .foot-col a{display:block; color:var(--ink); text-decoration:none; font-size:16.8px; margin-bottom:10px; opacity:0.85;}
  .foot-col a:hover{opacity:1; color:var(--mint);}
  .foot-bottom{margin-top:40px; padding-top:22px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:15px; color:var(--muted);}

  @media (prefers-reduced-motion: reduce){
    [data-parallax]{transform:none !important;}
    .section-next{animation:none;}
  }
  @media (max-width: 860px){
    .about-grid, .loc-grid{grid-template-columns:1fr;}
    .price-grid, .kids-grid{grid-template-columns:1fr;}
    .foot-grid{grid-template-columns:1fr; gap:26px;}
    section{padding:64px 0;}
    .hamburger{display:flex;}
    .navlinks{
      position:absolute; top:100%; left:0; right:0;
      flex-direction:column; gap:0; overflow:visible;
      background:rgba(10,22,56,0.97); backdrop-filter:blur(10px);
      border-bottom:1px solid var(--line);
      max-height:0; opacity:0; pointer-events:none;
      transition:max-height .35s ease, opacity .25s ease;
    }
    .navlinks.open{max-height:420px; opacity:1; pointer-events:auto;}
    .navlinks a{
      padding:16px 24px; border-top:1px solid var(--line); opacity:0.9;
    }
    .navlinks a:first-child{border-top:none;}
  }


/* Ajuste de escala general: mayor presencia visual sin cambiar el estilo. */
.wrap{max-width:1140px; padding-left:28px; padding-right:28px;}
section{padding:104px 0;}
.eyebrow{font-size:18px; margin-bottom:12px;}
.lede{font-size:21.6px;}
.about-grid{gap:64px;}
.expect-list{gap:20px;}
.expect-item{padding:21px 23px; gap:18px;}
.expect-item .num{font-size:30px;}
.expect-item h3{font-size:20.4px;}
.expect-item p{font-size:18px;}
.verse{font-size:20.4px; padding-left:24px;}
.price-grid,.kids-grid{gap:24px; margin-top:48px;}
.price-card{padding:32px 28px; gap:16px;}
.price-card .amount{font-size:55.2px;}
.price-card ul{font-size:18px; gap:9px;}
.kid-card{padding:30px 26px;}
.kid-card h3{font-size:34.8px;}
.kid-card .age{font-size:18px;}
.kid-card .req,.kid-card .program{font-size:16.8px;}
.kid-card .cost{font-size:26.4px;}
.carousel{margin-top:54px;}
.car-track{gap:26px; padding-bottom:32px;}
.car-card{width:min(78vw,320px);}
.car-info h3{font-size:21.6px;}
.car-info .role{font-size:15.6px;}
.car-info .talk{font-size:17.4px;}
.loc-grid{gap:48px;}
.loc-card{padding:34px;}
.loc-card h3{font-size:37.2px;}
.loc-card p{font-size:18.6px;}
.playlist-card{max-width:580px; margin-top:48px; padding:40px 34px;}
.playlist-card h3{font-size:32.4px;}
.playlist-card p{font-size:18px;}
.stream-btn{padding:13px 20px; font-size:18px;}
.cta{padding:17px 31px; font-size:19.2px;}
.pill{padding:10px 20px; font-size:18px;}
.hero-wordmark{width:min(780px,94%); margin-bottom:26px;}
.hero .tagline{font-size:19.2px; margin-bottom:38px;}
.hero-meta{gap:16px; margin-bottom:40px;}

@media (max-width:860px){
  section{padding:82px 0;}
  .wrap{padding-left:24px; padding-right:24px;}
}
@media (max-width:640px){
  section{padding:72px 0;}
  .hero{padding:96px 0 72px;}
  .hero-wordmark{width:96%;}
  .price-card{padding:28px 24px;}
  .kid-card{padding:28px 23px;}
  .loc-card{padding:28px;}
  .playlist-card{padding:32px 24px;}
}


/* Parallax gráfico: mayor escala y presencia visual */
.section-decor {
  transform-origin: center center;
  pointer-events: none;
}
.section-decor.hero-decor:first-of-type {
  width: 300px !important;
  height: 300px !important;
}
@media (min-width: 861px) {
  .section-decor {
    /* Los SVG existentes conservan sus posiciones; el escalado se refuerza individualmente. */
  }
}
@media (max-width: 640px) {
  .section-decor {
    max-width: 42vw;
    max-height: 42vw;
  }
  .section-decor.hero-decor:first-of-type {
    width: 210px !important;
    height: 210px !important;
  }
}

/* Glow y blur ambiental: profundidad sutil sin convertir la interfaz en neón. */
.section-decor {
  filter: drop-shadow(0 0 10px rgba(47,224,184,.18)) drop-shadow(0 0 18px rgba(239,19,97,.10));
  will-change: transform, filter;
}
.section-decor:nth-of-type(3n) {
  filter: drop-shadow(0 0 12px rgba(239,19,97,.20)) drop-shadow(0 0 24px rgba(47,224,184,.08));
}

.nav,
.price-card,
.kid-card,
.loc-card,
.playlist-card,
.expect-item,
.car-card {
  background: color-mix(in srgb, rgba(10,22,56,.82) 82%, transparent);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  box-shadow: 0 14px 38px rgba(0,0,0,.16), 0 0 22px rgba(47,224,184,.06);
}

.cta,
.stream-btn,
.pill,
.section-next {
  box-shadow: 0 8px 24px rgba(0,0,0,.18), 0 0 18px rgba(47,224,184,.16);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.cta:hover,
.stream-btn:hover,
.pill:hover,
.section-next:hover {
  box-shadow: 0 10px 28px rgba(0,0,0,.22), 0 0 26px rgba(47,224,184,.28), 0 0 42px rgba(239,19,97,.10);
}

.hero::before,
section::before {
  filter: blur(.2px);
}

@media (min-width: 861px) {
  .section-decor {
    transform: scale(1.14);
  }
  .hero .section-decor.hero-decor:first-of-type {
    width: 340px !important;
    height: 340px !important;
  }
  .hero .section-decor.hero-decor:nth-of-type(2) {
    width: 145px !important;
    height: 145px !important;
  }
}

@media (max-width: 860px) {
  .section-decor { transform: scale(1.08); }
}

@media (max-width: 640px) {
  .section-decor { max-width: 48vw; max-height: 48vw; }
  .section-decor.hero-decor:first-of-type {
    width: 230px !important;
    height: 230px !important;
  }
  .hero .section-decor.hero-decor:nth-of-type(2) {
    width: 125px !important;
    height: 125px !important;
  }
  .price-card,.kid-card,.loc-card,.playlist-card,.expect-item,.car-card {
    -webkit-backdrop-filter: blur(7px);
    backdrop-filter: blur(7px);
  }
}

/* Parallax: separación visual para evitar empalmes */
.section-decor {
  z-index: 0;
}
.section-decor + .section-decor {
  margin-left: 0;
}

/* Tipografía: el escalado 1.3x se aplica a las declaraciones existentes. */

/* Camisa RIBBI: fondo luminoso sutil para mantener visible el azul marino. */
@media (max-width:640px){.kit-row img{width:78px;}}

/* Ajuste hero: contenido principal centrado visualmente en la primera sección. */
.hero-inner{
  width:min(1140px, calc(100% - 48px));
  margin:0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.hero-meta{justify-content:center;}
.hero-inner > div[style*="display:flex"]{justify-content:center;}

/* Camisa del kit: PNG con transparencia real, sin fondo añadido. */
.kit-row img{
  width:110px;
  padding:0;
  background:transparent;
  box-shadow:none;
  border-radius:0;
  object-fit:contain;
}

/* Holiday Inn: mayor área de seguridad para que el parallax nunca deje bordes expuestos. */
.loc-photo-wrap img{
  top:-43%;
  left:-7%;
  width:114%;
  height:190%;
  object-fit:cover;
}
@media (max-width:640px){
  .hero-inner{width:calc(100% - 32px);}
  .kit-row img{width:96px;}
  .loc-photo-wrap img{
    top:-48%;
    left:-10%;
    width:120%;
    height:205%;
  }
}


/* Ajuste final del carrusel: controles visibles también en móvil y accesibles sin ocultar tarjetas. */
.car-controls{
  display:flex; align-items:center; justify-content:center; gap:18px;
  margin-top:12px; position:relative; z-index:6;
}
.car-controls .car-btn{
  position:static; transform:none; width:auto; min-width:112px; height:46px;
  padding:0 14px; border-radius:999px; gap:7px;
  background:rgba(255,255,255,.07); backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px); box-shadow:0 8px 24px rgba(0,0,0,.18);
}
.car-controls .car-btn span{font-size:13px; font-weight:700; letter-spacing:.2px;}
.car-controls .car-dots{margin-top:0; min-width:120px;}
@media (max-width:640px){
  .car-controls{gap:8px; margin-top:8px;}
  .car-controls .car-btn{min-width:92px; height:42px; padding:0 10px;}
  .car-controls .car-btn span{font-size:12px;}
  .car-controls .car-dots{min-width:88px; gap:6px;}
  .car-controls .car-dot{width:7px; height:7px;}
  .car-controls .car-dot.active{width:18px;}
}

/* Holiday Inn: la foto parte más arriba y mantiene suficiente overscan para cubrir el cuadro durante el parallax. */
.loc-photo-wrap{isolation:isolate;}
.loc-photo-wrap img{
  top:-58%; left:-1%; width:116%; height:212%;
  max-width:none; object-fit:cover; object-position:center 48%;
}
@media (max-width:640px){
  .loc-photo-wrap img{top:-62%; left:-2%; width:122%; height:224%; object-position:center 46%;}
}

/* Ajuste responsive final: tipografía más compacta para conservar la jerarquía visual del hero. */
@media (max-width: 860px){
  .eyebrow{font-size:13.5px;}
  .lede{font-size:16px;}
  .hero .tagline{font-size:17px;}
  .cta{font-size:17px;}
  .section h2{font-size:clamp(32px,5vw,46px);}
  .price-card .amount{font-size:42px;}
  .kid-card h3{font-size:26px;}
  .loc-card h3{font-size:32px;}
  .playlist-card h3{font-size:28px;}
}

@media (max-width:640px){
  .eyebrow{font-size:12.5px;}
  .lede{font-size:15px;}
  .hero .tagline{font-size:15px; letter-spacing:1.4px; margin-bottom:28px;}
  .hero-meta{gap:9px; margin-bottom:30px;}
  .pill{
    padding:7px 12px;
    font-size:14px;
    line-height:1.25;
    border-radius:999px;
  }
  .cta{padding:14px 23px; font-size:15.5px;}
  .section h2{font-size:clamp(30px,8vw,40px);}
  .price-card .amount{font-size:38px;}
  .kid-card h3{font-size:24px;}
  .loc-card h3{font-size:29px;}
  .playlist-card h3{font-size:25px;}
}

/* Carrusel de conferencistas: controles funcionales y visibles en desktop y responsive. */
.car-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:nowrap;
  gap:14px;
  margin-top:14px;
  position:relative;
  z-index:20;
}
.car-controls .car-btn{
  position:static;
  transform:none;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:108px;
  height:44px;
  padding:0 14px;
  border-radius:999px;
  gap:6px;
  background:rgba(255,255,255,.09);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 8px 24px rgba(0,0,0,.2);
}
.car-controls .car-btn:hover{border-color:var(--mint);color:var(--mint);}
.car-controls .car-dots{min-width:90px;margin:0;}
@media (max-width:640px){
  .car-controls{gap:7px;margin-top:10px;padding:0 4px;}
  .car-controls .car-btn{
    display:flex;
    min-width:92px;
    height:40px;
    padding:0 9px;
    font-size:20px;
  }
  .car-controls .car-btn span{font-size:11px;}
  .car-controls .car-dots{min-width:58px;gap:5px;}
  .car-controls .car-dot{width:6px;height:6px;}
  .car-controls .car-dot.active{width:16px;}
}

/* Ajuste responsive definitivo del carrusel de conferencistas. */
#conferencistas .wrap{min-width:0;}
#conferencistas h2{
  white-space:normal !important;
  overflow-wrap:anywhere;
  word-break:normal;
  line-height:1.05;
  max-width:100%;
}
#conferencistas .lede{max-width:760px;}
#conferencistas .carousel{width:100%; min-width:0; overflow:visible;}
#conferencistas .car-track{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  scroll-padding-inline:calc((100% - min(76vw, 290px))/2);
  padding-left:calc((100% - min(76vw, 290px))/2);
  padding-right:calc((100% - min(76vw, 290px))/2);
}
#conferencistas .car-card{
  flex:0 0 min(76vw,290px);
  width:min(76vw,290px);
  min-width:0;
}
@media (max-width:860px){
  #conferencistas h2{font-size:clamp(34px,7vw,50px) !important;}
  #conferencistas .car-track{
    gap:16px;
    scroll-padding-inline:12px;
    padding-left:12px;
    padding-right:12px;
    touch-action:pan-x;
  }
  #conferencistas .car-card{
    flex-basis:min(78vw,330px);
    width:min(78vw,330px);
  }
}
@media (max-width:640px){
  #conferencistas h2{
    font-size:clamp(30px,9vw,40px) !important;
    line-height:1.08;
    max-width:100%;
  }
  #conferencistas .lede{font-size:15px; line-height:1.45;}
  #conferencistas .carousel{margin-top:32px;}
  #conferencistas .car-track{
    gap:14px;
    padding:8px 12px 24px;
    scroll-padding-inline:12px;
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  #conferencistas .car-card{
    flex:0 0 calc(100vw - 48px);
    width:calc(100vw - 48px);
    max-width:330px;
    scroll-snap-align:center;
  }
  #conferencistas .car-controls{
    display:flex;
    width:100%;
    box-sizing:border-box;
    padding:0 8px;
    gap:8px;
  }
  #conferencistas .car-controls .car-btn{
    display:flex !important;
    flex:0 0 auto;
    min-width:86px;
    height:40px;
  }
  #conferencistas .car-controls .car-dots{
    flex:1 1 auto;
    min-width:0;
    max-width:110px;
  }
}

/* Ajuste móvil: pills y enlaces CTA simétricos y centrados. */
@media (max-width:640px){
  .hero-meta{
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:9px;
  }
  .hero-meta .pill{
    width:min(100%, 320px);
    min-height:40px;
    box-sizing:border-box;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    margin:0 auto;
  }
  .hero-inner > div[style*="display:flex"]{
    width:100% !important;
    flex-direction:column !important;
    align-items:center !important;
    gap:10px !important;
  }
  .hero-inner > div[style*="display:flex"] .cta{
    width:min(100%, 320px);
    min-height:44px;
    box-sizing:border-box;
    justify-content:center;
    text-align:center;
    margin:0 auto;
  }

  /* Título y subtítulo de Conferencistas nunca desbordan el viewport. */
  #conferencistas .wrap{width:100%; box-sizing:border-box;}
  #conferencistas h2{
    font-size:clamp(29px, 8.2vw, 39px) !important;
    line-height:1.08;
    max-width:100%;
    overflow-wrap:break-word;
    word-break:normal;
    hyphens:none;
  }
  #conferencistas .lede{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    font-size:15px;
    line-height:1.45;
    overflow-wrap:break-word;
  }

  /* Carrusel móvil: una tarjeta completa por vista + navegación horizontal real. */
  #conferencistas .carousel{width:100%; overflow:visible;}
  #conferencistas .car-track{
    width:100%;
    box-sizing:border-box;
    display:flex;
    flex-wrap:nowrap;
    gap:14px;
    overflow-x:auto;
    overflow-y:hidden;
    padding:10px max(16px, calc((100% - min(86vw, 330px))/2)) 28px;
    margin:0;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:max(16px, calc((100% - min(86vw, 330px))/2));
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
  }
  #conferencistas .car-track::-webkit-scrollbar{display:none;}
  #conferencistas .car-card{
    flex:0 0 min(86vw,330px);
    width:min(86vw,330px);
    max-width:none;
    min-width:0;
    scroll-snap-align:center;
    scroll-snap-stop:always;
  }
  #conferencistas .car-controls{
    width:100%;
    box-sizing:border-box;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:0;
    margin-top:4px;
  }
  #conferencistas .car-controls .car-btn{
    display:flex !important;
    flex:0 0 92px;
    width:92px;
    min-width:92px;
    height:40px;
    padding:0 8px;
    box-sizing:border-box;
  }
  #conferencistas .car-controls .car-dots{
    flex:0 1 auto;
    min-width:62px;
    max-width:92px;
    justify-content:center;
    overflow:hidden;
  }
}

@media (min-width:641px){
  /* En escritorio también dejamos espacio suficiente para centrar primer y último card. */
  #conferencistas .car-track{
    padding-left:max(6px, calc((100% - min(76vw, 290px))/2));
    padding-right:max(6px, calc((100% - min(76vw, 290px))/2));
    scroll-padding-inline:max(6px, calc((100% - min(76vw, 290px))/2));
  }
}
