/* CVM 2027 — tipografías locales */
@font-face{font-family:"CVM Extenda";src:url("../../fuentes/Extenda%2030%20Deca.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"CVM Montserrat";src:url("../../fuentes/Montserrat-Regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
:root{--blue:#0646d8;--lime:#c8ed18;--paper:#f5f4ee;--ink:#080808;--line:#d7d6d0;--soft:#8ca8e9;
--pad:clamp(20px,7vw,120px);--display:'CVM Extenda','Arial Narrow',Impact,sans-serif;
/* Para usar tus imágenes reales: --hero-img:url(../img/hero.jpg) en :root, o style="background-image:url(...)" en cada .image-slot */
--beams:linear-gradient(104deg,transparent 56%,rgba(6,70,216,.92) 56% 63%,transparent 63%),
linear-gradient(98deg,transparent 64%,rgba(70,125,240,.55) 64% 74%,transparent 74%),
linear-gradient(94deg,transparent 70%,var(--lime) 70% 71%,transparent 71%),
linear-gradient(90deg,var(--paper) 40%,#dfe5f6 100%);
--stage:radial-gradient(ellipse at 50% -10%,rgba(90,150,255,.85),transparent 62%),linear-gradient(#0b2a80,#030a22)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.cvm27{margin:0;background:var(--paper);color:var(--ink);font-family:'CVM Montserrat',Arial,sans-serif;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
.cvm27 a{color:inherit}
.site-shell{width:100%;overflow:hidden}
h1,h2,h3{margin:0;font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.012em}
.lime-line{display:block;width:40px;height:4px;margin:clamp(12px,1.4vw,20px) 0;background:var(--lime)}

/* Imágenes (marcadores) */
.image-slot{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--stage) center/cover;color:#9db6f0}
.image-slot>span{font-size:11px;letter-spacing:1.5px;text-align:center;padding:12px}

/* Header */
.topbar{position:relative;z-index:5;height:clamp(54px,5vw,70px);padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--paper)}
.brand img{display:block;width:clamp(80px,9vw,124px);height:auto;max-height:50px;object-fit:contain}
.topbar nav{display:flex;align-items:center;gap:clamp(14px,2.2vw,32px)}
.topbar nav a{font-size:clamp(10px,.95vw,13px);text-decoration:none;white-space:nowrap;padding-bottom:5px;border-bottom:2px solid transparent}
.topbar nav a.active{color:var(--blue);border-color:var(--blue)}
.topbar nav .nav-cta{padding:11px 24px;background:var(--blue);color:#fff;border:0}

/* Hero: imagen a sangre, título encima */
.hero{position:relative;min-height:clamp(430px,46vw,640px);padding:0 var(--pad);display:flex;align-items:center;background:var(--paper)}
.hero-art{position:absolute;inset:0;background:url("../img/banner.jpg") center center/cover no-repeat}
.hero-art>span{display:none}
.hero-copy{position:relative;z-index:2;padding:28px 0}
.hero-copy h1{font-size:clamp(64px,11.2vw,168px);line-height:.8}
.hero-logo{display:flex;flex-direction:column;font-size:clamp(30px,4vw,56px);line-height:.9;color:var(--blue);font-weight:400}
.hero-logo small{margin:6px 0 0 1.1em;font-size:clamp(6px,.6vw,9px);letter-spacing:1px}
.hero-copy>p{margin:clamp(10px,1.2vw,18px) 0 0;font-size:clamp(9px,.9vw,12px);letter-spacing:3px}
.hero-link{position:absolute;z-index:3;top:28%;right:clamp(20px,7vw,120px);padding:12px 18px;border:1px solid var(--blue);background:var(--paper);color:var(--blue)!important;font-size:clamp(9px,.85vw,11px);text-decoration:none}
.hero-note{position:absolute;z-index:3;right:var(--pad);bottom:12px;font-size:8px;letter-spacing:1.4px;color:#fff;opacity:.85}

/* Cuenta regresiva */
.countdown{min-height:clamp(70px,8vw,110px);padding:12px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:44px;background:var(--blue);color:#fff}
.countdown h2{font-size:clamp(30px,4.4vw,62px);line-height:.95;color:#fff;white-space:nowrap}
.time-units{display:flex;gap:clamp(6px,.9vw,14px)}
.time-units div{width:clamp(56px,7.4vw,106px);height:clamp(50px,5.4vw,76px);border:1px solid rgba(255,255,255,.55);display:flex;flex-direction:column;align-items:center;justify-content:center}
.time-units b{font:400 clamp(20px,2.3vw,32px)/1 var(--display)}
.time-units span{font-size:clamp(6px,.65vw,9px);margin-top:5px}

/* Intro */
.intro{padding:clamp(18px,2.4vw,34px) 4%;display:grid;grid-template-columns:57% 1fr;gap:clamp(18px,3vw,48px);align-items:center;background:var(--paper)}
.intro-image{height:clamp(170px,23vw,330px)}
.play{width:clamp(40px,4.4vw,62px);aspect-ratio:1;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.25)}
.play::before{content:"";margin-left:15%;border-left:.9em solid #fff;border-top:.55em solid transparent;border-bottom:.55em solid transparent;font-size:clamp(10px,1.2vw,16px)}
.intro-copy small{font-size:clamp(8px,.85vw,11px);letter-spacing:2px}
.intro-copy h2{margin:10px 0;font-size:clamp(46px,7.4vw,108px);line-height:.8}
.intro-copy p{margin:0;font-size:clamp(11px,1.2vw,17px);line-height:1.4}

/* Enfoque: tarjetas horizontales (texto + imagen), con flechas */
.focus{position:relative;padding:clamp(18px,2.2vw,32px) var(--pad) clamp(14px,1.6vw,22px);background:var(--blue);color:#fff}
.section-head{display:flex;justify-content:space-between;align-items:center}
.section-head h2{font-size:clamp(32px,4.8vw,70px);line-height:.95;color:#fff}
.section-head small{font-size:8px;letter-spacing:1px;line-height:1.4}
.focus-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1.2vw,18px);margin-top:clamp(12px,1.6vw,24px)}
.focus-cards article{display:grid;grid-template-columns:1fr 44%;background:var(--paper);color:var(--ink);min-width:0;min-height:clamp(110px,13vw,190px)}
.focus-cards .card-copy{order:1;padding:clamp(8px,1.1vw,18px);align-self:center}
.focus-cards .image-slot{order:2;background:var(--hero-beams,var(--beams)) center/cover}
.focus-cards .image-slot>span{display:none}
.card-copy>b{font:400 clamp(16px,1.9vw,26px) var(--display);color:var(--blue)}
.card-copy h3{font-size:clamp(24px,3.2vw,46px);line-height:.9;margin:4px 0 0}
.card-copy p{font-size:clamp(8px,.9vw,12px);line-height:1.35;margin:clamp(6px,.8vw,12px) 0 0}
.arrow{position:absolute;top:56%;width:34px;height:34px;border:0;background:none;color:#fff;font-size:22px;cursor:pointer;padding:0}
.arrow.prev{left:calc(var(--pad)/2 - 14px)}.arrow.next{right:calc(var(--pad)/2 - 14px)}
.slider-dots{display:flex;justify-content:center;gap:8px;margin:12px 0 4px}
.slider-dots span{width:8px;height:8px;border-radius:50%;background:#fff;opacity:.55}
.slider-dots span.on{background:var(--lime);opacity:1}
.focus-caption{display:block;text-align:center;font-size:8px;letter-spacing:3px}

/* Nos vemos en Reynosa */
.event-info,.hotel{position:relative;overflow:hidden}
.event-info::after,.hotel::after{content:"";position:absolute;right:0;top:0;bottom:0;width:11%;background:linear-gradient(104deg,transparent 40%,rgba(6,70,216,.25) 40% 62%,transparent 62%),linear-gradient(98deg,transparent 66%,rgba(6,70,216,.55) 66% 82%,transparent 82%);pointer-events:none}
.event-info{min-height:clamp(80px,9vw,130px);padding:14px var(--pad);display:flex;align-items:center;gap:clamp(16px,3vw,48px);background:var(--paper)}
.event-info h2{flex:1;font-size:clamp(34px,5.4vw,78px);line-height:.9;white-space:nowrap}
.info-item{display:flex;align-items:center;gap:12px;padding-left:clamp(14px,2vw,30px);border-left:1px solid #c9c8c2}
.info-item i{font-size:clamp(20px,2.4vw,34px);color:#555}
.info-item p{display:flex;flex-direction:column;gap:3px;margin:0;font-size:clamp(9px,1vw,14px)}
.info-item b{font-size:clamp(7px,.75vw,10px);letter-spacing:1px}
.event-info .info-item:last-of-type{margin-right:9%}

/* Inscripciones */
.registration{padding:clamp(18px,2.4vw,34px) var(--pad);display:grid;grid-template-columns:1fr 1.35fr;gap:clamp(8px,1.4vw,22px);align-items:center;background:var(--paper)}
.registration>h2{font-size:clamp(44px,6.6vw,96px);line-height:.8}
.price-card{min-height:clamp(110px,13vw,190px);padding:clamp(8px,1.1vw,16px);border:1px solid var(--soft);text-align:center;display:flex;flex-direction:column;justify-content:space-between;gap:8px}
.price-card h3{font-size:clamp(22px,3.4vw,50px);line-height:.9}
.price-card .price-amounts{display:flex;justify-content:center;gap:clamp(18px,4vw,56px);margin:4px 0}
.price-card .price-amounts p{display:flex;flex-direction:column;gap:5px;align-items:center}
.price-card .price-amounts b{font-size:clamp(9px,1vw,14px);letter-spacing:1px}
.price-card .price-amounts strong{font-size:clamp(30px,4vw,56px);line-height:1;font-weight:700}
.price-card p{font-size:clamp(8px,.95vw,13px);margin:0}
.price-card>span{border:1px solid var(--soft);padding:clamp(6px,.8vw,11px);font-size:clamp(7px,.8vw,11px);color:var(--blue)}
.price-card.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.price-card.primary>span{color:#fff;border-color:#9db6f0}
.included{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:clamp(10px,1.4vw,20px);border-top:1px solid var(--line)}
.included h3{font-size:clamp(18px,2.5vw,36px);white-space:nowrap}
.included>div{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:clamp(6px,.8vw,11px);border-left:1px solid var(--line)}
.included i{font-size:clamp(16px,2vw,28px)}
.included small{font-size:clamp(6px,.8vw,11px);line-height:1.3;border-left:1px solid var(--line);padding-left:12px}

/* Sé parte */
.join{min-height:clamp(60px,7.4vw,106px);padding:10px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--blue);color:#fff}
.join h2{color:#fff;font-size:clamp(34px,6.2vw,90px);line-height:.9}
.join a{min-width:30%;padding:clamp(10px,1.3vw,18px) 18px;background:var(--lime);color:#111;text-align:center;font-size:clamp(8px,.9vw,12px);text-decoration:none}

/* Agenda */
.agenda{padding:clamp(14px,2vw,28px) 4% 0;background:var(--paper)}
.agenda-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.agenda-heading h2{font-size:clamp(40px,5.4vw,78px);line-height:.9}
.day-tabs{display:flex;align-items:center;gap:7px;font-size:clamp(8px,.85vw,11px)}
.day-tabs>*{padding:9px 16px;border:1px solid #d3d2cc}
.day-tabs>span:first-child,.day-tabs>span:last-child{border:0;font-size:1.6em;padding:0 6px}
.day-tabs b{background:var(--blue);color:#fff;border-color:var(--blue);font-weight:400}
.agenda-image{height:clamp(150px,24vw,340px)}
.agenda-poster{display:block;width:100%;height:auto;object-fit:contain}
.agenda-image>span{display:none}
.agenda-image h3{position:relative;color:#fff;font-size:clamp(28px,5vw,72px);text-shadow:0 2px 10px rgba(0,0,0,.45)}
.workshops{display:flex;align-items:center;gap:22px;padding:clamp(8px,1vw,14px) 24px;background:#e8e7e1;text-decoration:none;font-size:clamp(8px,.95vw,13px)}
.workshops b{font:400 clamp(18px,2.2vw,32px) var(--display);padding-right:22px;border-right:1px solid #aaa}
.workshops span{flex:1}
.workshops i{font-size:20px}

/* Hospedaje */
.hotel{min-height:clamp(70px,8vw,116px);padding:12px var(--pad);display:flex;align-items:center;gap:clamp(14px,2.4vw,36px);background:var(--paper)}
.hotel h2{font-size:clamp(38px,5.4vw,78px);line-height:.9}
.hotel p{flex:1;font-size:clamp(8px,.95vw,13px);line-height:1.35;margin:0}
.hotel>a{position:relative;z-index:1;margin-right:9%;padding:11px 18px;border:1px solid var(--soft);color:var(--blue);font-size:clamp(7px,.8vw,11px);text-decoration:none;white-space:nowrap}

/* Galería */
.gallery{padding:0 4% clamp(16px,2.2vw,30px);background:var(--paper)}
.gallery-title{display:flex;align-items:flex-end;justify-content:space-between}
.gallery h2{font-size:clamp(40px,5.4vw,78px);line-height:.9}
.gallery-title small{font-size:8px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(6px,.9vw,14px);margin-top:10px}
.gallery-grid .image-slot{height:clamp(110px,17vw,250px)}

/* Contacto */
.contact{padding:clamp(14px,2vw,28px) var(--pad) clamp(18px,2.4vw,34px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,3vw,44px);background:var(--paper)}
.contact h2{font-size:clamp(40px,5.6vw,80px);line-height:.9}
.contact-copy p{font-size:clamp(10px,1.1vw,15px);margin:0 0 14px}
.contact-copy>a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:clamp(10px,1vw,14px)}
.contact-copy>a i{font-size:24px}
.contact form{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-left:clamp(14px,2.4vw,34px);border-left:1px solid #ccc}
.contact input,.contact textarea{width:100%;min-width:0;padding:10px;border:1px solid #d2d1cb;background:transparent;font:clamp(8px,.9vw,12px) 'CVM Montserrat',Arial,sans-serif}
.contact textarea,.contact button,.contact input[name=subject]{grid-column:1/-1}
.contact textarea{min-height:clamp(50px,6vw,90px)}
.contact button{border:0;padding:13px;background:var(--blue);color:#fff;font-size:clamp(8px,.85vw,11px);cursor:pointer}
.contact .loading,.contact .error-message,.contact .sent-message{display:none;grid-column:1/-1}

/* Footer */
.footer{min-height:clamp(60px,7vw,100px);padding:12px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--blue);color:#fff}
.footer img{width:clamp(70px,9vw,124px);height:auto;max-height:50px;object-fit:contain;filter:grayscale(1) brightness(0) invert(1)}
.footer>span{font-size:clamp(6px,.8vw,11px);letter-spacing:2px;padding-left:clamp(12px,2vw,28px);border-left:1px solid rgba(255,255,255,.4);flex:1}
.footer>div{display:flex;gap:12px}
.footer a{width:clamp(26px,2.4vw,34px);aspect-ratio:1;border-radius:50%;background:#fff;color:var(--blue);display:grid;place-items:center;text-decoration:none;font-size:clamp(13px,1.2vw,17px)}

/* Móvil: se reordena en vez de solo encogerse */
@media(max-width:760px){
.topbar{height:auto;padding:10px 5%;flex-wrap:wrap;gap:8px}
.topbar nav{width:100%;overflow-x:auto;gap:16px;scrollbar-width:none}
.topbar nav::-webkit-scrollbar{display:none}
.hero{min-height:440px;align-items:flex-start;padding-top:16px}
.hero-art{background-position:center center}
.hero-copy h1{font-size:clamp(64px,22vw,110px)}
.hero-link{top:auto;bottom:34px;right:auto;left:var(--pad)}
.hero-note{left:var(--pad);right:auto}
.countdown{flex-direction:column;align-items:flex-start;padding-block:16px}
.countdown h2{white-space:normal}
.intro{grid-template-columns:1fr;padding-inline:var(--pad)}
.intro-image{height:52vw}
.focus-cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.focus-cards::-webkit-scrollbar{display:none}
.focus-cards article{flex:0 0 84%;scroll-snap-align:start;min-height:130px}
.arrow{display:none}
.event-info{flex-wrap:wrap}
.event-info h2{flex:0 0 100%;white-space:normal}
.event-info .info-item:first-of-type{border:0;padding-left:0}
.event-info::after,.hotel::after{display:none}
.registration{grid-template-columns:1fr 1fr}
.registration>h2{grid-column:1/-1}
.included{flex-wrap:wrap}
.included h3{flex:0 0 100%}
.included>div:first-of-type{border:0}
.join{flex-direction:column;align-items:flex-start;padding-block:18px}
.join a{min-width:0;width:100%}
.agenda-heading{flex-direction:column;align-items:flex-start;gap:10px}
.hotel{flex-wrap:wrap}.hotel p{flex:0 0 100%}.hotel>a{margin-right:0}
.contact{grid-template-columns:1fr}
.contact form{padding-left:0;border-left:0;border-top:1px solid #ccc;padding-top:16px}
.footer{flex-wrap:wrap}
.footer>span{border:0;padding:0;flex:0 0 100%;order:3}
}


/* Ajuste fino CVM 2027: ritmo vertical y tipografías locales */
:root{
  --section-space:clamp(24px,3vw,44px);
}
body.cvm27{
  font-family:"CVM Montserrat",sans-serif;
  font-weight:400;
}
h1,h2,h3,.hero-logo,.time-units b,.card-copy>b,.workshops b{
  font-family:"CVM Extenda",sans-serif;
  font-weight:400;
}
.topbar nav a,
.hero-copy>p,
.hero-link,
.countdown .time-units span,
.intro-copy small,
.intro-copy p,
.card-copy p,
.info-item p,
.price-card p,
.price-card>span,
.included,
.join a,
.day-tabs,
.workshops span,
.hotel p,
.hotel>a,
.contact-copy p,
.contact-copy>a,
.contact input,
.contact textarea,
.contact button,
.footer>span{
  font-family:"CVM Montserrat",sans-serif;
  font-weight:400;
}
@media(min-width:761px){
  .intro{padding-block:clamp(24px,3vw,42px)}
  .focus{padding-top:clamp(24px,2.8vw,40px);padding-bottom:clamp(20px,2.4vw,34px)}
  .registration{padding-block:clamp(24px,3vw,42px);row-gap:clamp(12px,1.6vw,24px)}
  .agenda{padding-top:clamp(20px,2.5vw,36px)}
  .contact{padding-top:clamp(22px,2.7vw,38px);padding-bottom:clamp(24px,3vw,42px)}
}
@media(max-width:760px){
  .intro,.registration,.agenda,.contact{padding-block:clamp(22px,5vw,32px)}
  .focus{padding-block:clamp(22px,5vw,30px)}
  .focus-cards{margin-top:20px}
  .registration{row-gap:14px}
}


/* Más aire vertical entre bloques — ajuste solicitado */
@media(min-width:761px){
  .topbar{min-height:76px;height:clamp(68px,5.6vw,82px)}
  .hero{min-height:clamp(500px,52vw,720px)}
  .countdown{min-height:clamp(92px,9.5vw,132px);padding-block:18px}
  .intro{padding-block:clamp(34px,4vw,58px)}
  .intro-image{height:clamp(210px,26vw,380px)}
  .focus{padding-top:clamp(34px,3.8vw,54px);padding-bottom:clamp(28px,3.2vw,46px)}
  .focus-cards{margin-top:clamp(22px,2.3vw,34px)}
  .focus-cards article{min-height:clamp(140px,15vw,220px)}
  .event-info{min-height:clamp(110px,11vw,154px);padding-block:22px}
  .registration{padding-block:clamp(34px,4vw,58px);row-gap:clamp(16px,2vw,28px)}
  .price-card{min-height:clamp(140px,15vw,220px)}
  .join{min-height:clamp(82px,9vw,128px);padding-block:18px}
  .agenda{padding-top:clamp(28px,3.2vw,46px)}
  .agenda-image{height:clamp(190px,27vw,390px)}
  .workshops{padding-block:clamp(12px,1.4vw,20px)}
  .hotel{min-height:clamp(92px,10vw,140px);padding-block:20px}
  .gallery{padding-bottom:clamp(26px,3.2vw,46px)}
  .gallery-grid{margin-top:clamp(16px,1.8vw,26px)}
  .gallery-grid .image-slot{height:clamp(140px,19vw,275px)}
  .contact{padding-top:clamp(30px,3.5vw,50px);padding-bottom:clamp(34px,4vw,58px)}
  .footer{min-height:clamp(76px,8vw,114px);padding-block:18px}
}
@media(max-width:760px){
  .topbar{padding-block:14px}
  .hero{min-height:500px}
  .countdown{padding-block:22px;gap:18px}
  .intro{padding-block:30px;gap:24px}
  .intro-image{height:60vw}
  .focus{padding-block:28px}
  .focus-cards{margin-top:22px}
  .focus-cards article{min-height:160px}
  .event-info{padding-block:24px;row-gap:18px}
  .registration{padding-block:30px;row-gap:18px}
  .price-card{min-height:145px;padding:14px}
  .join{padding-block:24px;gap:18px}
  .agenda{padding-top:28px}
  .agenda-image{height:58vw}
  .workshops{padding-block:14px}
  .hotel{padding-block:24px;row-gap:14px}
  .gallery{padding-bottom:28px}
  .gallery-grid{margin-top:16px}
  .gallery-grid .image-slot{height:30vw}
  .contact{padding-block:30px;gap:24px}
  .footer{padding-block:18px;row-gap:16px}
}


/* Carrusel Enfoque: conserva el lenguaje visual y el tamaño de las tarjetas */
.focus-cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain;padding:2px 1px 8px}
.focus-cards::-webkit-scrollbar{display:none}
.focus-cards article{flex:0 0 calc((100% - clamp(8px,1.2vw,18px)*2)/3);scroll-snap-align:start}
.focus .arrow{z-index:2;top:58%;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.12);transition:background .2s ease}
.focus .arrow:hover{background:rgba(255,255,255,.25)}
.slider-dots{align-items:center}
.slider-dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:#fff;opacity:.5;cursor:pointer}
.slider-dots button.on{background:var(--lime);opacity:1}

/* Carrusel Agenda: los controles son botones accesibles y navegables */
.day-tabs{gap:6px}
.day-tabs button{font:inherit;cursor:pointer;background:transparent;color:inherit;border:1px solid #d3d2cc;padding:9px 16px}
.day-tabs button.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.day-tabs .day-prev,.day-tabs .day-next{border:0;padding:0 8px;font-size:1.6em;line-height:1.2}
.agenda-carousel{overflow:hidden}
.agenda-image{position:relative}
.agenda-slide-copy{position:relative;z-index:1;text-align:center;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.45)}
.agenda-slide-copy small{display:block;font:400 clamp(10px,1vw,14px) "CVM Montserrat",Arial,sans-serif;letter-spacing:3px;margin-bottom:8px}
.agenda-slide-copy h3{font-size:clamp(28px,5vw,72px)}
@media(min-width:761px){
  .focus-cards article{min-height:clamp(140px,15vw,220px)}
}
@media(max-width:760px){
  .focus-cards article{flex:0 0 84%;min-height:160px}
  .focus .arrow{display:grid;top:auto;bottom:12px;width:30px;height:30px}
  .focus .arrow.prev{left:auto;right:calc(var(--pad) + 42px)}
  .focus .arrow.next{right:var(--pad)}
  .slider-dots{padding-right:72px}
  .day-tabs{width:100%;justify-content:space-between;gap:3px}
  .day-tabs button{padding:8px 10px}
  .agenda-heading{align-items:flex-start}
  .agenda-slide-copy h3{font-size:clamp(25px,7vw,42px)}
}
@media(prefers-reduced-motion:reduce){
  .focus-cards{scroll-behavior:auto}
  html{scroll-behavior:auto}
}



/* Cuenta regresiva CVM 2027: jerarquía y alineación */
.countdown{
  min-height:clamp(112px,11vw,156px);
  padding:clamp(18px,2.2vw,30px) var(--pad);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  column-gap:clamp(20px,4vw,60px);
}
.countdown h2{
  max-width:620px;
  font-size:clamp(38px,5.1vw,72px);
  line-height:.84;
  letter-spacing:.005em;
  white-space:normal;
}
.countdown-break{display:none}
.time-units{gap:clamp(2px,.35vw,5px)}
.time-units div{
  width:clamp(62px,7.2vw,104px);
  height:clamp(58px,6vw,82px);
  border:1px solid rgba(255,255,255,.65);
}
.time-units b{font-size:clamp(25px,2.8vw,40px);line-height:1}
.time-units span{font-size:clamp(7px,.7vw,10px);letter-spacing:.08em}
@media(max-width:760px){
  .countdown{
    grid-template-columns:1fr;
    justify-items:start;
    row-gap:18px;
    min-height:0;
    padding:24px var(--pad) 26px;
  }
  .countdown h2{font-size:clamp(38px,10vw,54px);line-height:.86}
  .countdown-break{display:block}
  .time-units{width:100%;gap:clamp(2px,.8vw,4px)}
  .time-units div{flex:1;width:auto;height:64px;min-width:0}
  .time-units b{font-size:clamp(24px,7vw,34px)}
  .time-units span{font-size:clamp(6px,1.8vw,9px)}
}


/* Legibilidad: textos de contenido más grandes y con peso semibold */
body.cvm27{
  font-synthesis:weight;
}
body.cvm27 :where(p, small, a, button, input, textarea, .topbar nav a,
  .hero-copy>p, .hero-link, .hero-note, .countdown .time-units span,
  .intro-copy small, .intro-copy p, .section-head small, .card-copy p,
  .info-item p, .info-item b, .price-card p, .price-card>span,
  .included, .join a, .day-tabs, .workshops span, .hotel p, .hotel>a,
  .gallery-title small, .contact-copy p, .contact-copy>a, .contact form,
  .footer>span){
  font-weight:600;
}
body.cvm27 :where(.topbar nav a, .hero-copy>p, .hero-link, .hero-note,
  .countdown .time-units span, .intro-copy small, .intro-copy p,
  .section-head small, .card-copy p, .info-item p, .info-item b,
  .price-card p, .price-card>span, .included, .join a, .day-tabs,
  .workshops span, .hotel p, .hotel>a, .gallery-title small,
  .contact-copy p, .contact-copy>a, .contact input, .contact textarea,
  .contact button, .footer>span){
  font-size:clamp(10px,1vw,14px);
}
body.cvm27 .info-item b,
body.cvm27 .countdown .time-units span,
body.cvm27 .intro-copy small,
body.cvm27 .section-head small,
body.cvm27 .gallery-title small{
  font-size:clamp(9px,.85vw,12px);
}
@media(max-width:760px){
  body.cvm27 :where(.topbar nav a, .hero-copy>p, .hero-link,
    .countdown .time-units span, .intro-copy small, .intro-copy p,
    .card-copy p, .info-item p, .info-item b, .price-card p,
    .price-card>span, .included, .join a, .day-tabs, .workshops span,
    .hotel p, .hotel>a, .contact-copy p, .contact-copy>a,
    .contact input, .contact textarea, .contact button, .footer>span){
    font-size:clamp(11px,2.8vw,14px);
  }
}



/* Cuenta regresiva: ajuste de escala y ritmo para la referencia móvil */
@media(max-width:760px){
  .countdown{
    padding:22px var(--pad) 24px;
    row-gap:14px;
  }
  .countdown h2{
    width:100%;
    max-width:560px;
    font-size:clamp(42px,7.7vw,48px);
    line-height:.82;
    letter-spacing:.025em;
    white-space:normal;
  }
  .countdown-break{display:block}
  .time-units{
    width:100%;
    gap:clamp(3px,.65vw,5px);
  }
  .time-units div{
    height:60px;
    padding:5px 2px;
  }
  .time-units b{font-size:clamp(26px,5.8vw,32px)}
  .time-units span{
    margin-top:4px;
    font-size:clamp(7px,1.55vw,9px);
    letter-spacing:.1em;
  }
}



/* Cuenta regresiva: dar más presencia al encabezado */
@media(min-width:761px){
  .countdown h2{
    font-size:clamp(46px,5.8vw,82px);
    letter-spacing:0;
  }
}
@media(max-width:760px){
  .countdown h2{
    max-width:600px;
    font-size:clamp(52px,9.2vw,62px);
    line-height:.8;
    letter-spacing:0;
  }
}


/* Cuenta regresiva: bloques más centrados y con mayor presencia */
@media(min-width:761px){
  .countdown{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    column-gap:clamp(12px,2vw,28px);
  }
  .countdown .time-units{
    justify-content:center;
    justify-self:center;
    gap:clamp(4px,.55vw,8px);
  }
  .countdown .time-units div{
    width:clamp(70px,7.7vw,112px);
    height:clamp(66px,6.5vw,90px);
  }
  .countdown .time-units b{
    font-size:clamp(29px,3.1vw,46px);
  }
}
@media(max-width:760px){
  .countdown .time-units{
    width:auto;
    max-width:100%;
    justify-content:center;
    align-self:center;
    gap:clamp(5px,1.5vw,10px);
  }
  .countdown .time-units div{
    flex:0 1 76px;
    width:76px;
    height:68px;
    padding:5px 3px;
  }
  .countdown .time-units b{
    font-size:clamp(30px,7vw,38px);
  }
}


/* Cuenta regresiva: escala adicional y separación uniforme */
@media(min-width:761px){
  .countdown .time-units{
    justify-self:center;
    justify-content:center;
    gap:8px;
  }
  .countdown .time-units div{
    width:clamp(78px,8.25vw,120px);
    height:clamp(74px,7.1vw,98px);
  }
  .countdown .time-units b{
    font-size:clamp(34px,3.6vw,54px);
  }
}
@media(max-width:760px){
  .countdown .time-units{
    width:auto;
    max-width:100%;
    align-self:center;
    justify-content:center;
    gap:8px;
  }
  .countdown .time-units div{
    flex:0 1 84px;
    width:84px;
    height:76px;
  }
  .countdown .time-units b{
    font-size:clamp(34px,7.5vw,42px);
  }
}


/* Cuenta regresiva: título más grande y ambos elementos acercados al centro */
@media(min-width:761px){
  .countdown{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    column-gap:20px;
  }
  .countdown h2{
    justify-self:end;
    text-align:right;
    max-width:760px;
    font-size:clamp(54px,6.5vw,92px);
    line-height:.82;
  }
  .countdown .time-units{
    justify-self:start;
    margin-left:0;
  }
}
@media(max-width:760px){
  .countdown h2{
    justify-self:center;
    text-align:center;
    max-width:100%;
    font-size:clamp(54px,10vw,68px);
  }
  .countdown .time-units{
    justify-self:center;
  }
}


/* Cuenta regresiva: mayor jerarquía y más separación entre título y cifras */
@media(min-width:761px){
  .countdown{
    column-gap:clamp(36px,5vw,76px);
  }
  .countdown h2{
    font-size:clamp(60px,7vw,100px);
    max-width:820px;
  }
}
@media(max-width:760px){
  .countdown{
    row-gap:22px;
  }
  .countdown h2{
    font-size:clamp(58px,10.5vw,74px);
  }
}


/* Formulario de contacto: estados compatibles con validate.js */
.contact .loading.d-block,
.contact .error-message.d-block,
.contact .sent-message.d-block{
  display:block;
}
.contact .loading,
.contact .error-message,
.contact .sent-message{
  grid-column:1/-1;
  margin:0;
  padding:10px 12px;
  font-size:13px;
  line-height:1.45;
}
.contact .loading{color:var(--blue)}
.contact .error-message{
  color:#9f2525;
  background:rgba(159,37,37,.08);
  overflow-wrap:anywhere;
}
.contact .sent-message{
  color:#176b3a;
  background:rgba(23,107,58,.08);
}
.contact button:disabled{opacity:.65;cursor:wait}


.contact .contact-btn-spinner{
  display:inline-block;
  width:14px;
  height:14px;
  margin-right:9px;
  vertical-align:-2px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:contact-btn-spin .7s linear infinite;
}
@keyframes contact-btn-spin{
  to{transform:rotate(360deg)}
}
.contact button[aria-busy="true"]{
  opacity:.72;
  cursor:wait;
  pointer-events:none;
}



/* Galería CVM 2027: vista previa, modal y visor */
.gallery-preview .gallery-thumb,
.gallery-modal-grid .gallery-thumb{
  display:block;width:100%;padding:0;border:0;background:#e8e7e1;overflow:hidden;cursor:pointer;
}
.gallery-preview .gallery-thumb{height:clamp(150px,20vw,290px)}
.gallery-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.gallery-thumb:hover img{transform:scale(1.045)}
.gallery-actions{display:flex;justify-content:center;margin-top:clamp(14px,1.8vw,24px)}
.gallery-more{border:1px solid var(--blue);padding:12px 28px;background:var(--blue);color:#fff;font:600 12px "CVM Montserrat",Arial,sans-serif;letter-spacing:.08em;cursor:pointer}
.gallery-more:hover{background:#0338ae}
.gallery-modal[hidden],.gallery-lightbox[hidden]{display:none!important}
.gallery-modal{position:fixed;z-index:1000;inset:0;display:flex;align-items:center;justify-content:center;padding:clamp(12px,3vw,40px);background:rgba(4,10,30,.78)}
.gallery-modal-panel{width:min(1120px,100%);max-height:min(88vh,900px);overflow:auto;padding:clamp(16px,2.4vw,30px);background:var(--paper);box-shadow:0 20px 70px rgba(0,0,0,.3)}
.gallery-modal-head{position:sticky;top:calc(clamp(16px,2.4vw,30px) * -1);z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:calc(clamp(16px,2.4vw,30px) * -1);margin-bottom:18px;padding:clamp(16px,2.4vw,30px);background:var(--paper);border-bottom:1px solid var(--line)}
.gallery-modal-head small{font-size:10px;letter-spacing:.12em}
.gallery-modal-head h3{margin-top:5px;font-size:clamp(28px,4vw,48px)}
.gallery-close,.lightbox-close{width:42px;height:42px;border:1px solid currentColor;border-radius:50%;background:transparent;color:inherit;font-size:30px;line-height:1;cursor:pointer}
.gallery-modal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.gallery-modal-grid .gallery-thumb{aspect-ratio:4/3}
.gallery-open{overflow:hidden}
.gallery-lightbox{position:fixed;z-index:1010;inset:0;display:flex;align-items:center;justify-content:center;padding:clamp(54px,7vw,88px);background:rgba(0,0,0,.94);color:#fff}
.gallery-lightbox figure{display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:100%;max-height:100%;margin:0}
.gallery-lightbox figure img{display:block;max-width:min(100%,1400px);max-height:calc(100vh - 150px);width:auto;height:auto;object-fit:contain}
.gallery-lightbox figcaption{padding-top:12px;font:600 12px "CVM Montserrat",Arial,sans-serif;letter-spacing:.1em}
.lightbox-close{position:absolute;top:20px;right:22px}
.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:64px;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:46px;line-height:1;cursor:pointer}
.lightbox-arrow:hover{background:rgba(255,255,255,.25)}
.lightbox-prev{left:16px}.lightbox-next{right:16px}
@media(max-width:760px){
  .gallery-preview .gallery-thumb{height:30vw;min-height:105px}
  .gallery-modal{padding:8px}
  .gallery-modal-panel{max-height:94vh;padding:14px}
  .gallery-modal-head{top:-14px;margin:-14px -14px 14px;padding:14px}
  .gallery-modal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .gallery-lightbox{padding:58px 42px}
  .gallery-lightbox figure img{max-height:calc(100vh - 150px)}
  .lightbox-arrow{width:34px;height:48px;font-size:34px}
  .lightbox-prev{left:3px}.lightbox-next{right:3px}
  .lightbox-close{top:12px;right:12px}
}
@media(prefers-reduced-motion:reduce){
  .gallery-thumb img{transition:none}
}



/* Hero CVM: conserva exactamente la proporción de hero-bg.jpg (1080 × 603). */
.hero{
  width:100%;
  aspect-ratio:1080 / 603;
  min-height:0;
  height:auto;
}
.hero-art{
  inset:0;
  background-image:url("../img/hero-bg.jpg");
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
@media(max-width:760px){
  .hero{
    min-height:0;
    height:auto;
    aspect-ratio:1080 / 603;
  }
}


/* Acceso a descarga de gafetes, inmediatamente después de inscripciones */
.badge-download{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(32px,6vw,88px);
  padding:clamp(38px,5.5vw,76px) clamp(24px,7vw,100px);
  background:#f2f4f8;
  color:#17202d;
}
.badge-download-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:clamp(12px,1.5vw,18px);
  max-width:680px;
}
.badge-download-copy>small{
  display:block;
  margin:0;
  color:#0036E1;
  font-family:'CVM Montserrat',Arial,sans-serif;
  font-size:11px;
  font-weight:800;
  line-height:1.4;
  letter-spacing:.18em;
}
.badge-download-copy h2{
  margin:0;
  color:#17202d;
  font-family:'CVM Montserrat',Arial,sans-serif;
  font-size:clamp(30px,3.4vw,44px);
  font-weight:800;
  line-height:1.2;
  letter-spacing:-.035em;
  text-transform:none;
  font-synthesis:none;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}
.badge-download-copy p{
  max-width:580px;
  margin:0;
  color:#4b5565;
  font-family:'CVM Montserrat',Arial,sans-serif;
  font-size:clamp(14px,1.15vw,16px);
  font-weight:400;
  line-height:1.75;
  letter-spacing:0;
}
.cvm27 .badge-download-link{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  gap:14px;
  min-height:54px;
  padding:15px 24px;
  border:1px solid #0036E1;
  background:#0036E1;
  color:#fff !important;
  -webkit-text-fill-color:#fff;
  text-decoration:none;
  font-family:'CVM Montserrat',Arial,sans-serif;
  font-size:12px;
  font-weight:800;
  line-height:1.4;
  letter-spacing:.08em;
  white-space:nowrap;
  transition:background .18s,border-color .18s,transform .18s;
}
.cvm27 .badge-download-link:hover{
  transform:translateY(-1px);
  background:#002bb5;
  border-color:#002bb5;
  color:#fff !important;
  -webkit-text-fill-color:#fff;
}
.cvm27 .badge-download-link i{color:#fff !important;-webkit-text-fill-color:#fff}
@media(max-width:760px){
  .badge-download{
    align-items:stretch;
    flex-direction:column;
    gap:26px;
    padding:38px 24px 42px;
  }
  .badge-download-copy{gap:13px}
  .badge-download-copy h2{font-size:clamp(28px,7vw,36px);line-height:1.22}
  .badge-download-copy p{font-size:14px;line-height:1.7}
  .badge-download-link{width:100%;min-height:52px}
}
/* Video oficial de la conferencia: ocupa el mismo marco adaptable de la imagen introductoria. */
.intro-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}


/* Enlace legal del footer: no debe heredar el formato circular de redes sociales. */
.footer>a.privacy-footer-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-width:max-content;
  min-height:36px;
  height:auto;
  aspect-ratio:auto;
  flex:0 0 auto;
  padding:0 15px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  background:transparent;
  color:#fff;
  font-size:11px;
  font-weight:700;
  letter-spacing:.02em;
  line-height:1.2;
  text-decoration:none;
  white-space:nowrap;
}
.footer>a.privacy-footer-link:hover,
.footer>a.privacy-footer-link:focus-visible{
  background:#fff;
  color:var(--blue);
  outline:2px solid #fff;
  outline-offset:3px;
}
@media(max-width:760px){
  .footer{flex-wrap:wrap;justify-content:center;row-gap:12px}
  .footer>span{flex:1 1 calc(100% - 110px)}
  .footer>a.privacy-footer-link{flex:0 0 auto}
}


/* Crédito de desarrollo: debe mostrarse como texto y nunca heredar el botón circular de redes. */
.footer>small.footer-author{
  display:block;
  flex:0 0 100%;
  width:auto;
  height:auto;
  min-height:0;
  aspect-ratio:auto;
  margin:0;
  padding:10px 0 0;
  border:0;
  border-radius:0;
  background:transparent;
  color:rgba(255,255,255,.78);
  font-size:12px;
  font-weight:400;
  line-height:1.5;
  text-align:center;
}
.footer>small.footer-author>a{
  display:inline;
  width:auto;
  min-width:0;
  height:auto;
  min-height:0;
  aspect-ratio:auto;
  flex:none;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--lime);
  font:inherit;
  font-weight:700;
  line-height:inherit;
  text-decoration:none;
  white-space:normal;
}
.footer>small.footer-author>a:hover,
.footer>small.footer-author>a:focus-visible{
  background:transparent;
  color:#fff;
  text-decoration:underline;
  outline-offset:3px;
}
