/* ============================================================
   Festival Internacional Aves Tequendama — Hoja de estilos principal
   Paleta extraída del logo oficial: navy #34394A + rojo #E5302E + crema #FAE8A9
   Tipografía: Lora (display) + DM Sans (body) — sin cursivas
   ============================================================ */

:root {
    /* ─── Azul Naval — del logo del Festival ─── */
    --azul:           #34394A;   /* navy institucional: nav, headers, botones         */
    --azul-oscuro:    #212535;   /* noche profunda: footer bg, overlays oscuros       */
    --azul-medio:     #4E5471;   /* navy medio: hover, estados secundarios            */
    --azul-pale:      #B8BDCE;   /* acero suave: disabled, bordes claros              */
    --azul-suave:     #ECEEF6;   /* whisper navy: fondos de sección alternos          */

    /* ─── Rojo Festival — color de acento del logo ─── */
    --lima:           #E5302E;   /* rojo vivo: CTAs, badges, acentos de acción        */
    --lima-oscuro:    #B72422;   /* carmín profundo: hover sobre rojo                 */
    --lima-pale:      #FCEAEA;   /* rubor suave: fondos acento, alerts info           */

    /* ─── Crema cálida — inspirada en los tonos dorados del logo ─── */
    --crema:          #FDF8F0;   /* pergamino cálido: fondo general del sitio         */
    --crema-suave:    #FEFCF8;
    --blanco:         #FFFFFF;
    --tinta:          #1C2033;   /* negro naval: más cálido y legible que puro negro  */
    --gris-900:       #252A3A;
    --gris-600:       #525769;
    --gris-400:       #8D92A5;
    --gris-200:       #D0D3DF;
    --gris-100:       #ECEDF4;
    --linea:          rgba(28,32,51,.10);

    --ff-display: 'Lora', Georgia, 'Times New Roman', serif;
    --ff-body:    'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --ff-mono:    'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

    --radio:      2px;
    --radio-md:   4px;
    --sombra-sm:  0 1px 2px rgba(52,57,74,.06), 0 1px 3px rgba(52,57,74,.04);
    --sombra-md:  0 10px 30px -10px rgba(52,57,74,.18), 0 4px 12px -4px rgba(52,57,74,.08);
    --sombra-lg:  0 24px 60px -20px rgba(52,57,74,.28), 0 10px 20px -10px rgba(52,57,74,.10);

    --ease: cubic-bezier(.22,.61,.36,1);
    --dur:  .45s;

    --maxw: 1320px;
    --gap:  clamp(20px, 3vw, 48px);
}

/* --- reset --- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
    margin:0;
    font-family:var(--ff-body);
    font-size:17px;
    line-height:1.65;
    color:var(--tinta);
    background:var(--crema);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    overflow-x:hidden;
    font-style:normal;
}
img,svg,video{display:block;max-width:100%;height:auto}
/* Las imágenes de contenido van envueltas en <picture> para servir WebP y el
   tamaño justo (ver includes/imagenes.php). `display:contents` saca esa caja del
   flujo, así que el <img> sigue comportándose como hijo directo de su contenedor:
   las 32 reglas del sitio que usan `height:100%` siguen valiendo sin tocarlas. */
picture{display:contents}
a{color:inherit;text-decoration:none;transition:color var(--dur) var(--ease)}
button{font:inherit;cursor:pointer;background:none;border:0;color:inherit;font-style:normal}
figure{margin:0}
hr{border:0;height:1px;background:var(--linea);margin:2.5rem 0}
em,i,cite{font-style:normal}
::selection{background:var(--azul);color:var(--crema)}

/* --- tipografía --- */
h1,h2,h3,h4,h5{
    font-family:var(--ff-display);
    font-weight:500;
    line-height:1.15;
    letter-spacing:-.015em;
    color:var(--gris-900);
    margin:0 0 .6em;
    font-style:normal;
}
h1{font-size:clamp(2.4rem, 5.2vw, 4.8rem);font-weight:600}
h2{font-size:clamp(1.9rem, 3.6vw, 2.8rem);font-weight:600}
h3{font-size:clamp(1.4rem, 2.2vw, 1.75rem);font-weight:500}
h4{font-size:1.2rem;line-height:1.3;font-weight:500}

.accent{color:var(--azul);font-style:normal}
.accent--lima{color:var(--lima-oscuro);font-style:normal}

.display{font-family:var(--ff-display)}
.overline{
    font-family:var(--ff-mono);
    font-size:11px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--azul);
    font-weight:500;
}
.eyebrow{
    font-family:var(--ff-mono);
    font-size:11px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--gris-600);
    display:inline-flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;display:inline-block}

/* --- layout contenedor --- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(24px,4vw,48px)}
.section{padding:clamp(56px,8vw,120px) 0}
.section--tight{padding:clamp(32px,5vw,64px) 0}

/* Móvil: aire extra para que el texto no quede pegado al borde */
@media (max-width:520px){
    .wrap{padding:0 26px}
    .nav__inner{padding:14px 22px}
    .nav{--nav-h:78px}          /* el padding baja a 14*2 + logo 50 */
    .art{padding:clamp(28px,8vw,40px) 26px}
    h1,h2,h3,h4,p,blockquote,li{overflow-wrap:break-word;word-wrap:break-word;hyphens:auto}
}

/* --- botones --- */
.btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:14px 24px;
    font-family:var(--ff-body);
    font-size:13px;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
    border-radius:var(--radio);
    transition:all var(--dur) var(--ease);
    border:1px solid transparent;
    line-height:1;
}
.btn--solid{background:var(--azul);color:var(--crema)}
.btn--solid:hover{background:var(--lima);color:var(--azul-oscuro);transform:translateY(-1px);box-shadow:var(--sombra-md)}
.btn--lima{background:var(--lima);color:var(--azul-oscuro)}
.btn--lima:hover{background:var(--lima-oscuro);color:var(--crema);transform:translateY(-1px);box-shadow:var(--sombra-md)}
.btn--ghost{background:transparent;color:var(--gris-900);border-color:var(--gris-900)}
.btn--ghost:hover{background:var(--azul);color:var(--crema);border-color:var(--azul)}
.btn--link{padding:0;background:none;color:var(--azul);text-decoration:none;border-bottom:1px solid var(--azul);padding-bottom:2px;border-radius:0;letter-spacing:.03em;font-weight:500}
.btn--link:hover{color:var(--lima-oscuro);border-bottom-color:var(--lima)}
.btn svg{width:14px;height:14px}

/* ============================================================
   NAV
   ============================================================ */
.nav{
    --nav-h:86px;                 /* padding 18*2 + logo 50 */
    position:sticky;top:0;z-index:100;
    background:rgba(250,247,240,.92);
    backdrop-filter:saturate(180%) blur(16px);
    -webkit-backdrop-filter:saturate(180%) blur(16px);
    border-bottom:1px solid var(--linea);
}
.nav__inner{
    max-width:var(--maxw);
    margin:0 auto;
    padding:18px clamp(24px,4vw,48px);
    display:flex;align-items:center;gap:32px;
}
.nav__logo{
    display:flex;align-items:center;
    line-height:1;
    flex-shrink:0;
}
.nav__logo-img{
    height:50px;width:auto;display:block;
    transition:transform var(--dur) var(--ease);
}
.nav__logo:hover .nav__logo-img{transform:scale(1.04)}
.nav__menu{display:flex;align-items:center;gap:28px;margin-left:auto}
.nav__menu a{
    font-size:14px;
    font-weight:500;
    color:var(--gris-900);
    position:relative;
    padding:6px 0;
}
.nav__menu a::after{
    content:"";position:absolute;left:0;bottom:0;width:0;height:2px;
    background:var(--lima);
    transition:width var(--dur) var(--ease);
}
.nav__menu a:hover,
.nav__menu a[aria-current="page"]{color:var(--azul)}
.nav__menu a:hover::after,
.nav__menu a[aria-current="page"]::after{width:100%}

/* Submenú «Convocatorias» (expositores, artistas, semillas). En escritorio se
   despliega al pasar el ratón o al hacer clic; en el menú móvil va abierto. */
.nav__grupo{position:relative}
.nav__grupo-btn{
    display:inline-flex;align-items:center;gap:6px;
    padding:6px 0;border:0;background:none;cursor:pointer;
    font:inherit;font-size:14px;font-weight:500;color:var(--gris-900);
    position:relative;
}
.nav__grupo-btn i{font-size:9px;transition:transform var(--dur) var(--ease)}
.nav__grupo-btn::after{
    content:"";position:absolute;left:0;bottom:0;width:0;height:2px;
    background:var(--lima);transition:width var(--dur) var(--ease);
}
.nav__grupo-btn:hover,
.nav__grupo:has(a[aria-current="page"]) .nav__grupo-btn{color:var(--azul)}
.nav__grupo:has(a[aria-current="page"]) .nav__grupo-btn::after{width:100%}
.nav__sub{
    position:absolute;top:100%;left:-14px;z-index:20;
    min-width:180px;margin-top:10px;padding:8px;
    display:flex;flex-direction:column;gap:2px;
    background:var(--blanco);border:1px solid var(--linea);border-radius:10px;box-shadow:var(--sombra-md);
    opacity:0;visibility:hidden;transform:translateY(-4px);
    transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),visibility var(--dur);
}
/* Puente invisible para no perder el hover al bajar del botón al panel */
.nav__sub::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.nav__grupo.is-open .nav__sub{opacity:1;visibility:visible;transform:none}
.nav__grupo.is-open .nav__grupo-btn i{transform:rotate(180deg)}
@media (hover:hover){
    .nav__grupo:not(.is-cerrado):hover .nav__sub{opacity:1;visibility:visible;transform:none}
    .nav__grupo:not(.is-cerrado):hover .nav__grupo-btn i{transform:rotate(180deg)}
}
.nav__menu .nav__sub a{padding:8px 12px;border-radius:6px;white-space:nowrap}
.nav__menu .nav__sub a::after{display:none}
.nav__menu .nav__sub a:hover{background:var(--crema)}
.nav__menu .nav__sub a[aria-current="page"]{background:var(--crema);color:var(--azul)}
.nav__social{display:flex;gap:14px;padding-left:22px;border-left:1px solid var(--linea)}
.nav__social a{color:var(--gris-600);display:flex}
.nav__social a:hover{color:var(--azul)}
.nav__social svg{width:18px;height:18px}

.nav__toggle{
    display:none;
    width:40px;height:40px;
    margin-left:auto;
    flex-direction:column;align-items:center;justify-content:center;gap:5px;
}
.nav__toggle span{
    width:22px;height:1.5px;background:var(--gris-900);
    transition:all var(--dur) var(--ease);
}
.nav.is-open .nav__toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav.is-open .nav__toggle span:nth-child(2){opacity:0}
.nav.is-open .nav__toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

@media (max-width:900px){
    .nav__toggle{display:flex}

    /* El backdrop-filter del header lo convierte en bloque contenedor de sus
       hijos position:fixed (igual que transform o filter). Con él puesto, el
       menú se medía contra el header —86px de alto— en vez de contra la
       pantalla: quedaba una tira corta con scroll interno. Mientras el menú
       está abierto se quita, y el panel vuelve a resolverse contra el viewport.
       No se nota: el header queda sobre el panel opaco del menú. */
    .nav.is-open{backdrop-filter:none;-webkit-backdrop-filter:none}

    .nav__menu,.nav__social{
        position:fixed;left:0;right:0;top:var(--nav-h);
        background:var(--crema);
        flex-direction:column;align-items:flex-start;
        transform:translateY(-10px);opacity:0;pointer-events:none;
        transition:all var(--dur) var(--ease);
        border-bottom:1px solid var(--linea);
    }
    /* Las medidas se atan a la altura de la pantalla para que los 10 ítems
       entren sin scroll también en un teléfono bajo. El scroll queda como
       último recurso, no como el comportamiento normal. */
    .nav__menu{
        bottom:0;
        gap:clamp(6px,1.5vh,18px);
        padding:clamp(14px,2.5vh,28px) clamp(24px,4vw,48px);
        padding-bottom:calc(clamp(58px,9vh,76px) + clamp(14px,2.5vh,28px));
        overflow-y:auto;overscroll-behavior:contain;
        justify-content:flex-start;
    }
    .nav__social{
        top:auto;bottom:0;
        flex-direction:row;align-items:center;
        border-left:0;border-top:1px solid var(--linea);border-bottom:0;
        padding:clamp(14px,2vh,20px) clamp(24px,4vw,48px);
    }
    .nav.is-open .nav__menu,.nav.is-open .nav__social{transform:translateY(0);opacity:1;pointer-events:auto}
    .nav__menu a{
        font-size:clamp(15px,2.5vh,22px);
        font-family:var(--ff-display);font-weight:500;
        padding:clamp(2px,.6vh,6px) 0;
        line-height:1.2;
    }
    /* En el panel móvil el submenú va abierto: «Convocatorias» es solo un rótulo */
    .nav__grupo{width:100%}
    .nav__grupo-btn{
        pointer-events:none;padding:clamp(2px,.6vh,6px) 0;
        font-family:var(--ff-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris-600);
    }
    .nav__grupo-btn i,.nav__grupo-btn::after{display:none}
    .nav__sub,.nav__grupo .nav__sub{
        position:static;opacity:1;visibility:visible;transform:none;
        min-width:0;margin:clamp(2px,.6vh,6px) 0 0;padding:0 0 0 14px;
        gap:clamp(6px,1.5vh,18px);
        background:none;border:0;border-left:2px solid var(--linea);border-radius:0;box-shadow:none;
    }
    .nav__sub::before{display:none}
    .nav__menu .nav__sub a{padding:clamp(2px,.6vh,6px) 0;border-radius:0;background:none}
    .nav__menu .nav__sub a:hover,.nav__menu .nav__sub a[aria-current="page"]{background:none}
}

/* ============================================================
   HERO
   ============================================================ */
.hero{
    position:relative;
    padding:clamp(60px,8vw,100px) 0 clamp(40px,5vw,80px);
    overflow:hidden;
}
.hero__grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(24px,4vw,64px);
    align-items:end;
}
.hero__text{padding-bottom:clamp(20px,4vw,60px)}
.hero__title{
    font-size:clamp(2.8rem, 6.6vw, 5.8rem);
    font-weight:600;
    line-height:1.02;
    letter-spacing:-.025em;
}
.hero__title .accent{color:var(--azul)}
.hero__lede{font-size:clamp(1.05rem,1.3vw,1.25rem);color:var(--gris-600);max-width:52ch;margin:24px 0 36px;line-height:1.55}
.hero__meta{
    display:flex;gap:32px;margin-top:48px;padding-top:28px;border-top:1px solid var(--linea);
    font-family:var(--ff-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gris-600);
}
.hero__meta strong{display:block;color:var(--azul);font-family:var(--ff-display);font-size:26px;font-weight:600;letter-spacing:-.02em;text-transform:none;margin-top:6px}
.hero__image{
    position:relative;
    aspect-ratio:4/5;
    background:var(--azul-oscuro);
    overflow:hidden;
}
.hero__image img{width:100%;height:100%;object-fit:cover;filter:saturate(1.02) contrast(1.03)}
.hero__badge{
    position:absolute;top:24px;left:24px;
    background:var(--lima);color:var(--azul-oscuro);
    padding:10px 16px;
    font-family:var(--ff-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;
    border-radius:999px;
    display:flex;align-items:center;gap:8px;
}
.hero__badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--azul-oscuro);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

@media (max-width:820px){
    .hero__grid{grid-template-columns:1fr}
    .hero__image{aspect-ratio:3/4;order:-1;margin-bottom:16px}
}

/* ============================================================
   SECTION HEAD
   ============================================================ */
.sechead{
    display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
    margin-bottom:clamp(32px,5vw,64px);
    padding-bottom:22px;
    border-bottom:2px solid var(--azul);
    flex-wrap:wrap;
}
.sechead__title{
    font-size:clamp(1.8rem,3.4vw,2.6rem);
    margin:0;
    font-weight:600;
}
.sechead__title .accent{color:var(--azul)}
.sechead__number{
    font-family:var(--ff-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--lima-oscuro);font-weight:500;
}
.sechead__sub{color:var(--gris-600);font-size:15px;max-width:44ch}
.sechead__left{display:flex;flex-direction:column;gap:12px}
.sechead__right{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
@media (max-width:640px){.sechead__right{align-items:flex-start}}

/* ============================================================
   BANNER PUBLICITARIO
   ============================================================ */
.ad{
    display:block;
    position:relative;
    background:transparent;
    overflow:hidden;
    text-align:center;
    transition:opacity var(--dur) var(--ease);
}
.ad__img{width:100%;height:auto;display:block}

/* Wrapper que aloja la etiqueta "Publicidad" arriba-derecha, fuera del banner.
   Usa padding-top (NO margin-top) para evitar el colapso de margenes con
   el elemento anterior — así el aire arriba se respeta siempre. */
.ad-wrap{
    display:block;width:100%;
    padding-top:clamp(44px,6vw,64px);
    margin:0 0 clamp(20px,3vw,32px);
}
.ad__label{
    display:block;text-align:right;
    font-family:var(--ff-mono);font-size:10px;letter-spacing:.18em;
    text-transform:uppercase;color:var(--gris-400);font-weight:500;
    margin:0 0 3px;          /* casi pegado al banner */
    line-height:1;
}
/* En mobile: aún más aire arriba para evitar montaje visual con contenido anterior */
@media (max-width:520px){
    .ad-wrap{padding-top:48px;margin-bottom:24px}
}
.ad:hover{opacity:.92}
/* margenes manejados por .ad-wrap; los inner .ad ya no necesitan margin propio */
.ad--top{margin:0}
.ad--top .ad__img{width:100%;height:auto;display:block}
.ad--middle{margin:0}
.ad--middle .ad__img{width:100%;height:auto;display:block}

/* Sidebar banner — card cuadrado 500x500 como patrocinio inline */
.ad--sidebar{
    display:block;aspect-ratio:1;max-width:420px;margin:clamp(20px,3vw,40px) auto;
    border:1px solid var(--azul-pale);background:var(--crema);
}
.ad--sidebar .ad__img{width:100%;height:100%;object-fit:cover}

/* Footer banner — adaptable a horizontal o vertical, centrado antes del footer */
.ad--footer-story{
    display:grid;place-items:center;
    padding:clamp(36px,5vw,64px) 0;
    background:var(--azul-suave);
    border-top:1px solid var(--azul-pale);
    border-bottom:1px solid var(--azul-pale);
    margin-top:clamp(40px,6vw,80px);
}
.ad--footer-story .ad-wrap{
    max-width:1100px;width:100%;
    padding:0 clamp(20px,4vw,48px);
    display:flex;flex-direction:column;
}
.ad--footer-story .ad{
    background:transparent;border:0;
}
.ad--footer-story .ad__img{
    width:100%;max-width:100%;height:auto;
    max-height:380px;object-fit:contain;
    background:transparent;
    border-radius:4px;
}
@media (max-width:520px){
    .ad--footer-story .ad__img{max-height:none}
}

/* ============================================================
   CARDS / NOTAS
   ============================================================ */
.grid{
    display:grid;
    gap:clamp(24px,3vw,40px);
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
}
.grid--2{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.grid--3{grid-template-columns:repeat(2,1fr)}.grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.grid--3,.grid--4{grid-template-columns:1fr}}

.card{display:flex;flex-direction:column;gap:18px;position:relative;transition:transform var(--dur) var(--ease)}
.card__media{
    position:relative;
    aspect-ratio:4/3;
    overflow:hidden;
    background:var(--gris-100);
}
.card__media img{
    width:100%;height:100%;object-fit:cover;
    transition:transform .9s var(--ease);
}
.card:hover .card__media img{transform:scale(1.04)}
.card__cat{
    position:absolute;bottom:14px;left:14px;
    background:var(--lima);color:var(--blanco);
    padding:7px 13px;
    font-family:var(--ff-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
    font-weight:600;
    text-shadow:0 1px 2px rgba(0,0,0,.25);
}
.card__title{
    font-family:var(--ff-display);
    font-size:clamp(1.25rem,1.7vw,1.55rem);
    font-weight:600;
    line-height:1.25;
    letter-spacing:-.01em;
    margin:0;
    color:var(--gris-900);
}
.card__title a{background-image:linear-gradient(var(--azul),var(--azul));background-size:0 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .5s var(--ease)}
.card:hover .card__title a{background-size:100% 1px;color:var(--azul)}
.card__excerpt{color:var(--gris-600);font-size:15px;line-height:1.55;margin:0}
.card__meta{
    display:flex;gap:14px;align-items:center;
    font-family:var(--ff-mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--gris-600);
    margin-top:4px;
}
.card__meta span{display:flex;align-items:center;gap:6px}
.card__meta span::before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.5}
.card__meta span:first-child::before{display:none}

/* ============================================================
   VIDEOS
   ============================================================ */
/* ─── Chips de inventario en /videos ─── */
.vid-meta{
    display:flex;flex-wrap:wrap;gap:10px;
    margin-top:24px;
}
.vid-meta__chip{
    display:inline-flex;align-items:center;gap:8px;
    padding:8px 14px;border-radius:999px;
    background:var(--crema);
    border:1px solid rgba(52,57,74,.12);
    font-family:var(--ff-mono);font-size:11px;letter-spacing:.06em;
    color:var(--azul-oscuro);font-weight:500;
    text-transform:uppercase;
}
.vid-meta__chip strong{color:var(--azul);font-weight:700;font-size:12px}
.vid-meta__chip i{font-size:11px;opacity:.7}
.vid-meta__chip--h{border-color:rgba(52,57,74,.25)}
.vid-meta__chip--v{border-color:rgba(148,193,45,.45);color:var(--lima-oscuro)}
.vid-meta__chip--v strong{color:var(--lima-oscuro)}
.vid-meta__chip--s{border-color:rgba(176,122,46,.35)}

/* ─── MOSAIC — galería completa /videos ───
   Grid de 4 columnas con filas de altura uniforme.
   Cada card ocupa N cols × M rows según su formato:
     · horizontal → 2 cols × 1 row  (panorámico)
     · vertical   → 1 col  × 2 rows (torre)
     · square     → 1 col  × 1 row
   El reordenamiento PHP garantiza que `auto-flow:dense` empaque sin huecos. */
.videos-mosaic{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    grid-auto-rows:clamp(150px, 17vw, 240px);
    gap:clamp(10px,1.2vw,18px);
    grid-auto-flow:dense;
}

/* ─── FEATURE GRID — bloque del home ───
   Misma lógica pero con un poco más de altura para presencia editorial. */
.videos-feature{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    grid-auto-rows:clamp(170px, 19vw, 270px);
    gap:clamp(10px,1.2vw,18px);
    grid-auto-flow:dense;
}

/* ─── Card base — usado en mosaic y feature ─── */
.video-card{
    position:relative;
    overflow:hidden;
    border-radius:8px;
    background:var(--azul-oscuro);
    cursor:pointer;
    isolation:isolate;
    transition:transform .35s var(--ease), box-shadow .35s var(--ease);
    text-decoration:none;
    display:block;
}
.video-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 44px -12px rgba(52,57,74,.35), 0 4px 14px rgba(15,18,26,.18);
}

/* Spans uniformes — la altura viene de grid-auto-rows × span, NO de aspect-ratio.
   Esto permite que el grid empaque sin huecos. */
.videos-mosaic  .video-card--horizontal,
.videos-feature .video-card--horizontal{grid-column:span 2;grid-row:span 1}
.videos-mosaic  .video-card--vertical,
.videos-feature .video-card--vertical  {grid-column:span 1;grid-row:span 2}
.videos-mosaic  .video-card--square,
.videos-feature .video-card--square    {grid-column:span 1;grid-row:span 1}

/* Imagen — siempre cover, sin recortes inesperados gracias al aspect-ratio del contenedor */
.video-card img{
    position:absolute;inset:0;width:100%;height:100%;
    object-fit:cover;
    transition:transform 1s var(--ease), filter .4s var(--ease);
}
.video-card:hover img{transform:scale(1.05);filter:brightness(.92) saturate(1.08)}

/* Overlay editorial — bottom gradient suave + mancha sutil de color brand */
.video-card::after{
    content:"";position:absolute;inset:0;z-index:1;
    background:
        linear-gradient(180deg,transparent 0%,transparent 35%,rgba(15,18,26,.55) 75%,rgba(15,18,26,.92) 100%),
        radial-gradient(ellipse 70% 40% at 50% 100%,rgba(52,57,74,.35),transparent 70%);
    pointer-events:none;
}

/* Play button — circular, glassy, brand */
.video-card__play{
    position:absolute;top:50%;left:50%;
    transform:translate(-50%,-50%) scale(.92);
    width:clamp(54px,5.2vw,72px);height:clamp(54px,5.2vw,72px);
    border-radius:50%;
    background:rgba(250,247,240,.92);
    color:var(--azul-oscuro);
    display:grid;place-items:center;
    transition:all .35s var(--ease);
    z-index:2;
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    box-shadow:0 8px 28px -4px rgba(0,0,0,.45), inset 0 0 0 1px rgba(255,255,255,.4);
}
.video-card:hover .video-card__play{
    transform:translate(-50%,-50%) scale(1.06);
    background:var(--lima);
    color:var(--azul-oscuro);
    box-shadow:0 12px 32px -4px rgba(148,193,45,.5), inset 0 0 0 1px rgba(255,255,255,.3);
}
.video-card__play i{font-size:clamp(18px,1.8vw,22px);margin-left:3px}

/* Badge de formato — top-right, sutil */
.video-card__ratio{
    position:absolute;top:12px;right:12px;z-index:2;
    font-family:var(--ff-mono);font-size:10px;letter-spacing:.12em;
    color:var(--crema);
    background:rgba(15,18,26,.42);
    padding:4px 9px;border-radius:3px;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border:1px solid rgba(250,247,240,.14);
    text-transform:uppercase;
    font-weight:500;
    line-height:1;
}

/* Info inferior */
.video-card__info{
    position:absolute;left:0;right:0;bottom:0;z-index:2;
    padding:clamp(14px,1.6vw,22px);
    color:var(--crema);
}
.video-card__platform{
    display:inline-flex;align-items:center;gap:7px;
    font-family:var(--ff-mono);font-size:10px;letter-spacing:.18em;
    text-transform:uppercase;
    margin-bottom:8px;font-weight:600;
    color:var(--lima);
}
.video-card__platform-dot{
    width:6px;height:6px;border-radius:50%;
    background:currentColor;
    box-shadow:0 0 0 3px color-mix(in srgb, currentColor 22%, transparent);
}
/* Color de marca en el platform tag */
.video-card--yt .video-card__platform{color:#ff5b5b}
.video-card--fb .video-card__platform{color:#7baeff}

.video-card__title{
    font-family:var(--ff-display);
    font-size:clamp(.95rem,1.15vw,1.25rem);
    font-weight:600;line-height:1.28;
    color:var(--crema);margin:0;
    letter-spacing:-.005em;
    text-shadow:0 2px 14px rgba(0,0,0,.35);
    /* Limita a 2 líneas para que tarjetas verticales pequeñas no exploten */
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
/* En el card destacado del home, título más grande */
.videos-feature > .video-card:first-child .video-card__title{
    font-size:clamp(1.2rem,1.8vw,1.7rem);
    -webkit-line-clamp:3;
}

/* ─── Responsive ─── */
@media (max-width:768px){
    /* 2 cols en tablet/mobile grande — los spans siguen siendo proporcionales */
    .videos-mosaic,
    .videos-feature{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:480px){
    /* Mobile: cada video full width respetando su aspect natural */
    .videos-mosaic,
    .videos-feature{
        grid-template-columns:1fr;
        grid-auto-rows:auto;
    }
    .videos-mosaic  .video-card--horizontal,
    .videos-feature .video-card--horizontal{grid-column:1;grid-row:auto;aspect-ratio:16/9}
    .videos-mosaic  .video-card--vertical,
    .videos-feature .video-card--vertical  {grid-column:1;grid-row:auto;aspect-ratio:9/16;max-width:340px;margin:0 auto;width:100%}
    .videos-mosaic  .video-card--square,
    .videos-feature .video-card--square    {grid-column:1;grid-row:auto;aspect-ratio:1/1}

    .video-card__ratio{top:10px;right:10px;font-size:9px;padding:3px 7px}
}

/* ============================================================
   AGENDA / EVENTOS · home — calendario mensual
   ============================================================ */
.home-eventos{padding-top:0}

.cal{
    display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(20px,3vw,40px);
    background:var(--crema);border:1px solid var(--linea);border-radius:6px;
    padding:clamp(20px,3vw,32px);
    border-left:3px solid var(--azul);
}
@media (max-width:820px){.cal{grid-template-columns:1fr}}

.cal__head{
    grid-column:1/-1;
    display:flex;align-items:center;justify-content:space-between;gap:14px;
    margin-bottom:14px;
}
.cal__title{
    font-family:var(--ff-display);font-weight:600;font-size:clamp(1.4rem,2vw,1.8rem);
    color:var(--azul);margin:0;letter-spacing:-.01em;text-align:center;flex:1;
}
.cal__nav{
    width:38px;height:38px;border-radius:50%;
    background:var(--crema-suave);border:1px solid var(--linea);
    display:grid;place-items:center;
    color:var(--azul);transition:all .25s ease;text-decoration:none;
}
.cal__nav:hover{background:var(--azul);color:var(--crema);border-color:var(--azul)}

.cal__grid{
    display:grid;grid-template-columns:repeat(7,1fr);
    gap:4px;align-content:start;
}
.cal__dow{
    font-family:var(--ff-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
    color:var(--gris-600);font-weight:600;text-align:center;padding:6px 2px;
}
.cal__cell{
    aspect-ratio:1;
    background:var(--crema-suave);border:1px solid var(--linea);border-radius:3px;
    display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
    padding:6px 2px;
    font-family:var(--ff-mono);
    transition:all .25s ease;
    text-decoration:none;color:var(--gris-900);
    position:relative;min-height:44px;
}
.cal__cell--empty{background:transparent;border-color:transparent}
.cal__cell.is-past{color:var(--gris-400);background:transparent}
.cal__cell.is-today{
    background:var(--azul);color:var(--crema);border-color:var(--azul);font-weight:600;
}
.cal__cell.is-today .cal__day-num{color:var(--crema)}
.cal__cell.has-events{cursor:pointer;border-color:var(--lima)}
.cal__cell.has-events:hover{
    background:var(--lima);color:var(--azul-oscuro);border-color:var(--lima);
    transform:translateY(-2px);box-shadow:0 6px 14px -6px rgba(148,193,45,.5);
}
.cal__cell.is-today.has-events{
    background:linear-gradient(135deg,var(--azul) 0%,var(--lima-oscuro) 100%);
    border-color:var(--lima);
}
.cal__day-num{font-size:13px;font-weight:600;line-height:1;margin-top:2px}
.cal__dots{
    display:flex;gap:3px;margin-top:auto;margin-bottom:4px;
}
.cal__dot{width:5px;height:5px;border-radius:50%;background:var(--lima)}
.cal__cell.is-today .cal__dot{background:var(--crema)}

.cal__list{display:flex;flex-direction:column;gap:8px}
.cal__list-h{
    font-family:var(--ff-display);font-weight:600;font-size:1.05rem;color:var(--azul);
    margin:0 0 6px;display:flex;align-items:center;gap:8px;
}
.cal__list-h i{color:var(--lima-oscuro);font-size:.9em}
.cal__list ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.cal__list li a{
    display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;
    padding:10px 12px;
    background:var(--crema-suave);border:1px solid var(--linea);border-radius:3px;
    text-decoration:none;color:var(--gris-900);
    transition:all .25s ease;
}
.cal__list li a:hover{border-color:var(--azul);background:var(--azul-suave);transform:translateX(4px)}
.cal__list-day{
    font-family:var(--ff-display);font-size:1.4rem;font-weight:600;color:var(--azul);
    line-height:1;min-width:28px;text-align:center;letter-spacing:-.02em;
}
.cal__list li strong{display:block;font-family:var(--ff-display);font-weight:600;font-size:14px;line-height:1.3;color:var(--gris-900)}
.cal__list li small{display:block;font-size:11px;color:var(--gris-600);margin-top:3px}
.cal__list li small i{color:var(--lima-oscuro);font-size:.9em;margin-right:2px}
.cal__list-go{color:var(--azul);font-size:13px}
.cal__empty{padding:14px;background:var(--crema-suave);border-radius:3px;font-size:13px;color:var(--gris-600);text-align:center}

/* Sección antigua de cards (deprecated, conserva por si se usa) */
.home-ev-grid{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:clamp(16px,2vw,24px);
}
.home-ev{
    display:flex;flex-direction:column;
    background:var(--crema);border:1px solid var(--linea);border-radius:6px;
    text-decoration:none;color:var(--gris-900);
    overflow:hidden;
    transition:all .35s var(--ease);
    border-top:3px solid var(--azul);
    position:relative;
}
.home-ev:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 36px -16px rgba(52,57,74,.22);
    border-top-color:var(--lima);
}
.home-ev__date{
    background:var(--azul-oscuro);color:var(--crema);
    padding:14px 16px;
    display:flex;flex-direction:column;align-items:center;gap:0;
    text-align:center;line-height:1;
}
.home-ev:hover .home-ev__date{background:linear-gradient(135deg,var(--azul) 0%,var(--azul-oscuro) 100%)}
.home-ev__dow{font-family:var(--ff-mono);font-size:10px;letter-spacing:.22em;color:var(--lima);font-weight:600}
.home-ev__day{font-family:var(--ff-display);font-size:2.6rem;font-weight:600;letter-spacing:-.025em;margin:4px 0 2px;color:var(--crema)}
.home-ev__mes{font-family:var(--ff-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--azul-pale)}

.home-ev__media{aspect-ratio:16/9;overflow:hidden;background:var(--gris-100)}
.home-ev__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.home-ev:hover .home-ev__media img{transform:scale(1.06)}

.home-ev__body{padding:16px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.home-ev__cat{
    align-self:flex-start;
    font-family:var(--ff-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
    color:var(--lima-oscuro);font-weight:600;
    background:var(--lima-pale);padding:3px 9px;border-radius:99px;
}
.home-ev__title{
    font-family:var(--ff-display);font-weight:600;font-size:1.05rem;line-height:1.3;
    margin:0;color:var(--gris-900);
}
.home-ev:hover .home-ev__title{color:var(--azul)}
.home-ev__lugar{font-size:13px;color:var(--gris-600);margin-top:auto;padding-top:8px}

.home-ev-cta{
    display:flex;align-items:center;gap:18px;flex-wrap:wrap;
    margin-top:clamp(28px,4vw,40px);
    padding:clamp(20px,3vw,28px);
    background:var(--azul-suave);border:1px solid var(--azul-pale);border-radius:6px;
}
.home-ev-cta__hint{font-size:13px;color:var(--gris-600);flex:1 1 auto}
@media (max-width:520px){
    .home-ev-cta{flex-direction:column;text-align:center}
    .home-ev-cta .btn{width:100%;justify-content:center}
}

/* ============================================================
   FACEBOOK EMBEDS
   ============================================================ */
.fb-grid{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:clamp(20px,2.5vw,32px);
}
.fb-grid--2{grid-template-columns:repeat(2,1fr)}
@media (max-width:820px){.fb-grid--2{grid-template-columns:1fr}}
.fb-wrap{
    background:var(--crema-suave);padding:18px;border:1px solid var(--linea);
    display:flex;flex-direction:column;gap:14px;
    transition:box-shadow var(--dur) var(--ease);
}
.fb-wrap:hover{box-shadow:var(--sombra-md)}
.fb-wrap__label{font-family:var(--ff-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--azul);font-weight:500}

/* Embed con aspect-ratio según tipo (sin recorte) */
.fb-embed{
    width:100%;
    background:#000;
    overflow:hidden;
    display:block;
    border:0;
}
.fb-embed iframe,
iframe.fb-embed{
    width:100%;
    height:100%;
    border:0;
    display:block;
    background:transparent;
}
.fb-embed--reel{
    aspect-ratio:9/16;
    max-width:340px;
    margin:0 auto;
}
.fb-embed--video{
    aspect-ratio:16/9;
}
iframe.fb-embed--post{
    width:100%;
    height:auto;
    min-height:560px;
    background:var(--crema);
}
iframe.fb-embed--page{
    width:100%;
    background:var(--crema);
}

/* Compatibilidad: si llegara un iframe heredado dentro de fb-wrap */
.fb-wrap > iframe:not(.fb-embed){width:100%;min-height:500px;border:0;background:var(--crema)}

.fb-cta{
    margin-top:clamp(28px,4vw,48px);
    padding:clamp(28px,4vw,40px);
    text-align:center;
    background:var(--azul-suave);
    border:1px solid var(--azul-pale);
}
.fb-cta .btn{font-size:14px;padding:18px 28px}
.fb-cta .btn svg:first-of-type{width:18px;height:18px}

/* ============================================================
   NEWSLETTER
   ============================================================ */
.news{
    background:var(--azul-suave);
    padding:clamp(48px,6vw,96px) clamp(32px,5vw,80px);
    border:1px solid var(--azul-pale);
    display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(24px,4vw,64px);align-items:center;
    position:relative;overflow:hidden;
}
.news::before{
    content:"";position:absolute;top:-40px;right:-40px;
    width:200px;height:200px;border-radius:50%;
    background:var(--lima);opacity:.22;
}
.news__title{font-size:clamp(1.6rem,2.6vw,2.2rem);margin:0 0 12px;position:relative;font-weight:600}
.news__title .accent{color:var(--azul)}
.news__sub{color:var(--gris-600);font-size:15px;margin:0;position:relative}
.news__form{display:flex;gap:8px;position:relative;z-index:1}
.news__input{
    flex:1;padding:16px 20px;
    border:1px solid var(--azul);
    background:var(--crema);
    font-family:var(--ff-body);font-size:15px;color:var(--gris-900);
    border-radius:var(--radio);
    font-style:normal;
}
.news__input:focus{outline:2px solid var(--lima);outline-offset:-1px}
.news__legal{font-size:11px;color:var(--gris-600);margin:10px 0 0;line-height:1.5}
.news__msg{
    display:flex;align-items:flex-start;gap:14px;
    padding:18px 22px;border-radius:var(--radio);
    font-size:15px;line-height:1.5;
    animation:newsFadeIn .5s var(--ease);
}
.news__msg-icon{
    flex-shrink:0;
    display:grid;place-items:center;
    width:32px;height:32px;border-radius:50%;
    font-family:var(--ff-display);font-weight:700;font-size:18px;line-height:1;
}
.news__msg--ok{background:var(--lima-pale);color:var(--lima-oscuro);border-left:3px solid var(--lima)}
.news__msg--ok .news__msg-icon{background:var(--lima);color:var(--azul-oscuro)}
.news__msg--err{background:#fcecea;color:#B04B3A;border-left:3px solid #B04B3A}
.news__msg--err .news__msg-icon{background:#B04B3A;color:#fff}
.news__msg--warn{background:var(--azul-suave);color:var(--azul);border-left:3px solid var(--azul)}
.news__msg--warn .news__msg-icon{background:var(--azul);color:var(--crema);font-style:italic;font-family:Georgia,serif}
@keyframes newsFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (max-width:760px){.news{grid-template-columns:1fr}.news__form{flex-direction:column}}

/* ============================================================
   FOOTER
   ============================================================ */
.foot{
    background:var(--azul-oscuro);color:var(--crema);
    padding:clamp(60px,7vw,100px) 0 32px;
    margin-top:clamp(60px,8vw,120px);
}
.foot__grid{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:clamp(24px,4vw,56px);
    padding-bottom:48px;
    border-bottom:1px solid rgba(214,221,240,.18);
}
.foot__brand{display:flex;flex-direction:column;gap:18px}
.foot__logo-img{
    height:64px;width:auto;display:block;
    image-rendering:auto;
    max-width:240px;
    filter:brightness(0) invert(1);
}
.foot__desc{color:var(--azul-pale);opacity:.9;font-size:14px;line-height:1.65;max-width:36ch;margin:0}
.foot h4{color:var(--lima);font-family:var(--ff-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;margin-bottom:18px;font-weight:500}
.foot ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.foot ul a{color:var(--azul-pale);font-size:14px;transition:color var(--dur) var(--ease)}
.foot ul a:hover{color:var(--lima)}
.foot__contact{display:flex;flex-direction:column;gap:12px;color:var(--azul-pale);font-size:14px}
.foot__contact strong{color:var(--lima);display:block;font-weight:500;margin-bottom:2px;font-size:13px;font-family:var(--ff-mono);letter-spacing:.1em;text-transform:uppercase}

.foot__bottom{
    display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
    padding-top:32px;
    font-family:var(--ff-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--azul-pale);
}
.foot__social{display:flex;gap:20px}
.foot__social a{color:var(--azul-pale);display:flex}
.foot__social a:hover{color:var(--lima)}
.foot__social svg{width:20px;height:20px}

@media (max-width:900px){.foot__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot__grid{grid-template-columns:1fr}}

/* ============================================================
   ARTICLE / NOTA DETALLE
   ============================================================ */
.art{max-width:780px;margin:0 auto;padding:clamp(40px,5vw,80px) clamp(24px,4vw,48px)}
/* ─── Hero principal de la nota (imagen 1) ─── */
.art__hero{
    position:relative;aspect-ratio:16/9;overflow:hidden;
    margin-bottom:clamp(32px,4vw,56px);
    border-radius:4px;
    background:var(--azul-oscuro, #0f1219);
    isolation:isolate;
}
.art__hero a{display:block;width:100%;height:100%;cursor:zoom-in}
.art__hero img{
    width:100%;height:100%;object-fit:cover;
    transition:transform .9s var(--ease, cubic-bezier(.2,.7,.2,1)), filter .35s ease;
}
.art__hero:hover img{transform:scale(1.03);filter:brightness(.97) saturate(1.04)}
.art__hero::after{
    content:"";position:absolute;top:14px;right:14px;z-index:2;
    width:36px;height:36px;border-radius:50%;
    background:rgba(15,18,26,.55) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.3-4.3M11 8v6M8 11h6'/></svg>") center/18px no-repeat;
    backdrop-filter:blur(6px);
    border:1px solid rgba(255,255,255,.15);
    opacity:0;
    transform:scale(.85);
    transition:opacity .25s ease, transform .25s ease;
    pointer-events:none;
}
.art__hero:hover::after{opacity:1;transform:scale(1)}

/* ─── Imagen "inset" intercalada en el cuerpo (imágenes 2 y 3) ──
   Estilo magazine: rompe levemente el ancho del texto para "respirar"
   pero sin ser disruptiva. Tiene aspect-ratio fijo para evitar saltos
   de layout mientras carga (CLS = 0). */
.art__inset{
    margin:clamp(28px,4vw,48px) 0;
    padding:0;
    /* Negative margin lateral en desktop → imagen más ancha que el texto */
    margin-left:clamp(-80px, -5vw, 0px);
    margin-right:clamp(-80px, -5vw, 0px);
}
/* Variante hero: la primera imagen distribuida — más alta, full-bleed más fuerte. */
.art__inset--hero{
    margin-top:clamp(8px,1.5vw,20px);
    margin-bottom:clamp(36px,5vw,64px);
    margin-left:clamp(-120px, -8vw, -16px);
    margin-right:clamp(-120px, -8vw, -16px);
}
.art__inset-link{
    display:block;
    aspect-ratio:16/9;
    overflow:hidden;
    background:var(--azul-oscuro, #0f1219);
    border-radius:4px;
    cursor:zoom-in;
    position:relative;
    isolation:isolate;
}
.art__inset-link--hero{aspect-ratio:21/10}
.art__inset-link img{
    width:100%;height:100%;object-fit:cover;display:block;
    transition:transform .9s var(--ease, cubic-bezier(.2,.7,.2,1)), filter .35s ease;
}
.art__inset-link:hover img{transform:scale(1.04);filter:brightness(.96) saturate(1.06)}

/* Mismo indicador zoom que el hero, pero más sutil */
.art__inset-link::after{
    content:"";position:absolute;top:12px;right:12px;z-index:2;
    width:32px;height:32px;border-radius:50%;
    background:rgba(15,18,26,.5) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.3-4.3M11 8v6M8 11h6'/></svg>") center/16px no-repeat;
    backdrop-filter:blur(6px);
    border:1px solid rgba(255,255,255,.12);
    opacity:0;transform:scale(.85);
    transition:opacity .25s ease, transform .25s ease;
    pointer-events:none;
}
.art__inset-link:hover::after{opacity:1;transform:scale(1)}

/* Mobile: la inset vuelve al ancho del texto y reduce su altura */
@media (max-width:760px){
    .art__inset, .art__inset--hero{margin-left:0;margin-right:0}
    .art__inset-link{aspect-ratio:16/10}
    .art__inset-link--hero{aspect-ratio:4/3}
}

/* Pie de imagen — autoría o descripción opcional, debajo de cada inset */
.art__inset-caption{
    margin:10px 0 0;
    font-size:13px;
    line-height:1.45;
    color:var(--gris-600, #555);
    font-style:normal;
    text-align:left;
    padding-left:14px;
    border-left:2px solid var(--lima, #94c12d);
}
.art__inset--hero .art__inset-caption{
    font-size:13.5px;
    margin-top:12px;
}
@media (max-width:760px){
    .art__inset-caption{font-size:12.5px;padding-left:10px;margin-top:8px}
}
.art__cat{display:inline-block;background:var(--azul);color:var(--crema);padding:8px 14px;font-family:var(--ff-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:24px;font-weight:500}
.art__title{font-size:clamp(2rem,4.5vw,3.4rem);margin-bottom:20px;font-weight:600;letter-spacing:-.02em}
.art__meta{
    display:flex;gap:24px;padding-bottom:24px;margin-bottom:40px;border-bottom:1px solid var(--linea);
    font-family:var(--ff-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--gris-600);flex-wrap:wrap;
}
.art__body{font-size:1.05rem;line-height:1.75;color:var(--gris-900)}
.art__body p{margin:0 0 1.35em}
.art__body p:first-child::first-letter{
    font-family:var(--ff-display);font-size:4.4em;font-weight:600;
    float:left;line-height:.9;padding:6px 12px 0 0;color:var(--azul);
}
.art__body blockquote{
    margin:2em 0;padding:16px 0 16px 24px;border-left:3px solid var(--lima);
    font-family:var(--ff-display);font-size:1.35em;font-weight:500;
    color:var(--azul-oscuro);line-height:1.4;font-style:normal;
}
.art__body img{margin:2em 0;width:100%}
.art__body a:not(.btn){color:var(--azul);border-bottom:1px solid currentColor}
.art__body a:not(.btn):hover{color:var(--lima-oscuro)}
/* Componente reutilizable .share — usado en detalle de notas y al pie de cada página */
.share{
    display:flex;align-items:center;gap:18px;flex-wrap:wrap;
    padding:24px 0;
    border-top:1px solid var(--linea);
    border-bottom:1px solid var(--linea);
}
.share--centered{justify-content:center;flex-direction:column;text-align:center;border:0;padding:0}
.share--compact{padding:0;border:0;gap:10px}
.share__label{
    font-family:var(--ff-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
    color:var(--gris-600);font-weight:500;
}
.share__btns{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.share__btn{
    width:42px;height:42px;
    border:1px solid var(--linea);border-radius:50%;
    background:var(--crema);color:var(--gris-900);
    display:grid;place-items:center;
    transition:all .35s var(--ease);
    cursor:pointer;padding:0;
}
.share__btn svg{width:16px;height:16px}
.share__btn:hover{transform:translateY(-2px);box-shadow:0 6px 14px -4px rgba(52,57,74,.3)}
.share__btn--fb:hover{background:#1877F2;color:#fff;border-color:#1877F2}
.share__btn--wa:hover{background:#25D366;color:#fff;border-color:#25D366}
.share__btn--ig:hover{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285AEB 90%);color:#fff;border-color:transparent}
.share__btn--em:hover{background:var(--azul);color:#fff;border-color:var(--azul)}
.share__btn--cp:hover{background:var(--lima);color:var(--azul-oscuro);border-color:var(--lima)}
.share__btn[data-copied]{background:var(--lima);color:var(--azul-oscuro);border-color:var(--lima)}

/* Video asociado a la nota — bloque destacado entre cabecera y cuerpo */
.art__video{
    margin:18px 0 32px;
    padding:0;
}
.art__video-frame{
    position:relative;
    aspect-ratio:16/9;
    background:#0f1219;
    border-radius:8px;overflow:hidden;
    box-shadow:0 14px 40px -16px rgba(15,18,25,.45);
}
.art__video--vertical .art__video-frame{aspect-ratio:9/16;max-width:420px;margin-inline:auto}
.art__video--square   .art__video-frame{aspect-ratio:1/1;max-width:560px;margin-inline:auto}
.art__video-frame iframe{width:100%;height:100%;border:0;display:block}
.art__video-caption{
    margin-top:10px;
    font-size:12.5px;color:var(--gris-600, #555);
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;
    line-height:1.4;
}
.art__video-platform{
    font-family:var(--ff-mono, monospace);
    font-size:10px;letter-spacing:.12em;
    background:var(--azul, #34394A);color:#fff;
    padding:3px 9px;border-radius:3px;font-weight:700;
}
@media (max-width:520px){
    .art__video{margin:14px 0 24px}
}

/* Share superior (debajo del meta, antes del cuerpo) — pensado para mobile */
.art__share-top{
    display:flex;align-items:center;gap:14px;flex-wrap:wrap;
    margin:18px 0 28px;
    padding:14px 0;
    border-top:1px solid var(--linea);
    border-bottom:1px solid var(--linea);
}
.art__share-top__label{
    font-family:var(--ff-mono);font-size:10px;letter-spacing:.18em;
    color:var(--gris-600);font-weight:600;text-transform:uppercase;
}
.art__share-top .share__btn{width:38px;height:38px}
.art__share-top .share__btn svg{width:14px;height:14px}
@media (max-width:520px){
    .art__share-top{gap:10px;margin:14px 0 22px;padding:12px 0}
    .art__share-top .share__btns{gap:8px}
    .art__share-top .share__btn{width:36px;height:36px}
}

/* Sección global de share (al pie de cada página, antes del footer) */
.share-section{
    background:var(--crema-suave);
    padding:clamp(40px,5vw,64px) 0;
    border-top:1px solid var(--linea);
    margin-top:clamp(40px,6vw,80px);
}
.share-section .share__label{font-family:var(--ff-display);font-size:1.1rem;letter-spacing:0;text-transform:none;color:var(--gris-900);font-weight:600}

/* Compatibilidad: el wrapper antiguo .art__share queda como helper de espaciado */
.art__share{margin:48px 0}

/* ============================================================
   BREADCRUMB visual
   ============================================================ */
.crumbs{padding:14px 0 0;font-family:var(--ff-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gris-600)}
.crumbs__inner{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.crumbs__a{color:var(--gris-600);transition:color .25s var(--ease)}
.crumbs__a:hover{color:var(--azul)}
.crumbs__a.is-current{color:var(--azul);font-weight:600}
.crumbs__sep{color:var(--gris-400)}

/* ============================================================
   WhatsApp floating action button
   ============================================================ */
.fab-wa{
    position:fixed;right:22px;bottom:22px;z-index:90;
    display:flex;align-items:center;gap:0;
    padding:0;
    height:58px;width:58px;
    border-radius:50%;
    background:#25D366;color:#fff;
    box-shadow:0 8px 24px -6px rgba(37,211,102,.55), 0 4px 12px rgba(0,0,0,.18);
    transition:all .35s var(--ease);
    overflow:hidden;
    text-decoration:none;
}
.fab-wa svg{width:30px;height:30px;flex-shrink:0;margin-left:14px}
.fab-wa__lbl{
    font-family:var(--ff-body);font-weight:600;font-size:14px;letter-spacing:.02em;
    white-space:nowrap;
    max-width:0;opacity:0;
    transition:max-width .35s var(--ease), opacity .25s var(--ease), padding .35s var(--ease);
    padding:0;
}
.fab-wa:hover{
    width:auto;
    padding-right:22px;
    box-shadow:0 12px 28px -6px rgba(37,211,102,.7), 0 6px 16px rgba(0,0,0,.22);
}
.fab-wa:hover .fab-wa__lbl{max-width:140px;opacity:1;padding-left:10px}
.fab-wa:active{transform:scale(.97)}
@media (max-width:520px){
    .fab-wa{right:16px;bottom:16px;width:54px;height:54px}
    .fab-wa svg{width:26px;height:26px;margin-left:14px}
}

/* ============================================================
   Share rail vertical (en notas, escritorio)
   ============================================================ */
.share-rail{
    position:fixed;left:18px;top:50%;
    transform:translateY(-50%);
    display:flex;flex-direction:column;gap:8px;
    z-index:80;
    background:var(--crema);
    padding:8px;border-radius:999px;
    border:1px solid var(--linea);
    box-shadow:0 10px 28px -10px rgba(52,57,74,.25);
}
.share-rail__btn{
    width:38px;height:38px;border-radius:50%;
    border:0;background:transparent;color:var(--gris-900);
    display:grid;place-items:center;
    transition:all .3s var(--ease);
    cursor:pointer;padding:0;
}
.share-rail__btn svg{width:16px;height:16px}
.share-rail__btn:hover{transform:scale(1.1)}
.share-rail__btn--wa:hover{background:#25D366;color:#fff}
.share-rail__btn--fb:hover{background:#1877F2;color:#fff}
.share-rail__btn--ig:hover{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285AEB 90%);color:#fff}
.share-rail__btn--cp:hover{background:var(--lima);color:var(--azul-oscuro)}
.share-rail__btn[data-copied]{background:var(--lima);color:var(--azul-oscuro)}
@media (max-width:1100px){.share-rail{display:none}}

/* Con el menú móvil abierto se ocultan los flotantes: el asistente vive en
   z-index 9998 y quedaba por encima del panel del nav (z-index 100). */
/* Con el menú abierto se apartan los flotantes. El banner de cookies entró a
   la lista porque tapaba los últimos ítems del menú y la barra de redes: está
   en z-index 100, el mismo del header. */
body.nav-open .fab-wa,
body.nav-open .cookie-banner,
body.nav-open .cg{opacity:0;pointer-events:none;visibility:hidden}

/* ============================================================
   Cookie banner — Habeas Data
   ============================================================ */
.cookie-banner{
    position:fixed;left:0;right:0;bottom:0;z-index:100;
    background:var(--azul-oscuro);color:var(--crema);
    padding:18px 0;
    border-top:3px solid var(--lima);
    transform:translateY(100%);opacity:0;
    transition:all .4s var(--ease);
    box-shadow:0 -8px 30px rgba(0,0,0,.25);
}
.cookie-banner.is-visible{transform:translateY(0);opacity:1}
.cookie-banner__body{
    max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,4vw,48px);
    display:grid;grid-template-columns:1.6fr auto;gap:24px;align-items:center;
}
.cookie-banner__title{
    font-family:var(--ff-display);font-size:1.15rem;font-weight:600;
    margin:0 0 4px;color:var(--lima);
}
.cookie-banner__text{
    margin:0;font-size:13.5px;line-height:1.55;color:var(--azul-pale);
}
.cookie-banner__text a{color:var(--lima);text-decoration:underline}
.cookie-banner__btns{display:flex;gap:10px;flex-shrink:0}
.cookie-banner__btns .btn--ghost{color:var(--crema);border-color:var(--azul-pale)}
.cookie-banner__btns .btn--ghost:hover{background:var(--lima);color:var(--azul-oscuro);border-color:var(--lima)}
@media (max-width:760px){
    .cookie-banner__body{grid-template-columns:1fr;gap:14px;text-align:left}
    .cookie-banner__btns{justify-content:stretch}
    .cookie-banner__btns .btn{flex:1;justify-content:center}
}

/* ============================================================
   Footer · enlaces legales
   ============================================================ */
.foot__legal{
    display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;
    padding:24px 0 12px;
    font-family:var(--ff-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
    color:var(--azul-pale);
    border-top:1px solid rgba(214,221,240,.18);
    margin-top:24px;
}
.foot__legal a{color:var(--azul-pale);transition:color .3s ease}
.foot__legal a:hover{color:var(--lima)}
.foot__legal span{opacity:.4}

/* ============================================================
   PAGE HEAD (listados)
   ============================================================ */
.page-head{
    padding:clamp(80px,10vw,140px) 0 clamp(40px,5vw,80px);
    text-align:left;
    border-bottom:1px solid var(--linea);
}
.page-head__title{font-size:clamp(2.6rem,5.6vw,4.6rem);margin:0 0 16px;font-weight:600;letter-spacing:-.025em}
.page-head__title .accent{color:var(--azul)}
.page-head__sub{color:var(--gris-600);font-size:1.1rem;max-width:60ch;margin:0}

/* Cuando una sección viene justo después del page-head, reduce el aire */
.page-head + .section{padding-top:clamp(24px,3vw,48px)}

/* ----- variante split: texto + collage de portadas ----- */
.page-head--split{
    padding:clamp(72px,9vw,128px) 0 clamp(48px,6vw,96px);
    overflow:hidden;
}
.page-head__grid{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:clamp(32px,5vw,80px);
    align-items:center;
}
.page-head__col{display:flex;flex-direction:column}
.page-head__stats{
    display:flex;gap:clamp(24px,3vw,48px);margin-top:36px;padding-top:24px;border-top:1px solid var(--linea);
}
.page-head__stats div{display:flex;flex-direction:column;gap:4px}
.page-head__stats strong{
    font-family:var(--ff-display);font-size:clamp(1.8rem,2.6vw,2.4rem);font-weight:600;
    color:var(--azul);line-height:1;letter-spacing:-.02em;
}
.page-head__stats span{
    font-family:var(--ff-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gris-600);
}

/* Collage de portadas */
.page-head__stack{
    position:relative;height:clamp(320px,38vw,480px);
}
.page-head__cover{
    position:absolute;
    aspect-ratio:3/4;
    overflow:hidden;
    box-shadow:var(--sombra-lg);
    transition:transform .6s var(--ease);
    background:var(--azul-oscuro);
}
.page-head__cover img{width:100%;height:100%;object-fit:cover;display:block}
.page-head__cover--0{
    width:62%;left:38%;top:0;
    transform:rotate(4deg);
    z-index:3;
}
.page-head__cover--1{
    width:55%;left:0;top:14%;
    transform:rotate(-6deg);
    z-index:2;
}
.page-head__cover--2{
    width:48%;left:22%;bottom:0;
    transform:rotate(2deg);
    z-index:1;
    opacity:.92;
}
.page-head--split:hover .page-head__cover--0{transform:rotate(2deg) translateY(-4px)}
.page-head--split:hover .page-head__cover--1{transform:rotate(-4deg) translateY(-4px)}
.page-head--split:hover .page-head__cover--2{transform:rotate(0deg) translateY(-4px);opacity:1}

@media (max-width:820px){
    .page-head__grid{grid-template-columns:1fr;gap:48px}
    .page-head__stack{height:clamp(280px,55vw,360px);max-width:420px;margin-left:auto;margin-right:auto;width:100%}
    .page-head__stats{gap:24px}
    .page-head__stats strong{font-size:1.6rem}
}
@media (max-width:520px){
    .page-head--split{padding-bottom:32px}
    .page-head__stack{height:280px}
    .page-head__stats{flex-wrap:wrap;gap:16px 28px}
}

/* ============================================================
   UTIL
   ============================================================ */
.muted{color:var(--gris-600)}
.hidden{display:none !important}
.text-center{text-align:center}
.mt-0{margin-top:0}
.mt-4{margin-top:2rem}

@media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.01s !important;transition-duration:.01s !important}
}

/* Grano sutil opcional */
.grain{position:relative}
.grain::after{
    content:"";position:fixed;inset:0;pointer-events:none;z-index:1000;opacity:.025;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
    mix-blend-mode:multiply;
}

/* ============================================================
   FORMULARIOS PUBLICABLES (insertados vía [form:slug] en notas)
   Mobile-first. Tap-areas grandes (44px+). Inputs amplios.
   ============================================================ */
.formx{
    margin:clamp(28px,5vw,56px) 0;
    padding:clamp(20px,4vw,32px);
    background:var(--crema-suave, #faf6ec);
    border:1px solid var(--linea);
    border-left:3px solid var(--lima, #b2ce50);
    border-radius:6px;
    font-family:var(--ff-body);
}
/* ============================================================
   VIDEO MODAL — reproductor propio para YouTube/Facebook embed.
   Reemplaza GLightbox para videos (que falla con Plyr en YouTube).
   Mobile-first, ratio según formato del video.
   ============================================================ */
.vmodal{
    position:fixed; inset:0; z-index:9999;
    display:flex; align-items:center; justify-content:center;
    padding:16px;
}
.vmodal[hidden]{display:none}
.vmodal__backdrop{
    position:absolute; inset:0; background:rgba(0,0,0,.88);
    cursor:zoom-out;
    animation:vmodal-fade .18s ease-out;
}
.vmodal__panel{
    position:relative; z-index:1;
    background:#000; border-radius:8px; overflow:hidden;
    box-shadow:0 20px 60px rgba(0,0,0,.6);
    width:100%; max-width:1200px;
    animation:vmodal-pop .25s cubic-bezier(.2,.7,.2,1);
}
@keyframes vmodal-fade{from{opacity:0}to{opacity:1}}
@keyframes vmodal-pop{from{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}

/* Barra superior con título + acciones (siempre visible, también en fullscreen) */
.vmodal__head{
    position:absolute; top:0; left:0; right:0; z-index:3;
    display:flex; align-items:center; gap:12px;
    padding:10px 12px;
    background:linear-gradient(to bottom, rgba(0,0,0,.78), rgba(0,0,0,0));
    pointer-events:none; /* deja pasar clicks excepto en los botones/título */
}
.vmodal__head > *{pointer-events:auto}
.vmodal__title{
    flex:1; min-width:0;
    color:#fff; font-family:var(--ff-body); font-size:14px; font-weight:500;
    line-height:1.3; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    text-shadow:0 1px 4px rgba(0,0,0,.6);
}
.vmodal__actions{display:flex; gap:8px; flex-shrink:0}
.vmodal__btn{
    width:42px; height:42px; border-radius:50%;
    background:rgba(0,0,0,.55); color:#fff; border:1px solid rgba(255,255,255,.16);
    font-size:16px; line-height:1; cursor:pointer;
    display:grid; place-items:center;
    transition:background .15s ease, transform .15s ease;
    backdrop-filter:blur(8px);
}
.vmodal__btn:hover{background:rgba(255,255,255,.18); transform:scale(1.05)}
.vmodal__btn:focus-visible{outline:2px solid #fff; outline-offset:2px}
.vmodal__btn[aria-label="Cerrar"]:hover{background:rgba(220,38,38,.9)}

.vmodal__frame{
    position:relative; width:100%; background:#000;
    aspect-ratio:16/9;     /* default horizontal */
}
.vmodal__panel--vertical{max-width:min(420px, 95vw)}
.vmodal__panel--vertical .vmodal__frame{aspect-ratio:9/16}
.vmodal__panel--square{max-width:min(720px, 92vw)}
.vmodal__panel--square .vmodal__frame{aspect-ratio:1/1}
.vmodal__panel--horizontal .vmodal__frame{aspect-ratio:16/9}

.vmodal__frame iframe{
    position:absolute; inset:0;
    width:100%; height:100%; border:0; background:#000;
}

/* Toast de feedback (compartir / copiar) */
.vmodal__toast{
    position:absolute; left:50%; bottom:18px; transform:translateX(-50%);
    z-index:4; max-width:88%;
    background:rgba(0,0,0,.88); color:#fff;
    padding:10px 18px; border-radius:24px;
    font-family:var(--ff-body); font-size:13px; line-height:1.4;
    box-shadow:0 6px 20px rgba(0,0,0,.4);
    backdrop-filter:blur(8px);
    animation:vmodal-toast .25s ease-out;
}
.vmodal__toast[hidden]{display:none}
.vmodal__toast.is-err{background:rgba(220,38,38,.95)}
@keyframes vmodal-toast{from{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* Modo fullscreen del PANEL: ocupa toda la pantalla, controles siguen visibles */
.vmodal__panel.is-fullscreen{
    width:100vw; height:100vh; max-width:none; max-height:none;
    border-radius:0; display:grid; place-items:center;
    background:#000;
}
.vmodal__panel.is-fullscreen .vmodal__frame{
    width:100vw; height:100vh; aspect-ratio:auto;
}
.vmodal__panel.is-fullscreen .vmodal__head{
    /* En fullscreen los controles flotan sobre el video — siempre accesibles */
    background:linear-gradient(to bottom, rgba(0,0,0,.85), rgba(0,0,0,0));
    padding:14px 18px;
}

/* Mobile: panel ocupa ancho completo, sin radius arriba */
@media(max-width:640px){
    .vmodal{padding:0; align-items:stretch}
    .vmodal__panel,
    .vmodal__panel--vertical,
    .vmodal__panel--square{max-width:100%; border-radius:0; align-self:center}
    .vmodal__btn{width:44px; height:44px}
}

/* Cursor zoom-in en cards de video (señaliza que se abre el reproductor) */
.video-card.js-video-play{cursor:pointer}

.formx--scheduled{border-left-color:var(--azul);background:var(--azul-suave, #e9eef7)}
.formx--closed{border-left-color:var(--gris-400);background:var(--crema-suave, #faf6ec);opacity:.85}
.formx__notice{margin:6px 0 0;font-size:.95rem;color:var(--gris-700)}
.formx__notice strong{color:var(--azul-oscuro);display:block;margin-bottom:4px}
.formx__hp{position:absolute;left:-9999px;top:-9999px;opacity:0;pointer-events:none;height:0;width:0}
.formx__title{
    margin:0 0 8px;font-family:var(--ff-display);
    font-size:clamp(1.4rem,3.6vw,1.8rem);
    line-height:1.2;color:var(--azul-oscuro, #0f1219);
}
.formx__desc{
    margin:0 0 22px;color:var(--gris-700, #4a5160);
    font-size:.95rem;line-height:1.55;
}
.formx__fields{display:flex;flex-direction:column;gap:18px;margin-bottom:22px}
.formx__field{display:flex;flex-direction:column;gap:6px}
.formx__label{
    font-family:var(--ff-mono);font-size:11px;letter-spacing:.15em;
    text-transform:uppercase;color:var(--gris-700);font-weight:500;
}
.formx__req{color:var(--err, #d23030);font-weight:600}
.formx__hint{font-size:12px;color:var(--gris-600);line-height:1.4;margin-top:2px}
.formx__input{
    width:100%;padding:14px 14px;border:1px solid var(--linea);border-radius:6px;
    font-family:var(--ff-body);font-size:16px;background:#fff;color:var(--gris-900);
    transition:border-color .15s ease, box-shadow .15s ease;
    -webkit-appearance:none;appearance:none;
}
.formx__input:focus{
    outline:none;border-color:var(--azul);
    box-shadow:0 0 0 3px rgba(52,57,74,.15);
}
textarea.formx__input{resize:vertical;min-height:120px;line-height:1.5}
select.formx__input{
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2'><polyline points='6 9 12 15 18 9'/></svg>");
    background-repeat:no-repeat;background-position:right 14px center;background-size:18px;
    padding-right:44px;
}
.formx__group{
    border:1px solid var(--linea);border-radius:6px;padding:14px;margin:0;
    display:flex;flex-direction:column;gap:10px;background:#fff;
}
.formx__group legend{
    font-family:var(--ff-mono);font-size:11px;letter-spacing:.15em;
    text-transform:uppercase;color:var(--gris-700);padding:0 6px;
}
.formx__opt{
    display:flex;align-items:center;gap:10px;padding:8px 4px;
    cursor:pointer;font-size:15px;line-height:1.3;min-height:36px;
}
.formx__opt input{width:20px;height:20px;accent-color:var(--azul);cursor:pointer;flex-shrink:0}
.formx__actions{display:flex;justify-content:flex-end}
.formx__btn{
    background:var(--azul, #34394A);color:#fff;border:none;
    padding:14px 28px;border-radius:6px;cursor:pointer;
    font-family:var(--ff-body);font-size:15px;font-weight:600;
    letter-spacing:.02em;
    transition:background .15s ease, transform .12s ease;
    min-height:48px;min-width:140px;
}
.formx__btn:hover{background:var(--azul-oscuro, #212535)}
.formx__btn:active{transform:scale(.98)}
.formx__btn[disabled]{opacity:.5;cursor:wait}
.formx__feedback{margin-top:14px;font-size:14px}
.formx__feedback.is-ok{color:var(--lima-oscuro, #6d8e1f);font-weight:500}
.formx__feedback.is-err{color:var(--err, #d23030);font-weight:500}

.formx__flash{
    margin:24px 0;padding:14px 18px;border-radius:6px;border-left:3px solid;
    font-size:14px;line-height:1.5;
}
.formx__flash--ok{background:rgba(178,206,80,.12);border-color:var(--lima);color:var(--azul-oscuro)}
.formx__flash--err{background:#fee;border-color:var(--err);color:#7a1f1f}

@media(min-width:760px){
    .formx__fields{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
    .formx__field--textarea,
    .formx__field--checkbox,
    .formx__field--radio{grid-column:1/-1}
}

/* ============================================================
   CONTINUAR EXPLORANDO — bloque de retención al final de la nota
   Mezcla notas relacionadas + videos + próximos eventos.
   ============================================================ */
.continue{
    background:linear-gradient(180deg, transparent 0%, var(--crema, #FAF7F0) 14%);
    border-top:1px solid var(--linea, #e5e7eb);
    margin-top:clamp(48px, 7vw, 96px);
}
.continue .section{padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(32px,4vw,56px)}
.continue .section + .section{border-top:1px solid var(--linea, #e5e7eb)}

/* ── Videos relacionados ──────────────────────────────────── */
.relvideos__grid{
    display:grid;
    gap:clamp(18px, 2.4vw, 28px);
    grid-template-columns:repeat(3, 1fr);
}
@media (max-width:980px){.relvideos__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.relvideos__grid{grid-template-columns:1fr}}

.relvideo{
    display:flex;flex-direction:column;gap:12px;
    color:inherit;text-decoration:none;
    transition:transform var(--dur, .35s) var(--ease, ease);
}
.relvideo:hover{transform:translateY(-3px)}
.relvideo__media{
    position:relative;display:block;
    aspect-ratio:16/9;
    overflow:hidden;border-radius:6px;
    background:#0f1219;
    box-shadow:0 6px 20px -10px rgba(15,18,25,.4);
}
.relvideo--vertical .relvideo__media{aspect-ratio:9/16;max-width:280px}
.relvideo--square   .relvideo__media{aspect-ratio:1/1}
.relvideo__media img{
    width:100%;height:100%;object-fit:cover;
    display:block;
    transition:transform .6s var(--ease, ease), filter .3s ease;
}
.relvideo:hover .relvideo__media img{transform:scale(1.06);filter:brightness(.85)}

.relvideo__play{
    position:absolute;inset:0;margin:auto;
    width:64px;height:64px;border-radius:50%;
    background:rgba(255,255,255,.94);
    color:var(--azul, #34394A);
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 8px 28px -8px rgba(0,0,0,.45);
    transition:transform .25s var(--ease, ease), background .25s ease;
}
.relvideo:hover .relvideo__play{
    transform:scale(1.12);
    background:var(--lima, #94c12d);
    color:var(--azul-oscuro, #212535);
}
.relvideo__play svg{margin-left:3px}

.relvideo__platform{
    position:absolute;top:10px;left:10px;
    background:rgba(15,18,25,.7);color:#fff;
    font-family:var(--ff-mono, monospace);
    font-size:10px;letter-spacing:.1em;
    padding:4px 9px;border-radius:3px;
    backdrop-filter:blur(4px);
}

.relvideo__title{
    font-family:var(--ff-display, Lora, serif);
    font-size:1.05rem;line-height:1.3;
    color:var(--azul-oscuro, #212535);
    font-weight:600;letter-spacing:-.005em;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

/* ── Próximos eventos ─────────────────────────────────────── */
.relevents__list{
    display:flex;flex-direction:column;gap:14px;
}
.relevent{
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:clamp(16px, 2vw, 28px);
    align-items:center;
    padding:18px clamp(18px, 2.4vw, 28px);
    background:#fff;
    border:1px solid var(--linea, #e5e7eb);
    border-left:4px solid var(--lima, #94c12d);
    border-radius:8px;
    color:inherit;text-decoration:none;
    transition:transform var(--dur, .35s) var(--ease, ease),
               box-shadow var(--dur, .35s) var(--ease, ease),
               border-color var(--dur, .35s) ease;
}
.relevent:hover{
    transform:translateY(-2px);
    border-color:var(--lima, #94c12d);
    border-left-color:var(--azul, #34394A);
    box-shadow:0 12px 28px -14px rgba(52,57,74,.25);
}

.relevent__date{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    min-width:72px;padding:10px 14px;
    background:linear-gradient(180deg,#FAF7F0 0%,#fff 100%);
    border:1px solid var(--linea, #e5e7eb);
    border-radius:6px;
    line-height:1;
}
.relevent__day{
    font-family:var(--ff-display, Lora, serif);
    font-size:2rem;font-weight:600;
    color:var(--azul, #34394A);
    letter-spacing:-.02em;
}
.relevent__month{
    font-family:var(--ff-mono, monospace);
    font-size:11px;letter-spacing:.12em;
    color:var(--azul-oscuro, #212535);
    text-transform:uppercase;font-weight:700;
    margin-top:4px;
}
.relevent__year{
    font-size:10px;color:var(--gris-500, #94a3b8);
    margin-top:2px;letter-spacing:.06em;
}

.relevent__body{display:flex;flex-direction:column;gap:6px;min-width:0}
.relevent__cat{
    font-family:var(--ff-mono, monospace);
    font-size:10px;letter-spacing:.1em;
    color:var(--lima-oscuro, #6d8e1f);
    text-transform:uppercase;font-weight:700;
}
.relevent__title{
    font-family:var(--ff-display, Lora, serif);
    font-size:1.15rem;line-height:1.3;
    color:var(--azul-oscuro, #212535);
    font-weight:600;letter-spacing:-.005em;
}
.relevent__meta{
    display:flex;flex-wrap:wrap;gap:14px;
    font-size:13px;color:var(--gris-600, #555);
}
.relevent__meta i{margin-right:4px;color:var(--lima-oscuro, #6d8e1f)}

.relevent__cta{
    display:inline-flex;align-items:center;gap:6px;
    font-size:13px;font-weight:600;
    color:var(--azul, #34394A);
    white-space:nowrap;
    transition:gap .2s ease;
}
.relevent:hover .relevent__cta{gap:10px}

@media (max-width:680px){
    .relevent{grid-template-columns:auto 1fr;gap:16px;padding:16px}
    .relevent__cta{display:none}
    .relevent__title{font-size:1.05rem}
}
@media (max-width:420px){
    .relevent__date{min-width:60px;padding:8px 10px}
    .relevent__day{font-size:1.6rem}
}

/* ─── Expositores ─── */
.expositores-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
    gap:clamp(20px,3vw,36px);
}
.expositor-card{
    display:flex;flex-direction:column;
    border-radius:var(--radio-md);
    overflow:hidden;
    background:var(--blanco);
    box-shadow:var(--sombra-sm);
    transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease);
    text-decoration:none;color:inherit;
}
.expositor-card:hover{box-shadow:var(--sombra-md);transform:translateY(-3px)}
.expositor-card__foto{
    position:relative;
    aspect-ratio:1/1;
    overflow:hidden;
    background:var(--azul-suave);
}
.expositor-card__foto img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur) var(--ease)}
.expositor-card__foto--logo img{object-fit:contain;background:#fff}
.expositor-card:hover .expositor-card__foto img{transform:scale(1.04)}
.expositor-card__placeholder{
    width:100%;height:100%;
    display:flex;align-items:center;justify-content:center;
    color:var(--azul-pale);
}
.expositor-card__badge{
    position:absolute;top:10px;right:10px;
    background:var(--lima);color:var(--blanco);
    font-family:var(--ff-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;
    padding:4px 8px;font-weight:600;
}
.expositor-card__body{padding:18px 20px 22px}
.expositor-card__name{
    font-family:var(--ff-display);font-size:1.1rem;font-weight:600;
    margin:0 0 6px;color:var(--azul);
}
.expositor-card__cargo{font-size:13px;color:var(--gris-600);margin:0 0 4px}
.expositor-card__esp{font-size:12px;color:var(--lima);font-weight:500;margin:0;font-style:italic}

/* ─── Expositor detalle ─── */
.expositor-detalle{padding-top:clamp(32px,4vw,56px);padding-bottom:clamp(60px,8vw,100px)}
.expositor-detalle__layout{
    display:grid;
    grid-template-columns:280px 1fr;
    gap:clamp(32px,5vw,64px);
    align-items:start;
    margin-top:32px;
}
@media(max-width:700px){.expositor-detalle__layout{grid-template-columns:1fr}}
.expositor-detalle__foto{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--radio-md);box-shadow:var(--sombra-md)}
.expositor-detalle__foto-empty{width:100%;aspect-ratio:1/1;background:var(--azul-suave);border-radius:var(--radio-md);display:flex;align-items:center;justify-content:center;color:var(--azul-pale)}
.expositor-detalle__social{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.expositor-social__link{display:flex;align-items:center;gap:10px;color:var(--gris-600);font-size:13px;transition:color var(--dur) var(--ease)}
.expositor-social__link:hover{color:var(--azul)}
.expositor-detalle__nombre{font-size:clamp(1.8rem,3.5vw,2.8rem);margin:6px 0 8px;color:var(--azul)}
.expositor-detalle__cargo{font-size:1.05rem;color:var(--gris-600);margin:0 0 4px;font-weight:500}
.expositor-detalle__org{font-size:.95rem;color:var(--gris-400);margin:0 0 28px}
.expositor-detalle__bio{margin-top:24px;line-height:1.75;color:var(--tinta)}
.expositor-detalle__participa{margin-top:36px;padding-top:28px;border-top:1px solid var(--linea)}
.expositor-detalle__participa h3{font-size:1rem;margin-bottom:14px;color:var(--azul)}
.expositor-participa__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.expositor-participa__list li{display:flex;align-items:center;gap:10px}
.expositor-participa__list a{color:var(--azul);font-weight:500;font-size:.95rem}
.expositor-participa__list a:hover{color:var(--lima)}

/* ─── Talleres ─── */
.talleres-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:clamp(20px,3vw,36px)}
.taller-card{display:flex;flex-direction:column;background:var(--blanco);border-radius:var(--radio-md);overflow:hidden;box-shadow:var(--sombra-sm);text-decoration:none;color:inherit;transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}
.taller-card:hover{box-shadow:var(--sombra-md);transform:translateY(-3px)}
.taller-card--lleno{opacity:.8}
.taller-card__media{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--azul-suave)}
.taller-card__media img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur) var(--ease)}
.taller-card:hover .taller-card__media img{transform:scale(1.04)}
.taller-card__no-img{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--azul-pale)}
.taller-card__badge{position:absolute;top:10px;left:10px;background:var(--lima);color:var(--blanco);font-family:var(--ff-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:4px 8px;font-weight:600}
.taller-card__badge--lleno{background:var(--gris-600);left:auto;right:10px}
.taller-card__body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:10px}
.taller-card__titulo{font-family:var(--ff-display);font-size:1.1rem;font-weight:600;margin:0;color:var(--azul)}
.taller-card__expositor{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--gris-600)}
.taller-card__exp-foto{width:24px;height:24px;border-radius:50%;object-fit:cover;flex-shrink:0}
.taller-card__meta{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--gris-600)}
.taller-card__meta span{display:flex;align-items:center;gap:5px}

/* ─── Taller detalle ─── */
.taller-detalle{padding-top:clamp(32px,4vw,56px);padding-bottom:clamp(60px,8vw,100px)}
.taller-detalle__hero{margin-bottom:36px;border-radius:var(--radio-md);overflow:hidden;max-height:420px}
.taller-detalle__hero img{width:100%;height:100%;object-fit:cover}
.taller-detalle__layout{display:grid;grid-template-columns:1fr 280px;gap:clamp(32px,5vw,56px);align-items:start;margin-top:24px}
@media(max-width:800px){.taller-detalle__layout{grid-template-columns:1fr}}
.taller-detalle__titulo{font-size:clamp(1.8rem,3.5vw,2.8rem);margin:6px 0 24px;color:var(--azul)}
.taller-detalle__desc{line-height:1.75;color:var(--tinta)}
.taller-detalle__expositor{margin-top:36px;padding-top:28px;border-top:1px solid var(--linea)}
.taller-detalle__expositor h3{font-size:1rem;margin-bottom:14px;color:var(--azul)}
.taller-exp-bloque{display:flex;align-items:center;gap:16px;text-decoration:none;color:inherit;transition:opacity var(--dur) var(--ease)}
.taller-exp-bloque:hover{opacity:.8}
.taller-exp-bloque__foto{width:56px;height:56px;border-radius:50%;object-fit:cover;flex-shrink:0}
.taller-exp-bloque strong{display:block;font-weight:600;color:var(--azul)}
.taller-exp-bloque p{margin:2px 0 0;font-size:13px;color:var(--gris-600)}
.taller-detalle__inscripcion{margin-top:36px;padding-top:28px;border-top:1px solid var(--linea)}
.taller-detalle__inscripcion h3{font-size:1.1rem;margin-bottom:16px;color:var(--azul)}
.taller-detalle__ficha{background:var(--azul-suave);border-radius:var(--radio-md);padding:24px;position:sticky;top:90px}
.taller-detalle__ficha h4{margin:0 0 16px;font-family:var(--ff-mono);font-size:11px;color:var(--azul);text-transform:uppercase;letter-spacing:.08em}
.taller-ficha__dl{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0;font-size:14px}
.taller-ficha__dl dt{color:var(--gris-400);font-weight:500;white-space:nowrap}
.taller-ficha__dl dd{margin:0;color:var(--tinta)}

/* ─── Agenda ─── */
.agenda-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:32px;border-bottom:1px solid var(--linea);padding-bottom:0}
.agenda-tab{padding:12px 20px;font-family:var(--ff-mono);font-size:12px;letter-spacing:.04em;color:var(--gris-600);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.agenda-tab:hover{color:var(--azul)}
.agenda-tab.is-active{color:var(--azul);border-bottom-color:var(--lima);font-weight:600}
.agenda-dia.is-hidden{display:none}
.agenda-dia__head{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.agenda-dia__titulo{font-size:clamp(1.5rem,2.6vw,2rem);margin:0;color:var(--azul)}
.agenda-dia__fecha{font-family:var(--ff-mono);font-size:13px;color:var(--gris-400);text-transform:capitalize}
.agenda-dia__desc{color:var(--gris-600);margin:0 0 28px;max-width:60ch}
.agenda-timeline{display:flex;flex-direction:column;gap:0}
.agenda-sesion{display:grid;grid-template-columns:90px 1fr;gap:20px;padding:22px 0;border-top:1px solid var(--linea)}
.agenda-sesion:last-child{border-bottom:1px solid var(--linea)}
.agenda-sesion__hora{display:flex;flex-direction:column;font-family:var(--ff-mono);font-size:14px;color:var(--azul);line-height:1.4}
.agenda-sesion__hora strong{font-weight:600}
.agenda-sesion__hora span{color:var(--gris-400);font-size:12px}
.agenda-sesion__tipo{display:inline-block;color:var(--blanco);font-family:var(--ff-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:4px 9px;font-weight:600;margin-bottom:8px}
.agenda-sesion__titulo{font-family:var(--ff-display);font-size:1.2rem;font-weight:600;margin:0 0 6px;color:var(--gris-900)}
.agenda-sesion__meta{font-size:13px;color:var(--gris-600);margin-bottom:6px}
.agenda-sesion__meta a{color:var(--azul);font-weight:500}
.agenda-sesion__meta a:hover{color:var(--lima)}
.agenda-sesion__desc{font-size:14px;color:var(--gris-600);margin:6px 0 0;line-height:1.6}
.agenda-sesion__link{display:inline-block;margin-top:10px;font-size:13px;font-weight:600;color:var(--lima)}
.agenda-sesion__link:hover{text-decoration:underline}
@media(max-width:560px){.agenda-sesion{grid-template-columns:70px 1fr;gap:14px}}

/* ─── Galería: tabs + fotos ─── */
.galeria-empty{color:var(--gris-600);padding:30px 0}
.galeria-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px;border-bottom:1px solid var(--linea)}
.galeria-tab{padding:12px 22px;font-family:var(--ff-mono);font-size:12px;letter-spacing:.04em;color:var(--gris-600);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;background:none;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.galeria-tab:hover{color:var(--azul)}
.galeria-tab.is-active{color:var(--azul);border-bottom-color:var(--lima);font-weight:600}
.galeria-tab small{color:var(--gris-400);font-weight:400}
.galeria-panel.is-hidden{display:none}
.fotos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.foto-item{position:relative;display:block;overflow:hidden;border-radius:var(--radio-md);aspect-ratio:1/1;background:var(--azul-suave)}
.foto-item img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur) var(--ease)}
.foto-item:hover img{transform:scale(1.05)}
.foto-item__cap{position:absolute;left:0;right:0;bottom:0;padding:22px 12px 10px;display:flex;flex-direction:column;gap:2px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.68));opacity:0;transition:opacity var(--dur) var(--ease)}
.foto-item__tit{font-size:12px;line-height:1.3;font-weight:600}
.foto-item__cred{font-family:var(--ff-mono);font-size:10px;letter-spacing:.06em;color:rgba(255,255,255,.78)}
.foto-item:hover .foto-item__cap{opacity:1}
.galeria-tab:focus-visible,
.galeria-panel:focus-visible,
.foto-item:focus-visible{outline:2px solid var(--lima);outline-offset:3px}
/* Video sin thumbnail: fondo de marca en lugar de una imagen externa */
.video-card--sin-thumb{background:linear-gradient(135deg,var(--azul-oscuro),var(--azul))}

/* ─── Conferencias ─── */
.conf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:clamp(20px,3vw,36px)}
.conf-card{display:flex;flex-direction:column;background:var(--blanco);border-radius:var(--radio-md);overflow:hidden;box-shadow:var(--sombra-sm);text-decoration:none;color:inherit;transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}
.conf-card:hover{box-shadow:var(--sombra-md);transform:translateY(-3px)}
.conf-card__media{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--azul-suave)}
.conf-card__media img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur) var(--ease)}
.conf-card:hover .conf-card__media img{transform:scale(1.04)}
.conf-card__no-img{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--azul-pale)}
.conf-card__badge{position:absolute;top:10px;left:10px;background:var(--lima);color:var(--blanco);font-family:var(--ff-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:4px 8px;font-weight:600}
.conf-card__body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:10px}
.conf-card__titulo{font-family:var(--ff-display);font-size:1.15rem;font-weight:600;margin:0;color:var(--azul)}
.conf-card__ponente{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--gris-600)}
.conf-card__pon-foto{width:26px;height:26px;border-radius:50%;object-fit:cover;flex-shrink:0}
.conf-card__meta{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--gris-600)}

/* ─── Conferencia detalle ─── */
.conf-detalle{padding-top:clamp(32px,4vw,56px);padding-bottom:clamp(60px,8vw,100px)}
.conf-detalle__hero{margin-bottom:36px;border-radius:var(--radio-md);overflow:hidden;max-height:420px}
.conf-detalle__hero img{width:100%;height:100%;object-fit:cover}
.conf-detalle__layout{display:grid;grid-template-columns:1fr 260px;gap:clamp(32px,5vw,56px);align-items:start;margin-top:24px}
@media(max-width:800px){.conf-detalle__layout{grid-template-columns:1fr}}
.conf-detalle__titulo{font-size:clamp(1.8rem,3.5vw,2.8rem);margin:6px 0 20px;color:var(--azul)}
.conf-ponente{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;margin-bottom:24px;transition:opacity var(--dur) var(--ease)}
.conf-ponente:hover{opacity:.8}
.conf-ponente__foto{width:52px;height:52px;border-radius:50%;object-fit:cover;flex-shrink:0}
.conf-ponente strong{display:block;font-weight:600;color:var(--azul)}
.conf-ponente p{margin:2px 0 0;font-size:13px;color:var(--gris-600)}
.conf-detalle__resumen{line-height:1.75;color:var(--tinta)}
.conf-detalle__videos{margin-top:36px;padding-top:28px;border-top:1px solid var(--linea)}
.conf-detalle__videos h3,.conf-detalle__fotos h3{font-size:1.1rem;margin-bottom:16px;color:var(--azul)}
.conf-video{position:relative;aspect-ratio:16/9;margin-bottom:18px;border-radius:var(--radio-md);overflow:hidden;background:#000}
.conf-detalle__fotos{margin-top:36px;padding-top:28px;border-top:1px solid var(--linea)}
.conf-detalle__ficha{background:var(--azul-suave);border-radius:var(--radio-md);padding:24px;position:sticky;top:90px}
.conf-detalle__ficha h4{margin:0 0 16px;font-family:var(--ff-mono);font-size:11px;color:var(--azul);text-transform:uppercase;letter-spacing:.08em}

/* ══════════════════════════════════════════════════════════════════════════
   HOME DEL FESTIVAL — "bitácora de campo del observador"
   Namespace .fh-  ·  paleta institucional navy + rojo + crema
   ══════════════════════════════════════════════════════════════════════════ */

/* — reveal: efecto "enfoque de binoculares" (blur→nítido) al hacer scroll — */
[data-reveal]{opacity:0;transform:translateY(20px);filter:blur(7px);transition:opacity .7s var(--ease),transform .7s var(--ease),filter .7s var(--ease)}
[data-reveal].is-in{opacity:1;transform:none;filter:blur(0)}
/* stagger de hijos directos de contenedores revelables */
.fh-cards.is-in>*,.fh-flow.is-in>*,.fh-conf.is-in>*,.fh-mosaic.is-in>*,.fh-people.is-in>*,.fh-events.is-in>*,.fh-agenda.is-in>*{animation:fhRise .6s var(--ease) both}
.fh-cards.is-in>*:nth-child(2),.fh-flow.is-in>*:nth-child(2),.fh-conf.is-in>*:nth-child(2),.fh-mosaic.is-in>*:nth-child(2),.fh-people.is-in>*:nth-child(2),.fh-events.is-in>*:nth-child(2),.fh-agenda.is-in>*:nth-child(2){animation-delay:.08s}
.fh-cards.is-in>*:nth-child(3),.fh-flow.is-in>*:nth-child(3),.fh-conf.is-in>*:nth-child(3),.fh-mosaic.is-in>*:nth-child(3),.fh-people.is-in>*:nth-child(3),.fh-events.is-in>*:nth-child(3),.fh-agenda.is-in>*:nth-child(3){animation-delay:.16s}
.fh-cards.is-in>*:nth-child(4),.fh-flow.is-in>*:nth-child(4),.fh-mosaic.is-in>*:nth-child(4),.fh-people.is-in>*:nth-child(4),.fh-events.is-in>*:nth-child(4){animation-delay:.24s}
.fh-mosaic.is-in>*:nth-child(n+5),.fh-people.is-in>*:nth-child(n+5){animation-delay:.3s}
@keyframes fhRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ── animaciones agradables del home (sobre el sistema data-reveal) ── */
:root{--ease-spring:cubic-bezier(.34,1.5,.5,1)}

/* Masthead: glow que respira y deriva; foto que flota suave y hace zoom al hover */
.fh-mast__glow{animation:fhGlow 16s ease-in-out infinite;will-change:transform,opacity}
@keyframes fhGlow{0%,100%{transform:translate3d(0,0,0) scale(1);opacity:.85}50%{transform:translate3d(-2%,1.6%,0) scale(1.09);opacity:1}}
.fh-mast__media{animation:fhFloat 7s ease-in-out infinite}
@keyframes fhFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.fh-mast__media img{transition:transform .6s var(--ease)}
.fh-mast__media:hover img{transform:scale(1.03)}
.fh-mast__badge{animation:fhBadge 2.8s ease-in-out infinite}
@keyframes fhBadge{0%,100%{box-shadow:0 0 0 0 rgba(229,48,46,.5)}70%{box-shadow:0 0 0 11px rgba(229,48,46,0)}}

/* Encabezado de sección: número con pop elástico y barra de acento que crece */
.fh-head{position:relative}
.fh-head::after{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--lima);border-radius:2px;transition:width .85s var(--ease) .15s}
.fh-head.is-in::after{width:clamp(48px,7vw,96px)}
.fh-head.is-in .fh-head__count{animation:fhPop .7s var(--ease-spring) both}
@keyframes fhPop{from{opacity:0;transform:translateY(12px) scale(.8)}to{opacity:1;transform:none}}

/* CTA de sección: el texto se desliza junto a la flecha al pasar el mouse */
.fh-head__cta span{transition:transform .3s var(--ease)}
.fh-head__cta:hover span{transform:translateX(2px)}

/* — utilidades — */
.fh-accent{color:var(--lima)}
.fh-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--ff-mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--azul-medio)}
.fh-eyebrow::before{content:"";width:26px;height:2px;background:var(--lima)}
.fh-eyebrow--light{color:var(--azul-pale)}

/* ── MASTHEAD ── */
.fh-mast{position:relative;background:var(--azul-oscuro);color:var(--crema);overflow:hidden;padding:clamp(56px,9vw,120px) 0 clamp(48px,7vw,96px)}
.fh-mast__glow{position:absolute;inset:0;background:
    radial-gradient(60% 60% at 82% 8%, rgba(229,48,46,.28), transparent 60%),
    radial-gradient(50% 50% at 0% 100%, rgba(78,84,113,.5), transparent 60%);
    pointer-events:none}
.fh-mast__grid{position:relative;display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:center}
.fh-mast__grid--full{grid-template-columns:1fr}
.fh-mast__media{position:relative;border-radius:16px;overflow:hidden;box-shadow:var(--sombra-lg);background:rgba(255,255,255,.05)}
.fh-mast__media img{width:100%;height:auto;display:block}
.fh-mast__badge{position:absolute;top:14px;left:14px;background:var(--lima);color:#fff;font-family:var(--ff-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:6px 12px;border-radius:999px}
.fh-mast__title{font-family:var(--ff-display);font-weight:500;color:var(--crema);font-size:clamp(2rem,5.4vw,4.4rem);line-height:1.04;letter-spacing:-.015em;margin:22px 0 0;overflow-wrap:break-word}
.fh-mast__lede{margin:20px 0 0;max-width:44ch;color:#cfd3e0;font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.6}
.fh-mast__meta{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:30px;font-family:var(--ff-mono);font-size:12.5px;color:#aeb3c4}
.fh-mast__meta b{color:var(--crema);font-weight:500;margin-right:6px;text-transform:uppercase;letter-spacing:.06em;font-size:11px}
/* video vertical en lugar de la imagen (Admin → Hero → Video en la cabecera).
   Marco 9:16 más angosto que la foto: ≤ 62vh de alto, centrado en su columna. */
.fh-mast__grid--video{grid-template-columns:1.25fr 1fr}
.fh-mast__media--video{justify-self:center;width:min(100%,400px,calc(62vh * .5625));aspect-ratio:9/16;background:#151826}
.fh-mast__media--video .fh-hv__video,.fh-mast__media--video .fh-hv__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.fh-mast__media--video .fh-hv__poster{transition:opacity .6s var(--ease)}
.fh-mast__media--video:hover img{transform:none}
.fh-mast__media--video.is-playing .fh-hv__poster{opacity:0;pointer-events:none}
.fh-mast__media--video::after{content:"";position:absolute;inset:auto 0 0 0;height:34%;pointer-events:none;
    background:linear-gradient(to top,rgba(21,24,38,.55),transparent)}
.fh-hv__bar{position:absolute;z-index:2;left:12px;right:12px;bottom:14px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.fh-hv__bar[hidden],.fh-hv__play[hidden]{display:none}
.fh-hv__btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:0 14px;
    border-radius:999px;border:1px solid rgba(250,247,240,.28);background:rgba(33,37,53,.62);color:var(--crema);
    -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--ff-mono);font-size:11px;letter-spacing:.06em;
    text-transform:uppercase;cursor:pointer;transition:background .2s,border-color .2s}
.fh-hv__btn--ico{padding:0;width:44px}
.fh-hv__btn:hover{background:rgba(33,37,53,.85);border-color:rgba(250,247,240,.5)}
.fh-hv__btn i{font-size:14px}
.fh-hv__txt:empty{display:none}
.fh-hv__play{position:absolute;z-index:2;top:50%;left:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;border:0;
    background:var(--lima);color:#fff;font-size:26px;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.35);transition:transform .25s var(--ease)}
.fh-hv__play i{margin-left:4px}
.fh-hv__play:hover{transform:scale(1.06)}
.fh-hv__link{position:absolute;z-index:2;top:12px;right:12px;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.06em;
    text-transform:uppercase;color:var(--crema);text-decoration:none;padding:7px 11px;border-radius:999px;
    background:rgba(33,37,53,.55);border:1px solid rgba(250,247,240,.22);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.fh-hv__link::after{content:"";position:absolute;inset:-8px -4px}   /* área táctil ≥ 44 px */
.fh-hv__link:hover{background:rgba(33,37,53,.85);color:#fff}
.fh-hv__btn:focus-visible,.fh-hv__play:focus-visible,.fh-hv__link:focus-visible,.fh-hv__seek:focus-visible{outline:2px solid var(--lima);outline-offset:3px}
/* el marco: tocarlo es «Ver con sonido» (avance) o reproducir/pausar (completo) */
.fh-mast__media--video{cursor:pointer}
.fh-mast__media--video:focus-visible{outline:2px solid var(--lima);outline-offset:4px}
/* la flotación se congela (sin salto) para que los controles no se muevan bajo el puntero */
.fh-mast__media--video:hover,.fh-mast__media--video:focus-within,.fh-mast__media--video.is-full{animation-play-state:paused}
.fh-mast__media--video.is-instant .fh-hv__poster{transition:none}
.fh-mast__media--video.is-full::after{height:46%;background:linear-gradient(to top,rgba(21,24,38,.8),transparent)}
.fh-mast__media--video.is-full .fh-mast__badge{display:none}
/* reproductor del video completo */
.fh-hv__back{position:absolute;z-index:3;top:12px;left:12px}
.fh-hv__back[hidden],.fh-hv__player[hidden]{display:none}
.fh-hv__player{position:absolute;z-index:3;left:10px;right:10px;bottom:10px;display:flex;flex-direction:column;gap:2px}
.fh-hv__seek{position:relative;height:44px;display:flex;align-items:center;padding:0 8px;cursor:pointer;touch-action:none;border-radius:8px}
.fh-hv__track{position:relative;flex:1;height:4px;border-radius:4px;background:rgba(250,247,240,.3);transition:height .15s}
.fh-hv__fill{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:4px;background:var(--lima)}
.fh-hv__thumb{position:absolute;top:50%;left:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--lima);
    box-shadow:0 0 0 3px rgba(250,247,240,.9);transition:transform .15s}
.fh-hv__seek:hover .fh-hv__track,.fh-hv__seek:focus-visible .fh-hv__track,.fh-hv__seek.is-drag .fh-hv__track{height:6px}
.fh-hv__seek:hover .fh-hv__thumb,.fh-hv__seek:focus-visible .fh-hv__thumb,.fh-hv__seek.is-drag .fh-hv__thumb{transform:scale(1.25)}
.fh-hv__row{display:flex;align-items:center;gap:4px}
.fh-hv__time{margin-right:auto;padding-left:4px;font-family:var(--ff-mono);font-size:11px;letter-spacing:.02em;color:var(--crema);
    font-variant-numeric:tabular-nums;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.fh-hv__player,.fh-hv__back,.fh-hv__link{transition:opacity .3s ease}
.fh-mast__media--video.is-idle{cursor:none}
.fh-mast__media--video.is-idle .fh-hv__player,.fh-mast__media--video.is-idle .fh-hv__back,
.fh-mast__media--video.is-idle .fh-hv__link{opacity:0;pointer-events:none}
.fh-mast__media--video.is-idle::after{opacity:0}
.fh-mast__media--video::after{transition:opacity .3s ease}
/* pantalla completa del marco (el iPhone usa el reproductor nativo) */
.fh-mast__media--video:fullscreen{width:100%;height:100%;max-width:none;aspect-ratio:auto;border-radius:0;background:#000;animation:none}
.fh-mast__media--video:-webkit-full-screen{width:100%;height:100%;max-width:none;aspect-ratio:auto;border-radius:0;background:#000;animation:none}
.fh-mast__media--video.is-fs .fh-hv__video,.fh-mast__media--video.is-fs .fh-hv__poster{object-fit:contain}
.fh-mast__media--video.is-fs .fh-hv__player{left:50%;right:auto;width:min(720px,calc(100% - 32px));transform:translateX(-50%);bottom:16px}
/* intro del splash: la foto se funde en el avance mientras la figura pasa a 9:16 */
.fat-splash__fig .fat-splash__layer{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .7s ease}
.fat-splash__fig .fat-splash__img{transition:opacity .7s ease}
.fat-splash__fig.is-swapped .fat-splash__layer{opacity:1}
.fat-splash__fig.is-swapped .fat-splash__img{opacity:0}
/* índice de campo */
.fh-index{border:1px solid rgba(184,189,206,.22);border-radius:14px;padding:22px 22px 10px;background:rgba(255,255,255,.02);backdrop-filter:blur(2px)}
.fh-index__h{display:block;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--azul-pale);margin-bottom:12px}
.fh-index ul{list-style:none;margin:0;padding:0}
.fh-index li+li{border-top:1px solid rgba(184,189,206,.12)}
.fh-index a{display:flex;align-items:center;gap:14px;padding:11px 0;color:#d7dae4;font-size:14.5px;transition:color .25s var(--ease),padding .25s var(--ease)}
.fh-index__n{font-family:var(--ff-mono);font-size:11px;color:var(--lima);min-width:20px}
.fh-index a:hover{color:#fff;padding-left:8px}
.fh-index a:hover .fh-index__n{color:var(--crema)}

/* ── CARCASA DE SECCIÓN ── */
.fh-main{display:block}
.fh-sec{padding:clamp(52px,7vw,104px) 0;background:var(--crema)}
.fh-sec--tint{background:var(--azul-suave)}
.fh-sec--dark{background:var(--azul-oscuro);color:var(--crema)}

/* encabezado de sección con "conteo de campo" */
.fh-head{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:clamp(18px,3vw,48px);padding-bottom:clamp(26px,3vw,42px);margin-bottom:clamp(28px,3vw,44px);border-bottom:1px solid var(--linea)}
.fh-sec--dark .fh-head{border-bottom-color:rgba(184,189,206,.2)}
.fh-head__meta{display:flex;flex-direction:column;line-height:1}
.fh-head__count{font-family:var(--ff-display);font-weight:600;font-size:clamp(2.6rem,4.6vw,3.8rem);color:var(--lima);letter-spacing:-.02em}
.fh-head__unit{font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gris-400);margin-top:6px;white-space:nowrap}
.fh-sec--dark .fh-head__unit{color:var(--azul-pale)}
.fh-head__mid{min-width:0}
.fh-head__title{font-family:var(--ff-display);font-weight:500;font-size:clamp(1.7rem,3.1vw,2.6rem);line-height:1.08;color:var(--gris-900);letter-spacing:-.01em}
.fh-head__title .fh-accent{color:inherit}
.fh-sec--dark .fh-head__title{color:var(--crema)}
.fh-head__sub{margin-top:10px;color:var(--gris-600);font-size:1rem;max-width:52ch}
.fh-sec--dark .fh-head__sub{color:#c3c7d5}
.fh-head__cta{display:inline-flex;align-items:center;gap:9px;font-family:var(--ff-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--azul);white-space:nowrap;align-self:center}
.fh-head__cta svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.fh-head__cta:hover{color:var(--lima)}
.fh-head__cta:hover svg{transform:translateX(5px)}
.fh-sec--dark .fh-head__cta{color:var(--crema)}
.fh-sec--dark .fh-head__cta:hover{color:var(--lima)}

/* ── TARJETAS GENÉRICAS (notas, rutas, talleres) ── */
.fh-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,1.8vw,26px)}
.fh-card{display:flex;flex-direction:column;background:var(--blanco);border:1px solid var(--linea);border-radius:14px;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease)}
.fh-sec--tint .fh-card{background:var(--crema-suave)}
.fh-card:hover{transform:translateY(-6px);box-shadow:var(--sombra-lg);border-color:transparent}
.fh-card__media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--azul-suave)}
.fh-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.fh-card:hover .fh-card__media img{transform:scale(1.06)}
.fh-card__media--logo img{object-fit:contain;background:#fff}
.fh-card__tag{position:absolute;top:12px;left:12px;background:rgba(33,37,53,.82);color:var(--crema);font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.05em;padding:5px 10px;border-radius:999px;text-transform:uppercase}
.fh-card__body{padding:18px 18px 20px;display:flex;flex-direction:column;gap:9px;flex:1}
.fh-card__title{font-family:var(--ff-display);font-weight:500;font-size:1.18rem;line-height:1.25;color:var(--gris-900)}
.fh-card__title a:hover{color:var(--lima)}
.fh-card__excerpt{color:var(--gris-600);font-size:.94rem;line-height:1.55;flex:1}
.fh-card__meta{font-family:var(--ff-mono);font-size:11px;color:var(--gris-400);letter-spacing:.02em}
.fh-card__meta i{color:var(--lima);margin-right:3px}

/* badge de dificultad de ruta */
.fh-dif{position:absolute;bottom:12px;left:12px;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;padding:5px 11px;border-radius:999px;color:#fff;backdrop-filter:blur(2px)}
.fh-dif--baja{background:rgba(46,125,50,.92)}
.fh-dif--media{background:rgba(183,36,34,.92)}
.fh-dif--alta{background:rgba(33,37,53,.92)}

/* ── PROGRAMACIÓN (flujo tipo bitácora) ── */
.fh-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.6vw,22px)}
.fh-prog{display:flex;flex-direction:column;gap:10px;padding:24px 22px;background:var(--blanco);border:1px solid var(--linea);border-top:3px solid var(--lima);border-radius:12px;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.fh-prog:hover{transform:translateY(-5px);box-shadow:var(--sombra-md)}
.fh-prog__date{font-family:var(--ff-mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--lima)}
.fh-prog__title{font-family:var(--ff-display);font-weight:500;font-size:1.22rem;line-height:1.22;color:var(--gris-900)}
.fh-prog__sub{color:var(--gris-600);font-size:.92rem;line-height:1.5;flex:1}
.fh-prog__go{font-family:var(--ff-mono);font-size:11px;color:var(--azul);text-transform:uppercase;letter-spacing:.05em}
.fh-prog:hover .fh-prog__go{color:var(--lima)}

/* ── CONFERENCIAS (lista de piezas anchas) ── */
.fh-conf{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.8vw,26px)}
.fh-conf__item{display:flex;flex-direction:column;background:var(--blanco);border:1px solid var(--linea);border-radius:14px;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.fh-conf__item:hover{transform:translateY(-6px);box-shadow:var(--sombra-lg)}
.fh-conf__media{aspect-ratio:16/10;overflow:hidden;background:var(--azul-suave)}
.fh-conf__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.fh-conf__item:hover .fh-conf__media img{transform:scale(1.05)}
.fh-conf__body{padding:20px;display:flex;flex-direction:column;gap:9px}
.fh-conf__when{font-family:var(--ff-mono);font-size:11px;color:var(--lima);letter-spacing:.04em;text-transform:uppercase}
.fh-conf__title{font-family:var(--ff-display);font-weight:500;font-size:1.25rem;line-height:1.24;color:var(--gris-900)}
.fh-conf__sub{color:var(--gris-600);font-size:.94rem;line-height:1.55}
.fh-conf__room{font-family:var(--ff-mono);font-size:11px;color:var(--gris-400);margin-top:2px}

/* ── GALERÍA (mosaico) ── */
.fh-mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:12px}
.fh-tile{position:relative;overflow:hidden;border-radius:12px;background:var(--azul-suave)}
/* Tile sin imagen: fondo de marca en vez de un placeholder externo */
.fh-tile--sin-img{background:linear-gradient(135deg,var(--azul-suave),var(--azul-pale))}
.fh-tile:first-child{grid-column:span 2;grid-row:span 2}
.fh-tile img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.fh-tile:hover img{transform:scale(1.07)}
.fh-tile__cap{position:absolute;left:0;right:0;bottom:0;padding:22px 14px 12px;color:#fff;font-size:12.5px;font-weight:500;background:linear-gradient(transparent,rgba(28,32,51,.8));opacity:0;transform:translateY(6px);transition:opacity .3s var(--ease),transform .3s var(--ease)}
.fh-tile:hover .fh-tile__cap{opacity:1;transform:none}
.fh-tile__play{position:absolute;inset:0;margin:auto;width:52px;height:52px;display:grid;place-items:center;background:rgba(229,48,46,.92);color:#fff;border-radius:50%;font-size:15px;transition:transform .3s var(--ease)}
.fh-tile:hover .fh-tile__play{transform:scale(1.12)}

/* ── AGENDA (timeline en oscuro) ── */
.fh-agenda{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,30px)}
.fh-day{background:rgba(255,255,255,.03);border:1px solid rgba(184,189,206,.16);border-radius:14px;padding:22px 22px 8px}
.fh-day__head{padding-bottom:14px;margin-bottom:8px;border-bottom:1px solid rgba(184,189,206,.16)}
.fh-day__date{font-family:var(--ff-mono);font-size:11px;color:var(--lima);text-transform:uppercase;letter-spacing:.05em}
.fh-day__title{font-family:var(--ff-display);font-weight:500;font-size:1.3rem;color:var(--crema);margin-top:4px}
.fh-day__list{list-style:none;margin:0;padding:0}
.fh-ses{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:11px;padding:11px 0;border-top:1px solid rgba(184,189,206,.1)}
.fh-ses:first-child{border-top:0}
.fh-ses__time{font-family:var(--ff-mono);font-size:12px;color:var(--azul-pale)}
.fh-ses__dot{width:8px;height:8px;border-radius:50%}
.fh-ses__title{font-size:.95rem;color:#dde0e9;line-height:1.35}
.fh-ses--empty{color:var(--azul-pale);font-style:italic;grid-template-columns:1fr}

/* ── EXPOSITORES (perfiles) ── */
.fh-people{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2vw,30px)}
.fh-person{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:8px}
.fh-person__photo{width:clamp(150px,16vw,210px);height:clamp(150px,16vw,210px);border-radius:50%;overflow:hidden;background:var(--blanco);border:3px solid var(--blanco);box-shadow:var(--sombra-md);transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.fh-person__photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.fh-person:hover .fh-person__photo{transform:translateY(-5px);box-shadow:var(--sombra-lg)}
.fh-person:hover .fh-person__photo img{transform:scale(1.08)}
.fh-person__name{font-family:var(--ff-display);font-weight:500;font-size:1.02rem;color:var(--gris-900);line-height:1.2}
.fh-person__role{font-family:var(--ff-mono);font-size:10.5px;color:var(--gris-400);text-transform:uppercase;letter-spacing:.04em;line-height:1.4}

/* ── EVENTOS (lista) ── */
.fh-events{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.fh-event a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:18px 22px;background:var(--blanco);border:1px solid var(--linea);border-radius:12px;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease)}
.fh-event a:hover{transform:translateX(6px);box-shadow:var(--sombra-md);border-color:transparent}
.fh-event__date{font-family:var(--ff-display);font-weight:600;font-size:1.9rem;color:var(--lima);line-height:1;min-width:44px;text-align:center}
.fh-event__title{display:block;font-family:var(--ff-display);font-weight:500;font-size:1.15rem;color:var(--gris-900)}
.fh-event__meta{display:block;font-family:var(--ff-mono);font-size:11px;color:var(--gris-400);margin-top:3px;letter-spacing:.02em}
.fh-event__go{width:20px;height:20px;color:var(--azul-pale);transition:transform .3s var(--ease),color .3s var(--ease)}
.fh-event a:hover .fh-event__go{color:var(--lima);transform:translateX(4px)}

/* ── CONTACTO (CTA en oscuro con formulario) ── */
.fh-contact{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.fh-contact__title{font-family:var(--ff-display);font-weight:500;font-size:clamp(1.8rem,3.4vw,2.9rem);line-height:1.1;color:var(--crema);margin-top:16px}
.fh-contact__lede{margin-top:16px;color:#c3c7d5;font-size:1.05rem;line-height:1.6;max-width:42ch}
.fh-contact__data{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:12px}
.fh-contact__data li{display:flex;align-items:center;gap:12px;font-size:.98rem;color:#d7dae4}
.fh-contact__data i{color:var(--lima);width:18px;text-align:center}
.fh-contact__data a:hover{color:var(--lima)}
.fh-contact__form{background:rgba(255,255,255,.04);border:1px solid rgba(184,189,206,.2);border-radius:16px;padding:clamp(22px,3vw,34px);display:grid;gap:16px}
.fh-field{display:grid;gap:7px}
.fh-field label{font-family:var(--ff-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--azul-pale)}
.fh-field input,.fh-field textarea{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(184,189,206,.28);border-radius:9px;padding:12px 14px;color:var(--crema);font-family:var(--ff-body);font-size:.98rem;transition:border-color .25s var(--ease),background .25s var(--ease)}
.fh-field input:focus,.fh-field textarea:focus{outline:none;border-color:var(--lima);background:rgba(255,255,255,.1)}
.fh-field textarea{resize:vertical;min-height:82px}
.fh-submit{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--lima);color:#fff;border:0;border-radius:9px;padding:14px 22px;font-family:var(--ff-body);font-weight:600;font-size:.98rem;cursor:pointer;transition:background .25s var(--ease),transform .25s var(--ease)}
.fh-submit svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.fh-submit:hover{background:var(--lima-oscuro);transform:translateY(-2px)}
.fh-submit:hover svg{transform:translateX(4px)}
.fh-submit--wa:hover svg{transform:none;scale:1.08}
.fh-contact__nota{margin:0;font-size:.82rem;line-height:1.5;color:#a8adbd}

/* ── RESPONSIVE ── */
@media(max-width:1080px){
  .fh-cards,.fh-flow{grid-template-columns:repeat(2,1fr)}
  .fh-conf,.fh-agenda{grid-template-columns:1fr;gap:16px}
  .fh-people{grid-template-columns:repeat(3,1fr)}
  .fh-mosaic{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:860px){
  .fh-mast__grid{grid-template-columns:1fr}
  .fh-mast__media--video{width:min(70%,360px,calc(75vh * .5625))}
  .fh-mast__media--video.is-full:not(.is-fs) .fh-hv__link{display:none}   /* marco angosto: «Volver» no cabe al lado */
  .fh-index{margin-top:8px}
  .fh-contact{grid-template-columns:1fr}
  .fh-head{grid-template-columns:auto 1fr;gap:16px 22px}
  .fh-head__cta{grid-column:1/-1;justify-self:start;margin-top:4px}
}
@media(max-width:560px){
  .fh-cards,.fh-flow,.fh-people,.fh-mosaic{grid-template-columns:repeat(2,1fr)}
  .fh-person__photo{width:clamp(120px,38vw,170px);height:clamp(120px,38vw,170px)}
  .fh-mosaic{grid-auto-rows:140px}
  .fh-tile:first-child{grid-column:span 2;grid-row:span 1}
  .fh-head__count{font-size:2.4rem}
  .fh-mast__title{font-size:clamp(1.7rem,7.4vw,2.2rem);line-height:1.1}
  .fh-mast{padding-top:40px}
  .fh-event a{gap:12px;padding:16px}
  .fh-event__date{font-size:1.5rem;min-width:34px}
}

/* ── accesibilidad: sin movimiento ── */
@media(prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1;transform:none;filter:none;transition:none}
  .fh-cards.is-in>*,.fh-flow.is-in>*,.fh-conf.is-in>*,.fh-mosaic.is-in>*,.fh-people.is-in>*,.fh-events.is-in>*,.fh-agenda.is-in>*{animation:none}
  .fh-card,.fh-prog,.fh-conf__item,.fh-event a,.fh-person__photo,.fh-tile img,.fh-card__media img,.fh-conf__media img{transition:none}
  .fh-mast__glow,.fh-mast__media,.fh-mast__badge,.fh-head.is-in .fh-head__count{animation:none}
  .fh-mast__media{transform:none}
  .fh-mast__media--video .fh-hv__poster,.fh-hv__play,.fh-hv__track,.fh-hv__thumb{transition:none}
  .fh-head::after{transition:none}
}

/* ===================================================================
   PÁGINAS DE DETALLE — sistema "Ficha de campo" (.dt-*)
   conferencista / tallerista / conferencia / taller
   =================================================================== */
.dt{background:var(--crema)}

/* — Banda de cabecera navy — */
.dt-hero{position:relative;background:var(--azul-oscuro);color:var(--crema);overflow:hidden;padding:clamp(22px,3.4vw,38px) 0 clamp(74px,10vw,132px)}
.dt-hero::before{content:"";position:absolute;inset:0;pointer-events:none;
    background:radial-gradient(58% 70% at 90% -6%,rgba(229,48,46,.22),transparent 60%),radial-gradient(52% 62% at -4% 106%,rgba(78,84,113,.6),transparent 60%)}
.dt-hero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
    background:repeating-radial-gradient(circle at 92% -8%,rgba(255,255,255,.05) 0 1px,transparent 1px 38px)}
.dt-hero__wrap{position:relative;z-index:1}
.dt-hero__back{display:inline-flex;align-items:center;gap:9px;font-family:var(--ff-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--azul-pale);text-decoration:none;margin-bottom:clamp(20px,3vw,34px);transition:color .2s,gap .2s}
.dt-hero__back:hover{color:var(--crema);gap:13px}
.dt-hero__grid{display:grid;grid-template-columns:1fr;gap:clamp(24px,4vw,56px);align-items:center}
.dt-hero__grid--media{grid-template-columns:minmax(0,1fr) clamp(210px,28%,320px)}
.dt-hero__eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:var(--ff-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--lima);padding:6px 13px;border-radius:999px;margin-bottom:18px}
.dt-hero__eyebrow i{font-size:11px}
.dt-hero__title{font-family:var(--ff-display);font-weight:600;font-size:clamp(2rem,4.8vw,3.5rem);line-height:1.05;letter-spacing:-.015em;margin:0 0 12px;color:var(--crema);overflow-wrap:break-word}
.dt-hero__sub{font-family:var(--ff-body);color:#cfd3e0;font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.5;margin:0;max-width:52ch}
.dt-hero__sub strong{color:var(--crema);font-weight:600}
.dt-hero__org{font-family:var(--ff-mono);font-size:12.5px;letter-spacing:.03em;color:var(--azul-pale);margin:6px 0 0}
.dt-hero__media{position:relative;border-radius:14px;overflow:hidden;border:4px solid rgba(255,255,255,.92);box-shadow:var(--sombra-lg);aspect-ratio:4/5;background:var(--azul-medio);justify-self:center;width:100%;max-width:320px}
.dt-hero__media--wide{aspect-ratio:16/10;max-width:none}
.dt-hero__media img{width:100%;height:100%;object-fit:cover;display:block}
.dt-hero__media-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.38)}
.dt-hero__media-empty i{font-size:54px}
.dt-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.dt-chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--ff-mono);font-size:12.5px;color:var(--crema);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);padding:7px 13px;border-radius:8px}
.dt-chip i{color:var(--lima);font-size:12px}
.dt-chip--free{background:var(--lima);border-color:var(--lima)}
.dt-chip--free i{color:#fff}
.dt-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}

/* — Cuerpo (se eleva sobre la banda) — */
.dt-body{position:relative;z-index:2;margin-top:clamp(-70px,-8vw,-46px);padding-bottom:clamp(48px,7vw,96px)}
.dt-body__grid{display:grid;grid-template-columns:minmax(0,1fr) clamp(280px,30%,360px);gap:clamp(20px,3vw,40px);align-items:start}
.dt-body__grid--solo{grid-template-columns:minmax(0,1fr)}
.dt-panel{background:var(--blanco);border:1px solid var(--linea);border-radius:14px;box-shadow:var(--sombra-md);padding:clamp(22px,3vw,38px);margin-bottom:clamp(18px,2.4vw,28px)}
.dt-kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--ff-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--lima);margin:0 0 14px}
.dt-kicker::before{content:"";width:22px;height:2px;background:var(--lima);border-radius:2px}
.dt-h2{font-family:var(--ff-display);font-weight:600;font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.15;color:var(--gris-900);margin:0 0 4px}
.dt-prose{color:var(--gris-600);font-size:1.02rem;line-height:1.7}
.dt-prose p{margin:0 0 1em}
.dt-prose a{color:var(--lima)}

/* charla/taller mostrado completo en la página de la persona */
.dt-talk{border:1px solid var(--linea);border-radius:12px;padding:clamp(18px,2.4vw,26px);margin-top:18px;background:var(--crema-suave);transition:box-shadow .3s var(--ease),transform .3s var(--ease)}
.dt-talk:first-of-type{margin-top:6px}
.dt-talk:hover{box-shadow:var(--sombra-md);transform:translateY(-2px)}
.dt-talk__title{font-family:var(--ff-display);font-weight:600;font-size:1.25rem;line-height:1.2;margin:0}
.dt-talk__title a{color:var(--gris-900);text-decoration:none}
.dt-talk__title a:hover{color:var(--lima)}
.dt-talk__body{color:var(--gris-600);font-size:.96rem;line-height:1.62;margin-top:12px}
.dt-talk__body p{margin:0 0 .6em}
.dt-talk__link{display:inline-flex;align-items:center;gap:7px;font-family:var(--ff-mono);font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--azul);margin-top:14px;text-decoration:none}
.dt-talk__link:hover{color:var(--lima)}

/* persona mostrada completa en la página del evento */
.dt-person{display:flex;gap:18px;align-items:flex-start;border:1px solid var(--linea);border-radius:12px;padding:clamp(16px,2vw,22px);margin-top:16px;background:var(--crema-suave);text-decoration:none;color:inherit;transition:box-shadow .3s var(--ease),transform .3s var(--ease)}
.dt-person:first-of-type{margin-top:6px}
.dt-person:hover{box-shadow:var(--sombra-md);transform:translateY(-2px)}
.dt-person__foto{width:88px;height:88px;border-radius:50%;object-fit:cover;flex-shrink:0;border:3px solid var(--blanco);box-shadow:var(--sombra-sm)}
.dt-person__foto-empty{width:88px;height:88px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--azul-suave);color:var(--azul-pale);flex-shrink:0;font-size:30px}
.dt-person__name{font-family:var(--ff-display);font-weight:600;font-size:1.2rem;color:var(--gris-900);margin:0}
.dt-person__role{font-family:var(--ff-mono);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--lima);margin:4px 0 0}
.dt-person__org{font-size:12.5px;color:var(--gris-400);margin:3px 0 0}
.dt-person__bio{color:var(--gris-600);font-size:.92rem;line-height:1.55;margin:10px 0 0}
.dt-person__more{display:inline-flex;align-items:center;gap:6px;font-family:var(--ff-mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--azul);margin-top:12px}

/* fila de meta clara (chips sobre fondo claro) */
.dt-metarow{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.dt-meta{display:inline-flex;align-items:center;gap:7px;font-family:var(--ff-mono);font-size:12px;color:var(--gris-600);background:var(--azul-suave);border-radius:7px;padding:6px 11px}
.dt-meta i{color:var(--lima);font-size:11px}

/* ficha lateral */
.dt-ficha{background:var(--blanco);border:1px solid var(--linea);border-radius:14px;box-shadow:var(--sombra-md);padding:clamp(20px,2.4vw,28px);position:sticky;top:96px}
.dt-ficha__title{font-family:var(--ff-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris-400);margin:0 0 14px;padding-bottom:14px;border-bottom:1px solid var(--linea)}
.dt-ficha__row{display:flex;gap:12px;align-items:center;padding:11px 0;border-bottom:1px dashed var(--linea)}
.dt-ficha__row:last-of-type{border-bottom:0}
.dt-ficha__ico{width:34px;height:34px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--lima-pale);color:var(--lima);border-radius:9px;font-size:13px}
.dt-ficha__k{font-family:var(--ff-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--gris-400);display:block;margin-bottom:1px}
.dt-ficha__v{font-size:.95rem;color:var(--gris-900);font-weight:500;line-height:1.3}
.dt-ficha__v strong{color:var(--lima)}
.dt-ficha__actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.dt-ficha__actions .btn{width:100%;justify-content:center;text-align:center}

/* social */
.dt-social{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.dt-social a{display:inline-flex;align-items:center;gap:8px;font-family:var(--ff-mono);font-size:12px;color:var(--azul);background:var(--azul-suave);border-radius:8px;padding:8px 13px;text-decoration:none;transition:background .2s,color .2s}
.dt-social a:hover{background:var(--azul);color:var(--crema)}
.dt-social a i{font-size:14px}
.dt-social--dark a{color:var(--crema);background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.15)}
.dt-social--dark a:hover{background:var(--lima);border-color:var(--lima);color:#fff}

/* recomendados */
.dt-related{margin-top:clamp(26px,3.5vw,44px)}
.dt-related__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;margin-top:20px}
.dt-relcard{display:flex;flex-direction:column;background:var(--blanco);border:1px solid var(--linea);border-radius:12px;overflow:hidden;text-decoration:none;box-shadow:var(--sombra-sm);transition:box-shadow .3s var(--ease),transform .3s var(--ease)}
.dt-relcard:hover{box-shadow:var(--sombra-md);transform:translateY(-3px)}
.dt-relcard__media{aspect-ratio:16/10;overflow:hidden;background:var(--azul);position:relative}
.dt-relcard__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.dt-relcard:hover .dt-relcard__media img{transform:scale(1.05)}
.dt-relcard__media-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.4);font-size:26px}
.dt-relcard__tag{position:absolute;top:10px;left:10px;font-family:var(--ff-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:rgba(33,37,53,.72);padding:4px 9px;border-radius:6px}
.dt-relcard__tag--suelto{position:static;display:inline-block;align-self:flex-start;margin-bottom:8px}
.dt-relcard__b{padding:15px 16px 17px;display:flex;flex-direction:column;gap:8px;flex:1}
.dt-relcard__t{font-family:var(--ff-display);font-weight:600;font-size:1.05rem;line-height:1.2;color:var(--gris-900);margin:0}
.dt-relcard__m{font-family:var(--ff-mono);font-size:11px;color:var(--gris-400);margin-top:auto;display:flex;flex-wrap:wrap;gap:4px 10px}
.dt-relcard__m span{display:inline-flex;align-items:center;gap:5px}
.dt-relcard__m i{color:var(--lima)}

@media(max-width:900px){
  .dt-hero__grid--media{grid-template-columns:1fr}
  .dt-hero__media{max-width:240px;aspect-ratio:1/1;justify-self:start}
  .dt-ficha{position:static}

  /* En una sola columna el <aside> con la ficha caía al final del todo, después
     de "Otros talleres" y "Descubrí más": la información de la persona quedaba
     partida en dos con las recomendaciones en medio. Con display:contents los
     hijos de .dt-main pasan a ser items de la grilla, y así se puede colar la
     ficha entre el contenido propio y los bloques de recomendación.
     gap:0 porque el ritmo vertical ya lo dan los márgenes de .dt-panel y
     .dt-related; con gap se sumarían y quedaría todo más separado. */
  .dt-body__grid{grid-template-columns:1fr;gap:0}
  .dt-main{display:contents}
  .dt-body__grid > aside{order:1}
  .dt-main > .dt-related{order:2}
}
@media(max-width:560px){
  .dt-hero{padding-bottom:clamp(60px,16vw,88px)}
  .dt-hero__title{font-size:clamp(1.5rem,6.6vw,2rem);line-height:1.12}
  .dt-hero__sub{font-size:1rem}
  .dt-body{margin-top:-40px}
  .dt-panel{padding:22px 18px}
  .dt-talk,.dt-person{padding:16px}
  .dt-person{gap:14px}
  .dt-person__foto,.dt-person__foto-empty{width:64px;height:64px}
  .dt-ficha{padding:20px 18px}
}
@media(prefers-reduced-motion:reduce){
  .dt-talk,.dt-person,.dt-relcard,.dt-relcard__media img,.dt-hero__back{transition:none}
}

/* ─────────────── Transición de página (swup, crossfade) ─────────────── */
.transition-fade { transition: opacity .22s ease; opacity: 1; }
html.is-animating .transition-fade { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
    .transition-fade { transition: none; }
    html.is-animating .transition-fade { opacity: 1; }
}

/* ─────────────── Splash de bienvenida del home ─────────────── */
.fat-splash{position:fixed;inset:0;z-index:99999;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:clamp(20px,4vh,40px);background:var(--azul-oscuro,#1b1f2e);opacity:0;pointer-events:none;overflow:hidden;padding:24px}
.fat-splash.is-on{opacity:1;pointer-events:auto}
.fat-splash.is-gone{display:none}
.fat-splash__glow{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .8s ease;
    background:radial-gradient(60% 60% at 82% 8%,rgba(229,48,46,.28),transparent 60%),radial-gradient(50% 50% at 0% 100%,rgba(78,84,113,.5),transparent 60%)}
.fat-splash.is-on .fat-splash__glow{opacity:1}
.fat-splash__fig{margin:0;position:relative;width:min(78vw,520px);aspect-ratio:4/3;border-radius:18px;overflow:hidden;
    box-shadow:0 30px 80px rgba(0,0,0,.5);transform:scale(.92);opacity:0;
    transition:transform .8s cubic-bezier(.22,.61,.36,1),opacity .8s ease;will-change:transform}
.fat-splash.is-on .fat-splash__fig{transform:scale(1);opacity:1}
.fat-splash__img{width:100%;height:100%;object-fit:cover;display:block}
.fat-splash__fig--vertical{width:auto;height:min(56vh,560px);aspect-ratio:9/16}   /* portada del video de la cabecera */
.fat-splash__text{position:relative;text-align:center;max-width:min(90vw,640px);
    transform:translateY(14px);opacity:0;transition:transform .7s var(--ease,ease) .15s,opacity .7s ease .15s}
.fat-splash.is-on .fat-splash__text{transform:none;opacity:1}
.fat-splash__over{display:block;font-family:var(--ff-mono,monospace);font-size:12px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--azul-pale,#aeb3c4);margin-bottom:12px}
.fat-splash__tit{font-family:var(--ff-display,serif);font-weight:500;color:var(--crema,#f5f3ee);
    font-size:clamp(1.5rem,4.4vw,2.6rem);line-height:1.1;margin:0}
.fat-splash__tit .fh-accent{color:var(--lima,#e5302e)}
.fat-splash__skip{position:absolute;top:18px;right:20px;z-index:2;font-family:var(--ff-mono,monospace);font-size:11px;
    letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.6);cursor:pointer;padding:8px 12px;
    border:1px solid rgba(255,255,255,.2);border-radius:999px;opacity:0;transition:opacity .5s ease .6s,color .2s,border-color .2s}
.fat-splash.is-on .fat-splash__skip{opacity:1}
.fat-splash__skip:hover{color:#fff;border-color:rgba(255,255,255,.5)}
.fat-splash.is-leaving{background:transparent;transition:background .9s ease}
.fat-splash.is-leaving .fat-splash__glow,
.fat-splash.is-leaving .fat-splash__text,
.fat-splash.is-leaving .fat-splash__skip{opacity:0;transition:opacity .45s ease}
@media(prefers-reduced-motion:reduce){
    .fat-splash__fig,.fat-splash__text,.fat-splash__glow,.fat-splash__skip{transition:none}
}

/* ============================================================
   VISOR DE IMÁGENES (lightbox propio)
   Sustituye a GLightbox, que llegaba por CDN. Ver initLightbox()
   en main.js: el clic sobre una foto nunca navega al archivo.
   ============================================================ */
.lbox{
    position:fixed; inset:0; z-index:12000;
    display:grid; place-items:center;
    padding:clamp(16px,4vw,48px);
}
.lbox[hidden]{display:none}
.lbox__backdrop{position:absolute; inset:0; background:rgba(15,18,26,.92); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px)}
.lbox__fig{
    position:relative; z-index:1; margin:0;
    display:flex; flex-direction:column; align-items:center; gap:14px;
    max-width:100%; max-height:100%;
}
.lbox__img{
    max-width:min(1400px,100%); max-height:78vh;
    width:auto; height:auto; object-fit:contain;
    border-radius:var(--radio-md); background:var(--azul-oscuro);
    box-shadow:0 30px 80px -20px rgba(0,0,0,.7);
}
.lbox__cap{
    display:flex; flex-direction:column; gap:4px; text-align:center;
    max-width:min(720px,92vw); color:var(--crema);
}
.lbox__tit{font-family:var(--ff-display); font-size:clamp(1rem,1.6vw,1.25rem); font-weight:600; line-height:1.3}
.lbox__cred{font-family:var(--ff-mono); font-size:11px; letter-spacing:.08em; color:var(--azul-pale)}
.lbox__btn{
    position:absolute; z-index:2;
    width:46px; height:46px; border-radius:50%;
    display:grid; place-items:center; cursor:pointer;
    background:rgba(250,247,240,.14); color:var(--crema);
    border:1px solid rgba(250,247,240,.22);
    backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
    transition:background var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.lbox__btn:hover{background:rgba(250,247,240,.28); transform:scale(1.06)}
.lbox__btn:focus-visible{outline:2px solid var(--lima); outline-offset:3px}
.lbox__close{top:clamp(12px,2vw,24px); right:clamp(12px,2vw,24px)}
.lbox__prev{left:clamp(8px,2vw,24px);  top:50%; transform:translateY(-50%)}
.lbox__next{right:clamp(8px,2vw,24px); top:50%; transform:translateY(-50%)}
.lbox__prev:hover,.lbox__next:hover{transform:translateY(-50%) scale(1.06)}
.lbox__count{
    position:absolute; z-index:2; left:50%; transform:translateX(-50%);
    bottom:clamp(12px,2vw,24px);
    font-family:var(--ff-mono); font-size:11px; letter-spacing:.14em; color:var(--azul-pale);
}
@media (max-width:640px){
    .lbox__btn{width:40px; height:40px}
    .lbox__img{max-height:70vh}
}

/* ============================================================
   TARJETAS SIN IMAGEN
   Cuando un item no tiene foto no se pinta su contenedor de media:
   antes quedaba un recuadro azul con un icono, que se ve peor que
   la tarjeta sin foto. Los badges que vivían encima de la imagen
   (destacado, dificultad, cupo lleno) pasan al cuerpo.
   ============================================================ */
.expositor-card__badge--suelto,
.taller-card__badge--suelto,
.conf-card__badge--suelto{
    position:static;
    display:inline-flex;
    align-self:flex-start;
    margin:0 0 10px;
}
.taller-card__badges-sueltos{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:2px}
.taller-card__badges-sueltos .taller-card__badge--suelto{margin:0}

/* Sin media, el cuerpo aporta el aire que antes daba la foto */
.expositor-card:not(:has(.expositor-card__foto)) .expositor-card__body,
.taller-card:not(:has(.taller-card__media)) .taller-card__body,
.conf-card:not(:has(.conf-card__media)) .conf-card__body{padding-top:24px}
.card:not(:has(.card__media)){gap:10px}

/* ============================================================
   COMPARTIR JUNTO AL TÍTULO
   Va en todas las páginas, debajo del encabezado. El bloque
   grande del pie («¿Te gustó? Compártelo») se mantiene.
   ============================================================ */
.share-titulo{margin-top:clamp(16px,2.2vw,24px)}
.share-titulo .share{padding:0;border:0;gap:12px}
.share-titulo .share__btn{width:38px;height:38px}
.share-titulo .share__btn svg{width:15px;height:15px}

/* Sobre los encabezados oscuros (detalle de persona/ruta/taller y home) */
.dt-hero .share-titulo .share__btn,
.fh-mast .share-titulo .share__btn,
.cvx-hero .share-titulo .share__btn{
    background:rgba(250,247,240,.10);
    border-color:rgba(250,247,240,.26);
    color:var(--crema);
}
.dt-hero .share-titulo .share__btn:hover,
.fh-mast .share-titulo .share__btn:hover,
.cvx-hero .share-titulo .share__btn:hover{background:rgba(250,247,240,.22)}
.dt-hero .share-titulo .share__btn--fb:hover,
.fh-mast .share-titulo .share__btn--fb:hover,
.cvx-hero .share-titulo .share__btn--fb:hover{background:#1877F2;border-color:#1877F2}
.dt-hero .share-titulo .share__btn--wa:hover,
.fh-mast .share-titulo .share__btn--wa:hover,
.cvx-hero .share-titulo .share__btn--wa:hover{background:#25D366;border-color:#25D366}
.dt-hero .share-titulo .share__btn--cp:hover,
.fh-mast .share-titulo .share__btn--cp:hover,
.cvx-hero .share-titulo .share__btn--cp:hover{background:var(--lima);color:var(--azul-oscuro);border-color:var(--lima)}

@media (max-width:560px){
    .share-titulo .share__btn{width:36px;height:36px}
}

/* ============================================================
   CONVOCATORIA DE EXPOSITORES
   Banner, llamado a inscribirse (formulario + WhatsApp) y el
   formulario de inscripción, sobre /expositores.
   ============================================================ */

.expo-convocatoria{margin-bottom:clamp(8px,2vw,16px)}
.expo-texto{max-width:760px;color:var(--gris-600);font-size:1.02rem;line-height:1.65}
.expo-texto p{margin:0 0 14px}
.expo-lead{font-family:var(--ff-display);font-size:clamp(1.25rem,2.4vw,1.6rem);line-height:1.3;color:var(--gris-900);font-weight:600}
.expo-beneficios{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:12px}
.expo-beneficios li{position:relative;padding-left:24px}
.expo-beneficios li::before{content:"";position:absolute;left:0;top:.72em;width:12px;height:2px;background:var(--lima);border-radius:2px}
.expo-beneficios strong{color:var(--gris-900)}
.expo-fechas{font-weight:600;color:var(--azul-oscuro)}
/* Ficha práctica: lugar, horario y aporte */
.expo-datos{list-style:none;margin:0 0 16px;padding:16px 18px;display:grid;gap:8px;background:var(--blanco);border:1px solid var(--linea);border-left:3px solid var(--lima);border-radius:var(--radio-md)}
.expo-datos strong{font-family:var(--ff-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris-600);margin-right:6px}
.expo-nota{font-size:.92rem}
.expo-cupos{color:var(--lima-oscuro);font-weight:500}
.expo-cupos strong{text-transform:uppercase;letter-spacing:.06em;margin-right:6px}
.expo-cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:clamp(16px,2vw,24px)}
.expo-cta .btn{display:inline-flex;align-items:center;gap:10px}
.expo-cta__wa:hover{background:#25D366;border-color:#25D366;color:#fff}

.expo-inscripcion{padding-top:clamp(20px,3vw,32px);padding-bottom:clamp(40px,6vw,80px)}
.expo-inscripcion .formx{margin-top:0;max-width:760px}

@media (max-width:560px){
    .expo-cta .btn{flex:1 1 100%;justify-content:center}
}

/* Cartel de la convocatoria en /expositores: columna junto al texto.
   Vertical y con texto dentro: siempre entero (height:auto), nunca recortado. */
.expo-convocatoria--cartel{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.expo-cartel{margin:0}
.expo-cartel a{display:block;border-radius:var(--radio-md);overflow:hidden;box-shadow:var(--sombra-md)}
.expo-cartel img{width:100%;height:auto;display:block}
@media (max-width:900px){
    .expo-convocatoria--cartel{grid-template-columns:1fr}
    .expo-cartel{max-width:420px}
}

/* Contactos de la convocatoria a artistas (/artistas): una ficha por persona,
   con llamada y WhatsApp a la vista */
.art-contactos{margin-top:clamp(24px,3vw,36px);max-width:760px}
.art-contactos__titulo{margin:0 0 12px;font-family:var(--ff-mono);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--gris-600)}
.art-contactos__lista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.art-contacto{display:flex;flex-direction:column;gap:2px;padding:16px 18px;background:var(--blanco);border:1px solid var(--linea);border-left:3px solid var(--lima);border-radius:var(--radio-md)}
.art-contacto__nombre{font-family:var(--ff-display);font-size:1.1rem;font-weight:600;line-height:1.3;color:var(--gris-900)}
.art-contacto__cargo{font-size:.92rem;color:var(--gris-600)}
.art-contacto__acciones{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px}
.art-contacto__acciones a{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:.95rem;color:var(--azul-oscuro);text-decoration:none}
.art-contacto__acciones a:hover{color:var(--lima-oscuro)}
.art-contacto__acciones .fa-whatsapp{color:#1FA855}

/* Concurso de cuento (/cuento): bases por bloques y el modelo de autorización
   del acudiente, que se copia con un botón para pegarlo en el correo */
.cto-cerrado{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;background:var(--gris-100);border-left:3px solid var(--lima);border-radius:var(--radio-md);color:var(--gris-900);font-weight:500}
.cto-cerrado i{color:var(--lima-oscuro);margin-top:.25em}
.cto-bases{padding-top:clamp(28px,4vw,48px);padding-bottom:clamp(40px,6vw,80px);color:var(--gris-600);font-size:1.02rem;line-height:1.65}
.cto-bases>*{max-width:820px}
.cto-bases__titulo{font-family:var(--ff-display);font-weight:600;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.15;color:var(--gris-900);margin:0 0 clamp(16px,2vw,24px)}
.cto-bloque{padding:clamp(16px,2vw,22px) 0;border-top:1px solid var(--linea)}
.cto-bloque h3{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-family:var(--ff-display);font-size:1.2rem;font-weight:600;color:var(--gris-900)}
.cto-bloque h3 i{color:var(--lima-oscuro);font-size:.95em;width:1.2em;text-align:center}
.cto-bloque p{margin:0 0 12px}
.cto-bloque ul{margin:0 0 12px;padding-left:1.2em;display:grid;gap:6px}
.cto-bloque strong{color:var(--gris-900)}
.cto-bloque a{color:var(--azul-oscuro);overflow-wrap:anywhere}
.cto-autorizacion{margin:4px 0 0;padding:16px 18px;background:var(--blanco);border:1px solid var(--linea);border-left:3px solid var(--lima);border-radius:var(--radio-md);font-style:italic;color:var(--gris-900)}
.cto-ayuda{margin-top:12px;font-size:.92rem}
.cto-cierre{margin:clamp(16px,2vw,24px) 0 0;font-family:var(--ff-display);font-size:clamp(1.15rem,2.2vw,1.4rem);font-weight:600;line-height:1.35;color:var(--azul-oscuro)}

/* ============================================================
   PROMOCIÓN DE LA CONVOCATORIA EN EL HOME
   ============================================================ */
.fh-promo__grid{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:center}
.fh-promo__cartel{display:block;border-radius:14px;overflow:hidden;box-shadow:var(--sombra-lg);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.fh-promo__cartel:hover{transform:translateY(-4px)}
.fh-promo__cartel img{width:100%;height:auto;display:block}
.fh-promo__titulo{font-family:var(--ff-display);font-weight:500;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.12;letter-spacing:-.01em;color:var(--gris-900);margin:14px 0 12px}
.fh-promo__fechas{color:var(--gris-600);font-size:1.05rem;line-height:1.55;margin:0 0 22px}
.fh-promo__acciones{display:flex;flex-wrap:wrap;gap:12px}
.fh-promo__acciones .btn{display:inline-flex;align-items:center;gap:10px}
.fh-promo__share{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:24px}
.fh-promo__share-label{font-family:var(--ff-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gris-600)}
.fh-promo__share .share{padding:0;border:0}
/* Bloques alternados: el cartel pasa a la derecha (solo en escritorio) */
.fh-promo--invertido .fh-promo__grid{grid-template-columns:minmax(0,1fr) minmax(0,400px)}
.fh-promo--invertido .fh-promo__cartel{order:2}
@media (max-width:900px){
    .fh-promo__grid,.fh-promo--invertido .fh-promo__grid{grid-template-columns:1fr}
    .fh-promo--invertido .fh-promo__cartel{order:0}
    .fh-promo__cartel{max-width:420px;width:100%;margin:0 auto}
}

/* ============================================================
   ADJUNTOS EN FORMULARIOS — arrastrar y soltar
   El <input type="file"> cubre la zona con opacidad 0: clic y teclado
   funcionan de forma nativa, y main.js suma soltar y la lista.
   ============================================================ */
.formx__field--file{grid-column:1/-1}
.formx__drop-zona{
    position:relative;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
    padding:26px 18px;text-align:center;
    border:2px dashed var(--gris-200);border-radius:8px;
    background:#fff;color:var(--gris-600);
    transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease;
}
.formx__drop-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.formx__drop-zona i{font-size:26px;color:var(--azul-medio)}
.formx__drop-texto{font-size:15px;line-height:1.4}
.formx__drop-texto u{color:var(--azul);text-underline-offset:2px}
.formx__drop-limite{font-family:var(--ff-mono);font-size:11px;letter-spacing:.06em;color:var(--gris-400)}
.formx__drop-zona:hover,
.formx__drop.is-encima .formx__drop-zona{border-color:var(--azul);background:var(--azul-suave);color:var(--azul)}
.formx__drop-zona:focus-within{border-color:var(--azul);box-shadow:0 0 0 3px rgba(52,57,74,.15)}
.formx__drop-lista{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.formx__drop-lista li{display:flex;align-items:center;gap:10px;padding:6px 6px 6px 12px;background:#fff;border:1px solid var(--linea);border-radius:6px;font-size:14px}
.formx__drop-nombre{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--gris-900)}
.formx__drop-peso{font-family:var(--ff-mono);font-size:11px;color:var(--gris-400);flex-shrink:0}
.formx__drop-quitar{flex-shrink:0;min-width:34px;min-height:34px;border:0;border-radius:4px;background:transparent;color:var(--gris-600);font-size:20px;line-height:1;cursor:pointer}
.formx__drop-quitar:hover{background:#fee;color:var(--err,#d23030)}
.formx__drop-error{margin:8px 0 0;font-size:13px;line-height:1.4;color:var(--err,#d23030)}

/* Aviso de campo inválido (validación antes de enviar, main.js) */
.formx__field.is-invalido .formx__input,
.formx__field.is-invalido .formx__drop-zona,
.formx__field.is-invalido .formx__group{border-color:var(--err,#d23030)}
.formx__field.is-invalido .formx__input:focus{box-shadow:0 0 0 3px rgba(210,48,48,.15)}
.formx__aviso{margin:6px 0 0;font-size:13px;line-height:1.35;color:var(--err,#d23030)}

/* ============================================================
   CONDICIONES ANTES DEL FORMULARIO — leer, aceptar, inscribirse
   El formulario llega oculto e inerte (form_render_html) y main.js
   lo habilita tras recorrer el texto y aceptar (initFormCondiciones).
   ============================================================ */
.formcond{max-width:760px;--cond-ok:#2F7D4A;--cond-ok-suave:#EEF7F0}
/* Los bloques de la puerta llevan display propio: sin esto «hidden» no oculta nada */
.formcond [hidden]{display:none!important}
.formcond__pasos{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;gap:8px 10px}
.formcond__paso{display:inline-flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border:1px solid var(--linea);border-radius:999px;background:var(--blanco);font-size:14px;color:var(--gris-600);transition:border-color .3s ease,color .3s ease}
.formcond__paso-num{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--gris-100);color:var(--gris-600);font-family:var(--ff-mono);font-size:12px;font-weight:600;transition:background .3s ease,color .3s ease}
.formcond__paso.is-actual{border-color:var(--azul);color:var(--azul-oscuro);font-weight:500}
.formcond__paso.is-actual .formcond__paso-num{background:var(--azul);color:#fff}
.formcond__paso.is-hecho{border-color:var(--cond-ok);color:var(--gris-900)}
.formcond__paso.is-hecho .formcond__paso-num{background:var(--cond-ok);color:#fff;font-size:0}
.formcond__paso.is-hecho .formcond__paso-num::before{content:"✓";font-size:13px}

.formcond__panel{padding:clamp(20px,4vw,32px);background:var(--crema-suave);border:1px solid var(--linea);border-left:3px solid var(--lima);border-radius:6px}
.formcond__titulo{margin:0 0 6px;font-family:var(--ff-display);font-size:clamp(1.35rem,3.4vw,1.75rem);line-height:1.2;color:var(--azul-oscuro)}
.formcond__intro{margin:0 0 18px;color:var(--gris-600);font-size:.95rem;line-height:1.5}

/* Caja de lectura con barra de avance y degradado que anuncia «hay más» */
.formcond__marco{position:relative;border:1px solid var(--gris-200);border-radius:8px;background:var(--blanco);overflow:hidden}
.formcond__marco::after{content:"";position:absolute;left:0;right:0;bottom:0;height:56px;background:linear-gradient(rgba(255,255,255,0),#fff);pointer-events:none;transition:opacity .3s ease}
.formcond.is-leido .formcond__marco::after{opacity:0}
.formcond__barra{position:absolute;top:0;left:0;right:0;height:4px;background:var(--gris-100);z-index:1}
.formcond__barra i{display:block;height:100%;width:0;background:var(--lima);transition:width .15s linear,background .3s ease}
.formcond.is-leido .formcond__barra i{background:var(--cond-ok)}
.formcond__texto{max-height:min(60vh,520px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:26px clamp(18px,3.5vw,32px) 30px;color:var(--gris-900);font-size:.98rem;line-height:1.65}
.formcond__texto:focus-visible{outline:2px solid var(--azul);outline-offset:-2px}
.formcond__texto p{margin:0 0 12px}

/* Estado de lectura, casilla y botón */
.formcond__estado{display:flex;align-items:center;gap:8px;margin:12px 0 16px;font-size:14px;color:var(--gris-600)}
.formcond__estado i{color:var(--azul-medio);animation:formcond-bajar 1.6s ease-in-out infinite}
.formcond__pct{margin-left:auto;font-family:var(--ff-mono);font-size:12px;font-weight:500;color:var(--gris-400)}
.formcond.is-leido .formcond__estado{color:var(--cond-ok);font-weight:500}
.formcond.is-leido .formcond__estado i{color:var(--cond-ok);animation:none}
.formcond.is-avisar .formcond__estado{animation:formcond-sacudir .45s ease}
.formcond__acepto{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;margin:0 0 16px;background:var(--blanco);border:1px solid var(--gris-200);border-radius:8px;font-size:15px;line-height:1.45;color:var(--gris-900);cursor:pointer;transition:border-color .2s ease,background .2s ease,opacity .3s ease}
.formcond__acepto input{width:22px;height:22px;margin:0;flex-shrink:0;accent-color:var(--cond-ok);cursor:pointer}
.formcond__acepto.is-bloqueado{opacity:.55;cursor:not-allowed}
.formcond__acepto.is-bloqueado input{cursor:not-allowed}
.formcond__acepto.is-marcado{border-color:var(--cond-ok);background:var(--cond-ok-suave)}
.formcond__continuar{display:inline-flex;align-items:center;gap:10px}
.formcond__continuar[disabled],
.formcond__continuar[disabled]:hover{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;background:var(--azul);color:var(--crema)}

/* Aceptadas: resumen compacto y el formulario entra */
.formcond__resumen{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 16px;padding:12px 16px;background:var(--cond-ok-suave);border:1px solid #CFE6D5;border-radius:8px;color:#1F5A34;font-size:14px}
.formcond__resumen i{margin-right:6px}
.formcond__releer{border:0;background:none;padding:6px 0;color:var(--azul);font:inherit;font-weight:500;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.formcond .formx{margin-top:16px}
.formcond .formx.is-entrando{animation:formcond-entrar .5s var(--ease) both}
@keyframes formcond-entrar{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes formcond-bajar{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
@keyframes formcond-sacudir{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@media (prefers-reduced-motion:reduce){
    .formcond__estado i,.formcond.is-avisar .formcond__estado,.formcond .formx.is-entrando{animation:none}
    .formcond__paso,.formcond__paso-num,.formcond__barra i,.formcond__acepto,.formcond__marco::after{transition:none}
}
@media (max-width:560px){
    .formcond__texto{max-height:62vh;font-size:.95rem}
    .formcond__paso{font-size:13px}
    .formcond__continuar{width:100%;justify-content:center}
}

/* ── Texto de las condiciones: tarjetas de compromiso ──────────────────
   Paleta tomada de las categorías del cartel de la convocatoria. Cada
   tarjeta se enciende al leerse y el mapa de arriba lleva la cuenta. */
.formcond__marco{background:var(--crema)}
.formcond__marco::after{background:linear-gradient(rgba(253,248,240,0),var(--crema))}
.formcond__texto{position:relative;max-height:min(66vh,600px)}
.formcond__cabecera{display:flex;align-items:center;gap:14px;margin:0 0 18px;padding-bottom:16px;border-bottom:1px solid var(--linea)}
.formcond__cabecera p{margin:0}
.formcond__sello{flex-shrink:0;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--lima-pale);color:var(--lima);font-size:19px}
.formcond__evento{font-family:var(--ff-display);font-size:1.12rem;font-weight:600;line-height:1.25;color:var(--azul-oscuro)}
.formcond__fechas{margin-top:3px !important;font-family:var(--ff-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--lima-oscuro)}
.formcond__lead{font-size:1.02rem}
.formcond__aviso{display:flex;align-items:flex-start;gap:12px;margin:6px 0 22px !important;padding:14px 16px;background:var(--azul-suave);border-radius:10px;color:var(--azul-oscuro);font-weight:500;line-height:1.5}
.formcond__aviso i{margin-top:4px;color:var(--azul-medio)}

.cond-item--redes{--c:#C62828;--c-suave:#FDECEC}
.cond-item--asistencia{--c:#1F5A96;--c-suave:#E8F0F9}
.cond-item--montaje{--c:#8A5A12;--c-suave:#FBF1DC}
.cond-item--productos{--c:#6B3F98;--c-suave:#F1EAF8}
.cond-item--ambiente{--c:#2F7D4A;--c-suave:#E8F4EC}
.cond-item--respeto{--c:#0B6770;--c-suave:#E3F3F4}
.cond-item--difusion{--c:#B03A0A;--c-suave:#FCEDE4}
.cond-item--cumplimiento{--c:#34394A;--c-suave:#ECEEF6}
/* Requisitos de la convocatoria a artistas: verde, petróleo y rojo del cartel */
.cond-item--ficha{--c:#3F6E1F;--c-suave:#EEF4E6}
.cond-item--medidas{--c:#0E6B73;--c-suave:#E2F2F3}
.cond-item--soporte{--c:#8A5A12;--c-suave:#FBF1DC}
.cond-item--recepcion{--c:#1F5A96;--c-suave:#E8F0F9}
.cond-item--curaduria{--c:#6B3F98;--c-suave:#F1EAF8}
.cond-item--retiro{--c:#B03A0A;--c-suave:#FCEDE4}
.cond-item--seguro{--c:#34394A;--c-suave:#ECEEF6}
.cond-item--derechos{--c:#2F7D4A;--c-suave:#E8F4EC}
.cond-item--comision{--c:#C62828;--c-suave:#FDECEC}

.cond-lista{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.cond-item{position:relative;padding:18px 18px 8px 22px;background:var(--blanco);border:1px solid var(--gris-200);border-radius:12px;overflow:hidden;transition:opacity .5s ease,transform .5s var(--ease),border-color .35s ease,box-shadow .35s ease}
.cond-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--c)}
.cond-item.is-activo{border-color:color-mix(in srgb,var(--c) 40%,#fff);box-shadow:0 14px 30px -20px color-mix(in srgb,var(--c) 75%,transparent)}
.cond-item__cab{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.cond-item__icono{position:relative;flex-shrink:0;display:grid;place-items:center;width:50px;height:50px;border-radius:14px;background:var(--c-suave);color:var(--c);font-size:21px;transition:background .35s ease,color .35s ease}
.cond-item.is-visto .cond-item__icono{background:var(--c);color:#fff}
/* Color explícito en el glifo: heredado, una transición a medias lo dejaba del color del fondo */
.cond-item__icono i{color:inherit}
.cond-item.is-visto .cond-item__icono i,.formcond__punto.is-visto i{color:#fff}
.cond-item__icono::after{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;right:-6px;bottom:-6px;display:grid;place-items:center;width:21px;height:21px;border-radius:50%;border:2px solid #fff;background:#2F7D4A;color:#fff;font-size:10px;transform:scale(0);transition:transform .35s var(--ease)}
.cond-item.is-visto .cond-item__icono::after{transform:scale(1)}
.cond-item__num{display:block;font-family:var(--ff-mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--c)}
.cond-item h4{margin:2px 0 0;font-family:var(--ff-display);font-size:1.14rem;line-height:1.25;color:var(--azul-oscuro)}
.cond-item p{margin:0 0 10px}
.cond-item mark{padding:0 2px;color:inherit;font-weight:600;background:linear-gradient(transparent 56%,color-mix(in srgb,var(--c) 24%,transparent) 56%)}
.cond-item__sub{margin-bottom:8px !important;font-weight:600;color:var(--azul-oscuro)}
.cond-item__nota{font-size:.93rem;font-style:italic;color:var(--gris-600)}
.cond-clave{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px !important;padding:10px 14px;border-radius:8px;background:var(--c-suave);color:var(--c);font-weight:600;line-height:1.4}
.cond-clave i{margin-top:3px}
.cond-check{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.cond-check li{position:relative;padding:9px 12px 9px 42px;border:1px solid var(--linea);border-radius:8px;background:var(--crema-suave);line-height:1.45}
.cond-check li::before{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;left:13px;top:11px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--c);color:#fff;font-size:9px}
.cond-check--eco li::before{content:"\f06c";background:transparent;color:var(--c);font-size:14px}
.cond-dato{display:flex;align-items:center;gap:16px;margin:0 0 14px;padding:12px 16px;border-radius:10px;background:var(--c-suave)}
.cond-dato b{font-family:var(--ff-display);font-size:3.1rem;line-height:1;color:var(--c)}
.cond-dato span{font-weight:600;line-height:1.35;color:var(--azul-oscuro)}
.cond-fechas{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin:0 0 14px;padding:12px 14px;border-radius:10px;background:var(--c-suave)}
.cond-fecha{display:flex;flex-direction:column;align-items:center;justify-content:center;width:54px;height:58px;border-top:6px solid var(--c);border-radius:8px;background:#fff;box-shadow:var(--sombra-sm)}
.cond-fecha b{font-family:var(--ff-display);font-size:1.45rem;line-height:1;color:var(--azul-oscuro)}
.cond-fecha small{font-family:var(--ff-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--c)}
.cond-fechas p{flex:1 1 150px;margin:0 !important;font-weight:600;color:var(--c)}

.cond-cierre{position:relative;margin-top:22px;padding:24px 22px;border-radius:14px;background:linear-gradient(135deg,var(--azul-oscuro) 0%,#23452F 100%);color:#E6EAF1;overflow:hidden}
.cond-cierre h4{position:relative;margin:0 0 12px;font-family:var(--ff-display);font-size:1.25rem;line-height:1.3;color:#fff}
.cond-cierre p{position:relative;margin:0 0 10px}
.cond-cierre__pluma{position:absolute;right:-8px;bottom:-18px;font-size:130px;color:#fff;opacity:.07;transform:rotate(-18deg);pointer-events:none}
.cond-cierre__firma{margin-top:16px !important;padding-top:14px;border-top:1px solid rgba(255,255,255,.2);line-height:1.65}
.cond-cierre__firma strong{font-size:1.05rem;color:#fff}
.cond-cierre__firma a{color:#FFD76A;font-weight:600}

/* Mapa: un icono por compromiso, se enciende al leerlo y lleva a él */
.formcond__mapa{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--linea);background:var(--blanco)}
.formcond__mapa-label{font-family:var(--ff-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;color:var(--gris-600)}
.formcond__mapa-label b{color:var(--azul-oscuro)}
.formcond__puntos{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.formcond__punto{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1.5px solid var(--gris-200);border-radius:50%;background:#fff;color:var(--gris-400);font-size:13px;cursor:pointer;transition:background .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease}
.formcond__punto:hover{border-color:var(--c);color:var(--c)}
.formcond__punto.is-visto{border-color:var(--c);background:var(--c);color:#fff}
.formcond__punto.is-activo{box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 30%,transparent)}
.formcond__punto:focus-visible{outline:2px solid var(--azul);outline-offset:2px}

/* Cada tarjeta entra al aparecer (solo con JS: sin él, todo se ve) */
.formcond.is-js .cond-item{opacity:0;transform:translateY(16px)}
.formcond.is-js .cond-item.is-entra{opacity:1;transform:none}

@media (max-width:560px){
    .formcond__mapa{flex-direction:column;align-items:stretch;gap:8px}
    /* Todos los iconos en una sola fila, repartidos en el ancho disponible */
    .formcond__puntos{margin-left:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;justify-items:center}
    .formcond__punto{width:100%;max-width:32px;height:auto;aspect-ratio:1;font-size:12px}
    .cond-item{padding:16px 14px 6px 18px}
    .cond-item__icono{width:44px;height:44px;border-radius:12px;font-size:18px}
    .cond-item h4{font-size:1.05rem}
    .cond-dato b{font-size:2.5rem}
    .cond-cierre{padding:20px 18px}
}
@media (prefers-reduced-motion:reduce){
    .formcond.is-js .cond-item{opacity:1;transform:none}
    .cond-item,.cond-item__icono,.cond-item__icono::after,.formcond__punto{transition:none}
}

/* ============================================================
   PANEL DE GRACIAS — sustituye al formulario tras enviarlo
   (form_render_exito en includes/forms.php)
   ============================================================ */
.formx-exito{
    position:relative;max-width:760px;margin:clamp(28px,5vw,56px) 0;
    padding:clamp(24px,4vw,36px) clamp(20px,4vw,36px) clamp(22px,3vw,30px);
    background:var(--blanco);border:1px solid #CFE6D5;border-left:4px solid #2F7D4A;
    border-radius:12px;font-family:var(--ff-body);
}
.formx-exito__marca{
    display:grid;place-items:center;width:52px;height:52px;margin-bottom:14px;
    border-radius:50%;background:#EEF7F0;color:#2F7D4A;font-size:26px;
}
.formx-exito__titulo{
    margin:0 0 14px;font-family:var(--ff-display);
    font-size:clamp(1.35rem,3.4vw,1.8rem);line-height:1.25;color:var(--azul-oscuro);
}
.formx-exito__cuerpo{color:var(--gris-700,#4a5160);font-size:1rem;line-height:1.7}
.formx-exito__cuerpo p{margin:0 0 14px}
.formx-exito__cuerpo strong{color:var(--azul-oscuro)}
.formx-exito__nota{
    margin-top:18px !important;padding-top:14px;border-top:1px solid var(--linea);
    font-size:.93rem;color:var(--gris-600);
}
.formx-exito__acciones{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.formx-exito__acciones .btn{display:inline-flex;align-items:center;gap:10px}
@media (max-width:560px){
    .formx-exito__acciones .btn{width:100%;justify-content:center}
}

/* Actividad sin cupo: se sigue viendo, pero no se puede marcar */
.formx__opt.is-agotada{opacity:.55}
.formx__opt.is-agotada span{text-decoration:line-through;text-decoration-color:var(--gris-400)}
.formx__opt.is-agotada input{cursor:not-allowed}

/* ── Página de inscripciones a talleres y charlas ── */
.insc-resumen{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-bottom:28px}
.insc-dato{display:flex;align-items:center;gap:10px;padding:12px 18px;border:1px solid var(--linea);border-radius:var(--radio-md);background:var(--crema-suave,#fbfaf7)}
.insc-dato__n{font-size:26px;font-weight:700;line-height:1;color:var(--lima)}
.insc-dato__t{font-size:13px;line-height:1.35;color:var(--gris-600,#5a5f70);max-width:130px}
.insc-aviso{flex:1 1 220px;margin:0;font-size:14px;color:var(--gris-600,#5a5f70)}
.insc-formulario{margin-bottom:56px;scroll-margin-top:90px}
@media (max-width:600px){
    .insc-dato{flex:1 1 100%}
    .insc-dato__t{max-width:none}
}

/* Desvío a la convocatoria de expositores: quien llega buscando carpa, no taller */
.insc-desvio{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:22px 26px;margin-bottom:32px;border:2px solid var(--lima);border-radius:var(--radio-md);background:var(--lima-pale,#f2f8ec)}
.insc-desvio__icono{flex:0 0 auto;width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--lima);color:#fff;font-size:22px}
.insc-desvio__texto{flex:1 1 300px}
.insc-desvio__titulo{margin:0 0 6px;font-size:19px;line-height:1.3;color:var(--gris-700,#3f4354)}
.insc-desvio__texto p{margin:0;font-size:15px;line-height:1.6;color:var(--gris-600,#5a5f70)}
.insc-desvio__btn{flex:0 0 auto;white-space:nowrap}
@media (max-width:600px){
    .insc-desvio{gap:14px}
    .insc-desvio__icono{width:44px;height:44px;font-size:18px}
    .insc-desvio__btn{width:100%;justify-content:center}
}

/* Charla en el perfil del ponente: inscribirse o ver la ficha */
.dt-talk__acciones{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px}

/* ============================================================
   CONTACTO (/contacto): datos del Festival, WhatsApp, formulario
   y accesos a las secciones activas
   ============================================================ */
.contacto-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(24px,4vw,72px)}
.contacto-titulo{margin:0 0 24px;font-family:var(--ff-display);font-size:1.3rem;font-weight:600;color:var(--gris-900)}
.contacto-datos{margin:0;display:flex;flex-direction:column;gap:20px;font-size:15px}
.contacto-datos dt{margin-bottom:6px;color:var(--gris-600)}
.contacto-datos dd{margin:0;line-height:1.55}
.contacto-enlace{color:var(--azul);border-bottom:1px solid currentColor}
.contacto-wa{display:flex;align-items:center;gap:14px;margin-top:28px;padding:16px 20px;border-radius:var(--radio-md);background:#15803D;color:#fff;box-shadow:var(--sombra-md);transition:background var(--dur) var(--ease),transform var(--dur) var(--ease)}
.contacto-wa:hover{background:#116932;transform:translateY(-2px)}
.contacto-wa i{font-size:30px}
.contacto-wa span{display:flex;flex-direction:column;gap:2px}
.contacto-wa strong{font-size:1.05rem}
.contacto-wa small{font-size:.86rem}
.contacto-form{display:flex;flex-direction:column;gap:16px}
.contacto-campo{display:flex;flex-direction:column;gap:6px}
.contacto-campo .overline{color:var(--gris-600)}
.contacto-campo small{text-transform:none;letter-spacing:0;color:var(--gris-400);font-family:var(--ff-body)}
.contacto-trampa{position:absolute;left:-9999px;opacity:0}
.contacto-enviar{align-self:flex-start}
.contacto-legal{margin:0;font-size:11px;line-height:1.5;color:var(--gris-600)}
.contacto-legal a{color:var(--azul);text-decoration:underline}

.contacto-explora{padding-top:clamp(36px,5vw,48px)}
.contacto-explora .contacto-titulo{margin-bottom:6px}
.contacto-explora__sub{margin:0 0 22px;color:var(--gris-600)}
.contacto-explora__lista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.contacto-explora__item{display:flex;align-items:center;gap:14px;height:100%;padding:16px 18px;background:var(--blanco);border:1px solid var(--linea);border-radius:var(--radio-md);color:var(--gris-900);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}
.contacto-explora__item:hover{border-color:var(--lima);box-shadow:var(--sombra-md);transform:translateY(-2px)}
.contacto-explora__icono{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--lima-pale);color:var(--lima);font-size:18px}
.contacto-explora__texto{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}
.contacto-explora__texto strong{font-family:var(--ff-display);font-size:1.02rem;font-weight:600}
.contacto-explora__texto small{font-size:.88rem;line-height:1.4;color:var(--gris-600)}
.contacto-explora__flecha{font-size:13px;color:var(--gris-400);transition:transform var(--dur) var(--ease),color var(--dur) var(--ease)}
.contacto-explora__item:hover .contacto-explora__flecha{color:var(--lima);transform:translateX(3px)}
@media (max-width:820px){.contacto-grid{grid-template-columns:1fr}}

/* ============================================================
   NOCHE DE APERTURA (/apertura): franja en todo el sitio, botón del
   menú, página, panel de reserva, bloque del home y aviso en /artistas
   ============================================================ */
/* Franja bajo el menú. Verde bosque de la boleta, con la entrada en amarillo. */
.ap-franja{background:#1E3A23;color:#F4EEE3}
.ap-franja[hidden],.sin-franja .ap-franja{display:none}
.ap-franja__inner{max-width:var(--maxw);margin:0 auto;padding:0 clamp(16px,4vw,48px);display:flex;align-items:center;gap:8px}
.ap-franja__enlace{flex:1;display:flex;align-items:center;gap:12px;min-width:0;padding:10px 0;color:inherit;font-size:14px}
.ap-franja__icono{color:#F0B429;font-size:16px;transform:rotate(-12deg)}
.ap-franja__texto{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-franja__texto strong{color:#fff}
.ap-franja__texto span{color:#C9D6C7}
.ap-franja__cta{flex-shrink:0;display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:#F0B429;color:#1E2A12;font-weight:700;font-size:13px;transition:background var(--dur) var(--ease)}
.ap-franja__enlace:hover .ap-franja__cta{background:#FFC93C}
.ap-franja__cerrar{flex-shrink:0;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:none;color:#C9D6C7;cursor:pointer}
.ap-franja__cerrar:hover{background:rgba(255,255,255,.1);color:#fff}
@media (max-width:640px){
    .ap-franja__texto span{display:none}
    .ap-franja__enlace{font-size:13px;gap:10px}
    .ap-franja__cta{padding:5px 11px;font-size:12px}
}

/* Menú en pantallas de portátil: con el botón de la apertura no cabía. Menos
   separación y sin los íconos de redes (también están en el pie de página). */
@media (min-width:901px) and (max-width:1700px){
    .nav__inner{gap:20px}
    .nav__menu{gap:clamp(14px,1.35vw,22px)}
    .nav__social{display:none}
}

/* Botón del menú */
.nav__menu a.nav__boleta{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;background:#C42624;color:#fff;font-weight:600;white-space:nowrap}
.nav__menu a.nav__boleta::after{display:none}
.nav__menu a.nav__boleta:hover,.nav__menu a.nav__boleta[aria-current="page"]{background:#A81F1D;color:#fff}
@media (max-width:900px){
    .nav__menu a.nav__boleta{margin-top:clamp(2px,.6vh,6px);padding:clamp(6px,1vh,10px) 18px}
}

/* Panel de gracias de una reserva */
.ap-reserva{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:0 0 16px;padding:14px 20px;border-left:4px solid #F0B429;border-radius:10px;background:#FFF9EC}
.ap-reserva__num{font-family:var(--ff-display);font-size:1.7rem;font-weight:700;line-height:1.1;color:var(--gris-900)}
.ap-reserva__detalle{color:var(--gris-600);font-weight:600}
.btn.ap-pagar{display:inline-flex;align-items:center;gap:10px;background:#15803D;border-color:#15803D}
.btn.ap-pagar:hover{background:#116932;border-color:#116932}

/* ============================================================
   NOCHE DE APERTURA · «Una noche bajo el dosel»
   Bosque nocturno, dorado de chicha y luciérnagas. Lo usan /apertura (.apx),
   el bloque del home (.fh-noche) y los banners del sitio (.apb).
   ============================================================ */
:root{
    --noche:#0E2214;--noche-2:#163420;--noche-3:#1E4229;
    --oro:#F0B429;--oro-claro:#FFD772;--chicha:#F6E7BF;--hoja:#7FBF6A;
    --ff-pincel:"Kaushan Script",var(--ff-display);
}

/* Luciérnagas: puntos que flotan y titilan. Quietas con movimiento reducido. */
.lucis{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.lucis span{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;
    background:radial-gradient(circle,#FFF6C2 0%,#FFD772 45%,rgba(255,215,114,0) 72%);
    box-shadow:0 0 10px 3px rgba(255,214,102,.55);opacity:.85;
    animation:luci-vuela var(--t) ease-in-out var(--d) infinite alternate,luci-brilla calc(var(--t) / 3) ease-in-out var(--d) infinite alternate}
@keyframes luci-vuela{0%{transform:translate(0,0)}33%{transform:translate(18px,-22px)}66%{transform:translate(-14px,-38px)}100%{transform:translate(10px,-56px)}}
@keyframes luci-brilla{0%{opacity:.15}60%{opacity:.95}100%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.lucis span{animation:none;opacity:.6}}

/* Cuenta regresiva */
.cuenta{display:flex;gap:10px;flex-wrap:wrap}
.cuenta__u{display:flex;flex-direction:column;align-items:center;min-width:68px;padding:10px 8px 8px;border-radius:12px;
    background:rgba(255,255,255,.07);border:1px solid rgba(255,215,114,.28);backdrop-filter:blur(4px)}
.cuenta__u b{font-family:var(--ff-display);font-size:2rem;font-weight:700;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.cuenta__u small{margin-top:5px;font-family:var(--ff-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--oro-claro)}

/* Botones de la noche */
.apx-btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:999px;font-weight:700;font-size:15px;letter-spacing:.02em;
    transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease)}
.apx-btn:hover{transform:translateY(-2px)}
.apx-btn--oro{background:linear-gradient(135deg,var(--oro-claro),var(--oro));color:#1E2A12;box-shadow:0 12px 30px -10px rgba(240,180,41,.75)}
.apx-btn--oro:hover{box-shadow:0 18px 40px -10px rgba(240,180,41,.9)}
.apx-btn--wa{background:rgba(31,168,85,.16);color:#fff;border:1.5px solid #1FA855}
.apx-btn--wa:hover{background:#15803D}
.apx-ceja{display:inline-flex;align-items:center;gap:9px;font-family:var(--ff-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--oro)}
.apx-ceja--verde{color:#2F7D4A}

/* ── 1. Portada ── */
.apx-hero{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 80% 10%,var(--noche-3) 0%,var(--noche) 55%,#08160D 100%);color:#fff;isolation:isolate}
.apx-hero__fondo{position:absolute;inset:-40px;background:var(--bg) 20% 60%/cover;filter:blur(38px) saturate(1.2);opacity:.38;z-index:0}
.apx-hero::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(8,22,13,.2) 0%,rgba(8,22,13,.55) 70%,var(--noche) 100%)}
.apx-hero__inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,5vw,72px);align-items:start;
    padding-top:clamp(48px,7vw,96px);padding-bottom:clamp(56px,8vw,110px)}
.apx-hero__titulo{margin:16px 0 18px;font-family:var(--ff-display);font-weight:700;font-size:clamp(2.6rem,6.2vw,5.2rem);line-height:.98;letter-spacing:-.02em;color:#fff}
.apx-hero__titulo em{font-family:var(--ff-pincel);font-style:normal;font-weight:400;color:var(--oro);display:inline-block;transform:rotate(-4deg);text-shadow:0 6px 30px rgba(240,180,41,.35)}
.apx-hero__sub{max-width:560px;margin:0 0 22px;font-size:1.08rem;line-height:1.6;color:#D5E2D2}
.apx-chips{list-style:none;margin:0 0 24px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.apx-chips li{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);font-size:.92rem;color:#F1F5EF}
.apx-chips i{color:var(--oro)}
.cuenta--hero{margin-bottom:26px}
.apx-hero__acciones{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:22px}
.apx-hero .share__btn{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.22);color:#E6EDE4}
.apx-hero .share__btn:hover{background:var(--oro);border-color:var(--oro);color:#1E2A12}
.apx-hero .share__label{color:#C8D6C5}
.apx-boleta{display:block;margin-top:clamp(40px,8vw,140px);border-radius:16px;overflow:hidden;transform:perspective(1200px) rotateY(-14deg) rotateZ(3deg);
    box-shadow:-30px 40px 80px -30px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.08);transition:transform .7s var(--ease)}
.apx-boleta:hover{transform:perspective(1200px) rotateY(0) rotateZ(0) scale(1.02)}
.apx-boleta img{display:block;width:100%;height:auto}

/* ── 2. Apoyo ── */
.apx-apoyo{position:relative;padding:clamp(56px,8vw,110px) 0;background:linear-gradient(180deg,#FBF6EA 0%,var(--crema) 100%)}
.apx-apoyo__cab{max-width:900px;text-wrap:balance;margin:0 auto clamp(30px,4vw,48px);text-align:center}
.apx-apoyo__titulo{margin:16px 0 14px;font-family:var(--ff-display);font-weight:700;font-size:clamp(1.9rem,4.2vw,3.1rem);line-height:1.12;color:var(--gris-900)}
.apx-apoyo__titulo em{font-style:normal;background:linear-gradient(transparent 62%,rgba(240,180,41,.55) 62%);padding:0 4px}
.apx-apoyo__sub{margin:0;font-size:1.08rem;line-height:1.6;color:var(--gris-600)}
.apx-impacto{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.apx-impacto__item{display:flex;flex-direction:column;gap:8px;height:100%;padding:26px 24px;border-radius:18px;background:#fff;border:1px solid var(--linea);color:var(--gris-900);
    box-shadow:0 18px 40px -30px rgba(14,34,20,.45);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}
a.apx-impacto__item:hover{transform:translateY(-4px);border-color:#2F7D4A;box-shadow:0 26px 50px -30px rgba(14,34,20,.6)}
.apx-impacto__icono{display:grid;place-items:center;width:52px;height:52px;margin-bottom:6px;border-radius:16px;background:linear-gradient(135deg,#2F7D4A,#1E4229);color:var(--oro-claro);font-size:21px}
.apx-impacto__item strong{font-family:var(--ff-display);font-size:1.22rem}
.apx-impacto__item span:last-child{color:var(--gris-600);line-height:1.5}
.apx-contador{display:flex;align-items:center;justify-content:center;gap:16px;margin:clamp(28px,4vw,40px) auto 0;max-width:640px;padding:16px 24px;border-radius:999px;background:var(--noche);color:#E6EDE4;text-align:left}
.apx-contador__n{font-family:var(--ff-display);font-size:2.4rem;font-weight:700;line-height:1;color:var(--oro)}
.apx-contador strong{color:#fff}

/* ── 3. La noche ── */
.apx-noche{position:relative;padding:clamp(56px,8vw,100px) 0;background:var(--noche);color:#fff;text-align:center}
.apx .apx-noche__titulo{margin:14px 0 clamp(28px,4vw,44px);font-family:var(--ff-display);font-weight:700;font-size:clamp(1.9rem,4vw,2.9rem);color:#fff}
.apx .apx-momento strong,.apx .apx-hero__titulo,.apx .apx-cierre__titulo{color:#fff}
/* La taquilla ya dice «Separa tu boleta»: el título largo del formulario sobra */
.apx-taquilla__form .formx__title{display:none}
.apx-noche__lista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;text-align:left}
.apx-momento{--c:#7FBF6A;position:relative;display:flex;flex-direction:column;gap:8px;padding:28px 22px 24px;border-radius:20px;overflow:hidden;
    background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.1);transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.apx-momento:hover{transform:translateY(-4px);border-color:var(--c)}
.apx-momento::before{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,var(--c) 0%,transparent 70%);opacity:.28}
.apx-momento--galeria{--c:#B28AE6}
.apx-momento--musica{--c:#FF6A5C}
.apx-momento--chicha{--c:#F0B429}
.apx-momento__icono{display:grid;place-items:center;width:56px;height:56px;margin-bottom:8px;border-radius:50%;background:var(--c);color:#14240F;font-size:22px;box-shadow:0 0 30px -4px var(--c)}
.apx-momento strong{font-family:var(--ff-display);font-size:1.25rem}
.apx-momento span:last-child{color:#C8D6C5;line-height:1.5}

/* Programa de la noche (apertura_programa_html): en /apertura y en el home */
.apx-programa{max-width:720px;margin:clamp(40px,6vw,64px) auto 0;text-align:left}
.apx-programa .apx-ceja{display:flex;flex-wrap:wrap;justify-content:center;text-align:center}
.apx .apx-programa__titulo{margin:10px 0 20px;text-align:center;font-family:var(--ff-display);font-weight:700;font-size:clamp(1.5rem,3vw,2.1rem);color:#fff}
.apx-prog{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.apx-prog__fila{display:grid;grid-template-columns:7.2em 40px minmax(0,1fr);align-items:center;gap:14px;padding:12px 18px;border-radius:14px;
    background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.apx-prog__hora{font-family:var(--ff-display);font-weight:700;font-size:1.1rem;color:var(--oro);font-variant-numeric:tabular-nums;white-space:nowrap;word-spacing:-.12em}
.apx-prog__icono{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(240,180,41,.14);color:var(--oro-claro);font-size:16px}
.apx-prog__texto{display:flex;flex-direction:column;gap:2px;min-width:0}
.apx-prog__texto strong{font-family:var(--ff-display);font-size:1.08rem;line-height:1.3;color:#fff}
.apx-prog__texto a{color:#fff;text-decoration:underline;text-decoration-color:rgba(240,180,41,.6);text-underline-offset:3px}
.apx-prog__texto a:hover{color:var(--oro-claro)}
.apx-prog__texto small{font-size:.92rem;color:#C8D6C5}
/* En el home: más compacta, sin íconos */
.apx-prog--home{margin:0 0 24px;max-width:520px;gap:6px}
.apx-prog--home .apx-prog__fila{grid-template-columns:6.4em minmax(0,1fr);padding:9px 14px;gap:12px}
.apx-prog--home .apx-prog__icono{display:none}
.apx-prog--home .apx-prog__hora{font-size:1rem}
.apx-prog--home .apx-prog__texto strong{font-size:1rem}
@media (max-width:560px){
    .apx-prog__fila{grid-template-columns:5.6em minmax(0,1fr);padding:10px 14px}
    .apx-prog__icono{display:none}
    .apx-prog__hora{font-size:.98rem}
}

/* ── 4. Escenario ── */
.apx-escenario{position:relative;overflow:hidden;padding:clamp(56px,8vw,100px) 0;background:#0A120C;color:#fff}
.apx-escenario__luces{position:absolute;inset:0;pointer-events:none;
    background:radial-gradient(40% 60% at 15% 0%,rgba(255,106,92,.35),transparent 70%),radial-gradient(35% 55% at 55% 0%,rgba(240,180,41,.28),transparent 70%),radial-gradient(40% 60% at 95% 0%,rgba(127,191,106,.3),transparent 70%)}
.apx-escenario__inner{position:relative;display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center}
.apx-video{margin:0}
.apx-video video{display:block;width:100%;height:auto;aspect-ratio:9/16;border-radius:20px;background:#000;box-shadow:0 0 0 1px rgba(255,255,255,.12),0 40px 80px -30px rgba(255,106,92,.45)}
.apx-banda__titulo{margin:14px 0 12px;font-family:var(--ff-pincel);font-weight:400;font-size:clamp(2.8rem,6vw,4.4rem);line-height:1;color:#FF4E3E;text-shadow:0 4px 0 #2A0A08}
.apx-banda__titulo small{display:block;margin-top:10px;font-family:var(--ff-mono);font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:#fff;text-shadow:none}
.apx-banda p{max-width:520px;margin:0 0 22px;color:#C8D6C5;line-height:1.6}
.apx-banda__foto img{display:block;width:100%;height:auto;border-radius:14px;box-shadow:0 24px 50px -24px rgba(0,0,0,.9)}

/* ── 5. Taquilla ── */
.apx-taquilla{padding:clamp(56px,8vw,100px) 0;background:linear-gradient(180deg,var(--crema) 0%,#F3EBD8 100%)}
.apx-taquilla__inner{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,64px);align-items:start}
.apx-taquilla__titulo{margin:12px 0 18px;font-family:var(--ff-display);font-weight:700;font-size:clamp(2rem,4vw,2.8rem);color:var(--gris-900)}
.apx-precio{position:relative;display:inline-flex;flex-direction:column;margin-bottom:22px;padding:18px 28px 18px 30px;border-radius:14px;background:var(--noche);color:#fff;
    -webkit-mask:radial-gradient(circle 9px at 0 50%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 9px at 100% 50%,transparent 98%,#000) right/51% 100% no-repeat;
            mask:radial-gradient(circle 9px at 0 50%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 9px at 100% 50%,transparent 98%,#000) right/51% 100% no-repeat}
.apx-precio__valor{font-family:var(--ff-display);font-size:clamp(2.4rem,5vw,3.2rem);font-weight:700;line-height:1;color:var(--oro)}
.apx-precio__por{margin-top:6px;font-size:.88rem;letter-spacing:.06em;color:#C8D6C5}
.apx-pasos{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:12px}
.apx-pasos li{display:flex;align-items:center;gap:12px;color:var(--gris-900);line-height:1.45}
.apx-pasos b{flex-shrink:0;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#2F7D4A;color:#fff;font-size:14px}
.apx-cupos{margin:0;color:var(--lima-oscuro)}
.apx-taquilla__form .formx,.apx-taquilla__form .formx-exito{margin:0;max-width:none;border-radius:18px;box-shadow:0 30px 60px -40px rgba(14,34,20,.55)}
.apx-total{display:flex;align-items:center;gap:10px;margin:14px 0 0;padding:14px 18px;border-radius:12px;background:var(--noche);color:#fff;font-weight:600}
.apx-total i{color:var(--oro)}
.apx-total.is-vacio{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ── 6. Cierre ── */
.apx-cierre{position:relative;overflow:hidden;padding:clamp(64px,9vw,120px) 0;background:radial-gradient(80% 120% at 50% 100%,var(--noche-3),var(--noche) 70%);color:#fff;text-align:center}
.apx-cierre__inner{position:relative;z-index:2}
.apx-cierre__titulo{margin:0 0 12px;font-family:var(--ff-display);font-weight:700;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1}
.apx-cierre__titulo em{font-family:var(--ff-pincel);font-style:normal;font-weight:400;color:var(--oro)}
.apx-cierre__sub{margin:0 auto 28px;max-width:560px;color:#C8D6C5;font-size:1.08rem}

@media (max-width:900px){
    .apx-hero__inner,.apx-escenario__inner,.apx-taquilla__inner{grid-template-columns:1fr}
    .apx-boleta{transform:perspective(1200px) rotateZ(2deg);order:-1}
    .apx-impacto,.apx-noche__lista{grid-template-columns:1fr 1fr}
    .apx-video{max-width:320px;margin:0 auto}
}
@media (max-width:560px){
    .apx-impacto,.apx-noche__lista{grid-template-columns:1fr}
    .cuenta__u{min-width:0;flex:1}
    .cuenta__u b{font-size:1.6rem}
    .apx-hero__acciones .apx-btn{flex:1 1 100%;justify-content:center}
    .apx-contador{flex-direction:column;text-align:center;border-radius:20px}
}
@media (prefers-reduced-motion:reduce){.apx-boleta,.apx-boleta:hover{transform:none}}

/* Bloque del home */
.fh-noche{position:relative;overflow:hidden;isolation:isolate;padding:clamp(60px,8vw,110px) 0;color:#fff;
    background:radial-gradient(110% 90% at 85% 20%,var(--noche-3) 0%,var(--noche) 55%,#08160D 100%)}
.fh-noche__fondo{position:absolute;inset:-40px;background:var(--bg) 25% 60%/cover;filter:blur(40px) saturate(1.2);opacity:.32;z-index:0}
.fh-noche__inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center}
.fh-noche .fh-noche__titulo{margin:14px 0 18px;font-family:var(--ff-display);font-weight:700;font-size:clamp(2.4rem,5.4vw,4.4rem);line-height:.98;letter-spacing:-.02em;color:#fff}
.fh-noche__titulo em{font-family:var(--ff-pincel);font-style:normal;font-weight:400;color:var(--oro);display:inline-block;transform:rotate(-4deg)}
.fh-noche__apoyo{display:inline-flex;align-items:center;gap:12px;margin:0 0 12px;padding:12px 18px;border-radius:14px;background:rgba(240,180,41,.14);border:1px solid rgba(240,180,41,.4);font-size:1.05rem;line-height:1.4;color:#FFF3D1}
.fh-noche__apoyo i{font-size:20px;color:var(--oro)}
.fh-noche__apoyo strong{color:var(--oro-claro)}
.fh-noche__sub{margin:0 0 22px;max-width:520px;color:#C8D6C5;line-height:1.6}
.cuenta--home{margin-bottom:26px}
.fh-noche__acciones{display:flex;flex-wrap:wrap;gap:12px}
.fh-noche__boleta{display:block;border-radius:16px;overflow:hidden;transform:perspective(1200px) rotateY(-14deg) rotateZ(3deg);
    box-shadow:-30px 40px 80px -30px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.08);transition:transform .7s var(--ease)}
.fh-noche__boleta:hover{transform:perspective(1200px) rotateY(0) rotateZ(0) scale(1.02)}
.fh-noche__boleta img{display:block;width:100%;height:auto}
@media (max-width:900px){
    .fh-noche__inner{grid-template-columns:1fr}
    .fh-noche__boleta{order:-1;transform:perspective(1200px) rotateZ(2deg)}
}
@media (max-width:560px){.fh-noche__acciones .apx-btn{flex:1 1 100%;justify-content:center}}
@media (prefers-reduced-motion:reduce){.fh-noche__boleta,.fh-noche__boleta:hover{transform:none}}

/* Banners propios de la apertura en el resto del sitio (apertura_banner()) */
.apb{padding:clamp(28px,4vw,48px) 0}
.apb--medio{padding:clamp(20px,3vw,32px) 0}
.apb__caja{position:relative;overflow:hidden;isolation:isolate;max-width:var(--maxw);margin:0 clamp(16px,4vw,48px);
    display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr) auto;gap:clamp(18px,3vw,36px);align-items:center;
    padding:clamp(22px,3vw,34px) clamp(22px,3.5vw,40px);border-radius:22px;color:#fff;
    background:radial-gradient(90% 140% at 0% 0%,var(--noche-3) 0%,var(--noche) 55%,#08160D 100%);
    box-shadow:0 30px 60px -36px rgba(8,22,13,.9)}
@media (min-width:1240px){.apb__caja{margin:0 auto}}
.apb__caja::after{content:"";position:absolute;right:-80px;bottom:-120px;width:340px;height:340px;border-radius:50%;z-index:-1;
    background:radial-gradient(circle,rgba(240,180,41,.28),transparent 70%)}
.apb__boleta{position:relative;z-index:2;display:block;border-radius:10px;overflow:hidden;transform:rotate(-4deg);
    box-shadow:0 18px 36px -16px rgba(0,0,0,.8);transition:transform .5s var(--ease)}
.apb__caja:hover .apb__boleta{transform:rotate(0) scale(1.03)}
.apb__boleta img{display:block;width:100%;height:auto}
.apb__texto{position:relative;z-index:2;min-width:0}
.apb__ceja{display:inline-flex;align-items:center;gap:8px;font-family:var(--ff-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--oro)}
.apb__titulo{margin:8px 0 6px;font-family:var(--ff-display);font-weight:700;font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.08;color:#fff}
.apb__titulo span{font-family:var(--ff-pincel);font-weight:400;color:var(--oro);display:inline-block;transform:rotate(-2deg)}
.apb__sub{margin:0;max-width:560px;color:#C8D6C5;line-height:1.55}
.apb__cta{position:relative;z-index:2;display:inline-flex;align-items:center;gap:10px;white-space:nowrap;padding:15px 24px;border-radius:999px;
    background:linear-gradient(135deg,var(--oro-claro),var(--oro));color:#1E2A12;font-weight:700;box-shadow:0 12px 30px -10px rgba(240,180,41,.75);
    transition:transform var(--dur) var(--ease)}
.apb__cta:hover{transform:translateY(-2px)}
.apb--medio .apb__caja{grid-template-columns:minmax(0,200px) minmax(0,1fr) auto;border-radius:18px}
.apb--medio .apb__titulo{font-size:clamp(1.3rem,2.4vw,1.8rem)}
.apb--medio .apb__sub{font-size:.95rem}
@media (max-width:900px){
    .apb__caja,.apb--medio .apb__caja{grid-template-columns:1fr;text-align:left}
    .apb__boleta{max-width:300px}
    .apb__cta{justify-self:start}
}
@media (max-width:560px){.apb__cta{justify-self:stretch;justify-content:center}}
@media (prefers-reduced-motion:reduce){.apb__boleta,.apb__caja:hover .apb__boleta{transform:none}}

/* Aviso en /artistas: la Galería de Arte abre en la Noche de Apertura */
.ap-aviso{display:flex;align-items:center;gap:14px;max-width:760px;margin-top:clamp(20px,3vw,28px);padding:16px 20px;border-radius:16px;
    background:radial-gradient(120% 160% at 0% 0%,var(--noche-3),var(--noche) 70%);color:#E6EDE4;line-height:1.5;
    box-shadow:0 18px 36px -24px rgba(8,22,13,.9);transition:transform var(--dur) var(--ease)}
.ap-aviso:hover{transform:translateY(-2px)}
.ap-aviso strong{color:#fff}
.ap-aviso__icono{flex-shrink:0;font-size:22px;color:var(--oro);transform:rotate(-12deg)}
.ap-aviso__flecha{flex-shrink:0;color:var(--oro)}

/* Autorización de tratamiento de datos al final de cada formulario */
.formx__autoriza{margin-top:4px;font-size:.92rem;line-height:1.45;color:var(--gris-600)}
.formx__autoriza a{color:var(--azul);text-decoration:underline}
.contacto-autoriza{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;line-height:1.45;color:var(--gris-600)}
.contacto-autoriza input{width:20px;height:20px;flex-shrink:0;margin-top:2px;accent-color:var(--azul)}
.contacto-autoriza a{color:var(--azul);text-decoration:underline}
/* Foco programático al cerrar la franja: sin anillo sobre todo el contenido */
#swup:focus{outline:none}
@media (max-width:900px){.apx-boleta{margin-top:0}}

/* Menú entre 901 y 1100 px: con el botón de la apertura se desbordaba. Más
   apretado, sin partir enlaces largos raros y el botón solo con su ícono. */
@media (min-width:901px) and (max-width:1100px){
    .nav__inner{gap:12px}
    .nav__menu{gap:12px}
    .nav__menu a,.nav__grupo-btn{font-size:13px}
    .nav__menu a.nav__boleta{padding:7px 10px}
    .nav__boleta-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}

/* Foco visible en las piezas nuevas (sobre fondos oscuros el anillo por defecto se pierde) */
.ap-franja a:focus-visible,.ap-franja button:focus-visible,.apb__cta:focus-visible,.apx-btn:focus-visible,
.nav__grupo-btn:focus-visible,.nav__menu a.nav__boleta:focus-visible,.apb__caja a:focus-visible{outline:2px solid var(--oro,#F0B429);outline-offset:3px}
.nav__sub a:focus-visible{outline:2px solid var(--azul);outline-offset:-2px}
@media (min-width:901px) and (max-width:980px){
    .nav__menu{gap:8px}
    .nav__logo-img{height:42px}
}

/* ══════════ Conversatorio en vivo «Entre amigos y aves» ══════════
   Paleta del cartel: verde bosque profundo, oro y el punto rojo de «en vivo». */
.cvx-hero,.fh-conv{--bosque:#0F2A1D;--bosque-2:#173B29;--oro-cv:#E9B949;--oro-cv-claro:#F6D98A;--papel:#FBF6EA;
    position:relative;overflow:hidden;color:var(--papel);
    background:radial-gradient(120% 90% at 85% 10%,#21503A 0%,transparent 55%),radial-gradient(90% 80% at 0% 100%,#1B4430 0%,transparent 60%),var(--bosque)}
.cvx-hero__luz{position:absolute;inset:0;pointer-events:none;opacity:.5;
    background:repeating-linear-gradient(115deg,transparent 0 46px,rgba(233,185,73,.035) 46px 47px)}
.cvx-hero__grid{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,72px);align-items:center;padding-block:clamp(40px,6vw,88px)}
.cvx-ceja{display:inline-flex;align-items:center;gap:10px;padding:7px 16px;border:1px solid rgba(233,185,73,.55);border-radius:999px;
    font-family:var(--ff-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--oro-cv-claro);background:rgba(0,0,0,.18)}
.cvx-ceja--vivo{border-color:#ff5a52;color:#fff;background:rgba(229,48,46,.22)}
.cvx-punto{flex-shrink:0;width:10px;height:10px;border-radius:50%;background:#E5302E;box-shadow:0 0 0 0 rgba(229,48,46,.7);animation:cvxPulso 1.8s ease-out infinite}
@keyframes cvxPulso{0%{box-shadow:0 0 0 0 rgba(229,48,46,.7)}70%{box-shadow:0 0 0 10px rgba(229,48,46,0)}100%{box-shadow:0 0 0 0 rgba(229,48,46,0)}}
@media (prefers-reduced-motion:reduce){.cvx-punto{animation:none}}
.cvx-hero__titulo,.fh-conv__titulo{font-family:var(--ff-display);font-weight:700;line-height:1.02;letter-spacing:-.02em;color:#fff;margin:22px 0 16px;font-size:clamp(2.6rem,6.2vw,5rem)}
.cvx-hero__titulo em,.fh-conv__titulo em{font-style:italic;color:var(--oro-cv)}
.cvx-hero__lema{font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.6;color:#DCE5D8;max-width:46ch;margin:0 0 28px}
.cvx-cita{display:flex;align-items:stretch;gap:0;max-width:520px;margin-bottom:24px;border:1px solid rgba(233,185,73,.4);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.04)}
.cvx-cita__fecha{display:flex;align-items:center;gap:10px;padding:14px 20px;background:var(--oro-cv);color:var(--bosque)}
.cvx-cita__dia{font-family:var(--ff-display);font-size:3rem;font-weight:700;line-height:1}
.cvx-cita__mes{font-family:var(--ff-mono);font-size:15px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;line-height:1.15}
.cvx-cita__mes small{font-size:10px;letter-spacing:.16em;opacity:.8}
.cvx-cita__datos{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:12px 20px}
.cvx-cita__datos strong{font-family:var(--ff-display);font-size:1.7rem;color:#fff;line-height:1.1}
.cvx-cita__datos span{font-size:14px;color:#C9D6C7}
.cvx-cita__datos .fa-facebook{color:#6FA8FF}
.cuenta--cvx{margin-bottom:26px}
.cuenta--cvx .cuenta__u{border-color:rgba(233,185,73,.35);background:rgba(255,255,255,.06)}
.cuenta--cvx .cuenta__u small{color:var(--oro-cv-claro)}
.cvx-aviso{display:flex;align-items:center;gap:10px;margin:0 0 24px;color:#DCE5D8;font-size:15px}
.cvx-aviso--vivo{color:#fff;font-weight:600;font-size:17px}
.cvx-acciones{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px}
.cvx-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:999px;font-weight:700;font-size:15px;line-height:1;
    transition:transform var(--dur) var(--ease),background var(--dur) var(--ease),box-shadow var(--dur) var(--ease),color var(--dur) var(--ease)}
.cvx-btn--oro{background:var(--oro-cv);color:var(--bosque);box-shadow:0 10px 30px -12px rgba(233,185,73,.8)}
.cvx-btn--oro:hover{background:var(--oro-cv-claro);color:var(--bosque);transform:translateY(-2px)}
.cvx-btn--linea{border:1.5px solid rgba(251,246,234,.55);color:var(--papel)}
.cvx-btn--linea:hover{background:rgba(255,255,255,.1);color:#fff;border-color:#fff}
.cvx-btn--texto{padding-inline:8px;color:var(--oro-cv-claro)}
.cvx-btn--texto:hover{color:#fff}
.cvx-btn:focus-visible{outline:3px solid var(--oro-cv-claro);outline-offset:3px}
.cvx-cartel{margin:0;justify-self:center;width:100%;max-width:460px}
.cvx-cartel a{display:block;border-radius:18px;overflow:hidden;border:6px solid rgba(251,246,234,.95);box-shadow:0 40px 80px -30px rgba(0,0,0,.7);transform:rotate(1.5deg);transition:transform .6s var(--ease)}
.cvx-cartel a:hover{transform:rotate(0) scale(1.01)}
.cvx-cartel img{display:block;width:100%;height:auto}

.cvx-invitados{padding-block:clamp(48px,7vw,96px);text-align:center}
.cvx-invitados__titulo{font-family:var(--ff-display);font-size:clamp(1.8rem,3.6vw,2.8rem);margin:12px 0 40px;color:var(--tinta)}
.cvx-caras{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,3vw,36px)}
.cvx-cara{display:flex;flex-direction:column;align-items:center;gap:16px}
.cvx-cara__foto{display:block;width:100%;max-width:230px;aspect-ratio:1;border-radius:50%;padding:6px;background:conic-gradient(from 200deg,#E9B949,#173B29,#E9B949);box-shadow:var(--sombra-md)}
.cvx-cara__foto img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;border:4px solid var(--crema)}
.cvx-cara__nombre{font-family:var(--ff-display);font-size:1.15rem;line-height:1.3;color:var(--tinta);max-width:14ch}
.cvx-festival{background:var(--azul-suave);border-top:1px solid var(--linea)}
.cvx-festival__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;padding-block:28px}
.cvx-festival__txt{margin:0;font-size:16px;color:var(--gris-600)}
.cvx-festival__txt span{display:block;font-family:var(--ff-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gris-400);margin-bottom:4px}
.cvx-festival__txt strong{color:var(--tinta);font-family:var(--ff-display);font-size:1.3rem}
.cvx-festival__acc{display:flex;gap:12px;flex-wrap:wrap}

/* Bloque del home */
.fh-conv__inner{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(28px,5vw,72px);align-items:center;padding-block:clamp(48px,6vw,90px)}
.fh-conv__titulo{font-size:clamp(2.3rem,5vw,4.2rem);margin:20px 0 14px}
.fh-conv__sub{font-size:1.1rem;line-height:1.6;color:#DCE5D8;max-width:48ch;margin:0 0 26px}
.fh-conv__caras{list-style:none;padding:0;margin:0 0 24px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;max-width:600px}
.fh-conv__caras li{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.fh-conv__foto{display:block;width:100%;max-width:112px;aspect-ratio:1;border-radius:50%;padding:3px;background:linear-gradient(140deg,#E9B949,#7A5B12)}
.fh-conv__foto img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;border:3px solid var(--bosque)}
.fh-conv__nombre{font-size:13px;line-height:1.3;color:#E9EFE6;font-weight:500}
.fh-conv__donde{display:flex;align-items:flex-start;gap:12px;margin:0 0 22px;color:#C9D6C7;font-size:15px}
.fh-conv__donde i{font-size:22px;color:#6FA8FF;margin-top:2px}
.fh-conv__donde strong{display:block;color:#fff;font-size:17px}
.fh-conv__cartel{justify-self:center;width:100%;max-width:420px;border-radius:18px;overflow:hidden;border:6px solid rgba(251,246,234,.95);box-shadow:0 40px 80px -30px rgba(0,0,0,.7);transform:rotate(-1.5deg);transition:transform .6s var(--ease)}
.fh-conv__cartel:hover{transform:rotate(0) scale(1.01)}
.fh-conv__cartel img{display:block;width:100%;height:auto}

/* Franja de todo el sitio: papel y oro para distinguirse de la verde de la apertura */
.cv-franja{background:#F6EBCB;color:#173B29;border-bottom:1px solid rgba(23,59,41,.15)}
.cv-franja[hidden]{display:none}
.cv-franja--vivo{background:#E5302E;color:#fff}
.cv-franja .ap-franja__texto strong{color:#0F2A1D}
.cv-franja .ap-franja__texto span{color:#4A5E50}
.cv-franja--vivo .ap-franja__texto strong,.cv-franja--vivo .ap-franja__texto span{color:#fff}
.cv-franja--vivo .cvx-punto{background:#fff}
.cv-franja__cta{flex-shrink:0;display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:#0F2A1D;color:#F6D98A;font-weight:700;font-size:13px;transition:background var(--dur) var(--ease)}
.cv-franja .ap-franja__enlace:hover .cv-franja__cta{background:#21503A}
.cv-franja .ap-franja__cerrar{color:#4A5E50}
.cv-franja .ap-franja__cerrar:hover{background:rgba(15,42,29,.08);color:#0F2A1D}
.cv-franja--vivo .ap-franja__cerrar{color:#fff}
.cv-franja a:focus-visible,.cv-franja button:focus-visible{outline:2px solid #0F2A1D;outline-offset:2px}

@media (max-width:900px){
    .cvx-hero__grid,.fh-conv__inner{grid-template-columns:1fr}
    .cvx-cartel,.fh-conv__cartel{max-width:380px;transform:none}
    .cvx-cartel a{transform:none}
    .cvx-caras{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px}
}
@media (max-width:560px){
    .cvx-cita__fecha{padding:12px 14px}
    .cvx-cita__dia{font-size:2.4rem}
    .cvx-cita__datos{padding:10px 14px}
    .cvx-cita__datos strong{font-size:1.4rem}
    .cvx-acciones{flex-direction:column;align-items:stretch}
    .cvx-btn{justify-content:center}
    .fh-conv__caras{gap:8px}
    .fh-conv__nombre{font-size:11.5px}
    .cv-franja .ap-franja__texto span{display:none}
    .cuenta--cvx .cuenta__u{min-width:0;flex:1}
}

/* ══════════ Aliados: logos de quienes apoyan el Festival, antes del pie ══════════ */
.aliados{background:#fff;border-top:1px solid var(--linea);padding-block:clamp(36px,5vw,60px)}
.aliados__titulo{display:flex;align-items:center;gap:18px;margin:0 0 clamp(24px,3vw,36px);font-family:var(--ff-mono);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gris-600);text-align:center}
.aliados__titulo::before,.aliados__titulo::after{content:"";flex:1;height:1px;background:var(--gris-200)}
.aliados__lista{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(18px,3vw,40px) clamp(24px,4vw,56px)}
.aliados__item{display:flex;align-items:center;justify-content:center}
/* Igual peso visual: a logo más ancho, menos alto (respaldo fijo sin sqrt()). */
.aliados__item img{display:block;width:auto;height:58px;max-width:200px;object-fit:contain;transition:transform .4s var(--ease)}
@supports (height:calc(1px * sqrt(2))){
    .aliados__item img{height:clamp(40px,calc(92px / sqrt(var(--ar,1.6))),82px)}
}
.aliados__item:hover img{transform:scale(1.06)}
@media (max-width:560px){
    .aliados__lista{gap:18px 26px}
    .aliados__item img{max-width:140px}
    @supports (height:calc(1px * sqrt(2))){ .aliados__item img{height:clamp(32px,calc(70px / sqrt(var(--ar,1.6))),62px)} }
}
