/* ============================================================================
   Portalia Sports — Home Nuevo · capa de páginas interiores
   Complementa home-nuevo.css para archivo de eventos, evento, notas, nota,
   contacto, legales, checkout y errores. Se carga DESPUÉS de site.css y todo
   está acotado a .hn-page, así que el sitio actual no se ve afectado.
   ========================================================================== */

/* ---------------------- Estructura de página interior --------------------- */
/* site.css trae reglas globales sobre <body> pensadas para el header fijo
   anterior (padding-top: 5.5rem, display:flex, gap). En las páginas con el
   cromo nuevo hay que neutralizarlas o aparece una franja vacía arriba y el
   contenido deja de centrarse. */
body.hn-body {
    display: block;
    margin: 0;
    padding: 0;
    gap: normal;
    min-height: 100%;
}

/* El body original centraba con flex; se replica en el contenedor nuevo para
   que las secciones con ancho limitado (lg:w-[80%], etc.) queden centradas. */
.hn-page.hn-interior {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}
.hn-page.hn-interior > header,
.hn-page.hn-interior > nav,
.hn-page.hn-interior > main,
.hn-page.hn-interior > footer { width: 100%; }
/* Ritmo vertical: cada bloque de contenido trae su propio padding, así no
   quedan franjas vacías entre secciones. */
.hn-page.hn-interior > section { margin-bottom: 0; }
.hn-page.hn-interior > section + main { padding-top: clamp(1.25rem, 3vw, 2rem); }

/* En interiores el header arranca ya opaco: debajo hay fondos claros. */
.hn-page.hn-interior .hn-header {
    background: rgba(6, 32, 51, 0.96);
    border-bottom-color: var(--hn-line-dark);
}

/* Heros que pasan por debajo del header translúcido */
.hn-page.hn-interior .error-page { margin-top: calc(var(--hn-header-h) * -1); padding-top: calc(var(--hn-header-h) + clamp(3rem, 8vw, 6rem)); }
.hn-page .hn-main {
    display: block;
    width: 100%;
    padding-bottom: clamp(2rem, 5vw, 4rem);
}

/* Las páginas interiores usan el fondo claro del home, con las cajas en blanco
   para que ningún bloque quede flotando sobre un vacío blanco. */
body.hn-body:has(.hn-interior) { background: var(--hn-mist); }
.hn-page.hn-interior { background: var(--hn-mist); }

/* Hero superior de las páginas interiores: a sangre y sin esquinas redondeadas
   (site.css se las daba), igual que el hero del home. */
.hn-page .visual-hero {
    position: relative;
    display: block;
    width: 100%;
    max-width: none;
    height: clamp(220px, 34vw, 380px);
    margin: calc(var(--hn-header-h) * -1) 0 0;
    border-radius: 0;
    overflow: hidden;
    background: var(--hn-navy-ink);
}
.hn-page .visual-hero img { border-radius: 0; }
.hn-page .visual-hero img {
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center 35%;
}
.hn-page .visual-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(6, 32, 51, 0.76) 0%, rgba(14, 60, 97, 0.36) 45%, rgba(6, 32, 51, 0.84) 100%),
        linear-gradient(115deg, rgba(14, 60, 97, 0.6) 0%, rgba(0, 177, 233, 0.2) 100%);
}

/* Encabezado de página (título + bajada), sobre el hero o suelto */
.hn-page .hn-pagehead {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--hn-max);
    margin: clamp(-6rem, -9vw, -4rem) auto 0;
    padding: 0 var(--hn-pad) clamp(1.5rem, 3vw, 2.5rem);
    color: #fff;
}
.hn-page .hn-pagehead__title {
    font-family: var(--hn-display);
    text-transform: uppercase;
    font-size: clamp(2rem, 6vw, 3.6rem);
    line-height: 1;
}
.hn-page .hn-pagehead__lede {
    color: rgba(255, 255, 255, 0.82);
    max-width: 56ch;
    margin-top: 0.75rem;
}

/* Contenedores de contenido de cada plantilla */
.hn-page .contact-page,
.hn-page .legal-page {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    display: block;
}
.hn-page .archive-content,
.hn-page .contact-content,
.hn-page .note-page,
.hn-page .event-page,
.hn-page .checkout-page {
    width: 100%;
    max-width: var(--hn-max);
    margin: 0 auto;
    padding-inline: var(--hn-pad);
    padding-block: clamp(1.5rem, 4vw, 3rem);
    display: grid;
    gap: clamp(2rem, 5vw, 3.5rem);
}

/* ------------------------------ Migas de pan ------------------------------ */
.hn-page .site-breadcrumb {
    border: 0;
    padding-block: 0.5rem 0;
    margin-top: 0.25rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.88rem;
    color: var(--hn-muted);
}
.hn-page .site-breadcrumb__separator { color: var(--hn-accent-ink); opacity: .55; }
.hn-page .site-breadcrumb__current {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--hn-text);
    font-weight: 600;
}
.hn-page .site-breadcrumb a { color: var(--hn-accent-ink); font-weight: 600; }
.hn-page .site-breadcrumb a:hover { text-decoration: underline; }
.hn-page .site-breadcrumb span[aria-hidden="true"] { opacity: 0.45; }

/* ------------------- Título de sección compartido (chunk) ----------------- */
.hn-page .section-heading {
    position: relative;
    display: grid;
    gap: 0.35rem;
    margin-bottom: clamp(1rem, 2.5vw, 1.75rem);
}
.hn-page .section-heading__bg { display: none; }
.hn-page .section-heading__title {
    font-family: var(--hn-display);
    text-transform: uppercase;
    font-size: clamp(1.75rem, 4.4vw, 2.75rem);
    line-height: 1.02;
    color: var(--hn-navy);
}
.hn-page .section-heading::before {
    content: "";
    width: 34px; height: 4px;
    border-radius: 2px;
    background: var(--hn-cyan);
}

/* --------------------- Filtros del archivo de eventos --------------------- */
.hn-page .arch-tools {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: 1fr;
    padding: clamp(1rem, 2.5vw, 1.5rem);
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    box-shadow: var(--hn-shadow);
    margin-bottom: clamp(1.25rem, 3vw, 2rem);
}
.hn-page .arch-tools label {
    display: block;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--hn-muted);
    margin-bottom: 0.4rem;
}
.hn-page .arch-tools input,
.hn-page .arch-tools select,
.hn-page .pf-input,
.hn-page select.pf-input {
    width: 100%;
    padding: 0.75rem 0.9rem;
    border-radius: 12px;
    border: 1.5px solid var(--hn-line);
    background: #fff;
    color: var(--hn-text);
    font: inherit;
    transition: border-color 0.2s var(--hn-ease), box-shadow 0.2s var(--hn-ease);
}
.hn-page .arch-tools input:focus,
.hn-page .arch-tools select:focus,
.hn-page .pf-input:focus {
    outline: none;
    border-color: var(--hn-cyan);
    box-shadow: 0 0 0 4px rgba(0, 177, 233, 0.18);
}

/* ------------------------ Rejillas de tarjetas ---------------------------- */
.hn-page .arch-grid,
.hn-page .related-grid,
.hn-page .arch-grid--related {
    display: grid;
    gap: clamp(1rem, 2.2vw, 1.75rem);
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr));
}
.hn-page .arch-empty {
    padding: 2rem;
    text-align: center;
    color: var(--hn-muted);
    border: 1px dashed var(--hn-line);
    border-radius: var(--hn-r-lg);
}

/* Paginación */
.hn-page .arch-pagination:empty { display: none; border: 0; padding: 0; margin: 0; }
.hn-page .arch-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
    margin-top: clamp(1.5rem, 3vw, 2.5rem);
}
.hn-page .arch-pagination button,
.hn-page .arch-pagination a {
    min-width: 44px;
    height: 44px;
    padding-inline: 0.9rem;
    border-radius: 999px;
    border: 1.5px solid var(--hn-line);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    color: var(--hn-navy);
    background: #fff;
    transition: background 0.2s var(--hn-ease), color 0.2s var(--hn-ease), border-color 0.2s var(--hn-ease);
}
.hn-page .arch-pagination button:hover,
.hn-page .arch-pagination a:hover { background: var(--hn-navy); border-color: var(--hn-navy); color: #fff; }
.hn-page .arch-pagination [aria-current="page"],
.hn-page .arch-pagination .is-active {
    background: var(--hn-cyan);
    border-color: var(--hn-cyan);
    color: #04283f;
}
.hn-page .arch-pagination [disabled] { opacity: 0.4; cursor: default; }

/* ------------------------------ Nota / artículo --------------------------- */
.hn-page .note-article { display: grid; gap: clamp(1.25rem, 3vw, 2rem); }
.hn-page .note-media {
    margin: 0;
    border-radius: var(--hn-r-lg);
    overflow: hidden;
    box-shadow: var(--hn-shadow);
}
.hn-page .note-media img { width: 100%; height: auto; }
.hn-page .note-masthead { display: grid; gap: 0.6rem; }
.hn-page .note-masthead__kicker,
.hn-page .event-masthead__kicker,
.hn-page .contact-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--hn-accent-ink);
}
.hn-page .note-masthead__title,
.hn-page .event-masthead__title {
    font-family: var(--hn-display);
    color: var(--hn-navy);
    font-size: clamp(1.9rem, 5vw, 3.1rem);
    line-height: 1.03;
    text-transform: none;
}
.hn-page .note-masthead__desc { color: var(--hn-muted); font-size: 1.05rem; max-width: 62ch; }

.hn-page .note-columns {
    display: grid;
    gap: clamp(1.5rem, 4vw, 3rem);
}
.hn-page .note-body {
    color: var(--hn-text);
    font-size: 1.03rem;
    line-height: 1.75;
    max-width: 72ch;
}
.hn-page .note-body h2,
.hn-page .note-body h3,
.hn-page .legal-document h2,
.hn-page .legal-document h3,
.hn-page .event-content__title {
    font-family: var(--hn-display);
    color: var(--hn-navy);
    line-height: 1.15;
    margin: 1.8em 0 0.5em;
    text-transform: none;
}
.hn-page .note-body h2, .hn-page .legal-document h2 { font-size: clamp(1.35rem, 3vw, 1.8rem); }
.hn-page .note-body h3, .hn-page .legal-document h3 { font-size: 1.2rem; }
.hn-page .note-body > *:first-child,
.hn-page .legal-document > *:first-child,
.hn-page .hn-detail__body > *:first-child,
.hn-page .event-content > *:first-child,
.hn-page .event-content__title { margin-top: 0; }
.hn-page .note-body p,
.hn-page .legal-document p,
.hn-page .event-content__body p { margin-bottom: 1.1em; }
.hn-page .note-body a,
.hn-page .legal-document a,
.hn-page .event-content__body a { color: var(--hn-accent-ink); font-weight: 600; text-decoration: underline; }
.hn-page .note-body ul,
.hn-page .note-body ol,
.hn-page .legal-document ul,
.hn-page .legal-document ol,
.hn-page .event-content__body ul,
.hn-page .event-content__body ol { margin: 0 0 1.2em 1.25em; list-style: revert; }
.hn-page .note-body li,
.hn-page .legal-document li,
.hn-page .event-content__body li { margin-bottom: 0.4em; }
.hn-page .note-body img,
.hn-page .event-content__body img { border-radius: var(--hn-r-md); margin: 1.25em 0; }
.hn-page .note-body blockquote {
    border-left: 4px solid var(--hn-cyan);
    padding: 0.35rem 0 0.35rem 1.15rem;
    margin: 1.5em 0;
    color: var(--hn-navy);
    font-size: 1.1rem;
}

.hn-page .note-sidebar { display: grid; gap: 1rem; align-content: start; }
.hn-page .note-sidebar section {
    background: var(--hn-mist);
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    padding: clamp(1.1rem, 2.4vw, 1.6rem);
    display: grid;
    gap: 0.9rem;
}
.hn-page .sidebar-widget-title {
    font-family: var(--hn-display);
    text-transform: uppercase;
    font-size: 1.05rem;
    color: var(--hn-navy);
    letter-spacing: 0.02em;
}

/* -------------------------- Compartir (nota/evento) ----------------------- */
.hn-page .event-share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
}
.hn-page .event-share__label {
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--hn-muted);
    margin-right: 0.25rem;
}
.hn-page .event-share__btn {
    width: 42px; height: 42px;
    border-radius: 50%;
    display: inline-grid;
    place-items: center;
    background: var(--hn-navy);
    color: #fff;
    border: 0;
    transition: transform 0.2s var(--hn-ease), background 0.2s var(--hn-ease);
}
.hn-page .event-share__btn:hover { background: var(--hn-cyan); color: #04283f; transform: translateY(-3px); }

/* ------------------------------ Evento ------------------------------------ */
.hn-page .event-masthead {
    display: grid;
    gap: 1.25rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    margin-top: clamp(-3.5rem, -6vw, -2rem);
    position: relative;
    z-index: 2;
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    box-shadow: var(--hn-shadow-lg);
}
.hn-page .event-masthead__id { display: flex; gap: 1rem; align-items: center; }
.hn-page .event-masthead__icon {
    width: 64px; height: 64px;
    flex: none;
    border-radius: 16px;
    overflow: hidden;
    background: var(--hn-mist);
    display: grid;
    place-items: center;
}
.hn-page .event-masthead__icon img { width: 100%; height: 100%; object-fit: contain; }
.hn-page .event-masthead__date { color: var(--hn-muted); font-weight: 600; }

.hn-page .event-grid {
    display: grid;
    gap: clamp(1.25rem, 3vw, 2.25rem);
    align-items: start;
}
.hn-page .event-content {
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    padding: clamp(1.25rem, 3vw, 2.25rem);
    line-height: 1.7;
}
.hn-page .event-route {
    display: grid;
    gap: 1rem;
}

/* Mapa Google del evento, cargado bajo demanda en un iframe. */
.hn-page .event-map {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: clamp(18px, 2vw, 26px);
    box-shadow: 0 12px 32px rgba(8, 29, 54, 0.08);
    isolation: isolate;
}
.hn-page .event-map__head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    padding: clamp(1.25rem, 3vw, 2rem);
}
.hn-page .event-map__head h2 { margin: 0.15rem 0 0; }
.hn-page .event-map__link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    flex: 0 0 auto;
    color: var(--hn-navy);
    font-weight: 800;
    text-decoration: none;
}
.hn-page .event-map__link:hover { color: var(--hn-cyan); }
.hn-page .event-map__frame {
    position: relative;
    min-height: 320px;
    background: var(--hn-line);
    overflow: hidden;
    border-radius: 0 0 clamp(18px, 2vw, 26px) clamp(18px, 2vw, 26px);
}
.hn-page .event-map__frame iframe {
    display: block;
    width: 100%;
    height: clamp(320px, 42vw, 460px);
    border: 0;
}
.hn-page .event-map__canvas {
    width: 100%;
    height: 100%;
    min-height: 0;
}
.hn-page .event-map__marker {
    position: relative;
    width: 58px;
    height: 66px;
    filter: drop-shadow(0 8px 8px rgba(4, 64, 101, 0.3));
    cursor: pointer;
}
.hn-page .event-map__marker:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 4px;
    border-radius: 50%;
}
.hn-page .event-map__marker-pin {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    background: var(--hn-navy);
    border: 3px solid var(--hn-cyan);
    border-radius: 50% 50% 50% 10px;
    transform: rotate(-45deg);
}
.hn-page .event-map__marker-pin img {
    width: 29px;
    height: 23px;
    object-fit: contain;
    transform: rotate(45deg);
}
.hn-page .event-map__brand {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin: 12px;
    padding: 0.65rem 0.8rem;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(4, 64, 101, 0.14);
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(8, 29, 54, 0.16);
}
.hn-page .event-map__brand img {
    display: block;
    width: 118px;
    height: auto;
}
.hn-page .event-map__brand span {
    padding-left: 0.6rem;
    border-left: 1px solid var(--hn-line);
    color: var(--hn-navy);
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1.15;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.hn-page .event-map__info {
    display: grid;
    gap: 0.55rem;
    width: min(280px, 68vw);
    padding: 0.2rem 0.15rem 0.35rem;
    color: var(--hn-navy);
    font-family: var(--hn-body);
}
.hn-page .event-map__info-kicker {
    margin: 0;
    color: var(--hn-cyan);
    font-size: 0.68rem;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.hn-page .event-map__info h3 {
    margin: 0;
    color: var(--hn-navy);
    font-family: var(--hn-display);
    font-size: 1.18rem;
    line-height: 1.08;
}
.hn-page .event-map__info p:not(.event-map__info-kicker) {
    display: grid;
    grid-template-columns: 1rem minmax(0, 1fr);
    gap: 0.45rem;
    margin: 0;
    color: #456075;
    font-size: 0.78rem;
    line-height: 1.35;
}
.hn-page .event-map__info p i { color: var(--hn-cyan); margin-top: 0.12rem; }
.hn-page .event-map__info > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    width: max-content;
    margin-top: 0.15rem;
    padding: 0.55rem 0.75rem;
    background: var(--hn-navy);
    border-radius: 999px;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
}
.hn-page .event-map__info > a:hover { background: var(--hn-cyan); color: var(--hn-navy); }
.hn-page .event-map__credit {
    margin: 0;
    padding: 0.55rem 1rem;
    color: var(--hn-muted);
    font-size: 0.72rem;
    text-align: right;
}
.hn-page .event-map__credit a { color: inherit; }
@media (max-width: 560px) {
    .hn-page .event-map__head { align-items: start; flex-direction: column; }
    .hn-page .event-map__brand span { display: none; }
    .hn-page .event-map__brand img { width: 100px; }
}
.hn-page .event-route img { border-radius: var(--hn-r-lg); width: 100%; height: auto; }
.hn-page .event-route h2,
.hn-page .related-events h2 {
    font-family: var(--hn-display);
    color: var(--hn-navy);
    font-size: clamp(1.4rem, 3vw, 2rem);
    text-transform: uppercase;
}

/* ------------------------------- Contacto --------------------------------- */
.hn-page .contact-content {
    width: 100%;
    max-width: var(--hn-max);
    margin: 0 auto;
    padding: clamp(1.5rem, 4vw, 3rem) var(--hn-pad);
    display: grid;
    gap: clamp(1.5rem, 4vw, 3rem);
}

/* Intro: texto + imagen */
.hn-page .hn-contact-intro {
    display: grid;
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: center;
}
.hn-page .hn-contact-intro__text { display: grid; gap: 0.6rem; }
.hn-page .hn-contact-intro p { color: var(--hn-muted); max-width: 60ch; }
.hn-page .hn-contact-intro__img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--hn-r-lg);
    box-shadow: var(--hn-shadow);
}

/* Servicios */
.hn-page .hn-contact-services {
    display: grid;
    gap: clamp(1rem, 2vw, 1.5rem);
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
}
.hn-page .hn-feature {
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    padding: clamp(1.25rem, 2.8vw, 1.85rem);
    display: grid;
    gap: 0.6rem;
    align-content: start;
    transition: transform 0.25s var(--hn-ease), box-shadow 0.25s var(--hn-ease);
}
.hn-page .hn-feature:hover { transform: translateY(-4px); box-shadow: var(--hn-shadow); }
.hn-page .hn-feature__icon {
    width: 48px; height: 48px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: rgba(0, 177, 233, 0.12);
    color: var(--hn-accent-ink);
    font-size: 1.15rem;
}
.hn-page .hn-feature__title {
    font-family: var(--hn-display);
    color: var(--hn-navy);
    font-size: 1.2rem;
    text-transform: uppercase;
    line-height: 1.1;
}
.hn-page .hn-feature p { color: var(--hn-muted); font-size: 0.95rem; }

/* Panel de contacto directo: UNA sola caja */
.hn-page .hn-contact-panel {
    display: grid;
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: center;
    background: var(--hn-mist);
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-xl);
    padding: clamp(1.5rem, 4vw, 2.75rem);
}
.hn-page .hn-contact-panel__text { display: grid; gap: 0.6rem; }
.hn-page .hn-contact-panel p { color: var(--hn-muted); max-width: 54ch; }
.hn-page .hn-contact-panel__actions { display: grid; gap: 0.75rem; align-content: center; }
.hn-page .hn-contact-action {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 0.9rem 1.25rem;
    border-radius: 14px;
    background: var(--hn-cyan);
    color: #04283f;
    font-weight: 700;
    font-size: 1rem;
    box-shadow: 0 16px 30px -18px rgba(0, 177, 233, 0.95);
    transition: transform 0.2s var(--hn-ease);
}
.hn-page .hn-contact-action:hover { transform: translateY(-3px); }
.hn-page .hn-contact-action small {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #04283f;
    opacity: 1;
}
.hn-page .hn-contact-action__icon {
    width: 44px; height: 44px;
    flex: none;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(4, 40, 63, 0.12);
    font-size: 1.25rem;
}
.hn-page .hn-contact-action--ghost {
    background: #fff;
    color: var(--hn-navy);
    border: 1.5px solid var(--hn-line);
    box-shadow: none;
}
.hn-page .hn-contact-action--ghost small { color: var(--hn-muted); opacity: 1; }
.hn-page .hn-contact-action--ghost .hn-contact-action__icon {
    background: rgba(0, 177, 233, 0.12);
    color: var(--hn-accent-ink);
}

/* Banda de cierre */
.hn-page .hn-cta-band {
    display: grid;
    gap: 0.6rem;
    justify-items: center;
    text-align: center;
    padding: clamp(2rem, 5vw, 3.25rem) var(--hn-pad);
    border-radius: var(--hn-r-xl);
    background:
        radial-gradient(120% 90% at 85% 0%, rgba(0, 177, 233, 0.24), transparent 60%),
        linear-gradient(180deg, var(--hn-navy) 0%, var(--hn-navy-ink) 100%);
    color: #fff;
}
.hn-page .hn-cta-band__title {
    font-family: var(--hn-display);
    font-size: clamp(1.6rem, 4vw, 2.6rem);
    text-transform: uppercase;
    line-height: 1.05;
}
.hn-page .hn-cta-band p { color: rgba(255, 255, 255, 0.85); margin-bottom: 0.6rem; }

/* -------------------------------- Legales --------------------------------- */
.hn-page .legal-content {
    width: 100%;
    max-width: var(--hn-max);
    margin: 0 auto;
    padding: clamp(1.5rem, 4vw, 3rem) var(--hn-pad);
    display: grid;
    gap: clamp(1.25rem, 3vw, 2.25rem);
    align-items: start;
}
.hn-page .legal-document {
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    padding: clamp(1.5rem, 4vw, 3rem);
    max-width: none;
    line-height: 1.75;
    color: var(--hn-text);
    box-shadow: var(--hn-shadow);
}
.hn-page .legal-aside { display: grid; gap: 1rem; }

/* Fecha de actualización y ancho de lectura cómodo */
.hn-page .legal-document__updated {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.35rem 0.8rem;
    margin-bottom: 1.5rem;
    border-radius: 999px;
    background: var(--hn-mist);
    border: 1px solid var(--hn-line);
    color: var(--hn-muted);
    font-size: 0.8rem;
    font-weight: 600;
}
.hn-page .legal-document__body { max-width: 74ch; }
.hn-page .legal-document__body > *:first-child { margin-top: 0; }
.hn-page .legal-document__body h2,
.hn-page .legal-document__body h3 { scroll-margin-top: calc(var(--hn-header-h) + 1rem); }
.hn-page .legal-document__body ul,
.hn-page .legal-document__body ol {
    margin: 0 0 1.2em 1.25em;
    list-style: revert;
}
.hn-page .legal-document__body li { margin-bottom: 0.45em; }

/* Índice del documento */
.hn-page .hn-toc { display: grid; }
.hn-page .hn-toc__link {
    display: block;
    padding: 0.45rem 0 0.45rem 0.85rem;
    border-left: 2px solid var(--hn-line);
    color: var(--hn-muted);
    font-size: 0.9rem;
    line-height: 1.4;
    transition: color 0.2s var(--hn-ease), border-color 0.2s var(--hn-ease);
}
.hn-page .hn-toc__link:hover {
    color: var(--hn-navy);
    border-left-color: var(--hn-cyan);
}
.hn-page .hn-toc__link.is-sub { padding-left: 1.6rem; font-size: 0.85rem; }
.hn-page .hn-widget--toc { max-height: min(56svh, 460px); overflow-y: auto; }
.hn-page .hn-widget__cta--wa {
    border-color: var(--hn-cyan);
    color: var(--hn-accent-ink);
}
.hn-page .hn-widget__cta--wa:hover { background: var(--hn-cyan); border-color: var(--hn-cyan); color: #04283f; }

/* Contenido legal heredado (clases preForms del editor) */
.hn-page .legal-document h1,
.hn-page .legal-document .preFormsTitle-p {
    font-family: var(--hn-display);
    color: var(--hn-navy);
    font-size: clamp(1.35rem, 3vw, 1.9rem);
    line-height: 1.15;
    text-align: left;
    margin: 0 0 0.75rem;
}
.hn-page .legal-document .preForms-p,
.hn-page .legal-document p {
    color: var(--hn-text);
    font-size: 1rem;
    line-height: 1.75;
    margin-bottom: 1.05em;
    text-align: left;
}
.hn-page .legal-document hr {
    border: 0;
    border-top: 1px solid var(--hn-line);
    margin: 1.5rem 0;
    width: 100%;
}
.hn-page .legal-document strong { color: var(--hn-navy); }
.hn-page .legal-document a { color: var(--hn-accent-ink); font-weight: 600; text-decoration: underline; }
.hn-page .legal-aside p { color: var(--hn-muted); font-size: 0.95rem; }
.hn-page .hn-widget__link {
    display: block;
    padding: 0.45rem 0;
    color: var(--hn-navy);
    font-weight: 600;
    border-bottom: 1px solid var(--hn-line);
}
.hn-page .hn-widget__link:last-child { border-bottom: 0; }
.hn-page .hn-widget__link:hover { color: var(--hn-accent-ink); }
.hn-page .legal-content > .site-breadcrumb { grid-column: 1 / -1; }

/* -------------------------- Preguntas frecuentes ------------------------- */
.hn-page .faq-document { padding: clamp(1.25rem, 3vw, 2rem); }
.hn-page .faq-intro {
    padding: clamp(0.35rem, 2vw, 1rem) clamp(0.25rem, 2vw, 0.75rem) clamp(1.25rem, 3vw, 2rem);
    border-bottom: 1px solid var(--hn-line);
    margin-bottom: clamp(1rem, 3vw, 1.5rem);
}
.hn-page .faq-intro h2 {
    margin: 0.25rem 0 0.65rem;
    color: var(--hn-navy);
    font-family: var(--hn-display);
    font-size: clamp(1.45rem, 3.2vw, 2.15rem);
    line-height: 1.08;
    text-transform: uppercase;
}
.hn-page .faq-intro p:last-child { margin-bottom: 0; color: var(--hn-muted); }
.hn-page .faq-payment-cards {
    margin: 0 0 clamp(1.25rem, 3vw, 2rem);
    padding: clamp(1.15rem, 3vw, 1.65rem);
    border: 1px solid rgba(0, 177, 233, 0.3);
    border-radius: var(--hn-r-lg);
    background: linear-gradient(145deg, #fff 0%, var(--hn-mist) 100%);
}
.hn-page .faq-payment-cards h3 {
    margin: 0.2rem 0 0.55rem;
    color: var(--hn-navy);
    font-family: var(--hn-display);
    font-size: clamp(1.2rem, 2.6vw, 1.65rem);
    line-height: 1.15;
    text-transform: uppercase;
}
.hn-page .legal-document .faq-payment-cards > p:not(.hn-eyebrow) {
    margin: 0;
    color: var(--hn-muted);
    font-size: 0.95rem;
    line-height: 1.65;
}
.hn-page .faq-payment-cards__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 1rem 0;
    padding: 0;
    list-style: none;
}
.hn-page .faq-payment-card {
    min-width: 0;
    padding: 0.75rem 0.6rem 0.65rem;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-md);
    background: #fff;
    display: grid;
    place-items: center;
    gap: 0.35rem;
    box-shadow: 0 8px 20px rgba(6, 32, 51, 0.05);
}
.hn-page .faq-payment-card__logo {
    display: block;
    width: min(100%, 9.375rem);
    height: 4rem;
}
.hn-page .faq-payment-card span {
    color: var(--hn-muted);
    font-size: 0.78rem;
    font-weight: 650;
    text-align: center;
}
.hn-page .legal-document .faq-payment-cards__notice {
    padding-top: 0.85rem;
    border-top: 1px solid rgba(6, 32, 51, 0.1);
    font-size: 0.86rem;
}
.hn-page .faq-list { display: grid; gap: 0.75rem; }
.hn-page .faq-item {
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-md);
    background: #fff;
    overflow: hidden;
    scroll-margin-top: calc(var(--hn-header-h) + 1rem);
}
.hn-page .faq-item[open] { border-color: rgba(0, 177, 233, 0.48); box-shadow: 0 10px 28px rgba(6, 32, 51, 0.08); }
.hn-page .faq-item summary {
    position: relative;
    display: block;
    padding: 1.1rem 3.25rem 1.1rem 1.15rem;
    color: var(--hn-navy);
    font-weight: 750;
    line-height: 1.4;
    cursor: pointer;
    list-style: none;
}
.hn-page .faq-item summary::-webkit-details-marker { display: none; }
.hn-page .faq-item summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 1.15rem;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--hn-mist);
    color: var(--hn-accent-ink);
    font-size: 1.2rem;
    line-height: 1;
    transform: translateY(-50%);
}
.hn-page .faq-item[open] summary::after { content: "−"; background: rgba(0, 177, 233, 0.14); }
.hn-page .faq-item summary:focus-visible { outline: 2px solid var(--hn-cyan); outline-offset: -3px; }
.hn-page .faq-item__answer { padding: 0 1.15rem 1.1rem; }
.hn-page .legal-document .faq-item__answer p { margin: 0; color: var(--hn-muted); font-size: 0.95rem; line-height: 1.7; }

@media (max-width: 620px) {
    .hn-page .faq-payment-cards__list { grid-template-columns: 1fr; }
    .hn-page .faq-payment-card { grid-template-columns: minmax(7.5rem, 9.375rem) 1fr; }
}

/* ----------------------- Formularios de inscripción ----------------------- */
.hn-page .pf-form {
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    padding: clamp(1.25rem, 3vw, 2rem);
    display: grid;
    gap: 1.1rem;
}
.hn-page .pf-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
}
.hn-page .pf-label,
.hn-page .pf-legend {
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--hn-navy);
    margin-bottom: 0.4rem;
    display: block;
}
.hn-page .pf-hint,
.hn-page .pf-optional { color: var(--hn-muted); font-size: 0.85rem; }
.hn-page .pf-req { color: #c0392b; }
.hn-page .pf-error { color: #b3261e; font-size: 0.85rem; margin-top: 0.35rem; }
.hn-page .pf-input[aria-invalid="true"] { border-color: #b3261e; box-shadow: 0 0 0 4px rgba(179, 38, 30, 0.12); }
.hn-page .pf-option,
.hn-page .pf-check:not(.pf-consent-choice) {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    padding: 0.6rem 0.75rem;
    border: 1.5px solid var(--hn-line);
    border-radius: 12px;
    cursor: pointer;
    transition: border-color 0.2s var(--hn-ease), background 0.2s var(--hn-ease);
}
.hn-page .pf-option:hover,
.hn-page .pf-check:hover { border-color: var(--hn-cyan); background: rgba(0, 177, 233, 0.06); }
.hn-page .pf-submit {
    justify-self: start;
    padding: 1rem 2rem;
    border-radius: 12px;
    background: var(--hn-cyan);
    color: #04283f;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border: 0;
    box-shadow: 0 16px 34px -18px rgba(0, 177, 233, 0.95);
    transition: transform 0.2s var(--hn-ease), opacity 0.2s var(--hn-ease);
}
.hn-page .pf-submit:hover { transform: translateY(-3px); }
.hn-page .pf-submit[disabled] { opacity: 0.55; transform: none; cursor: default; }
.hn-page .pf-alert,
.hn-page .pf-success {
    border-radius: var(--hn-r-md);
    padding: 1rem 1.15rem;
    border: 1px solid var(--hn-line);
    background: var(--hn-mist);
    color: var(--hn-text);
}
.hn-page .pf-success { border-color: rgba(0, 177, 233, 0.45); background: rgba(0, 177, 233, 0.08); }
.hn-page .pf-payment-summary {
    background: rgba(244, 248, 250, 0.72);
    border: 1px solid rgba(20, 66, 91, 0.12);
    border-radius: 0.65rem;
    padding: 0.65rem 0.8rem;
}
.hn-page .pf-modal {
    border-radius: var(--hn-r-lg);
    border: 0;
    box-shadow: var(--hn-shadow-lg);
    max-width: min(92vw, 640px);
}
.hn-page .pf-modal__title { font-family: var(--hn-display); color: var(--hn-navy); }

/* ------------------------- Botones genéricos del sitio -------------------- */
.hn-page .site-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.85rem 1.5rem;
    border-radius: 12px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-size: 0.88rem;
    background: var(--hn-navy);
    color: #fff;
    border: 1.5px solid var(--hn-navy);
    transition: transform 0.2s var(--hn-ease), background 0.2s var(--hn-ease), color 0.2s var(--hn-ease);
}
.hn-page .site-button:hover { transform: translateY(-3px); }
.hn-page .site-button--ghost {
    background: transparent;
    color: var(--hn-navy);
}
.hn-page .site-button--ghost:hover { background: var(--hn-navy); color: #fff; }

/* -------------------------------- Checkout -------------------------------- */
/* Páginas de resultado de pago. El estado llega en data-checkout, derivado de
   la TV checkout_color (bg-green-600 / bg-yellow-500 / bg-red-600). */
.hn-page .checkout-page {
    max-width: 760px;
    align-content: start;
}
.hn-page .checkout-card {
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-xl);
    padding: clamp(1.75rem, 5vw, 3rem);
    text-align: center;
    display: grid;
    gap: 0.85rem;
    justify-items: center;
    box-shadow: var(--hn-shadow);
    --pf-state-ink: var(--hn-navy);
    --pf-state-soft: rgba(14, 60, 97, 0.1);
}
.hn-page .checkout-card[data-checkout*="green"] {
    --pf-state-ink: #157a48;
    --pf-state-soft: rgba(21, 122, 72, 0.12);
}
.hn-page .checkout-card[data-checkout*="yellow"],
.hn-page .checkout-card[data-checkout*="amber"],
.hn-page .checkout-card[data-checkout*="orange"] {
    --pf-state-ink: #8f5600;
    --pf-state-soft: rgba(143, 86, 0, 0.12);
}
.hn-page .checkout-card[data-checkout*="red"] {
    --pf-state-ink: #b3261e;
    --pf-state-soft: rgba(179, 38, 30, 0.1);
}
.hn-page .checkout-card__icon {
    width: 84px; height: 84px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 2.2rem;
    line-height: 1;
    background: var(--pf-state-soft);
    color: var(--pf-state-ink);
}
.hn-page .checkout-card__kicker {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--pf-state-ink);
}
.hn-page .checkout-card h1 {
    font-family: var(--hn-display);
    color: var(--hn-navy);
    font-size: clamp(1.6rem, 4vw, 2.4rem);
    text-transform: uppercase;
    line-height: 1.05;
}
.hn-page .checkout-card__body {
    color: var(--hn-muted);
    max-width: 52ch;
    line-height: 1.7;
}
.hn-page .checkout-card__body p { margin-bottom: 0.8em; }
.hn-page .checkout-card__body p:last-child { margin-bottom: 0; }
.hn-page .checkout-card__body strong { color: var(--hn-navy); }
.hn-page .checkout-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
    margin-top: 0.35rem;
}
.hn-page .checkout-card__help {
    color: var(--hn-muted);
    font-size: 0.9rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--hn-line);
    width: 100%;
}
.hn-page .checkout-card__help a { color: var(--hn-accent-ink); font-weight: 600; text-decoration: underline; }
.hn-page .checkout-card dl {
    width: 100%;
    display: grid;
    gap: 0.5rem;
    text-align: left;
    background: var(--hn-mist);
    border-radius: var(--hn-r-md);
    padding: 1rem 1.15rem;
}
.hn-page .checkout-card dt { font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--hn-muted); }
.hn-page .checkout-card dd { margin: 0 0 0.5rem; font-weight: 600; color: var(--hn-text); }

/* --------------------------------- Errores -------------------------------- */
.hn-page .error-page {
    min-height: min(78svh, 640px);
    display: grid;
    place-items: center;
    text-align: center;
    padding: clamp(3rem, 8vw, 6rem) var(--hn-pad);
    background:
        radial-gradient(120% 90% at 70% 0%, rgba(0, 177, 233, 0.25), transparent 60%),
        linear-gradient(180deg, var(--hn-navy) 0%, var(--hn-navy-ink) 100%);
    color: #fff;
}
.hn-page .error-page__code {
    font-family: var(--hn-outline);
    font-size: clamp(5rem, 22vw, 12rem);
    line-height: 0.9;
    color: var(--hn-cyan);
}
.hn-page .error-page__title {
    font-family: var(--hn-display);
    text-transform: uppercase;
    font-size: clamp(1.6rem, 4.5vw, 2.8rem);
    margin-top: 0.5rem;
}
.hn-page .error-page p { color: var(--hn-muted-dark); max-width: 48ch; margin: 1rem auto 1.75rem; }
.hn-page .error-page__actions { display: flex; flex-wrap: wrap; gap: 0.85rem; justify-content: center; }

/* =================== AJUSTES DE COHERENCIA CON EL HOME ==================== */
/* Bloques sueltos de las plantillas (banner del evento, cabeceras) alineados al
   mismo contenedor y respiración que el resto del sitio. */
.hn-page.hn-interior > section {
    width: 100%;
    max-width: var(--hn-max);
    margin-inline: auto;
    padding-inline: var(--hn-pad);
}
.hn-page.hn-interior > section:has(.visual-hero),
.hn-page.hn-interior > .visual-hero {
    max-width: none;
    padding-inline: 0;
}
/* El banner del evento adopta el radio y la sombra de las tarjetas del home */
.hn-page .event-masthead + *,
.hn-page picture,
.hn-page .event-masthead ~ * { min-width: 0; }
.hn-page.hn-interior > section > .relative.rounded-2xl,
.hn-page.hn-interior > section > div:first-child {
    border-radius: var(--hn-r-lg);
    overflow: hidden;
    box-shadow: var(--hn-shadow);
}

/* Cajas de información: mismo lenguaje que las tarjetas del home */
.hn-page .event-card,
.hn-page .note-sidebar section,
.hn-page .event-content,
.hn-page .contact-card,
.hn-page .legal-document,
.hn-page .checkout-card,
.hn-page .arch-tools {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}
.hn-page .event-grid > * { min-width: 0; }

/* Tarjetas del archivo y de relacionados con el mismo acabado */
.hn-page .arch-card,
.hn-page .related-grid > * {
    background: none;
    border: 0;
    border-radius: var(--hn-r-lg);
}
.hn-page .event-card-image { width: 100%; height: 100%; object-fit: cover; }
.hn-page .event-card-image.is-fallback { object-fit: contain; padding: 18%; background: #fff; }

/* Bloques de contenido sobre el fondo claro: siempre en blanco */
.hn-page .note-body,
.hn-page .note-article > .event-share {
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    padding: clamp(1.25rem, 3vw, 2.25rem);
    max-width: none;
}
.hn-page .note-article > .event-share { padding-block: 1rem; }

/* ============== ENCABEZADO SOBRE LA IMAGEN (archivos y contacto) ========= */
.hn-page .hn-pagehero {
    position: relative;
    width: 100%;
    max-width: none;
    margin: calc(var(--hn-header-h) * -1) 0 0;
    padding: 0;
    min-height: clamp(320px, 40vw, 480px);
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: var(--hn-navy-ink);
    border-radius: 0;
}
.hn-page .hn-pagehero__img {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center 35%;
    border-radius: 0;
}
.hn-page .hn-pagehero::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(6, 32, 51, 0.76) 0%, rgba(14, 60, 97, 0.34) 42%, rgba(6, 32, 51, 0.88) 100%),
        linear-gradient(115deg, rgba(14, 60, 97, 0.62) 0%, rgba(0, 177, 233, 0.2) 100%);
}
.hn-page .hn-pagehero__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--hn-max);
    margin-inline: auto;
    padding: calc(var(--hn-header-h) + 3rem) var(--hn-pad) clamp(2rem, 5vw, 3.5rem);
    display: grid;
    gap: 0.75rem;
    color: #fff;
}
.hn-page .hn-pagehero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    color: var(--hn-cyan-soft);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.26em;
    text-transform: uppercase;
}
.hn-page .hn-pagehero__eyebrow::before {
    content: "";
    width: 30px; height: 3px;
    border-radius: 2px;
    background: var(--hn-cyan);
}
.hn-page .hn-pagehero__title {
    font-family: var(--hn-display);
    text-transform: uppercase;
    font-size: clamp(2.2rem, 6.4vw, 4.4rem);
    line-height: 0.98;
    letter-spacing: -0.01em;
    color: #fff;
}
.hn-page .hn-pagehero__lede {
    color: rgba(255, 255, 255, 0.85);
    max-width: 56ch;
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}

/* ================ PLANTILLA DE DETALLE (evento y nota) =================== */
/* Evento y nota comparten composición: media a sangre, encabezado sobre la
   imagen, cuerpo con panel lateral y bloque de relacionados. Cada uno aporta
   sus piezas propias (tarjeta de inscripción / próximos eventos). */
.hn-page .hn-detail {
    width: 100%;
    max-width: var(--hn-max);
    margin: 0 auto;
    padding: 0 var(--hn-pad) clamp(1.5rem, 4vw, 3rem);
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(1.1rem, 2.6vw, 1.85rem);
}
.hn-page .hn-detail__media {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border-radius: 0 0 var(--hn-r-lg) var(--hn-r-lg);
    overflow: hidden;
    background: var(--hn-navy-ink);
    box-shadow: none;
}
.hn-page .hn-detail__media img,
.hn-page .hn-detail__media picture { border-radius: inherit; }
/* La imagen destacada arranca pegada al menú en todos los tamaños: sin franja
   entre el header y el media, ni en escritorio ni en móvil. */
.hn-page .hn-detail { padding-top: 0; }
.hn-page .hn-detail__media img {
    width: 100%;
    height: auto;
    display: block;
}
.hn-page .hn-detail--nota .hn-detail__media img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.hn-page .hn-detail__head {
    display: grid;
    gap: 1.25rem;
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    box-shadow: var(--hn-shadow);
    padding: clamp(1.25rem, 3vw, 2rem);
    margin-top: clamp(-3.5rem, -5vw, -2rem);
    position: relative;
    z-index: 2;
}
.hn-page .hn-detail__identity { display: flex; gap: 1rem; align-items: center; min-width: 0; }
.hn-page .hn-detail__avatar {
    width: 68px; height: 68px;
    flex: none;
    border-radius: 50%;
    overflow: hidden;
    background: var(--hn-mist);
    border: 1px solid var(--hn-line);
    display: grid;
    place-items: center;
}
.hn-page .hn-detail__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.hn-page .hn-detail__kicker {
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--hn-accent-ink);
    margin-bottom: 0.35rem;
}
.hn-page .hn-detail__title {
    font-family: var(--hn-display);
    color: var(--hn-navy);
    font-size: clamp(1.7rem, 4.4vw, 2.9rem);
    line-height: 1.04;
    text-wrap: balance;
}
.hn-page .hn-detail__meta {
    color: var(--hn-muted);
    font-weight: 600;
    margin-top: 0.5rem;
}
.hn-page .hn-detail--nota .hn-detail__meta { font-weight: 400; font-size: 1.02rem; max-width: 62ch; }

.hn-page .hn-detail__grid {
    display: grid;
    gap: clamp(1.25rem, 3vw, 2.25rem);
    align-items: start;
}
.hn-page .hn-detail__body {
    --hn-detail-body-pad: clamp(1.25rem, 3vw, 2.25rem);
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    padding: var(--hn-detail-body-pad);
    min-width: 0;
    overflow: hidden;
}
.hn-page .hn-detail__extra {
    margin-top: clamp(1.5rem, 3vw, 2.25rem);
    padding: clamp(1.1rem, 2.5vw, 1.75rem) 0 0;
    border: 0;
    border-top: 1px solid var(--hn-line);
    background: none;
    border-radius: 0;
}
/* El mapa sí es una tarjeta: esta regla deliberadamente va después del estilo
   genérico de los bloques extra para que no pierda su marco ni su recorte. */
.hn-page .hn-detail__extra.event-map {
    margin-top: clamp(1.5rem, 3vw, 2.25rem);
    margin-right: calc(-1 * var(--hn-detail-body-pad));
    margin-bottom: calc(-1 * var(--hn-detail-body-pad));
    margin-left: calc(-1 * var(--hn-detail-body-pad));
    padding: 0;
    overflow: hidden;
    background: #fff;
    border: 0;
    border-top: 1px solid var(--hn-line);
    border-radius: 0 0 var(--hn-r-lg) var(--hn-r-lg);
    box-shadow: none;
}
.hn-page .hn-detail__extra.event-map .event-map__frame {
    width: 100%;
    min-height: 0;
    aspect-ratio: 16 / 9;
}
.hn-page .hn-detail__extra.event-map .event-map__frame iframe {
    width: 100%;
    height: 100%;
    min-height: 0;
}
/* Fuera de la rejilla de contenido + inscripción, el mapa ocupa la anchura
   completa de la ficha y recupera su tarjeta independiente. */
.hn-page .hn-detail > .hn-detail__extra.event-map {
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    box-shadow: var(--hn-shadow);
}
.hn-page .hn-detail > .hn-detail__extra.event-map .event-map__frame {
    width: 100%;
    height: clamp(380px, 48vw, 520px);
    aspect-ratio: auto;
}
@media (max-width: 560px) {
    .hn-page .hn-detail > .hn-detail__extra.event-map .event-map__frame {
        height: clamp(320px, 88vw, 420px);
        aspect-ratio: auto;
    }
}
.hn-page .hn-detail__aside { display: grid; gap: 1rem; min-width: 0; }
.hn-page .hn-detail__related { margin-top: clamp(0.5rem, 2vw, 1rem); }

/* Panel lateral de la nota, con el mismo acabado que la tarjeta del evento */
.hn-page .hn-sidecard {
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    box-shadow: var(--hn-shadow);
    padding: clamp(1.1rem, 2.4vw, 1.6rem);
    display: grid;
    gap: 0.9rem;
}
.hn-page .hn-sidecard__title {
    font-family: var(--hn-display);
    text-transform: uppercase;
    font-size: 1.05rem;
    color: var(--hn-navy);
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--hn-line);
}

/* ============ TARJETA DE INSCRIPCIÓN (aside del evento) ================== */
/* Tarjeta clara, como el resto del contenido: el navy y el cian se reservan
   para acentos (chips, iconos, botón), no para el fondo. */
.hn-page .event-card {
    background: #fff;
    color: var(--hn-text);
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    box-shadow: var(--hn-shadow);
    overflow: hidden;
    isolation: isolate;
    padding: 0;
    gap: 0;
    display: grid;
    align-content: start;
}
/* El primer y último bloque heredan el radio de la tarjeta: sin ellos, los
   fondos propios (cabecera en mist, pie en blanco) pisan las esquinas. */
.hn-page .event-card > *:first-child {
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
}
.hn-page .event-card > *:last-child {
    border-bottom-left-radius: inherit;
    border-bottom-right-radius: inherit;
}
.hn-page .event-card > * { padding-inline: clamp(1.1rem, 2.4vw, 1.5rem); }

.hn-page .event-card__head {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    background: var(--hn-mist);
    border-bottom: 1px solid var(--hn-line);
    color: var(--hn-navy);
    padding-block: clamp(1.1rem, 2.4vw, 1.4rem);
    margin: 0;
}
.hn-page .event-card__icon {
    width: 58px; height: 58px;
    flex: none;
    border-radius: 50%;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--hn-line);
}
.hn-page .event-card__icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.hn-page .event-card__id { display: grid; gap: 0.35rem; min-width: 0; }
.hn-page .event-card__id h2 {
    font-family: var(--hn-display);
    font-size: 1.05rem;
    line-height: 1.15;
    color: var(--hn-navy);
    text-transform: none;
}
.hn-page .event-discipline {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    align-self: start;
    padding: 0.25rem 0.7rem;
    border-radius: 999px;
    background: rgba(0, 177, 233, 0.14);
    color: var(--hn-accent-ink);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.hn-page .event-card__place {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--hn-muted);
    font-size: 0.88rem;
}
.hn-page .event-card__place i { color: var(--hn-accent-ink); }

/* site.css inseta este bloque (margin: 0 1.35rem) y le pone filetes propios,
   pensados para la tarjeta anterior. Aquí los separadores los ponen `__head` y
   `__actions`, y deben cruzar la tarjeta completa. */
.hn-page .event-card__meta {
    margin: 0;
    border: 0;
    padding-block: 1.25rem;
}
.hn-page .event-meta-list { display: grid; gap: 1.15rem; }
.hn-page .event-data-row {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 0.85rem;
    align-items: start;
}
.hn-page .event-data-row__fa {
    width: 42px; height: 42px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: rgba(0, 177, 233, 0.12);
    color: var(--hn-accent-ink);
    font-size: 0.95rem;
}
.hn-page .event-data-row__label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--hn-muted);
    margin-bottom: 0.2rem;
}
.hn-page .event-data-row__value {
    color: var(--hn-navy);
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.35;
}
.hn-page .event-pills { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.3rem; }
.hn-page .event-pill {
    display: inline-flex;
    padding: 0.3rem 0.75rem;
    border-radius: 999px;
    background: var(--hn-mist);
    border: 1px solid var(--hn-line);
    color: var(--hn-navy);
    font-size: 0.8rem;
    font-weight: 700;
}

/* Precio: banda de acento sobre fondo claro */
.hn-page .event-card__price-banner {
    position: relative;
    background: linear-gradient(120deg, rgba(0, 177, 233, 0.12) 0%, rgba(14, 60, 97, 0.08) 100%);
    border-top: 1px solid var(--hn-line);
    border-bottom: 1px solid var(--hn-line);
    color: var(--hn-navy);
    padding-block: 1rem;
}
.hn-page .event-card__price-label {
    color: var(--hn-muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.hn-page .event-card__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem;
    font-family: var(--hn-display);
    color: var(--hn-navy);
    font-size: clamp(1.6rem, 3.4vw, 2rem);
    line-height: 1.1;
}
.hn-page .event-card__price-from {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: inline-flex;
    align-items: center;
    min-height: 1.15rem;
    padding: 0.12rem 0.55rem 0.12rem 0.35rem;
    clip-path: none;
    border-radius: 3px;
    border: 1px solid rgba(14,60,97,.15);
    background: rgba(255,255,255,.6);
    color: var(--hn-navy);
    font-family: var(--hn-body);
    font-size: 0.55rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}
.hn-page .event-card__price-amount { white-space: nowrap; }
/* Estado del evento: píldora sobre superficie clara, junto a la disciplina.
   site.css la pintaba en azul claro sobre una banda navy que ya no existe; aquí
   se define con contraste propio para no depender de aquella banda. */
.hn-page .event-card__flags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}
.hn-page .event-card__status {
    display: inline-flex;
    align-items: center;
    align-self: start;
    padding: 0.25rem 0.7rem;
    border-radius: 999px;
    border: 1px solid transparent;
    background: var(--hn-mist);
    color: var(--hn-muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.4;
    white-space: nowrap;
}
.hn-page .event-card__status--registrate {
    background: rgba(0, 177, 233, 0.16);
    border-color: rgba(0, 177, 233, 0.45);
    color: #04283f;
}
.hn-page .event-card__status--proximamente {
    background: rgba(14, 60, 97, 0.08);
    border-color: rgba(14, 60, 97, 0.22);
    color: var(--hn-navy);
}
.hn-page .event-card__status--finalizado,
.hn-page .event-card__status--cerrado,
.hn-page .event-card__status--agotado {
    background: var(--hn-mist);
    border-color: var(--hn-line);
    color: var(--hn-muted);
}

/* Lista "Incluye": vive dentro de una fila de datos, con el mismo tono que los
   valores del resto de la tarjeta. */
.hn-page .event-includes {
    margin: 0.15rem 0 0;
    padding-left: 1.1rem;
    list-style: disc outside;
    color: var(--hn-text);
    font-size: 0.95rem;
    line-height: 1.5;
}
.hn-page .event-includes li { margin: 0.2rem 0; }
.hn-page .event-includes__title {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--hn-muted);
    margin-bottom: 0.2rem;
}

/* Apartado editorial después del detalle: «Incluye» ya no vive dentro de la
   tarjeta de registro ni compite visualmente con su CTA. */
.hn-page .event-includes-section {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.9rem;
    margin-top: clamp(1.4rem, 3vw, 2rem);
    padding: clamp(1rem, 2.5vw, 1.4rem);
    border: 1px solid var(--hn-line);
    border-radius: 16px;
    background: linear-gradient(135deg, #fff 0%, rgba(0, 177, 233, 0.07) 100%);
}
.hn-page .event-includes-section__icon {
    display: grid;
    width: 2.6rem;
    height: 2.6rem;
    place-items: center;
    border-radius: 12px;
    background: var(--hn-navy);
    color: #fff;
}
.hn-page .event-includes-section__eyebrow {
    margin: 0 0 0.15rem;
    color: var(--hn-accent-ink);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.hn-page .event-includes-section h2 {
    margin: 0;
    color: var(--hn-navy);
    font-family: var(--hn-display);
    font-size: clamp(1.05rem, 2.4vw, 1.3rem);
    line-height: 1.2;
}
.hn-page .event-includes-section ul {
    display: grid;
    gap: 0.4rem;
    margin: 0.75rem 0 0;
    padding: 0;
    list-style: none;
}
.hn-page .event-includes-section li {
    position: relative;
    padding-left: 1rem;
    color: var(--hn-text);
    line-height: 1.5;
}
.hn-page .event-includes-section li::before {
    position: absolute;
    top: 0.56em;
    left: 0;
    width: 0.38rem;
    height: 0.38rem;
    border-radius: 50%;
    background: var(--hn-cyan);
    content: '';
}
@media (min-width: 720px) {
    .hn-page .event-includes-section ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.25rem; }
}

/* Chips heredados de site.css: si algún contenido antiguo los trae, se alinean
   con la paleta del cromo nuevo en lugar de la legacy. */
.hn-page .event-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.hn-page .portalia-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    border: 1px solid var(--hn-line);
    background: var(--hn-mist);
    color: var(--hn-navy);
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}
.hn-page .portalia-chip--solid {
    background: var(--hn-navy);
    border-color: var(--hn-navy);
    color: #fff;
}
.hn-page .portalia-chip--accent {
    background: rgba(0, 177, 233, 0.14);
    border-color: rgba(0, 177, 233, 0.4);
    color: var(--hn-accent-ink);
}

.hn-page .event-card__actions {
    display: grid;
    gap: 0.6rem;
    border-top: 1px solid var(--hn-line);
    padding-block: clamp(1.1rem, 2.4vw, 1.4rem);
    background: #fff;
}
.hn-page .event-card__note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    margin: 0;
    color: var(--hn-muted);
    font-size: 0.86rem;
    line-height: 1.4;
    text-align: center;
}
.hn-page .event-card__note i { color: var(--hn-accent-ink); }

.hn-page .portalia-event-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 1rem 1.5rem;
    border: 0;
    border-radius: 12px;
    background: var(--hn-navy);
    color: #fff;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 0.9rem;
    cursor: pointer;
    transition: transform 0.2s var(--hn-ease), background 0.2s var(--hn-ease);
}
.hn-page .portalia-event-cta:hover { transform: translateY(-2px); }
.hn-page .portalia-event-cta--register {
    background: var(--hn-cyan);
    color: #04283f;
    box-shadow: 0 16px 30px -16px rgba(0, 177, 233, 0.9);
}
/* Estados no accionables. `estadoEvento` los emite como <div>, no como <button
   disabled>, así que necesitan su propia regla o se ven como un botón activo. */
.hn-page .portalia-event-cta--upcoming {
    background: rgba(14, 60, 97, 0.08);
    color: var(--hn-navy);
    box-shadow: none;
    cursor: default;
}
.hn-page .portalia-event-cta--finished {
    background: var(--hn-mist);
    border: 1px solid var(--hn-line);
    color: var(--hn-muted);
    box-shadow: none;
    cursor: default;
}
.hn-page .portalia-event-cta--upcoming:hover,
.hn-page .portalia-event-cta--finished:hover { transform: none; }

.hn-page .portalia-event-cta[disabled] {
    background: var(--hn-mist);
    color: var(--hn-muted);
    box-shadow: none;
    opacity: 1;
    cursor: default;
    transform: none;
}

/* ==================== FORMULARIO DE INSCRIPCIÓN COMPLETO ================= */
.hn-page .pf-backdrop {
    background: rgba(6, 32, 51, 0.68);
    backdrop-filter: blur(4px);
}
.hn-page .pf-modal {
    background: var(--hn-mist);
    padding: 0;
    overflow: hidden;
}
.hn-page .pf-modal__head {
    background: linear-gradient(120deg, var(--hn-navy) 0%, #0a5d86 100%);
    color: #fff;
    padding: clamp(1.25rem, 3vw, 1.75rem);
}
.hn-page .pf-modal__kicker {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--hn-cyan-soft);
}
.hn-page .pf-modal__title { color: #fff; font-size: clamp(1.3rem, 3vw, 1.8rem); }
.hn-page .pf-modal__body { padding: .5rem; }
.hn-page .pf-registration-route { margin-bottom: 1.25rem; }
.hn-page .pf-route-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.hn-page .pf-route-option { display: flex; align-items: flex-start; gap: .65rem; padding: 1rem; border: 1px solid #c8dbe8; border-radius: 12px; background: #fff; cursor: pointer; }
.hn-page .pf-route-option:has(input:checked) { border-color: var(--hn-cyan); box-shadow: 0 0 0 2px rgba(0, 166, 206, .14); background: #f3fcff; }
.hn-page .pf-route-option input { margin-top: .2rem; }
.hn-page .pf-route-option span,
.hn-page .pf-route-option small { display: block; }
.hn-page .pf-route-option b { color: var(--hn-navy); }
.hn-page .pf-route-option small { margin-top: .25rem; color: var(--hn-steel); line-height: 1.4; }
.hn-page .pf-registration-route [data-pf-physical-folio] { margin-top: 1rem; }
@media (max-width: 620px) { .hn-page .pf-route-options { grid-template-columns: 1fr; } }
.hn-page .pf-close {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    border: 0;
}
.hn-page .pf-close:hover { background: rgba(255, 255, 255, 0.28); }
/* Campos: una sola caja por campo y alturas homogéneas en cada fila */
.hn-page .pf-group { display: grid; gap: 0.9rem; min-width: 0; border: 0; padding: 0; background: none; }
.hn-page .pf-field { display: grid; gap: 0.4rem; min-width: 0; align-content: start; }
.hn-page .pf-grid { align-items: start; }
.hn-page .pf-group:first-of-type .pf-grid { gap: .85rem 1rem; }
.hn-page .pf-label { text-transform: none; letter-spacing: 0; font-size: .84rem; font-weight: 600; line-height: 1.4; }
.hn-page .pf-field { gap: .35rem; }
.hn-page .pf-grid > .pf-field:has(input[name="nombre"]) { grid-column: 1 / -1; }
.hn-page .pf-grid > .pf-field:has(input[name="confirmar_email"]) .pf-label { font-size: .8rem; }
.hn-page .pf-error:empty { display: none; }
.hn-page .pf-additional-cost { color: #657786; font-size: .73rem; font-weight: 400; }
.hn-page .pf-input {
    min-height: 48px;
    text-overflow: ellipsis;
}
.hn-page textarea.pf-input { min-height: 120px; resize: vertical; }
.hn-page .pf-input::placeholder { color: #8b9aa6; }
.hn-page .pf-hint { margin-top: 0.1rem; }

/* Consentimientos: el bloque lleva UNA caja; las opciones, ninguna */
.hn-page .pf-consent-group,
.hn-page .pf-legal-consent,
.hn-page .pf-commercial-consent {
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-md);
    padding: 1.1rem 1.25rem;
    display: grid;
    gap: 0.75rem;
}
.hn-page .pf-consent-group .pf-legend,
.hn-page .pf-legal-consent .pf-legend,
.hn-page .pf-commercial-consent .pf-legend {
    padding: 0;
    margin: 0 0 0.15rem;
    border: 0;
}
.hn-page .pf-consent-choice,
.hn-page .pf-consent-checkbox {
    background: none;
    border: 0;
    border-radius: 0;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1.1rem minmax(0, 1fr);
    align-items: start;
    gap: 0 0.6rem;
    line-height: 1.5;
}
.hn-page .pf-consent-choice + .pf-consent-choice { margin-top: 0.55rem; }
.hn-page .pf-consent-choice input[type="checkbox"] { margin-top: 0.25rem; accent-color: var(--hn-cyan); }
.hn-page .pf-consent-sentence,
.hn-page .pf-consent-disclosure { color: var(--hn-muted); font-size: 0.9rem; line-height: 1.6; }
.hn-page .pf-consent-disclosure:not([open]) > :not(summary) { display: none !important; }
.hn-page .pf-consent-disclosure[open] { width: 100%; }
.hn-page .pf-consent-disclosure .pf-consent {
    display: block;
    width: 100%;
    max-height: 150px;
    margin: 0.45rem 0 0;
    padding: 0.65rem 0.75rem;
    overflow-y: auto;
    border: 1px solid var(--hn-line);
    border-radius: 0.55rem;
    background: var(--hn-mist);
    color: var(--hn-muted);
    font-size: 0.78rem;
    line-height: 1.5;
}
.hn-page .pf-privacy-link { color: var(--hn-accent-ink); font-weight: 600; text-decoration: underline; }
.hn-page .pf-required-note { color: var(--hn-muted); font-size: 0.85rem; }
.hn-page .pf-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.hn-page .pf-spinner { border-color: rgba(255, 255, 255, 0.35); border-top-color: #04283f; }
/* Resultado del formulario: icono circular, píldora de estado y mensaje.
   El estado llega en data-pf-state (success, pending, checking, rejected,
   reverted, unknown, abandoned) y define el color de icono y píldora. */
.hn-page .pf-success {
    display: grid;
    gap: 0.7rem;
    justify-items: center;
    text-align: center;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    --pf-state-ink: #157a48;
    --pf-state-soft: rgba(21, 122, 72, 0.12);
}
.hn-page .pf-success[data-pf-state="pending"],
.hn-page .pf-success[data-pf-state="checking"] {
    --pf-state-ink: #8f5600;
    --pf-state-soft: rgba(143, 86, 0, 0.12);
}
.hn-page .pf-success[data-pf-state="rejected"],
.hn-page .pf-success[data-pf-state="abandoned"] {
    --pf-state-ink: #b3261e;
    --pf-state-soft: rgba(179, 38, 30, 0.1);
}
.hn-page .pf-success[data-pf-state="reverted"],
.hn-page .pf-success[data-pf-state="unknown"] {
    --pf-state-ink: var(--hn-navy);
    --pf-state-soft: rgba(14, 60, 97, 0.1);
}
.hn-page .pf-success__icon {
    width: 72px; height: 72px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--pf-state-soft);
    color: var(--pf-state-ink);
    font-size: 1.9rem;
}
.hn-page .pf-success__icon svg { width: 34px; height: 34px; }
/* La píldora es texto de estado, no un icono */
.hn-page .pf-success__badge {
    display: inline-flex;
    align-items: center;
    width: auto;
    height: auto;
    padding: 0.3rem 0.85rem;
    border-radius: 999px;
    background: var(--pf-state-soft);
    color: var(--pf-state-ink);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    line-height: 1.4;
}
.hn-page .pf-success h3 {
    font-family: var(--hn-display);
    color: var(--hn-navy);
    font-size: clamp(1.3rem, 3vw, 1.8rem);
    line-height: 1.1;
}
.hn-page .pf-success p { color: var(--hn-muted); max-width: 46ch; }
.hn-page .pf-success__note {
    color: var(--hn-text);
    background: var(--hn-mist);
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-md);
    padding: 0.75rem 1rem;
    font-size: 0.9rem;
}
.hn-page .pf-success__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
    margin-top: 0.35rem;
}
.hn-page .pf-submit--ghost {
    background: #fff;
    color: var(--hn-navy);
    border: 1.5px solid var(--hn-line);
    box-shadow: none;
}
.hn-page .pf-submit--ghost:hover { background: var(--hn-mist); }

/* Aviso superior del formulario */
.hn-page .pf-alert {
    border-left: 4px solid var(--hn-cyan);
    color: var(--hn-text);
}
.hn-page .pf-alert[data-state="error"],
.hn-page .pf-alert.is-error { border-left-color: #b3261e; color: #8c1e18; }

/* ============ SECCIONES DE RELACIONADOS (ritmo del home) ================= */
.hn-page .related-events,
.hn-page .related-section {
    background:
        radial-gradient(120% 90% at 85% 0%, rgba(0, 177, 233, 0.2), transparent 60%),
        linear-gradient(180deg, var(--hn-navy) 0%, var(--hn-navy-ink) 100%);
    color: #fff;
    border: 0;
    border-radius: var(--hn-r-xl);
    padding: clamp(1.25rem, 3vw, 2rem);
    margin: 0;
    display: grid;
    gap: clamp(0.9rem, 2vw, 1.35rem);
}
/* Encabezado propio (mismo patrón que las secciones del home) */
.hn-page .hn-section__head { display: grid; gap: 0.3rem; }
.hn-page .hn-section__title {
    font-family: var(--hn-display);
    text-transform: uppercase;
    font-size: clamp(1.4rem, 3.2vw, 2.1rem);
    line-height: 1;
    color: var(--hn-navy);
}
.hn-page .related-events .hn-section__title,
.hn-page .related-section .hn-section__title { color: #fff; }
.hn-page .related-events .hn-eyebrow,
.hn-page .related-section .hn-eyebrow { color: var(--hn-cyan-soft); }
/* Sin márgenes heredados dentro del panel */
.hn-page .related-events .arch-grid,
.hn-page .related-section .related-grid { margin: 0; }

/* Ruta del evento: misma tarjeta blanca que el resto del contenido */
.hn-page .event-route {
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    padding: clamp(1.25rem, 3vw, 2rem);
}

/* ================= TARJETAS: MISMO ESTILO QUE EL HOME ==================== */
/* El marcado de listaEventosArchivo / listaNotasArchivo es equivalente al de
   las tarjetas del home, así que se les da exactamente el mismo acabado:
   proporción 3/4.2, degradado, título display y elevación al pasar el cursor. */
.hn-page .arch-card { display: block; }
/* En rejilla la tarjeta ocupa su celda (en el home tiene ancho de carrusel) */
.hn-page .arch-card > .hn-card {
    width: 100%;
    max-width: none;
}

/* Rejilla con la misma medida de tarjeta que la portada */
.hn-page .arch-grid {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
}
/* En relacionados las tarjetas no se estiran: mantienen el ancho del home */
.hn-page .arch-grid--related,
.hn-page .related-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 300px));
    justify-content: start;
    align-items: start;
    gap: clamp(0.85rem, 2vw, 1.35rem);
}
.hn-page .arch-grid--related .hn-card,
.hn-page .related-grid .hn-card { aspect-ratio: 3 / 4; }

/* ================== ARCHIVO DE NOTAS (formato editorial) ================= */
.hn-page .hn-mag {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(1.5rem, 3.5vw, 2.75rem);
    align-items: start;
}
.hn-page .hn-mag__main { display: grid; gap: clamp(1rem, 2.5vw, 1.75rem); min-width: 0; }
.hn-page .hn-mag > .site-breadcrumb { grid-column: 1 / -1; }
.hn-page .hn-mag__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.75rem;
    padding-bottom: 0.25rem;
    border-bottom: 0;
}
.hn-page .hn-mag__title {
    font-family: var(--hn-display);
    text-transform: uppercase;
    color: var(--hn-navy);
    font-size: clamp(1.6rem, 3.6vw, 2.4rem);
    line-height: 1;
}
.hn-page .hn-mag__sort { display: grid; gap: 0.35rem; }
.hn-page .hn-mag__sort label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--hn-muted);
}
.hn-page .hn-mag__sort select {
    min-height: 44px;
    padding: 0.5rem 0.9rem;
    border-radius: 12px;
    border: 1.5px solid var(--hn-line);
    background: #fff;
    color: var(--hn-text);
    font: inherit;
}
.hn-page .hn-mag__grid {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
    gap: clamp(0.9rem, 2vw, 1.35rem);
}

/* Tarjeta de nota tipo blog: imagen arriba, texto sobre fondo blanco */
.hn-page .hn-post { display: block; }
.hn-page .hn-post__link {
    display: grid;
    grid-template-rows: auto 1fr;
    height: 100%;
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    overflow: hidden;
    box-shadow: var(--hn-shadow);
    transition: transform 0.25s var(--hn-ease), box-shadow 0.25s var(--hn-ease);
}
.hn-page .hn-post__link:hover { transform: translateY(-5px); box-shadow: var(--hn-shadow-lg); }
.hn-page .hn-post__media {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--hn-mist);
}
.hn-page .hn-post__media img {
    width: 100%; height: 100%;
    object-fit: cover;
    color: transparent;
    font-size: 0;
    transition: transform 0.5s var(--hn-ease);
}
.hn-page .hn-post__link:hover .hn-post__media img { transform: scale(1.05); }
.hn-page .hn-post__media img.is-fallback { object-fit: contain; padding: 18%; background: #fff; }
.hn-page .hn-post__body {
    display: grid;
    gap: 0.45rem;
    align-content: start;
    padding: clamp(1.1rem, 2.4vw, 1.6rem);
    min-width: 0;
}
.hn-page .hn-post__kicker {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--hn-accent-ink);
}
.hn-page .hn-post__title {
    font-family: var(--hn-display);
    color: var(--hn-navy);
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    line-height: 1.2;
    text-wrap: balance;
}
.hn-page .hn-post__excerpt {
    color: var(--hn-muted);
    font-size: 0.93rem;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.hn-page .hn-post__more {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.25rem;
    color: var(--hn-accent-ink);
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.hn-page .hn-post__link:hover .hn-post__more { gap: 0.7rem; }

/* Widgets de la barra lateral */
.hn-page .hn-mag__aside { display: grid; gap: 1rem; min-width: 0; }
.hn-page .hn-widget {
    background: #fff;
    border: 1px solid var(--hn-line);
    border-radius: var(--hn-r-lg);
    padding: clamp(1.1rem, 2.4vw, 1.5rem);
    display: grid;
    gap: 0.85rem;
    box-shadow: var(--hn-shadow);
}
.hn-page .hn-widget__title {
    font-family: var(--hn-display);
    text-transform: uppercase;
    font-size: 1rem;
    color: var(--hn-navy);
    padding-bottom: 0.7rem;
    border-bottom: 1px solid var(--hn-line);
}
.hn-page .hn-widget__search {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0 0.9rem;
    border: 1.5px solid var(--hn-line);
    border-radius: 12px;
    color: var(--hn-muted);
    transition: border-color 0.2s var(--hn-ease), box-shadow 0.2s var(--hn-ease);
}
.hn-page .hn-widget__search:focus-within {
    border-color: var(--hn-cyan);
    box-shadow: 0 0 0 4px rgba(0, 177, 233, 0.18);
}
.hn-page .hn-widget__search input {
    flex: 1;
    min-width: 0;
    min-height: 46px;
    border: 0;
    outline: none;
    background: none;
    font: inherit;
    color: var(--hn-text);
}
.hn-page .hn-widget__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0.6rem 1.1rem;
    border-radius: 12px;
    border: 1.5px solid var(--hn-navy);
    color: var(--hn-navy);
    font-weight: 700;
    font-size: 0.82rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    transition: background 0.2s var(--hn-ease), color 0.2s var(--hn-ease);
}
.hn-page .hn-widget__cta:hover { background: var(--hn-navy); color: #fff; }
.hn-page .hn-widget--cta {
    background: linear-gradient(150deg, var(--hn-navy) 0%, var(--hn-navy-ink) 100%);
    border-color: transparent;
    color: #fff;
}
.hn-page .hn-widget__kicker {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--hn-cyan-soft);
}
.hn-page .hn-widget__lead { color: rgba(255, 255, 255, 0.85); font-size: 0.95rem; }
.hn-page .hn-widget--social .hn-social { margin-top: 0; }
.hn-page .hn-widget--social .hn-social a { width: 42px; height: 42px; }

/* ===================== PAGINACIÓN (mismo lenguaje del sitio) ============== */
.hn-page .arch-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: center;
    align-items: center;
    margin-top: clamp(1rem, 2.2vw, 1.5rem);
    padding-top: 0;
    border-top: 0;
}
.hn-page .arch-page {
    min-width: 44px;
    height: 44px;
    padding-inline: 0.85rem;
    border-radius: 12px;
    border: 1.5px solid transparent;
    background: #fff;
    color: var(--hn-navy);
    font-weight: 700;
    font-size: 0.95rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 16px -12px rgba(6, 32, 51, 0.5);
    transition: background 0.2s var(--hn-ease), color 0.2s var(--hn-ease), border-color 0.2s var(--hn-ease), transform 0.2s var(--hn-ease);
}
.hn-page .arch-page:hover:not([disabled]) {
    border-color: var(--hn-navy);
    transform: translateY(-2px);
}
.hn-page .arch-page.is-current,
.hn-page .arch-page[aria-current="page"] {
    background: var(--hn-navy);
    border-color: var(--hn-navy);
    color: #fff;
    box-shadow: 0 14px 26px -16px rgba(14, 60, 97, 0.9);
}
.hn-page .arch-page--nav {
    background: transparent;
    border-color: var(--hn-line);
    box-shadow: none;
    font-size: 1.1rem;
}
.hn-page .arch-page[disabled] { opacity: 0.4; cursor: default; transform: none; }

/* ------------------------------- Responsive ------------------------------- */
@media (min-width: 768px) {
    .hn-page .arch-tools { grid-template-columns: 2fr repeat(3, 1fr); align-items: end; }
    .hn-page .hn-contact-panel { grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr); }
    .hn-page .event-masthead { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
    .hn-page .contact-intro { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); }
}

@media (min-width: 1024px) {
    .hn-page .hn-mag { grid-template-columns: minmax(0, 1fr) 320px; }
    .hn-page .hn-contact-intro { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); }
    .hn-page .legal-content { grid-template-columns: minmax(0, 1fr) 300px; }
    .hn-page .legal-aside {
        position: sticky;
        top: calc(var(--hn-header-h) + 1rem);
        align-self: start;
    }
    .hn-page .hn-mag__aside {
        position: sticky;
        top: calc(var(--hn-header-h) + 1rem);
        align-self: start;
    }
    .hn-page .note-columns { grid-template-columns: minmax(0, 1fr) 320px; }
    .hn-page .event-grid { grid-template-columns: minmax(0, 1fr) 380px; }
    .hn-page .visual-hero { height: clamp(320px, 30vw, 440px); }

    /* Encabezado de evento y nota: identidad a la izquierda y los iconos de
       compartir a la derecha, en la misma línea — nunca debajo del título.
       Va en 1024px y no en 768px: por debajo, la columna del título queda tan
       estrecha que el titular se parte en media docena de líneas. */
    .hn-page .hn-detail__head {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        column-gap: clamp(1.25rem, 3vw, 2.5rem);
    }
    .hn-page .hn-detail__head > .event-share {
        justify-content: flex-end;
        flex-wrap: nowrap;
    }

    /* La tarjeta acompaña el scroll sólo si cabe en pantalla; si es más alta,
       se desplaza con su propio scroll en lugar de quedarse atascada. */
    .hn-page .event-card {
        position: sticky;
        top: calc(var(--hn-header-h) + 1rem);
        align-self: start;
        max-height: calc(100svh - var(--hn-header-h) - 2rem);
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    .hn-page .note-sidebar {
        position: sticky;
        top: calc(var(--hn-header-h) + 1rem);
        align-self: start;
        max-height: calc(100svh - var(--hn-header-h) - 2rem);
        overflow-y: auto;
        overscroll-behavior: contain;
    }
}

/* Móvil: nada de posiciones pegajosas ni desbordes horizontales */
@media (max-width: 1023px) {
    /* La imagen destacada va a sangre de pantalla, pegada al header. */
    .hn-page .hn-detail__media {
        width: 100vw;
        max-width: 100vw;
        justify-self: center;
        margin-top: 0;
    }
    .hn-page .hn-detail__head { margin-top: clamp(-2.5rem, -6vw, -1.25rem); }

    .hn-page .event-card,
    .hn-page .note-sidebar {
        position: static;
        max-height: none;
        overflow: visible;
    }
    .hn-page .event-grid,
    .hn-page .note-columns { grid-template-columns: minmax(0, 1fr); }
    /* La información de inscripción es lo primero que busca quien llega */
    .hn-page .hn-detail--evento .hn-detail__aside { order: -1; }
    .hn-page .hn-detail--evento .hn-detail__body { order: 0; }
    .hn-page .event-data-row { grid-template-columns: 36px minmax(0, 1fr); }
}

@media (max-width: 640px) {
    .hn-page .arch-pagination { gap: 0.35rem; }
    .hn-page .arch-pagination button,
    .hn-page .arch-pagination a { min-width: 40px; height: 40px; padding-inline: 0.6rem; }
    .hn-page .event-masthead { margin-top: -1.5rem; }
    .hn-page .related-events,
    .hn-page .related-section { border-radius: var(--hn-r-lg); }
}

/* ============ EVENTOS RELACIONADOS: RIEL EN MÓVIL (como el home) ========= */
/* El contenedor lleva además la clase .hn-rail, que en home-nuevo.css define
   el riel con scroll y snap. Aquí se neutraliza para escritorio (donde manda
   la rejilla) y se reactiva por debajo de 1024px, sangrando solo hasta los
   bordes del panel azul, no hasta los de la ventana. */
.hn-page .related-events .hn-railnav { display: none; }
.hn-page .arch-grid--related[data-hn-related] {
    width: auto;
    max-width: none;
    margin-inline: 0;
    padding: 0;
    overflow: visible;
    scroll-snap-type: none;
}

@media (max-width: 1023.98px) {
    .hn-page .related-events { --rel-pad: clamp(1.25rem, 3vw, 2rem); }
    .hn-page .related-events .hn-railnav {
        display: flex;
        margin-top: 0.35rem;
    }
    .hn-page .arch-grid--related[data-hn-related] {
        display: flex;
        justify-content: flex-start;
        align-items: stretch;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: var(--rel-pad);
        /* Sangrado hasta el borde del panel: la tarjeta se corta contra el
           filo del recuadro, igual que en la portada contra la pantalla. */
        margin-inline: calc(var(--rel-pad) * -1);
        padding: 0.25rem var(--rel-pad) 0.75rem;
    }
    .hn-page .arch-grid--related[data-hn-related] > .arch-card {
        flex: none;
        width: min(78vw, 320px);
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }
}

/* Archivo de eventos: filtros y tres bloques independientes. */
.hn-page .hn-events-archive [hidden] { display: none !important; }
.hn-page .hn-events-archive .archive-content {
    max-width: none;
    padding: 0;
    gap: 0;
    --events-gutter: max(var(--hn-pad), calc((100% - var(--hn-max)) / 2 + var(--hn-pad)));
}
.hn-page .hn-events-tools {
    display: block;
    padding: clamp(1.25rem, 3vw, 2rem) var(--events-gutter);
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: var(--hn-navy);
    color: var(--hn-white);
}
.hn-page .hn-events-tools__toggle { display: none; }
.hn-page .hn-events-tools__fields {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .55rem;
    align-items: end;
}
.hn-page .hn-events-tools label,
.hn-page .hn-events-dates legend { color: var(--hn-white); }
.hn-page .hn-events-tools label { font-size: .7rem; letter-spacing: .1em; margin-bottom: .2rem; }
.hn-page .hn-events-tools input,
.hn-page .hn-events-tools select {
    min-height: 44px;
    padding: .5rem 0;
    border: 0;
    border-bottom: 1px solid var(--hn-line-dark);
    border-radius: 0;
    background: transparent;
    color: var(--hn-white);
    color-scheme: dark;
    font-size: .9rem;
}
.hn-page .hn-events-tools input::placeholder { color: var(--hn-white); opacity: .75; }
.hn-page .hn-events-tools select option { background: var(--hn-navy); color: var(--hn-white); }
.hn-page .hn-events-tools input:focus,
.hn-page .hn-events-tools select:focus { border-color: var(--hn-cyan-soft); box-shadow: none; outline: 2px solid var(--hn-cyan-soft); outline-offset: 3px; }
.hn-page .hn-events-tools__fields > *,
.hn-page .hn-events-dates__fields > * { min-width: 0; }
.hn-page .hn-events-dates { border: 0; margin: 0; padding: 0; min-width: 0; }
.hn-page .hn-events-dates legend {
    font-size: .8rem;
    font-weight: 700;
    color: var(--hn-white);
    margin-bottom: .65rem;
}
.hn-page .hn-events-dates__fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: .55rem; }
.hn-page .hn-events-reset { min-height: 44px; padding: .5rem 0; justify-self: start; color: var(--hn-white); border: 0; border-radius: 0; background: transparent; font-size: .7rem; text-decoration: underline; text-underline-offset: .25em; }
.hn-page .hn-events-reset:hover { color: var(--hn-cyan-soft); background: transparent; }
.hn-page .hn-events-error { grid-column: 1 / -1; color: var(--hn-white); border-left: 3px solid var(--hn-cyan-soft); padding-left: .75rem; }
.hn-page .hn-events-section {
    display: grid;
    gap: clamp(1rem, 2.5vw, 1.75rem);
    min-width: 0;
    margin: 0;
    padding: clamp(2rem, 5vw, 4rem) var(--events-gutter);
    scroll-margin-top: calc(var(--hn-header-h) + 1rem);
}
.hn-page .hn-events-section .hn-section__head,
.hn-page .hn-events-section .arch-grid { margin: 0; }
.hn-page .hn-events-section .hn-card__title {
    font-size: clamp(1.05rem, 1.7vw, 1.35rem);
    text-transform: none;
    overflow-wrap: anywhere;
}
.hn-page .hn-events-description,
.hn-page .hn-events-count { color: var(--hn-muted); font-size: .9rem; font-weight: 400; line-height: 1.6; }
.hn-page .hn-events-featured {
    background: var(--hn-white);
    border-radius: 0;
    border-top: 0;
}
.hn-page .hn-events-featured .hn-section__title { color: var(--hn-navy-ink); }
.hn-page .hn-events-featured .hn-eyebrow { color: var(--hn-navy-ink); }
.hn-page .hn-events-featured .hn-events-description,
.hn-page .hn-events-featured .arch-empty { color: var(--hn-navy-ink); }
.hn-page .hn-events-featured .arch-empty { border-color: rgba(6, 32, 51, .28); }
.hn-page .hn-events-section > :not(.hn-events-watermark) { position: relative; z-index: 1; }
.hn-page .hn-events-watermark {
    top: clamp(1.25rem, 3vw, 2.5rem);
    z-index: 0;
    opacity: .1;
}
.hn-page .hn-events-featured .hn-events-watermark { opacity: .09; }
.hn-page .hn-events-archive .arch-pagination { margin-top: 0; align-items: center; }
.hn-page .hn-events-archive .site-breadcrumb { width: auto; min-width: 0; margin: 0 var(--events-gutter) 2rem; }
.hn-page .hn-events-carousel-nav { display: none; }
.hn-page .hn-events-rail:focus-visible { outline: 2px solid var(--hn-cyan); outline-offset: 4px; }
@media (min-width: 640px) {
    .hn-page .hn-events-tools__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem 1rem; }
    .hn-page .hn-events-tools__fields .arch-tools__search,
    .hn-page .hn-events-tools__fields .arch-tools__field:has(#arch-sort),
    .hn-page .hn-events-dates,
    .hn-page .hn-events-reset,
    .hn-page .hn-events-error { grid-column: 1 / -1; }
    .hn-page .hn-events-dates__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hn-page .hn-events-archive .arch-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
    .hn-page .hn-events-tools__fields {
        grid-template-columns: minmax(180px, 2fr) repeat(3, minmax(95px, 1fr)) minmax(220px, 2fr) auto;
        gap: clamp(.75rem, 1.4vw, 1.25rem);
        align-items: end;
    }
    .hn-page .hn-events-tools__fields .arch-tools__search,
    .hn-page .hn-events-tools__fields .arch-tools__field:has(#arch-sort),
    .hn-page .hn-events-dates,
    .hn-page .hn-events-reset { grid-column: auto; }
    .hn-page .hn-events-dates__fields { gap: clamp(.75rem, 1.4vw, 1.25rem); }
    .hn-page .hn-events-dates legend { margin-bottom: .2rem; font-size: .7rem; }
    .hn-page .hn-events-reset { align-self: end; white-space: nowrap; }
    .hn-page .hn-events-error { grid-row: 2; }
    .hn-page .hn-events-archive .arch-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .hn-page .hn-events-tools { padding-block: .7rem; }
    .hn-page .hn-events-tools__toggle {
        width: 100%;
        min-height: 48px;
        padding: .55rem 0;
        border: 0;
        background: transparent;
        color: var(--hn-white);
        display: grid;
        grid-template-columns: auto 1fr auto;
        align-items: center;
        gap: .65rem;
        text-align: left;
        font: inherit;
        font-weight: 700;
    }
    .hn-page .hn-events-tools__status { color: #a9c9dd; font-size: .72rem; font-weight: 500; text-align: right; }
    .hn-page .hn-events-tools__toggle svg { transition: transform .2s var(--hn-ease); }
    .hn-page .hn-events-tools.is-open .hn-events-tools__toggle svg { transform: rotate(180deg); }
    .hn-page .hn-events-tools.has-js:not(.is-open) .hn-events-tools__fields { display: none; }
    .hn-page .hn-events-tools__fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .4rem .75rem;
        padding: .35rem 0 .55rem;
        border-top: 1px solid var(--hn-line-dark);
    }
    .hn-page .hn-events-tools__fields .arch-tools__search,
    .hn-page .hn-events-tools__fields .arch-tools__field:has(#arch-sort),
    .hn-page .hn-events-dates,
    .hn-page .hn-events-reset,
    .hn-page .hn-events-error { grid-column: 1 / -1; }
    .hn-page .hn-events-tools label { font-size: .64rem; margin-bottom: 0; }
    .hn-page .hn-events-tools input,
    .hn-page .hn-events-tools select { min-height: 44px; padding-block: .3rem; font-size: .85rem; }
    .hn-page .hn-events-dates legend { margin: .25rem 0 .1rem; font-size: .7rem; }
    .hn-page .hn-events-dates__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
    .hn-page .hn-events-reset { min-height: 44px; }
}
@media (max-width: 1023.98px) {
    .hn-page .hn-events-carousel-nav { display: flex; align-items: center; gap: .5rem; }
    .hn-page .hn-events-carousel-nav > span { margin-right: auto; font-size: .75rem; color: var(--hn-muted); }
    .hn-page .hn-events-carousel-nav .hn-railnav__btn { width: 44px; height: 44px; font-size: 1.5rem; }
    .hn-page .hn-events-featured .hn-events-carousel-nav > span,
    .hn-page .hn-events-featured .hn-railnav__btn { color: var(--hn-navy-ink); }
    .hn-page .hn-events-featured .hn-railnav__btn { border-color: rgba(6, 32, 51, .3); }
    .hn-page .hn-events-section .hn-events-rail {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: var(--hn-pad);
        overscroll-behavior-x: contain;
        margin-inline: calc(-1 * var(--hn-pad));
        padding: .5rem var(--hn-pad) 1rem;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .hn-page .hn-events-rail::-webkit-scrollbar { display: none; }
    .hn-page .hn-events-rail > .arch-card {
        flex: 0 0 min(78vw, 320px);
        min-width: 0;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }
}
