 @font-face {
      font-family: 'Lektorat Display';
      src: url('LektoratDisplay_var-Upright.woff2') format('woff2-variations');
      font-weight: 100 900;
      font-style: normal;
    }
    @font-face {
      font-family: 'Lektorat Display';
      src: url('LektoratDisplay_var-Oblique.woff2') format('woff2-variations');
      font-weight: 100 900;
      font-style: italic;
    }
    @font-face {
      font-family: 'Lektorat Text';
      src: url('LektoratText_var-Upright.woff2') format('woff2-variations');
      font-weight: 100 900;
      font-style: normal;
    }
    @font-face {
      font-family: 'Lektorat Text';
      src: url('LektoratText_var-Oblique.woff2') format('woff2-variations');
      font-weight: 100 900;
      font-style: italic;
    }

:root{
  --fc:'Lektorat Display', sans-serif;
  /* principal */
  --primary:#2A7DE1;--primary-d:#1F6AC9;
  /* secundario (verde) */
  --secondary:#00A19B;--secondary-d:#00807B;--secondary-l:#7FE0DB;--secondary-xl:#fff;
  /* terciarios */
  --cream:#F4EFE4;--ink:#10161F;--txt:#2C3A4A;--mute:#44566B;--soft:#D6E2F0
}
.cond,.btn,.block,.hd nav a,.count span,.crono h2,.crono .sub,.rows .n,.sorteo .more,.llegar h2,.ways b,.agenda .q,.map .pin b,.faq h2,.ft .sig{font-family:var(--fc);text-transform:uppercase}
.count b,.rows .t,summary::after{font-family:var(--fc)}
.crono h2,.llegar h2,.faq h2{margin:0;font-weight:600;line-height:.95}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Lektorat Text', sans-serif;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--primary)}
:focus-visible{outline:3px solid var(--secondary);outline-offset:2px}

.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.btn{white-space:nowrap;display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:12px 24px;font-weight:600;font-size:21px;letter-spacing:.04em;text-decoration:none;border:0;cursor:pointer}
.btn-teal{background:var(--secondary);color:#ffffff}.btn-teal:hover{background: var(--secondary-d);}
.btn-navy{background:var(--primary);color:#fff}.btn-navy:hover{background:var(--primary-d)}
.btn-ghost{border:2px solid #fff;color:#fff;background:transparent}.btn-ghost:hover{background:rgba(255,255,255,.1)}
.block{display:inline-block;font-weight:700;line-height:1;padding:.14em .32em .06em}
.b-teal{background:var(--secondary);color:#fff}.b-navy{background:var(--primary);color:#fff}.b-cream{background:var(--cream);color:var(--primary)}
section{scroll-margin-top:72px}
.sec{padding:72px 0}

/* header */
header{position:sticky;top:0;z-index:20;background:#fff;border-bottom:3px solid var(--secondary)}
.hd{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:66px}
.hd img{height:36px;width:auto}
.hd nav{display:flex;gap:22px}
.hd nav a{white-space:nowrap;font-weight:500;font-size:17px;letter-spacing:.04em;text-decoration:none}
.hd nav a:hover{color:var(--secondary-d)}
.hd .btn{min-height:44px;font-size:18px;padding:8px 16px}

/* hero */
.hero{position:relative;overflow:hidden;background:var(--primary);color:#fff;text-align:center}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.hero::after{content:"";position:absolute;inset:0;background:rgba(19, 60, 126, 0.66)}
.hero .wrap{position:relative;z-index:1;padding-top:80px;padding-bottom:72px;display:flex;flex-direction:column;align-items:center;gap:12px}
.hero .stack{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:6px}
.h1a{font-size:clamp(42px,8vw,96px)}.h1b{font-size:clamp(54px,10.5vw,128px)}.h1c{font-size:clamp(22px,4vw,50px)}
.lead{font-size:19px;font-weight:500;max-width:620px;line-height:1.45;margin:10px 0 0}
.count{display:flex;justify-content:center;gap:clamp(14px,4vw,40px);margin-top:20px}
.count div{display:flex;flex-direction:column;align-items:center;min-width:64px}
.count b{font-weight:800;font-size:clamp(46px,7vw,86px);line-height:1;font-variant-numeric:tabular-nums}
.count span{font-weight:700;font-size:17px;letter-spacing:.06em;color:var(--primary)}
.ctas{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:24px}
.hero .btn{min-height:58px;font-size:23px}

/* cronograma */
.crono{background:var(--primary);color:#fff}
.crono .wrap{display:flex;flex-wrap:wrap;gap:40px}
.crono .side{flex:1 1 300px}
.crono h2{font-size:66px}
.crono .sub{font-weight:500;font-size:24px;color:var(--secondary-xl);margin:10px 0}
.crono p{color:#fff;line-height:1.5;margin:0}
.rows{flex:2 1 520px;list-style:none;margin:0;padding:0}
.rows li{display:flex;gap:22px;align-items:baseline;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.rows .t{flex:0 0 165px;font-weight:800;font-size:26px;color:var(--secondary-xl)}
.rows .n{font-weight:700;font-size:26px;line-height:1.1}
.rows .d{font-size:15px;color:#fff;margin-top:4px}
.rows li.hl .n{color:var(--secondary-xl)}

/* actividades */
.act{background:var(--primary)}
.act .titles{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:0 0 30px;font-size:inherit}
.act .titles .block{font-size:clamp(38px,5vw,54px)}
/* carrusel automático de actividades: el JS duplica la tira (aria-hidden) para que el bucle sea continuo;
   sin JS queda como una tira con scroll horizontal */
.carousel{--gap:clamp(12px,1.6vw,24px);--sw:clamp(250px,30vw,540px);overflow-x:auto;scroll-snap-type:x proximity}
.carousel.is-auto{overflow:hidden}
.carousel .track{display:flex;width:max-content}
.carousel .set{display:flex;flex:none;gap:var(--gap);padding-right:var(--gap)}
.carousel img{flex:0 0 var(--sw);width:var(--sw);max-width:none;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--soft);scroll-snap-align:start}
.carousel.is-auto .track{animation:carousel-scroll calc(var(--n)*8s) linear infinite;will-change:transform}
.carousel.is-auto:hover .track,.carousel.is-auto:focus-within .track{animation-play-state:paused}
@keyframes carousel-scroll{to{transform:translateX(calc(-100% / var(--sets)))}}

/* iconos de trazo (botones y redes) */
.btn svg,.soc svg{fill:none;stroke:currentColor;stroke-width:2}
.soc .dot{fill:currentColor}
.pin svg{fill:var(--secondary)}.pin circle{fill:var(--primary)}
.qr path{fill:var(--primary)}
/* sorteo */
.sorteo{background:var(--secondary-xl)}
.sorteo .top{display:flex;flex-wrap:wrap;align-items:center;gap:30px}
.sorteo .copy{flex:1 1 400px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.sorteo .copy .block{font-size:clamp(40px,6vw,70px)}
.sorteo .copy p{margin:6px 0 0;font-size:18px;line-height:1.5;max-width:520px}
.sorteo .more{font-weight:800;font-size:26px;color:var(--ink)}
.sorteo .car{flex:1 1 420px;display:flex;justify-content:center}
.sorteo .car img{width:100%;height:auto;max-width:540px;
  /* filter:drop-shadow(0 18px 18px rgba(0,0,0,.18)) */
}
.legal{margin:26px 0 0;padding-top:14px;border-top:1px solid rgba(16,22,31,.3);font-size:12.5px;line-height:1.6}

/* cómo llegar */
.llegar{background: var(--cream);}
.llegar .wrap{display:flex;flex-wrap:wrap;gap:36px;align-items:stretch}
.llegar .info{flex:1 1 340px;display:flex;flex-direction:column;gap:16px}
.llegar h2{font-size:62px;color:var(--secondary)}
.addr{font-size:19px;font-weight:600}
.ways{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;margin:0;padding:0}
.ways li{border-left:4px solid var(--secondary);background:#F6F8FA;padding:10px 12px}
.ways b{display:block;font-weight:600;font-size:18px;color:var(--secondary-d);margin-bottom:4px}
.ways span{display:block;font-size:14px;line-height:1.45;color:var(--mute)}
.agenda{background:var(--secondary-xl);padding:18px 20px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.agenda .q{font-weight:600;font-size:25px;line-height:1.05;color:var(--secondary)}
.agenda small{font-size:13px;color:var(--mute)}
.map{flex:1 1 480px;position:relative;min-height:420px;border:3px solid var(--secondary);background:#e6edf3}
.map>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map .pin{position:absolute;left:14px;bottom:14px;z-index:2;background:var(--secondary-d);color:#fff;padding:10px 14px;display:flex;gap:10px;align-items:center;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.map .pin b{display:block;font-weight:600;font-size:18px;line-height:1}
.map .pin span{font-size:12.5px;color:#fff}

/* cena (sorteo 2 cenas) */
.cena{background:var(--secondary)}
.panel{max-width:680px;margin:0 auto;background:#fff;padding:34px}
.panel h2{margin:0}
.panel .block{font-size:clamp(34px,5vw,48px)}
.panel .formwrap>p{color:var(--txt);font-size:18px;line-height:1.5;margin:12px 0 22px}
form{display:flex;flex-direction:column;gap:16px}
.two{display:flex;flex-wrap:wrap;gap:16px}.two label{flex:1 1 220px}
label.f{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
label.f input{font:inherit;font-weight:400;padding:12px;border:2px solid #9AAABB;min-height:48px}
label.f input:focus{border-color:var(--secondary);outline:none}
label.chk{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5;color:var(--txt)}
label.chk input{width:20px;height:20px;margin:0;flex:none;accent-color:var(--secondary)}
form .btn{justify-content:center;min-height:58px;font-size:24px}
.fine{margin:0;font-size:12.5px;color:var(--mute)}
.ok{display:none;text-align:center;flex-direction:column;align-items:center;gap:16px}
.ok.show{display:flex}.formwrap.hide{display:none}
.qr{width:190px;height:190px;border:3px solid var(--primary);padding:12px;background:#fff}
.ok .row{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.ok .btn{font-size:19px;min-height:48px}
.ok .btn-line{border:2px solid var(--secondary);color:var(--secondary-d);background:#fff}
.linkbtn{font:inherit;font-size:13px;background:none;border:0;color:var(--mute);text-decoration:underline;cursor:pointer;min-height:44px}

/* faq */
.faq{background:var(--primary)}
.faq .wrap{max-width:820px}
.faq h2{margin:0 0 18px;font-size:58px;color:var(--secondary-xl)}
details{background:#fff;margin-bottom:12px}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;min-height:58px;font-weight:700;font-size:17px;color:var(--primary-d)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-weight:800;font-size:28px;color:var(--primary-d)}
details[open] summary::after{content:"−"}
details p{margin:0;padding:0 20px 18px;font-size:15.5px;line-height:1.55;color:var(--txt)}

/* footer */
footer{background:var(--ink);color:var(--soft);font-size:13px;line-height:1.6}
footer .wrap{padding-top:36px;padding-bottom:36px;display:flex;flex-direction:column;gap:16px}
.ft{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 28px}
.ft .logo{background:#fff;padding:8px 14px}.ft .logo img{height:30px;width:auto}
  .footer-logo
      {
        width: 100%;
        max-width: 240px;
        text-align: center;
        margin: 0 auto;
    }
.social-footer {
      text-align: center;
    }

    .social-icons {
      display: flex;
      justify-content: center;
      gap: 20px;
      margin-bottom: 4px;
      padding: 12px 24px;
    }
  
    .social-icons img {
      width: 24px;
      height: 24px;
      display: block;
    }
    .legal {
      font-size: 10px;
      color: var(--text-light);
      padding: 8px;
    }

    .logos-legal {
      background-color: #ff8189;
      display: flex;
      padding: 4px 24px;
      margin: 0;
      width: 100%;
      justify-content: center;
      align-items: center;
      gap: 30px;
      flex-wrap: wrap;
    }

    .logos-legal img {
      height: 30px;
      filter: brightness(0) invert(0);
    }
.ft .sig{font-weight:700;font-size:18px;letter-spacing:.08em;color:var(--secondary-l)}
.soc{display:flex;gap:10px}.soc a{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.3);color:#fff}
.soc a:hover{background:rgba(255,255,255,.1)}
.badges{display:flex;flex-wrap:wrap;gap:10px;align-items:center;border-top:1px solid rgba(255,255,255,.15);padding-top:14px}
.badge{border:1.5px solid rgba(255,255,255,.6);padding:4px 10px;font-weight:700;font-size:12px;color:#fff;border-radius:999px}

/* sticky mobile cta */
.mcta{display:none}

@media (max-width:960px){
  .hd nav{display:none}
}
@media (max-width:640px){
  .hero .btn,.agenda .btn,.mcta .btn{width:100%;justify-content:center}
  .btn{white-space:normal;text-align:center}
  .sec{padding:42px 0}
  .sec2{padding-bottom:42px}
  .wrap{padding:0 18px}
  .hd .btn{display:none}
  .hero .wrap{padding-top:52px;padding-bottom:56px}
  .lead{font-size:17px}
  .count div{min-width:54px}
  .hero .btn{font-size:21px}
  .crono h2{font-size:52px}
  .rows .t{flex-basis:115px;font-size:21px}.rows .n{font-size:22px}
  .ways{grid-template-columns:minmax(0,1fr)}
  .map{min-height:320px}
  .llegar h2,.faq h2{font-size:46px}
  .panel{padding:24px 18px}

  .mcta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px 12px;background:rgba(255,255,255,.96);border-top:2px solid var(--secondary)}
  .mcta .btn{min-height:50px}
  body{padding-bottom:72px}
}

/* h1/h2 que agrupan bloques de color (un solo encabezado para lectores de pantalla y buscadores) */
.hero h1,.sorteo h2.split{margin:0;font-size:inherit;font-weight:inherit;display:flex;flex-direction:column;align-items:center;gap:10px}
.sorteo h2.split{align-items:flex-start}
.llegar .info>.btn{align-self:flex-start}
.ok h2.block{margin:0;font-size:40px}
.ok .cond{font-weight:700;font-size:22px;color:var(--secondary-d)}
.ok>p{margin:0;color:var(--txt);line-height:1.5;max-width:420px}
.mcta.off{display:none!important}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .carousel.is-auto{overflow-x:auto}
  .carousel.is-auto .track{animation:none}
  .carousel .clone{display:none}
}
/* Validaciones y mensajes de ayuda del formulario */
label.f .hint{font-size:12.5px;font-weight:400;color:var(--mute);line-height:1.35}
label.f input.invalid{border-color:#C62828;background-color:#FFF8F8}
label.f input.invalid:focus{border-color:#C62828;outline-color:#C62828}
.err{display:none;color:#C62828;font-size:13px;font-weight:600;line-height:1.35;margin-top:2px}
.err.show{display:block}