:root {
    --acsi-background: #ffffff;
    --acsi-foreground: #0f172a;
    --acsi-card: #ffffff;
    --acsi-card-muted: #f8fafc;
    --acsi-muted: #64748b;
    --acsi-border: #e2e8f0;
    --acsi-primary: #0054a6;
    --acsi-primary-bright: #0284c7;
    --acsi-primary-dark: #0c4a6e;
    --acsi-danger: #991b1b;
    --acsi-radius: 0.85rem;
    --acsi-radius-lg: 1.5rem;
    --acsi-shadow: 0 20px 50px -30px rgba(15, 23, 42, 0.35);
    --acsi-header-height: 74px;
    --acsi-container: 1600px;
    color-scheme: light;
}

html[data-theme="dark"] {
    --acsi-background: #020617;
    --acsi-foreground: #f8fafc;
    --acsi-card: #0f172a;
    --acsi-card-muted: #111c32;
    --acsi-muted: #a8b5c8;
    --acsi-border: #25324a;
    --acsi-primary: #38bdf8;
    --acsi-primary-bright: #0ea5e9;
    --acsi-primary-dark: #0369a1;
    color-scheme: dark;
}

html {
    /* `hidden` su html/body rende la radice un contenitore di scroll e
     * annulla il position:sticky dell'header: la barra scorreva via.
     * `clip` taglia allo stesso modo lo straripamento orizzontale ma
     * non crea il contenitore, così l'header resta agganciato in alto.
     * La riga `hidden` resta come ripiego per i browser molto vecchi. */
    overflow-x: hidden;
    overflow-x: clip;
    scroll-behavior: smooth;
}

body.acsi-theme {
    margin: 0;
    overflow-x: hidden;
    overflow-x: clip;
    background: var(--acsi-background);
    color: var(--acsi-foreground);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.65;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

.acsi-theme *,
.acsi-theme *::before,
.acsi-theme *::after {
    box-sizing: border-box;
}

/*
 * Gutenberg gives flow Groups a 24px margin between direct children. The ACSI
 * components replace that flow with their own grid/flex layouts and gaps, so
 * retaining the generated margin shifts every child except the first. Keep the
 * reset limited to custom theme Groups; component-specific margins declared
 * later in this stylesheet still win normally in the cascade.
 */
:root :where(
    body.acsi-theme .wp-block-group.is-layout-flow[class*="acsi-"],
    body.acsi-theme .wp-block-group.is-layout-flow.benefits-row,
    body.acsi-theme .wp-block-group.is-layout-flow.benefits-header,
    body.acsi-theme .wp-block-group.is-layout-flow.cta-group,
    body.acsi-theme .acsi-affiliation-hero__copy > .wp-block-group.is-layout-flow,
    body.acsi-theme .acsi-training-event > .wp-block-group.is-layout-flow,
    body.acsi-theme .acsi-transparency-years > .wp-block-group.is-layout-flow,
    body.acsi-theme .acsi-project-notice > .wp-block-group.is-layout-flow
) > * {
    margin-block-start: 0;
    margin-block-end: 0;
}

.acsi-theme img,
.acsi-theme svg {
    display: block;
    max-width: 100%;
}

.acsi-theme a {
    color: inherit;
    text-decoration: none;
}

.acsi-theme button,
.acsi-theme input,
.acsi-theme textarea,
.acsi-theme select {
    font: inherit;
}

.acsi-theme button,
.acsi-theme [role="button"] {
    cursor: pointer;
}

/* The submenu control belongs to the compact mobile navigation only. */
.acsi-submenu-toggle {
    display: none;
}

.acsi-theme :focus-visible {
    outline: 3px solid color-mix(in srgb, var(--acsi-primary) 68%, white);
    outline-offset: 3px;
}

.acsi-container {
    width: min(90%, var(--acsi-container));
    margin-inline: auto;
}

.screen-reader-text,
.acsi-skip-link:not(:focus) {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.acsi-skip-link {
    position: fixed;
    z-index: 99999;
    top: 1rem;
    left: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    background: var(--acsi-foreground);
    color: var(--acsi-background);
    font-weight: 700;
}

.acsi-main {
    min-height: 55vh;
}

.acsi-button {
    display: inline-flex;
    box-sizing: border-box;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 40px;
    padding: 0.6rem 1rem;
    border: 1px solid var(--acsi-primary);
    border-radius: 999px;
    background: var(--acsi-primary);
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.07em;
    line-height: 1;
    text-transform: uppercase;
    transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease, color 180ms ease;
}

/* Core Button keeps `acsi-button` on an outer Gutenberg wrapper. The wrapper
 * must not add a second layer of height and padding: only the actual link is
 * the visible control. */
.wp-block-button.acsi-button {
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.wp-block-button.acsi-button > .wp-block-button__link {
    display: inline-flex;
    box-sizing: border-box;
    width: auto;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.6rem 1rem;
    border: 1px solid var(--acsi-primary);
    border-radius: 999px;
    background: var(--acsi-primary);
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.07em;
    line-height: 1;
    text-transform: uppercase;
}

/* Native Core Buttons without a component-specific card class are CTAs too.
 * Keep them on the same compact geometry used by the theme button. */
.acsi-theme .wp-block-button:not([class*="acsi-"]) > .wp-block-button__link,
.editor-styles-wrapper .wp-block-button:not([class*="acsi-"]) > .wp-block-button__link {
    box-sizing: border-box;
    width: auto;
    min-height: 40px;
    padding: 0.6rem 1rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.07em;
    line-height: 1;
    text-transform: uppercase;
}

.wp-block-button.acsi-button--outline > .wp-block-button__link {
    background: transparent;
    color: var(--acsi-primary);
}

.wp-block-button.acsi-button--glass > .wp-block-button__link {
    border-color: rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
}

.wp-block-button.acsi-button--light > .wp-block-button__link {
    border-color: #ffffff;
    background: #ffffff;
    color: #075985;
}

.wp-block-button.acsi-button--arrow > .wp-block-button__link::after {
    width: 1rem;
    height: 1rem;
    flex: 0 0 1rem;
    background: currentColor;
    content: "";
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acsi-theme .acsi-button,
.editor-styles-wrapper .acsi-button,
.acsi-theme .wp-block-button.acsi-button > .wp-block-button__link,
.editor-styles-wrapper .wp-block-button.acsi-button > .wp-block-button__link {
    border-radius: 999px;
}

.acsi-button:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px -15px color-mix(in srgb, var(--acsi-primary) 75%, transparent);
}

.acsi-button--outline {
    background: transparent;
    color: var(--acsi-primary);
}

.acsi-button--outline:hover {
    background: var(--acsi-primary);
    color: #ffffff;
}

.acsi-button--glass {
    border-color: rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    backdrop-filter: blur(14px);
}

.acsi-button--glass:hover {
    background: rgba(14, 165, 233, 0.82);
}

.acsi-button svg,
.acsi-text-link svg,
.acsi-focus-card em svg {
    width: 1.1em;
    height: 1.1em;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-text-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--acsi-primary);
    font-size: 0.82rem;
    font-weight: 750;
}

.acsi-text-link:hover {
    text-decoration: underline;
}

.acsi-eyebrow {
    margin: 0;
    color: var(--acsi-primary);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.21em;
    text-transform: uppercase;
}

.acsi-badge {
    display: inline-flex;
    width: fit-content;
    padding: 0.25rem 0.5rem;
    border-radius: 0.35rem;
    background: var(--acsi-primary-bright);
    color: #ffffff;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.1;
    text-transform: uppercase;
}

.acsi-content-labels {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    width: fit-content;
}

.acsi-content-labels .acsi-badge {
    padding: 0.38rem 0.65rem;
    font-size: 0.72rem;
    letter-spacing: 0;
    text-transform: none;
}

.acsi-content-labels a.acsi-badge:hover {
    background: var(--acsi-primary);
    color: #ffffff;
}

/* Header */
.acsi-header {
    position: sticky;
    z-index: 1000;
    top: 0;
    width: 100%;
    border-bottom: 1px solid color-mix(in srgb, var(--acsi-border) 70%, transparent);
    background: color-mix(in srgb, var(--acsi-background) 90%, transparent);
    color: var(--acsi-foreground);
    backdrop-filter: blur(18px);
    transition: box-shadow 180ms ease;
}

.acsi-header.is-scrolled {
    box-shadow: 0 8px 28px -24px rgba(15, 23, 42, 0.65);
}

.acsi-header__utility {
    border-bottom: 1px solid var(--acsi-border);
    background: color-mix(in srgb, var(--acsi-card-muted) 72%, transparent);
    color: var(--acsi-muted);
    font-size: 0.72rem;
}

.acsi-header__utility-inner {
    display: flex;
    min-height: 30px;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.acsi-header__utility p {
    margin: 0;
}

.acsi-header__utility-links {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.acsi-header__utility a:hover {
    color: var(--acsi-primary);
}

.acsi-header__main {
    display: flex;
    min-height: var(--acsi-header-height);
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.acsi-brand {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
}

.acsi-brand img {
    width: auto;
    max-height: 44px;
    object-fit: contain;
}

.acsi-brand .custom-logo-link {
    display: flex;
}

html:not([data-theme="dark"]) .acsi-brand > .acsi-brand__dark,
html[data-theme="dark"] .acsi-brand > .acsi-brand__light {
    display: none !important;
}

html[data-theme="dark"] .acsi-brand > .acsi-brand__dark {
    display: block !important;
}

.acsi-nav {
    display: flex;
    flex: 1 1 auto;
    align-self: stretch;
    justify-content: center;
}

.acsi-nav__list {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: clamp(1rem, 2vw, 2.35rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.acsi-nav__list > li {
    position: relative;
    display: flex;
    align-items: center;
}

.acsi-nav__list > li > a {
    position: relative;
    display: flex;
    min-height: var(--acsi-header-height);
    align-items: center;
    color: color-mix(in srgb, var(--acsi-foreground) 86%, transparent);
    font-size: 0.79rem;
    font-weight: 720;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.acsi-nav__list > li > a::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2px;
    background: var(--acsi-primary);
    content: "";
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 180ms ease;
}

.acsi-nav__list > li:hover > a,
.acsi-nav__list > li:focus-within > a,
.acsi-nav__list > .current-menu-item > a,
.acsi-nav__list > .current-menu-ancestor > a {
    color: var(--acsi-primary);
}

.acsi-nav__list > li:hover > a::after,
.acsi-nav__list > li:focus-within > a::after,
.acsi-nav__list > .current-menu-item > a::after,
.acsi-nav__list > .current-menu-ancestor > a::after {
    transform: scaleX(1);
}

.acsi-nav .sub-menu {
    position: absolute;
    z-index: 20;
    top: calc(100% - 1px);
    left: 50%;
    visibility: hidden;
    pointer-events: none;
    width: min(320px, 88vw);
    margin: 0;
    padding: 0.75rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card);
    box-shadow: var(--acsi-shadow);
    list-style: none;
    opacity: 0;
    transform: translate(-50%, 10px);
    transition: visibility 160ms ease, opacity 160ms ease, transform 160ms ease;
}

.acsi-nav .sub-menu .sub-menu {
    top: -0.75rem;
    left: calc(100% + 0.6rem);
    transform: translate(8px, 0);
}

.acsi-nav li:hover > .sub-menu,
.acsi-nav li:focus-within > .sub-menu {
    visibility: visible;
    pointer-events: auto;
    opacity: 1;
    transform: translate(-50%, 0);
}

.acsi-nav .sub-menu li:hover > .sub-menu,
.acsi-nav .sub-menu li:focus-within > .sub-menu {
    transform: translate(0, 0);
}

.acsi-nav .sub-menu a {
    display: block;
    padding: 0.65rem 0.75rem;
    border-radius: 0.55rem;
    color: var(--acsi-foreground);
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.35;
}

.acsi-nav .sub-menu a:hover,
.acsi-nav .sub-menu a:focus-visible {
    background: var(--acsi-card-muted);
    color: var(--acsi-primary);
}

.acsi-nav__list > .mega-menu {
    position: static;
}

.acsi-nav__list > .mega-menu > .sub-menu {
    right: 5%;
    left: 5%;
    display: grid;
    width: auto;
    grid-template-columns: repeat(auto-fit, minmax(180px, 240px));
    justify-content: center;
    gap: clamp(0.75rem, 2vw, 1.5rem);
    transform: translateY(10px);
}

.acsi-nav__list > .mega-menu:hover > .sub-menu,
.acsi-nav__list > .mega-menu:focus-within > .sub-menu {
    transform: translateY(0);
}

.acsi-nav__list > .mega-menu:hover > .sub-menu .sub-menu,
.acsi-nav__list > .mega-menu:focus-within > .sub-menu .sub-menu {
    pointer-events: auto;
}

.acsi-nav__list > .mega-menu > .sub-menu > li > a {
    color: var(--acsi-primary);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.acsi-nav__list > .mega-menu > .sub-menu .sub-menu {
    position: static;
    visibility: visible;
    width: auto;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    transform: none;
}

.acsi-header__actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.55rem;
}

.acsi-icon-button {
    display: inline-flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--acsi-foreground);
}

.acsi-icon-button:hover {
    background: var(--acsi-card-muted);
}

.acsi-icon-button svg,
.acsi-socials svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-theme-toggle__sun,
html[data-theme="dark"] .acsi-theme-toggle__moon {
    display: none;
}

html[data-theme="dark"] .acsi-theme-toggle__sun {
    display: block;
}

.acsi-menu-toggle {
    display: none;
}

.acsi-menu-toggle__close,
.acsi-menu-toggle[aria-expanded="true"] .acsi-menu-toggle__open {
    display: none;
}

.acsi-menu-toggle[aria-expanded="true"] .acsi-menu-toggle__close {
    display: block;
}

/* Homepage hero */
.acsi-hero {
    position: relative;
    height: min(85vh, 780px);
    min-height: 520px;
    overflow: hidden;
    background: #020617;
    color: #ffffff;
}

.acsi-hero__slides,
.acsi-hero__slide,
.acsi-hero__image,
.acsi-hero__overlay {
    position: absolute;
    inset: 0;
}

.acsi-hero__slide {
    visibility: hidden;
    opacity: 0;
    transition: visibility 600ms ease, opacity 600ms ease;
}

.acsi-hero__slide.is-active {
    visibility: visible;
    opacity: 1;
}

.acsi-hero__image {
    background-position: center;
    background-size: cover;
    transform: scale(1.025);
    transition: transform 7s ease;
}

.acsi-hero__slide.is-active .acsi-hero__image {
    transform: scale(1);
}

.acsi-hero__image--fallback,
.acsi-featured-card__image--fallback,
.acsi-story__image--fallback,
.acsi-card__media--empty {
    background-image: linear-gradient(135deg, #075985, #1e3a8a 48%, #312e81);
}

.acsi-hero__overlay {
    background:
        linear-gradient(to top, rgba(2, 6, 23, 0.98), rgba(2, 6, 23, 0.55) 50%, rgba(2, 6, 23, 0.12)),
        linear-gradient(to right, rgba(2, 6, 23, 0.45), transparent 65%);
}

.acsi-hero__content {
    position: relative;
    z-index: 2;
    display: flex;
    height: 100%;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    padding-bottom: 9rem;
}

.acsi-hero .acsi-eyebrow {
    margin-bottom: 0.85rem;
    color: rgba(255, 255, 255, 0.82);
}

.acsi-hero .acsi-content-labels {
    margin-bottom: 0.85rem;
}

.acsi-hero :is(h1, h2) {
    max-width: 1040px;
    margin: 0;
    font-size: clamp(2.2rem, 4.5vw, 4.5rem);
    font-weight: 850;
    letter-spacing: -0.045em;
    line-height: 1.04;
    text-wrap: balance;
    text-shadow: 0 8px 30px rgba(0, 0, 0, 0.75);
}

.acsi-hero__excerpt {
    max-width: 820px;
    margin: 1rem 0 1.35rem;
    color: rgba(255, 255, 255, 0.86);
    font-size: clamp(1rem, 1.5vw, 1.18rem);
    line-height: 1.55;
}

.acsi-hero__controls {
    position: absolute;
    z-index: 5;
    right: 0;
    bottom: 1.25rem;
    left: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
}

.acsi-hero__tab {
    position: relative;
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 0.75rem;
    padding: 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 0.85rem;
    background: rgba(2, 6, 23, 0.48);
    color: rgba(255, 255, 255, 0.72);
    text-align: left;
    backdrop-filter: blur(12px);
    transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.acsi-hero__tab:hover,
.acsi-hero__tab.is-active {
    background: rgba(2, 6, 23, 0.78);
    color: #ffffff;
    transform: translateY(-2px);
}

.acsi-hero__tab > span {
    display: grid;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 0.5rem;
    background: rgba(255, 255, 255, 0.17);
    font-size: 0.7rem;
    font-weight: 800;
}

.acsi-hero__tab strong {
    overflow: hidden;
    font-size: 0.78rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.acsi-empty-hero {
    padding: clamp(6rem, 13vw, 12rem) 0;
    background: linear-gradient(135deg, #082f49, #0c4a6e 50%, #1e3a8a);
    color: #ffffff;
}

.acsi-empty-hero h1 {
    max-width: 850px;
    margin: 0.75rem 0 2rem;
    font-size: clamp(2.5rem, 6vw, 5rem);
    line-height: 1.05;
}

/* Homepage content */
.acsi-home-layout {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(280px, 3fr);
    gap: clamp(2rem, 4vw, 4rem);
    padding-block: clamp(3rem, 7vw, 6rem);
}

.acsi-home-layout__main,
.acsi-home-sidebar {
    min-width: 0;
}

.acsi-home-sidebar {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.acsi-section + .acsi-section {
    margin-top: clamp(3.5rem, 7vw, 6rem);
}

.acsi-section__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.35rem;
    border-bottom: 1px solid var(--acsi-border);
}

.acsi-section__heading h2 {
    width: fit-content;
    margin: 0 0 -1px;
    padding: 0.48rem 0.75rem;
    border-radius: 0.38rem 0.38rem 0 0;
    background: var(--acsi-primary-bright);
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    line-height: 1.15;
    text-transform: uppercase;
}

.acsi-featured-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
    grid-template-rows: repeat(3, 1fr);
    gap: 1rem;
    min-height: 590px;
}

.acsi-featured-card {
    position: relative;
    min-height: 180px;
    overflow: hidden;
    border-radius: var(--acsi-radius);
    background: #0f172a;
}

.acsi-featured-card--large {
    grid-row: 1 / -1;
    min-height: 590px;
}

.acsi-featured-card__link,
.acsi-featured-card__image,
.acsi-featured-card__overlay {
    position: absolute;
    inset: 0;
}

.acsi-featured-card__image {
    background-position: center;
    background-size: cover;
    transition: transform 500ms ease;
}

.acsi-featured-card:hover .acsi-featured-card__image {
    transform: scale(1.045);
}

.acsi-featured-card__overlay {
    background: linear-gradient(to top, rgba(2, 6, 23, 0.92), rgba(2, 6, 23, 0.35) 58%, transparent);
}

.acsi-featured-card__content {
    position: absolute;
    z-index: 2;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.45rem;
    color: #ffffff;
}

.acsi-featured-card__content strong {
    font-size: 0.9rem;
    line-height: 1.25;
}

.acsi-featured-card--large .acsi-featured-card__content {
    right: 1.5rem;
    bottom: 1.5rem;
    left: 1.5rem;
}

.acsi-featured-card--large .acsi-featured-card__content strong {
    max-width: 760px;
    font-size: clamp(1.45rem, 2.6vw, 2.35rem);
    line-height: 1.12;
}

.acsi-featured-card__content time {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.68rem;
}

.acsi-story-list {
    display: grid;
    gap: 2.5rem;
}

.acsi-story {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    align-items: center;
}

.acsi-story__image {
    min-height: 260px;
    border-radius: var(--acsi-radius);
    background-position: center;
    background-size: cover;
}

.acsi-story__content h3 {
    margin: 0 0 0.5rem;
    font-size: 1.25rem;
    line-height: 1.35;
}

.acsi-story__content .acsi-content-labels {
    margin-bottom: 0.5rem;
}

.acsi-story__content h3 a:hover {
    color: var(--acsi-primary);
}

.acsi-story__content > p {
    margin: 0 0 0.75rem;
    color: color-mix(in srgb, var(--acsi-foreground) 82%, transparent);
    font-size: 0.875rem;
    line-height: 1.55;
}

.acsi-story__content .acsi-button--outline {
    padding: 0.6rem 1rem;
    border-color: var(--acsi-foreground);
    border-radius: 999px;
    color: var(--acsi-foreground);
    font-size: 0.72rem;
}

.acsi-story__content .acsi-button--outline:hover {
    border-color: var(--acsi-primary-bright);
    background: var(--acsi-primary-bright);
    color: #ffffff;
}

.acsi-section__cta {
    margin-top: 2.5rem;
}

.acsi-events__list {
    display: grid;
    gap: 1rem;
}

.acsi-event {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--acsi-border);
}

.acsi-event__date {
    display: flex;
    width: 64px;
    height: 68px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--acsi-border);
    border-radius: 0.8rem;
    background: var(--acsi-card);
    box-shadow: 0 8px 20px -18px rgba(15, 23, 42, 0.6);
    line-height: 1;
}

.acsi-event__date strong {
    font-size: 1.35rem;
}

.acsi-event__date span {
    margin-top: 0.2rem;
    font-size: 0.66rem;
}

.acsi-event__date small {
    margin-top: 0.22rem;
    color: var(--acsi-muted);
    font-size: 0.59rem;
}

.acsi-event h3 {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.35;
}

.acsi-event h3 a:hover {
    color: var(--acsi-primary);
}

.acsi-event p {
    margin: 0.35rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.73rem;
    line-height: 1.4;
}

.acsi-calendar-banner {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 0.95rem 1.1rem;
    border-radius: var(--acsi-radius-lg);
    background: linear-gradient(135deg, var(--acsi-primary-dark) 0%, var(--acsi-primary) 100%);
    box-shadow: 0 18px 34px -24px rgba(2, 132, 199, 0.9);
    color: #ffffff;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* In tema scuro --acsi-primary diventa azzurro chiaro: il bianco sopra non sarebbe leggibile. */
html[data-theme="dark"] .acsi-calendar-banner {
    background: linear-gradient(135deg, #0c4a6e 0%, var(--acsi-primary-dark) 100%);
}

/*
 * Il tema imposta .acsi-theme a { color: inherit }, quindi il bianco del banner
 * va riaffermato con pari specificita', come si fa per a.acsi-button. Qui e'
 * anche !important: su fondo blu pieno il testo DEVE restare bianco, qualunque
 * foglio di stile arrivi dopo (plugin, cache che riordina, viste di anteprima).
 */
.acsi-theme a.acsi-calendar-banner,
.acsi-theme a.acsi-calendar-banner:hover,
.acsi-calendar-banner {
    color: #ffffff !important;
}

.acsi-calendar-banner:hover {
    transform: translateY(-2px);
    box-shadow: 0 22px 40px -22px rgba(2, 132, 199, 0.95);
}

.acsi-calendar-banner svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-calendar-banner__icon {
    display: grid;
    flex: 0 0 2.6rem;
    width: 2.6rem;
    height: 2.6rem;
    place-items: center;
    border-radius: 0.75rem;
    background: rgba(255, 255, 255, 0.16);
}

.acsi-calendar-banner__icon svg {
    width: 1.35rem;
    height: 1.35rem;
}

.acsi-calendar-banner__text {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.acsi-calendar-banner__text strong {
    font-size: 0.92rem;
    font-weight: 750;
    line-height: 1.35;
}

.acsi-calendar-banner__arrow {
    display: grid;
    margin-left: auto;
    place-items: center;
}

.acsi-calendar-banner__arrow svg {
    width: 1.1rem;
    height: 1.1rem;
    transition: transform 0.2s ease;
}

.acsi-calendar-banner:hover .acsi-calendar-banner__arrow svg {
    transform: translateX(3px);
}

@media (prefers-reduced-motion: reduce) {
    .acsi-calendar-banner,
    .acsi-calendar-banner__arrow svg {
        transition: none;
    }

    .acsi-calendar-banner:hover {
        transform: none;
    }

    .acsi-calendar-banner:hover .acsi-calendar-banner__arrow svg {
        transform: none;
    }
}

.acsi-sidebar-panel {
    padding: 1.25rem;
    border: 1px solid var(--acsi-border);
    border-radius: var(--acsi-radius-lg);
    background: var(--acsi-card-muted);
}

.acsi-sidebar-panel > h2 {
    margin: 0 0 1.2rem;
    color: var(--acsi-primary);
    font-size: 1.25rem;
}

.acsi-mini-list {
    display: grid;
    gap: 1rem;
    margin-bottom: 1.2rem;
}

.acsi-mini-list article {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 0.75rem;
    align-items: center;
}

.acsi-mini-list article:not(:has(.acsi-mini-list__image)) {
    grid-template-columns: 1fr;
}

.acsi-mini-list__image {
    width: 72px;
    height: 72px;
    border-radius: 0.55rem;
    background-position: center;
    background-size: cover;
}

.acsi-mini-list h3 {
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.35;
}

.acsi-mini-list h3 a:hover {
    color: var(--acsi-primary);
}

.acsi-mini-list time {
    color: var(--acsi-muted);
    font-size: 0.65rem;
}

.acsi-sidebar-extras {
    display: grid;
    gap: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--acsi-border);
}

.acsi-sidebar-publication {
    --acsi-sidebar-accent-start: #0ea5e9;
    --acsi-sidebar-accent-end: #2563eb;
    display: block;
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: var(--acsi-radius-lg);
    background: var(--acsi-card);
    box-shadow: 0 18px 45px -34px rgba(15, 23, 42, 0.75);
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.acsi-sidebar-publication--magazine {
    --acsi-sidebar-accent-start: #ef4444;
    --acsi-sidebar-accent-end: #f97316;
}

.acsi-sidebar-publication:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--acsi-primary) 48%, var(--acsi-border));
    box-shadow: 0 24px 50px -34px rgba(15, 23, 42, 0.9);
}

.acsi-sidebar-publication__cover {
    position: relative;
    display: block;
    height: 13rem;
    overflow: hidden;
    background: linear-gradient(135deg, var(--acsi-primary-dark), var(--acsi-primary-bright));
}

.acsi-sidebar-publication__cover::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(2, 6, 23, 0.62), rgba(2, 6, 23, 0.05) 65%);
    content: "";
}

.acsi-sidebar-publication__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 400ms ease;
}

.acsi-sidebar-publication:hover .acsi-sidebar-publication__cover img {
    transform: scale(1.035);
}

.acsi-sidebar-publication__badge {
    position: absolute;
    z-index: 1;
    top: 0.8rem;
    left: 0.8rem;
    max-width: calc(100% - 1.6rem);
    padding: 0.3rem 0.65rem;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: #0f172a;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.acsi-sidebar-publication__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 1rem;
}

.acsi-sidebar-publication__subtitle {
    padding: 0.25rem 0.6rem;
    border-radius: 999px;
    background: var(--acsi-card-muted);
    color: var(--acsi-muted);
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.acsi-sidebar-publication__body > strong {
    font-size: 1.05rem;
    line-height: 1.25;
}

.acsi-sidebar-publication__body > span:not(.acsi-sidebar-publication__subtitle, .acsi-sidebar-publication__cta) {
    color: var(--acsi-muted);
    font-size: 0.76rem;
    line-height: 1.5;
}

.acsi-sidebar-publication__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.15rem;
    padding: 0.48rem 0.75rem;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--acsi-sidebar-accent-start), var(--acsi-sidebar-accent-end));
    color: #ffffff;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.acsi-sidebar-publication__cta svg {
    width: 0.9rem;
    height: 0.9rem;
}

.acsi-five-per-thousand {
    position: relative;
    overflow: hidden;
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--acsi-primary) 35%, var(--acsi-border));
    border-radius: var(--acsi-radius-lg);
    background:
        radial-gradient(circle at 90% 100%, color-mix(in srgb, var(--acsi-primary-bright) 18%, transparent), transparent 42%),
        var(--acsi-card);
}

.acsi-five-per-thousand__eyebrow {
    display: inline-flex;
    padding: 0.25rem 0.6rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--acsi-primary-bright) 16%, var(--acsi-card));
    color: var(--acsi-primary);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.acsi-five-per-thousand h2 {
    margin: 0.75rem 0 0.35rem;
    font-size: 1.05rem;
    line-height: 1.25;
}

.acsi-five-per-thousand p {
    margin: 0;
    color: var(--acsi-muted);
    font-size: 0.76rem;
    line-height: 1.5;
}

.acsi-five-per-thousand__copy {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 0.85rem;
}

.acsi-five-per-thousand__copy code {
    padding: 0.5rem 0.7rem;
    border: 1px solid color-mix(in srgb, var(--acsi-primary) 35%, var(--acsi-border));
    border-radius: 0.65rem;
    background: color-mix(in srgb, var(--acsi-primary) 8%, var(--acsi-card));
    color: var(--acsi-primary);
    font-size: 0.92rem;
    font-weight: 850;
}

.acsi-five-per-thousand__copy button {
    padding: 0.5rem 0.8rem;
    border: 0;
    border-radius: 999px;
    background: var(--acsi-primary-bright);
    color: #ffffff;
    font-size: 0.7rem;
    font-weight: 800;
}

.acsi-five-per-thousand > small {
    display: block;
    margin-top: 0.55rem;
    color: var(--acsi-muted);
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.acsi-focus {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    padding-bottom: clamp(3rem, 6vw, 5rem);
}

:where(body.home) .acsi-focus {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.acsi-focus-card {
    position: relative;
    display: flex;
    min-height: 260px;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    padding: 1.5rem;
    border-radius: var(--acsi-radius-lg);
    color: #ffffff;
    box-shadow: var(--acsi-shadow);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.acsi-focus-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 30px 60px -36px rgba(15, 23, 42, 0.75);
}

.acsi-focus-card::before {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 100% 0, rgba(255, 255, 255, 0.2), transparent 45%);
    content: "";
}

.acsi-focus-card > * {
    position: relative;
    z-index: 1;
}

.acsi-focus-card--danger {
    background: linear-gradient(135deg, #991b1b, #7f1d1d 55%, #450a0a);
}

.acsi-focus-card--innovation {
    background: linear-gradient(135deg, #312e81, #0f172a 55%, #1e1b4b);
}

.acsi-focus-card--opportunity {
    background: linear-gradient(135deg, #059669, #0f766e 55%, #065f46);
}

.acsi-focus-card--ondemand {
    background: linear-gradient(135deg, #6b21a8, #3730a3 55%, #312e81);
}

.acsi-focus-card small {
    display: block;
    margin-bottom: 0.55rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.acsi-focus-card strong {
    display: block;
    font-size: clamp(1.25rem, 2vw, 1.65rem);
    line-height: 1.1;
}

.acsi-focus-card p {
    margin: 0.75rem 0 0;
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.85rem;
}

.acsi-focus-card em {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 0.4rem;
    margin-top: 1.5rem;
    padding: 0.55rem 0.75rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    font-size: 0.64rem;
    font-style: normal;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.acsi-partners {
    margin-bottom: clamp(3rem, 7vw, 6rem);
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border: 1px solid var(--acsi-border);
    border-radius: var(--acsi-radius-lg);
    background: var(--acsi-card);
    box-shadow: 0 20px 50px -42px rgba(15, 23, 42, 0.7);
}

.acsi-partners__heading h2 {
    margin: 0.25rem 0 0;
    font-size: clamp(1.4rem, 3vw, 2.1rem);
    line-height: 1.15;
}

.acsi-partners__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.5rem;
}

.acsi-partners__grid a {
    display: grid;
    min-height: 140px;
    place-items: center;
    padding: 1rem;
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    background: #f8fafc;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
    transition: transform 180ms ease, border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.acsi-partners__grid a:hover {
    transform: translateY(-4px);
    border-color: #6ee7b7;
    background: #ffffff;
    box-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.1), 0 2px 4px -2px rgba(15, 23, 42, 0.1);
}

html[data-theme="dark"] .acsi-partners__grid a {
    border-color: #1e293b;
    background: rgba(30, 41, 59, 0.6);
}

html[data-theme="dark"] .acsi-partners__grid a:hover {
    border-color: #6ee7b7;
    background: #1e293b;
}

.acsi-partners__grid .wp-block-gallery.has-nested-images figure.wp-block-image img {
    width: auto;
    max-width: min(210px, 90%);
    max-height: 88px;
    object-fit: contain;
}

html[data-theme="dark"] .acsi-partners__grid img[alt="Sport e Salute"] {
    content: url("../images/partners/sport-e-salute_white.png");
}

/* Native Gutenberg patterns exposed to editors. */
.acsi-pattern-section,
.acsi-pattern-hero,
.acsi-pattern-cta {
    margin-block: clamp(1.5rem, 4vw, 4rem);
}

.acsi-pattern-hero,
.acsi-pattern-cta {
    padding: clamp(1.5rem, 4vw, 3.5rem);
    color: #fff;
    border-radius: 1.75rem;
    background: linear-gradient(135deg, #082f49 0%, #075985 55%, #0284c7 100%);
    box-shadow: 0 24px 55px rgba(7, 89, 133, 0.2);
}

.acsi-pattern-hero :is(h1, h2, p),
.acsi-pattern-cta :is(h1, h2, p, a) {
    color: inherit;
}

.acsi-pattern-card-grid {
    align-items: stretch;
}

.acsi-pattern-card {
    height: 100%;
    padding: 1.4rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1.25rem;
    background: var(--acsi-card);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.07);
}

.acsi-pattern-document-list,
.acsi-pattern-faq {
    display: grid;
    gap: 1rem;
}

.acsi-pattern-faq details {
    padding: 1rem 1.2rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card);
}

.acsi-pattern-faq summary {
    cursor: pointer;
    font-weight: 750;
}

/* Gutenberg preserves the original ACSI class on the Core Button wrapper. */
[class$="-nav"] > .wp-block-buttons,
[class*="-nav "] > .wp-block-buttons,
[class*="-grid"] > .wp-block-buttons,
[class*="__actions"] > .wp-block-buttons,
[class*="-buttons"] > .wp-block-buttons,
.acsi-insurance-files > .wp-block-buttons,
.acsi-insurance-categories > .wp-block-buttons,
.cta-group > .wp-block-buttons {
    display: contents;
}

.wp-block-button[class*="acsi-"]:not(.acsi-button) > .wp-block-button__link,
.wp-block-button[class~="btn"] > .wp-block-button__link {
    display: flex;
    width: 100%;
    min-height: inherit;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: inherit;
    background: transparent;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    line-height: inherit;
    text-align: inherit;
    text-decoration: none;
    text-transform: inherit;
}

.acsi-focus-card .acsi-focus-card__link {
    margin-top: auto;
    color: inherit;
    font-size: 0.78rem;
    font-weight: 750;
}

.acsi-video-card__media video,
.acsi-video-card__media iframe,
.acsi-video-card__media .wp-block-embed__wrapper {
    width: 100%;
    height: 100%;
}

.acsi-video-card__media video {
    object-fit: cover;
}

.acsi-affiliation-tier .acsi-definition-row {
    padding-top: 0.7rem;
    border-top: 1px solid var(--acsi-border);
}

.acsi-affiliation-tier .acsi-definition-term,
.acsi-affiliation-tier .acsi-definition-description {
    margin: 0;
}

.acsi-affiliation-tier .acsi-definition-term {
    font-size: 0.73rem;
    font-weight: 750;
}

.acsi-affiliation-tier .acsi-definition-description {
    margin-top: 0.25rem;
    color: var(--acsi-muted);
    font-size: 0.78rem;
    line-height: 1.45;
}

/* Archive and content templates */
.acsi-page-hero,
.acsi-single__header {
    padding: clamp(4.5rem, 9vw, 8rem) 0 clamp(2.5rem, 5vw, 4.5rem);
    background: linear-gradient(145deg, var(--acsi-card-muted), color-mix(in srgb, var(--acsi-primary) 7%, var(--acsi-background)));
}

.acsi-page-hero h1,
.acsi-single__header h1 {
    max-width: 1100px;
    margin: 0.7rem 0 0;
    font-size: clamp(2.2rem, 5vw, 4.8rem);
    letter-spacing: -0.045em;
    line-height: 1.05;
    text-wrap: balance;
}

.acsi-page-hero__description {
    max-width: 780px;
    margin-top: 1rem;
    color: var(--acsi-muted);
}

.acsi-breadcrumbs {
    color: var(--acsi-muted);
    font-size: 0.75rem;
}

.acsi-breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.acsi-global-breadcrumbs {
    padding-block: 1.1rem;
    border-bottom: 1px solid color-mix(in srgb, var(--acsi-border) 55%, transparent);
    background: var(--acsi-background);
}

.acsi-breadcrumbs [aria-current="page"] {
    color: var(--acsi-foreground);
    font-weight: 700;
}

.acsi-breadcrumbs__separator {
    opacity: 0.55;
}

.acsi-breadcrumbs a:hover {
    color: var(--acsi-primary);
}

/* Unified articles archive, based on the React catalogue. */
.acsi-articles > .acsi-container {
    padding-block: clamp(2.75rem, 6vw, 5.5rem);
}

.acsi-articles__header {
    max-width: 860px;
}

.acsi-articles__header .acsi-eyebrow {
    margin: 0 0 0.75rem;
}

.acsi-articles__header h1 {
    margin: 0;
    font-size: clamp(2.1rem, 4.3vw, 4rem);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.02;
}

.acsi-articles__header > p:last-child {
    max-width: 760px;
    margin: 1rem 0 0;
    color: var(--acsi-muted);
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}

.acsi-articles__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem 2rem;
    margin-top: clamp(2rem, 4vw, 3.25rem);
}

.acsi-article-filters {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.acsi-article-filter {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0.42rem 0.9rem;
    border: 1px solid var(--acsi-border);
    border-radius: 999px;
    color: var(--acsi-muted);
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1;
    transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.acsi-article-filter:hover {
    transform: translateY(-1px);
    border-color: var(--acsi-primary);
    color: var(--acsi-primary);
}

.acsi-article-filter.is-active {
    border-color: var(--acsi-primary-bright);
    background: var(--acsi-primary-bright);
    color: #ffffff;
    box-shadow: 0 10px 24px -18px var(--acsi-primary-bright);
}

.acsi-article-search {
    position: relative;
    flex: 0 0 min(100%, 330px);
}

.acsi-article-sector-filter {
    flex: 0 0 min(100%, 250px);
}

.acsi-article-sector-filter label,
.acsi-event-sector-filter label {
    display: flex;
    min-height: 44px;
    align-items: center;
    gap: 0.55rem;
    padding: 0 0.8rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.65rem;
    background: var(--acsi-card);
    color: var(--acsi-muted);
}

.acsi-article-sector-filter svg,
.acsi-event-sector-filter svg {
    width: 1rem;
    height: 1rem;
    flex: 0 0 1rem;
}

.acsi-article-sector-filter select,
.acsi-event-sector-filter select {
    min-width: 0;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--acsi-foreground);
    font: inherit;
    font-size: 0.76rem;
    outline: none;
}

.acsi-article-search__icon {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 0.95rem;
    width: 18px;
    height: 18px;
    color: var(--acsi-muted);
    pointer-events: none;
    transform: translateY(-50%);
}

.acsi-article-search__icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-article-search input[type="search"] {
    width: 100%;
    min-height: 44px;
    padding: 0.65rem 1rem 0.65rem 2.8rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.65rem;
    background: var(--acsi-card);
    color: var(--acsi-foreground);
    outline: none;
}

.acsi-article-search input[type="search"]:focus {
    border-color: var(--acsi-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--acsi-primary) 18%, transparent);
}

.acsi-articles__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: clamp(2rem, 4vw, 3.25rem);
}

.acsi-article-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: var(--acsi-radius-lg);
    background: var(--acsi-card);
    box-shadow: 0 18px 40px -36px rgba(15, 23, 42, 0.65);
    transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.acsi-article-card:hover {
    transform: translateY(-4px);
    border-color: color-mix(in srgb, var(--acsi-primary) 45%, var(--acsi-border));
    box-shadow: 0 24px 50px -30px rgba(15, 23, 42, 0.75);
}

.acsi-article-card__link {
    display: flex;
    height: 100%;
    flex-direction: column;
}

.acsi-article-card__media {
    min-height: 220px;
    overflow: hidden;
    background-color: var(--acsi-card-muted);
    background-position: center;
    background-size: cover;
    transition: transform 450ms ease;
}

.acsi-article-card:hover .acsi-article-card__media {
    transform: scale(1.025);
}

.acsi-article-card__media--empty {
    background-image: linear-gradient(135deg, color-mix(in srgb, var(--acsi-primary) 24%, var(--acsi-card)), var(--acsi-card-muted));
}

.acsi-article-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 1rem;
    padding: 1.35rem;
}

.acsi-article-card__body .acsi-content-labels {
    gap: 0.45rem;
}

.acsi-article-card__body .acsi-badge {
    background: var(--acsi-card-muted);
    color: var(--acsi-foreground);
    font-size: 0.68rem;
}

.acsi-article-card__copy h2 {
    margin: 0;
    font-size: 1.18rem;
    font-weight: 800;
    letter-spacing: -0.015em;
    line-height: 1.25;
    transition: color 180ms ease;
}

.acsi-article-card:hover .acsi-article-card__copy h2 {
    color: var(--acsi-primary);
}

.acsi-article-card__excerpt {
    display: -webkit-box;
    margin: 0.65rem 0 0;
    overflow: hidden;
    color: var(--acsi-muted);
    font-size: 0.9rem;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.acsi-article-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: auto;
    color: var(--acsi-muted);
    font-size: 0.76rem;
}

.acsi-article-card__read {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--acsi-primary);
    font-weight: 800;
}

.acsi-article-card__read svg {
    width: 16px;
    height: 16px;
    transform: rotate(-45deg);
}

.acsi-articles .acsi-pagination {
    padding: clamp(2.5rem, 5vw, 4rem) 0 0;
}

.acsi-articles__empty {
    margin-top: clamp(2rem, 4vw, 3.25rem);
    padding: clamp(2rem, 5vw, 4rem);
    border: 1px dashed var(--acsi-border);
    border-radius: var(--acsi-radius-lg);
    background: var(--acsi-card-muted);
    text-align: center;
}

.acsi-articles__empty h2 {
    margin: 0;
    font-size: 1.4rem;
}

.acsi-articles__empty p {
    margin: 0.5rem 0 1.25rem;
    color: var(--acsi-muted);
}

.acsi-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    padding-block: clamp(3rem, 7vw, 6rem);
}

.acsi-card {
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: var(--acsi-radius);
    background: var(--acsi-card);
    box-shadow: 0 18px 40px -36px rgba(15, 23, 42, 0.65);
}

.acsi-card__media {
    display: block;
    aspect-ratio: 16 / 10;
    background-position: center;
    background-size: cover;
    transition: transform 300ms ease;
}

.acsi-card:hover .acsi-card__media {
    transform: scale(1.02);
}

.acsi-card__body {
    padding: 1.25rem;
}

.acsi-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    color: var(--acsi-muted);
    font-size: 0.68rem;
    text-transform: uppercase;
}

.acsi-card__meta .acsi-content-labels {
    margin-left: auto;
}

.acsi-card__meta .acsi-badge {
    font-size: 0.64rem;
    text-transform: none;
}

.acsi-card__title {
    margin: 0.55rem 0;
    font-size: 1.2rem;
    line-height: 1.25;
}

.acsi-card__title a:hover {
    color: var(--acsi-primary);
}

.acsi-card__body > p {
    margin: 0 0 1rem;
    color: var(--acsi-muted);
    font-size: 0.88rem;
}

.acsi-pagination {
    padding-bottom: clamp(3rem, 7vw, 6rem);
}

.acsi-pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: center;
}

.acsi-pagination .page-numbers {
    display: grid;
    min-width: 40px;
    height: 40px;
    place-items: center;
    padding-inline: 0.6rem;
    border: 1px solid var(--acsi-border);
    border-radius: 999px;
}

.acsi-pagination .current,
.acsi-pagination a:hover {
    border-color: var(--acsi-primary);
    background: var(--acsi-primary);
    color: #ffffff;
}

.acsi-prose {
    max-width: 860px;
    padding-block: clamp(2.5rem, 6vw, 5rem);
    font-size: 1.05rem;
}

.acsi-prose > *:first-child {
    margin-top: 0;
}

.acsi-prose h2,
.acsi-prose h3,
.acsi-prose h4 {
    margin-top: 1.8em;
    margin-bottom: 0.65em;
    line-height: 1.18;
}

.acsi-prose h2 {
    font-size: clamp(1.7rem, 3vw, 2.4rem);
}

.acsi-prose h3 {
    font-size: clamp(1.35rem, 2.5vw, 1.8rem);
}

.acsi-prose p,
.acsi-prose ul,
.acsi-prose ol,
.acsi-prose blockquote {
    margin-block: 1.1em;
}

.acsi-prose a {
    color: var(--acsi-primary);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.acsi-prose blockquote {
    padding: 1rem 1.25rem;
    border-left: 4px solid var(--acsi-primary);
    border-radius: 0 var(--acsi-radius) var(--acsi-radius) 0;
    background: var(--acsi-card-muted);
}

.acsi-prose img,
.acsi-page__featured img,
.acsi-single__featured img {
    height: auto;
    border-radius: var(--acsi-radius);
}

.acsi-page__featured {
    margin: 0 0 2rem;
}

.acsi-single__header-inner {
    max-width: 1100px;
}

.acsi-single__header .acsi-content-labels {
    margin-top: 0.75rem;
}

.acsi-single__meta {
    display: flex;
    gap: 1rem;
    margin-top: 1.25rem;
    color: var(--acsi-muted);
    font-size: 0.8rem;
}

.acsi-single__featured {
    max-width: 1300px;
    margin-top: -1.5rem;
}

.acsi-single__featured img {
    width: 100%;
    max-height: 720px;
    object-fit: cover;
}

.acsi-single__footer {
    max-width: 860px;
    padding-bottom: clamp(3rem, 7vw, 6rem);
}

.acsi-single__footer .post-navigation {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--acsi-border);
}

.acsi-single__footer .nav-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.acsi-single__footer .nav-next {
    text-align: right;
}

/* React-aligned detail layout for standard articles. */
.acsi-article-detail {
    padding-bottom: clamp(3rem, 7vw, 6rem);
}

.acsi-article-hero {
    position: relative;
    min-height: 0;
    margin-block: clamp(1.25rem, 3vw, 2.25rem) clamp(2rem, 4vw, 3rem);
    overflow: hidden;
    isolation: isolate;
    background: linear-gradient(115deg, #0f172a 0%, #0c4a6e 52%, #1e293b 100%);
    box-shadow: 0 24px 55px -34px rgba(2, 132, 199, 0.7);
}

.acsi-article-hero::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(circle at 20% 18%, rgba(255, 255, 255, 0.14), transparent 31%),
        radial-gradient(circle at 82% 0%, rgba(255, 255, 255, 0.1), transparent 33%);
    content: "";
}

.acsi-article-hero__back {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, 0.4);
    text-underline-offset: 0.25rem;
}

.acsi-article-hero__back:hover {
    color: #ffffff;
}

.acsi-article-hero__back svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transform: rotate(180deg);
}

.acsi-article-hero .acsi-content-labels {
    display: flex;
    width: fit-content;
    margin-top: 1.25rem;
}

.acsi-article-hero .acsi-badge {
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.13);
    color: #ffffff;
}

.acsi-article-hero h1 {
    max-width: 1100px;
    margin: 1rem 0 0;
    color: #ffffff;
    font-size: clamp(2rem, 3.1vw, 3.15rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.04;
    text-wrap: balance;
}

.acsi-article-hero__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.84rem;
}

.acsi-article-hero__meta svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.acsi-article-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
    gap: clamp(1.5rem, 3vw, 2.5rem);
    align-items: start;
}

.acsi-article-detail__content {
    min-width: 0;
}

.acsi-article-detail__featured {
    width: 100%;
    aspect-ratio: 16 / 9;
    margin: 0 0 clamp(2rem, 4vw, 3rem);
    overflow: hidden;
    border-radius: var(--acsi-radius-lg);
    background: var(--acsi-card-muted);
    box-shadow: var(--acsi-shadow);
}

.acsi-article-detail__featured img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.acsi-article-detail__featured--empty {
    background-image: linear-gradient(135deg, color-mix(in srgb, var(--acsi-primary) 24%, var(--acsi-card)), var(--acsi-card-muted));
}

.acsi-article-detail__content .acsi-prose {
    max-width: none;
    padding-block: 0;
}

.acsi-article-related {
    position: sticky;
    top: calc(var(--acsi-header-height) + 1rem);
}

.acsi-article-related__panel {
    padding: 1.35rem;
    border: 1px solid var(--acsi-border);
    border-radius: var(--acsi-radius-lg);
    background: color-mix(in srgb, var(--acsi-card) 88%, transparent);
    box-shadow: 0 18px 45px -36px rgba(15, 23, 42, 0.65);
}

.acsi-article-related__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.acsi-article-related__header .acsi-eyebrow {
    margin: 0;
    font-size: 0.62rem;
    letter-spacing: 0.2em;
}

.acsi-article-related__header h2 {
    margin: 0.25rem 0 0;
    font-size: 1.2rem;
    line-height: 1.2;
}

.acsi-article-related__header > span {
    max-width: 42%;
    color: var(--acsi-muted);
    font-size: 0.7rem;
    text-align: right;
}

.acsi-article-related__list {
    display: grid;
    gap: 1rem;
    margin-top: 1.25rem;
}

.acsi-article-related__item {
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr);
    gap: 0.8rem;
    padding: 0.75rem;
    border: 1px solid color-mix(in srgb, var(--acsi-border) 72%, transparent);
    border-radius: 1rem;
    background: var(--acsi-card-muted);
    transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

.acsi-article-related__item:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--acsi-primary) 45%, var(--acsi-border));
    background: color-mix(in srgb, var(--acsi-primary) 6%, var(--acsi-card-muted));
}

.acsi-article-related__media {
    width: 80px;
    height: 66px;
    border-radius: 0.75rem;
    background-color: var(--acsi-card);
    background-position: center;
    background-size: cover;
}

.acsi-article-related__media--empty {
    background-image: linear-gradient(135deg, color-mix(in srgb, var(--acsi-primary) 24%, var(--acsi-card)), var(--acsi-card-muted));
}

.acsi-article-related__copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0.32rem;
}

.acsi-article-related__copy .acsi-content-labels {
    gap: 0.35rem;
}

.acsi-article-related__copy .acsi-badge {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--acsi-muted);
    font-size: 0.56rem;
}

.acsi-article-related__copy strong {
    display: -webkit-box;
    overflow: hidden;
    font-size: 0.82rem;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.acsi-article-related__copy time {
    color: var(--acsi-muted);
    font-size: 0.66rem;
}

.acsi-article-related__empty {
    margin: 1rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.85rem;
}

@media (max-width: 960px) {
    .acsi-article-detail__layout {
        grid-template-columns: 1fr;
    }

    .acsi-article-related {
        position: static;
    }

    .acsi-article-related__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .acsi-article-hero {
        min-height: 0;
        padding: 1.5rem;
    }

    .acsi-article-hero h1 {
        font-size: clamp(2rem, 10vw, 3rem);
    }

    .acsi-article-detail__featured {
        aspect-ratio: 4 / 3;
    }

    .acsi-article-related__list {
        grid-template-columns: 1fr;
    }
}

.acsi-tags {
    color: var(--acsi-muted);
    font-size: 0.82rem;
}

.acsi-search-form {
    display: flex;
    width: min(100%, 640px);
    gap: 0.65rem;
    margin-top: 1.5rem;
}

.acsi-search-form label {
    flex: 1;
}

.acsi-search-form__input {
    width: 100%;
    min-height: 46px;
    padding: 0.7rem 1rem;
    border: 1px solid var(--acsi-border);
    border-radius: 999px;
    background: var(--acsi-card);
    color: var(--acsi-foreground);
}

.acsi-not-found {
    display: grid;
    min-height: 68vh;
    place-items: center;
    padding-block: 4rem;
}

.acsi-not-found__inner {
    max-width: 760px;
    text-align: center;
}

.acsi-not-found__code {
    margin: 0;
    color: color-mix(in srgb, var(--acsi-primary) 25%, transparent);
    font-size: clamp(6rem, 20vw, 14rem);
    font-weight: 900;
    letter-spacing: -0.08em;
    line-height: 0.75;
}

.acsi-not-found h1 {
    margin: 0.8rem 0;
    font-size: clamp(2rem, 5vw, 4rem);
    line-height: 1.05;
}

.acsi-not-found .acsi-search-form {
    margin: 1.5rem auto;
}

/* Footer */
.acsi-footer {
    border-top: 1px solid var(--acsi-border);
    background: var(--acsi-card-muted);
    color: var(--acsi-foreground);
}

.acsi-footer__grid {
    display: grid;
    grid-template-columns: minmax(260px, 2fr) repeat(4, minmax(140px, 1fr));
    gap: clamp(2rem, 4vw, 4rem);
    padding-block: clamp(3.5rem, 7vw, 6rem);
}

.acsi-footer__about p {
    max-width: 430px;
    margin: 1rem 0;
    color: var(--acsi-muted);
    font-size: 0.86rem;
}

.acsi-socials {
    display: flex;
    gap: 0.6rem;
}

.acsi-socials a {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 999px;
    background: var(--acsi-border);
    color: var(--acsi-foreground);
    transition: transform 180ms ease, background-color 180ms ease, color 180ms ease;
}

.acsi-socials a:hover {
    transform: translateY(-2px);
    background: var(--acsi-primary);
    color: #ffffff;
}

.acsi-footer__column h2 {
    margin: 0 0 0.85rem;
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.acsi-footer__column ul {
    display: grid;
    gap: 0.55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.acsi-footer__column a {
    color: var(--acsi-muted);
    font-size: 0.82rem;
}

.acsi-footer__column a:hover {
    color: var(--acsi-primary);
}

.acsi-footer__bottom {
    border-top: 1px solid var(--acsi-border);
}

.acsi-footer__bottom-inner {
    display: flex;
    min-height: 62px;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    color: var(--acsi-muted);
    font-size: 0.72rem;
}

.acsi-footer__bottom p {
    margin: 0;
}

.acsi-footer__bottom nav {
    display: flex;
    gap: 1rem;
}

.acsi-footer__bottom a:hover {
    color: var(--acsi-primary);
}

@media (max-width: 1320px) {
    .acsi-header__main {
        gap: 1rem;
    }

    .acsi-nav__list {
        gap: 1rem;
    }

    .acsi-nav__list > li > a {
        font-size: 0.7rem;
    }

    .acsi-header__login {
        display: none;
    }

    .acsi-focus {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .acsi-footer__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .acsi-footer__about {
        grid-column: 1 / -1;
    }
}

@media (max-width: 1180px) {
    .acsi-nav__list {
        gap: 0.8rem;
    }

    .acsi-nav__list > li > a {
        font-size: 0.68rem;
    }
}

@media (max-width: 960px) {
    :root {
        --acsi-header-height: 68px;
    }

    .acsi-header {
        background: var(--acsi-background);
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }

    .acsi-header__utility {
        display: none;
    }

    .acsi-menu-toggle {
        display: inline-flex;
    }

    .acsi-header__login {
        display: inline-flex;
    }

    .acsi-nav {
        position: fixed;
        z-index: 40;
        top: var(--acsi-header-height);
        right: 0;
        bottom: 0;
        visibility: hidden;
        width: min(380px, 92vw);
        padding: 1.25rem;
        border-left: 1px solid var(--acsi-border);
        background: color-mix(in srgb, var(--acsi-background) 98%, transparent);
        box-shadow: -24px 30px 50px -30px rgba(15, 23, 42, 0.7);
        opacity: 0;
        overflow-y: auto;
        transform: translateX(100%);
        transition: visibility 220ms ease, opacity 220ms ease, transform 220ms ease;
        backdrop-filter: blur(18px);
    }

    .acsi-nav.is-open {
        visibility: visible;
        opacity: 1;
        transform: translateX(0);
    }

    body.acsi-menu-open {
        overflow: hidden;
    }

    .acsi-nav__list {
        display: block;
    }

    .acsi-nav__list > li {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 42px;
        align-items: center;
        border-bottom: 1px solid var(--acsi-border);
    }

    .acsi-nav__list > li > a {
        min-height: 54px;
        font-size: 0.88rem;
    }

    .acsi-nav__list > li > a::after {
        display: none;
    }

    .acsi-submenu-toggle {
        display: grid;
        width: 38px;
        height: 38px;
        place-items: center;
        padding: 0;
        border: 0;
        border-radius: 999px;
        background: var(--acsi-card-muted);
        color: var(--acsi-foreground);
    }

    .acsi-submenu-toggle svg {
        width: 18px;
        height: 18px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2;
        transition: transform 180ms ease;
    }

    .menu-item.is-open > .acsi-submenu-toggle svg {
        transform: rotate(180deg);
    }

    .acsi-nav .sub-menu,
    .acsi-nav .sub-menu .sub-menu,
    .acsi-nav__list > .mega-menu > .sub-menu {
        position: static;
        display: none;
        visibility: visible;
        width: auto;
        grid-column: 1 / -1;
        margin: 0 0 0.75rem;
        padding: 0.35rem 0 0.5rem 0.75rem;
        border: 0;
        border-left: 2px solid var(--acsi-border);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        opacity: 1;
        transform: none;
    }

    .acsi-nav .menu-item.is-open > .sub-menu {
        display: block;
        pointer-events: auto;
    }

    .acsi-nav .sub-menu li {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 40px;
    }

    .acsi-nav .sub-menu a {
        padding: 0.55rem 0.65rem;
    }

    .acsi-home-layout {
        grid-template-columns: 1fr;
    }

    .acsi-home-sidebar {
        display: flex;
    }

    .acsi-featured-grid {
        min-height: 520px;
    }

    .acsi-featured-card--large {
        min-height: 520px;
    }

    .acsi-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .acsi-articles__toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .acsi-article-search {
        flex-basis: auto;
        width: min(100%, 420px);
    }

    .acsi-article-sector-filter {
        flex-basis: auto;
        width: min(100%, 420px);
    }

    .acsi-articles__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .acsi-partners__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .acsi-container {
        width: min(92%, var(--acsi-container));
    }

    .acsi-header__login {
        display: none;
    }

    .acsi-brand img {
        max-width: 135px;
        max-height: 38px;
    }

    .acsi-hero {
        height: 76vh;
        min-height: 520px;
        max-height: 720px;
    }

    .acsi-hero__content {
        padding-bottom: 5.5rem;
    }

    .acsi-hero :is(h1, h2) {
        font-size: clamp(2rem, 10vw, 3.3rem);
    }

    .acsi-hero__excerpt {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .acsi-hero__controls {
        display: flex;
        bottom: 1.25rem;
        justify-content: center;
        gap: 0.45rem;
    }

    .acsi-hero__tab {
        width: 28px;
        min-width: 28px;
        height: 8px;
        padding: 0;
        border: 0;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.35);
    }

    .acsi-hero__tab.is-active {
        width: 52px;
        background: #ffffff;
        transform: none;
    }

    .acsi-hero__tab span,
    .acsi-hero__tab strong {
        display: none;
    }

    .acsi-featured-grid {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        min-height: 0;
    }

    .acsi-featured-card,
    .acsi-featured-card--large {
        grid-row: auto;
        min-height: 230px;
    }

    .acsi-featured-card--large {
        min-height: 420px;
    }

    .acsi-story {
        grid-template-columns: 1fr;
        gap: 1.15rem;
    }

    .acsi-story__image {
        min-height: 230px;
    }

    .acsi-home-sidebar {
        display: flex;
    }

    .acsi-focus,
    .acsi-card-grid {
        grid-template-columns: 1fr;
    }

    .acsi-articles__grid {
        grid-template-columns: 1fr;
    }

    .acsi-article-card__media {
        min-height: 205px;
    }

    .acsi-focus-card {
        min-height: 230px;
    }

    .acsi-partners__grid a {
        min-height: 110px;
    }

    .acsi-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .acsi-footer__about {
        grid-column: 1 / -1;
    }

    .acsi-footer__bottom-inner {
        flex-direction: column;
        justify-content: center;
        padding-block: 1rem;
        text-align: center;
    }

    .acsi-single__footer .nav-links {
        grid-template-columns: 1fr;
    }

    .acsi-single__footer .nav-next {
        text-align: left;
    }

    .acsi-search-form {
        flex-direction: column;
    }
}

@media (max-width: 440px) {
    .acsi-footer__grid,
    .acsi-partners__grid {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .acsi-theme *,
    .acsi-theme *::before,
    .acsi-theme *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Insurance hub --------------------------------------------------------- */
.acsi-insurance {
    padding-block: clamp(2rem, 4vw, 4.5rem);
}

.acsi-insurance__shell {
    display: grid;
    grid-template-columns: 17rem minmax(0, 1fr);
    gap: clamp(2rem, 4vw, 4rem);
    width: min(92%, 1180px);
    margin-inline: auto;
}

.acsi-insurance__sidebar {
    min-width: 0;
}

.acsi-insurance__sidebar .acsi-insurance-nav {
    position: sticky;
    top: calc(var(--acsi-header-height) + 2rem);
}

.acsi-insurance__mobile-nav {
    display: none;
}

.acsi-insurance-nav {
    padding-right: 1.25rem;
    border-right: 1px solid var(--acsi-border);
}

.acsi-insurance-nav h2 {
    margin: 0 0 2rem;
    font-size: 1.3rem;
    line-height: 1.2;
}

.acsi-insurance-nav__group + .acsi-insurance-nav__group {
    margin-top: 2rem;
}

.acsi-insurance-nav__group h3 {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin: 0 0 0.8rem;
    font-size: 0.95rem;
    font-weight: 780;
}

.acsi-insurance-nav__icon {
    display: inline-flex;
    width: 1.25rem;
    height: 1.25rem;
    flex: 0 0 auto;
    color: var(--acsi-primary);
}

.acsi-insurance-nav__icon svg {
    width: 1.2rem;
    height: 1.2rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-insurance-nav__group--claims .acsi-insurance-nav__icon {
    color: #f97316;
}

.acsi-insurance-nav__group--associations .acsi-insurance-nav__icon {
    color: #8b5cf6;
}

.acsi-insurance-nav__group h3 a,
.acsi-insurance-nav__group h3 > span:not(.acsi-insurance-nav__icon) {
    color: var(--acsi-foreground);
}

.acsi-insurance-nav__group h3 a:hover,
.acsi-insurance-nav__group h3 a[aria-current="page"] {
    color: var(--acsi-primary);
}

.acsi-insurance-nav__group ul {
    display: grid;
    gap: 0.3rem;
    padding: 0 0 0 0.4rem;
    margin: 0;
    list-style: none;
}

.acsi-insurance-nav__group li a {
    display: block;
    padding: 0.5rem 0.7rem;
    border-radius: 0.55rem;
    color: var(--acsi-muted);
    font-size: 0.9rem;
    transition: background-color 160ms ease, color 160ms ease;
}

.acsi-insurance-nav__group li a:hover,
.acsi-insurance-nav__group li a.is-active {
    background: color-mix(in srgb, var(--acsi-primary) 12%, transparent);
    color: var(--acsi-primary);
}

.acsi-insurance-nav__group li a.is-active {
    background: var(--acsi-primary);
    color: #ffffff;
    font-weight: 750;
}

.acsi-insurance__content {
    min-width: 0;
}

.acsi-insurance-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(240px, 0.9fr);
    align-items: center;
    gap: 2.5rem;
    min-height: 0;
    padding: 2.5rem 1.5rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, #ffffff 22%, transparent);
    border-radius: 1.75rem;
    background: linear-gradient(115deg, #0c4a6e, #075985 58%, #0284c7);
    box-shadow: var(--acsi-shadow);
    color: #ffffff;
}

.acsi-insurance-hero::before,
.acsi-insurance-hero::after {
    position: absolute;
    width: 18rem;
    height: 18rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.09);
    filter: blur(30px);
    content: "";
}

.acsi-insurance-hero::before {
    top: -10rem;
    left: -7rem;
}

.acsi-insurance-hero::after {
    right: -8rem;
    bottom: -11rem;
}

.acsi-insurance-hero__copy,
.acsi-insurance-hero__media {
    position: relative;
    z-index: 1;
}

.acsi-insurance-hero__eyebrow {
    margin: 0 0 0.8rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.28em;
    text-transform: uppercase;
}

.acsi-insurance-hero h1,
.acsi-insurance-procedure-hero h1 {
    max-width: 16ch;
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.2rem, 5vw, 4rem);
    letter-spacing: -0.04em;
    line-height: 0.98;
}

.acsi-insurance-hero__copy > p:last-child {
    max-width: 62ch;
    margin: 1.25rem 0 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: 1.02rem;
}

.acsi-insurance-hero__media {
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 1.25rem;
    background: rgba(255, 255, 255, 0.1);
    box-shadow: 0 26px 60px -38px #020617;
}

.acsi-insurance-hero__media img {
    width: 100%;
    aspect-ratio: 7 / 5;
    object-fit: cover;
}

.acsi-insurance-section {
    margin-top: clamp(2.5rem, 5vw, 4.5rem);
}

.acsi-insurance .acsi-section-heading {
    margin-bottom: 1.5rem;
}

.acsi-insurance-description,
.acsi-insurance-guidance {
    max-width: 68ch;
    color: var(--acsi-muted);
    font-size: 1.05rem;
    line-height: 1.7;
}

.acsi-insurance-description {
    margin: 1rem 0 0;
}

.acsi-insurance-guidance {
    margin: 2rem 0 0;
}

.acsi-insurance .acsi-section-heading h2,
.acsi-insurance-empty h1 {
    margin: 0;
    font-size: clamp(1.8rem, 3vw, 2.7rem);
    letter-spacing: -0.03em;
    line-height: 1.08;
}

.acsi-insurance-categories,
.acsi-insurance-files {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.acsi-insurance-category {
    display: grid;
    grid-template-columns: 9rem minmax(0, 1fr);
    align-items: stretch;
    min-height: 150px;
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card);
    box-shadow: 0 12px 30px -28px rgba(15, 23, 42, 0.7);
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.acsi-insurance-category:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--acsi-primary) 42%, var(--acsi-border));
    box-shadow: var(--acsi-shadow);
}

.acsi-insurance-category img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.acsi-insurance-category span,
.acsi-insurance-file span {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.acsi-insurance-category span {
    justify-content: center;
    padding: 1rem;
}

.acsi-insurance-category strong,
.acsi-insurance-file strong {
    font-size: 1.02rem;
}

.acsi-insurance-category small,
.acsi-insurance-file small {
    color: var(--acsi-muted);
    font-size: 0.82rem;
    line-height: 1.45;
}

.acsi-insurance-file {
    display: flex;
    min-height: 142px;
    height: 100%;
    padding: 0;
    border: 1px solid var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card);
    box-shadow: 0 4px 14px -12px rgba(15, 23, 42, 0.7);
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.acsi-insurance-file:hover {
    transform: translateY(-2px);
    border-color: var(--acsi-primary);
    box-shadow: var(--acsi-shadow);
}

/*
 * Keep the React card's p-5 spacing. The shared Gutenberg button reset above
 * has four class-level selectors, so the insurance scope is intentional: it
 * lets this later component rule restore its padding in the cascade.
 */
.acsi-insurance .wp-block-button.acsi-insurance-file > .wp-block-button__link {
    display: flex;
    height: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    padding: 1.25rem;
    color: var(--acsi-foreground);
    text-align: left;
}

.acsi-insurance-section-heading + .acsi-insurance-files .wp-block-button.acsi-insurance-file > .wp-block-button__link {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
}

.acsi-insurance-file br {
    display: none;
}

.acsi-insurance-file span {
    width: 100%;
}

.acsi-insurance-file strong {
    color: var(--acsi-foreground);
    font-size: 1.08rem;
    line-height: 1.3;
}

.acsi-insurance-file small {
    font-size: 0.9rem;
    line-height: 1.5;
}

.acsi-insurance-file > .wp-block-button__link::after {
    width: 1.4rem;
    height: 1.4rem;
    margin-left: auto;
    flex: 0 0 auto;
    align-self: center;
    background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230284c7' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 16v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2'/%3E%3Cpath d='m8 12 4 4 4-4M12 16V4'/%3E%3C/svg%3E");
    opacity: 0.78;
    content: "";
    transition: opacity 160ms ease, transform 160ms ease;
}

.acsi-insurance-section-heading + .acsi-insurance-files .acsi-insurance-file > .wp-block-button__link::after {
    margin-top: auto;
    margin-left: 0;
    align-self: flex-end;
}

.acsi-insurance-file:hover > .wp-block-button__link::after {
    opacity: 1;
    transform: translateY(2px);
}

.acsi-insurance-file > svg {
    width: 1.45rem;
    height: 1.45rem;
    flex: 0 0 auto;
    fill: none;
    stroke: var(--acsi-primary);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-insurance-procedure-hero {
    position: relative;
    min-height: 470px;
    overflow: hidden;
    border-radius: 1.75rem;
    background: #020617;
    box-shadow: var(--acsi-shadow);
}

.acsi-insurance-procedure-hero > .wp-block-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
}

.acsi-insurance-procedure-hero > .wp-block-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.acsi-insurance-procedure-hero::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(20deg, rgba(2, 6, 23, 0.92), rgba(3, 105, 161, 0.67) 58%, rgba(2, 6, 23, 0.08));
    content: "";
    pointer-events: none;
}

.acsi-insurance-procedure-hero__copy {
    position: absolute;
    z-index: 1;
    bottom: clamp(1.5rem, 4vw, 3rem);
    left: clamp(1.5rem, 4vw, 3rem);
    max-width: 680px;
    color: #ffffff;
}

.acsi-insurance-procedure-hero h2 {
    margin: 1rem 0 0;
    color: #ffffff;
    font-size: clamp(1.2rem, 2vw, 1.65rem);
}

.acsi-insurance-procedure-hero__copy > p:not(.acsi-insurance-hero__eyebrow) {
    margin: 0.75rem 0 1.35rem;
    color: rgba(255, 255, 255, 0.86);
}

.acsi-insurance-support-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.5rem;
}

.acsi-insurance-support-card {
    padding: clamp(1.4rem, 3vw, 2rem);
    border: 1px solid var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card);
    box-shadow: var(--acsi-shadow);
}

.acsi-insurance-support-card h2 {
    margin: 0 0 1.1rem;
    color: var(--acsi-primary);
    font-size: 1.3rem;
}

.acsi-insurance-support-card h3 {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.acsi-insurance-support-card p {
    margin: 0.5rem 0;
    color: var(--acsi-muted);
}

.acsi-insurance-support-card a {
    color: var(--acsi-primary);
    font-weight: 700;
}

.acsi-insurance-support-card--danger {
    border-color: color-mix(in srgb, var(--acsi-danger) 28%, var(--acsi-border));
}

.acsi-insurance-support-card--danger h2 {
    color: var(--acsi-danger);
}

.acsi-insurance-support-card--danger > p {
    display: grid;
    gap: 1rem;
    margin: 0;
}

.acsi-insurance-support-card--danger > p > a {
    display: flex;
    width: 100%;
    min-height: 3.75rem;
    align-items: center;
    justify-content: center;
    padding: 0.9rem 1.25rem;
    border-radius: 0.7rem;
    background: var(--acsi-danger);
    color: #ffffff;
    font-size: 1rem;
    font-weight: 750;
    line-height: 1.25;
    text-align: center;
    transition: background-color 160ms ease, transform 160ms ease;
}

.acsi-insurance-support-card--danger > p > a:hover {
    background: color-mix(in srgb, var(--acsi-danger) 82%, #000000);
    color: #ffffff;
    transform: translateY(-1px);
}

.acsi-insurance-empty {
    padding: clamp(2rem, 5vw, 4rem);
    border: 1px solid var(--acsi-border);
    border-radius: 1.5rem;
    background: var(--acsi-card);
}

.acsi-insurance-empty p:not(.acsi-eyebrow) {
    color: var(--acsi-muted);
}

@media (max-width: 960px) {
    .acsi-insurance__shell {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.5rem;
    }

    .acsi-insurance__sidebar {
        display: none;
    }

    .acsi-insurance__mobile-nav {
        display: block;
        overflow: hidden;
        border: 1px solid var(--acsi-border);
        border-radius: 0.9rem;
        background: var(--acsi-card);
    }

    .acsi-insurance__mobile-nav > summary {
        padding: 0.9rem 1rem;
        color: var(--acsi-foreground);
        font-weight: 760;
        cursor: pointer;
    }

    .acsi-insurance__mobile-nav .acsi-insurance-nav {
        padding: 1rem;
        border-top: 1px solid var(--acsi-border);
        border-right: 0;
    }
}

@media (max-width: 720px) {
    .acsi-insurance-hero {
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
    }

    .acsi-insurance-hero h1,
    .acsi-insurance-procedure-hero h1 {
        font-size: clamp(2rem, 10vw, 3rem);
    }

    .acsi-insurance-hero__media img {
        aspect-ratio: 16 / 9;
    }

    .acsi-insurance-categories,
    .acsi-insurance-files,
    .acsi-insurance-support-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-insurance-procedure-hero {
        min-height: 560px;
    }
}

@media (max-width: 520px) {
    .acsi-insurance-category {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-insurance-category img {
        height: 180px;
    }
}

/* Native training section */
.acsi-training {
    background:
        radial-gradient(circle at 7% 12%, color-mix(in srgb, var(--acsi-primary) 7%, transparent), transparent 30rem),
        var(--acsi-background);
}

.acsi-training__shell {
    display: flex;
    flex-direction: column;
    gap: clamp(1.5rem, 3vw, 2.5rem);
    padding-block: clamp(1.5rem, 4vw, 3rem) clamp(4rem, 8vw, 7rem);
}

.acsi-training-hero {
    position: relative;
    display: flex;
    min-height: 330px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    overflow: hidden;
    padding: clamp(2rem, 5vw, 4.5rem);
    border-radius: clamp(1.4rem, 3vw, 2.25rem);
    background:
        linear-gradient(120deg, rgba(2, 6, 23, 0.98), rgba(3, 105, 161, 0.94) 62%, rgba(14, 165, 233, 0.78)),
        #082f49;
    color: #ffffff;
    box-shadow: var(--acsi-shadow);
}

.acsi-training-hero::before,
.acsi-training-hero::after {
    position: absolute;
    border-radius: 999px;
    content: "";
    pointer-events: none;
}

.acsi-training-hero::before {
    top: -7rem;
    right: -4rem;
    width: 25rem;
    height: 25rem;
    border: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: inset 0 0 0 4rem rgba(255, 255, 255, 0.025);
}

.acsi-training-hero::after {
    right: 20%;
    bottom: -9rem;
    width: 28rem;
    height: 18rem;
    background: rgba(34, 211, 238, 0.18);
    filter: blur(65px);
}

.acsi-training-hero__copy,
.acsi-training-hero > .acsi-button {
    position: relative;
    z-index: 1;
}

.acsi-training-hero__copy {
    max-width: 960px;
}

.acsi-training-hero__eyebrow {
    margin: 0 0 0.7rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.25em;
    text-transform: uppercase;
}

.acsi-training-hero h1 {
    max-width: 900px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.15rem, 5vw, 4.5rem);
    font-weight: 850;
    letter-spacing: -0.045em;
    line-height: 1.02;
    text-wrap: balance;
}

.acsi-training-hero__copy > p:last-child {
    max-width: 830px;
    margin: 1.15rem 0 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: clamp(0.98rem, 1.4vw, 1.13rem);
    line-height: 1.65;
}

.acsi-training-hero > .acsi-button {
    flex: 0 0 auto;
}

/* The Attestati route carries its SNaQ action below the heading, as in the
 * React PageHeader, instead of placing it on the far side of the banner. */
.acsi-training-hero:has(a[href="/formazione/snaq/"]) {
    align-items: flex-start;
    flex-direction: column;
    justify-content: flex-end;
    gap: 1.25rem;
}

.acsi-training-hero a[href="/formazione/snaq/"]::after {
    content: "→";
    font-size: 1rem;
}

.acsi-training-icon {
    display: inline-grid;
    flex: 0 0 auto;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border-radius: 0.9rem;
    background: color-mix(in srgb, var(--acsi-primary) 10%, var(--acsi-card));
    color: var(--acsi-primary);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--acsi-primary) 8%, transparent);
}

/* WordPress strips inline SVG from these migrated paragraph blocks when the
 * page is saved. Supply the same decorative icons from the component so they
 * remain stable in both the frontend and Gutenberg editor. */
.acsi-training-feature .acsi-training-icon:empty::before {
    width: 1.25rem;
    height: 1.25rem;
    background: currentColor;
    content: "";
}

.acsi-training-feature--blue .acsi-training-icon:empty::before {
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526'/%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526'/%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acsi-training-feature--green .acsi-training-icon:empty::before {
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acsi-training-icon svg,
.acsi-training-link-card em svg,
.acsi-training-course .acsi-text-link svg,
.acsi-training-event footer svg,
.acsi-training-hero .acsi-button svg,
.acsi-training-single-card .acsi-button svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-training-card-grid,
.acsi-training-feature-grid,
.acsi-training-tool-grid,
.acsi-training-intro-grid,
.acsi-training-course-grid,
.acsi-training-step-grid {
    display: grid;
    gap: 1rem;
}

.acsi-training-card-grid,
.acsi-training-feature-grid,
.acsi-training-tool-grid,
.acsi-training-intro-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.acsi-training-link-card {
    display: flex;
    height: 100%;
    min-height: 155px;
    align-items: flex-start;
    gap: 1rem;
    padding: 0;
    border: 1px solid var(--acsi-border);
    border-radius: 1.1rem;
    background: var(--acsi-card);
    box-shadow: 0 14px 36px -34px rgba(15, 23, 42, 0.75);
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

/* Core Buttons keeps the custom class on its wrapper and otherwise forces it
 * back to inline-block. Keep the whole card clickable and preserve the two
 * sibling columns (icon + copy) produced by Gutenberg. */
.wp-block-buttons > .wp-block-button.acsi-training-link-card {
    display: flex;
}

.acsi-training-card-grid .wp-block-button.acsi-training-link-card > .wp-block-button__link {
    min-height: 155px;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 1rem;
    padding: 1.35rem;
}

.acsi-training-link-card:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--acsi-primary) 45%, var(--acsi-border));
    box-shadow: var(--acsi-shadow);
}

.acsi-training-link-card > span:last-child,
.wp-block-button.acsi-training-link-card > .wp-block-button__link > span:last-child {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
}

.acsi-training-link-card strong {
    font-size: 1.08rem;
    line-height: 1.25;
}

.acsi-training-link-card small {
    margin-top: 0.4rem;
    color: var(--acsi-muted);
    font-size: 0.84rem;
    line-height: 1.55;
}

.acsi-training-link-card em {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.65rem;
    color: var(--acsi-primary);
    font-size: 0.76rem;
    font-style: normal;
    font-weight: 750;
}

.acsi-training-link-card em svg {
    width: 0.95rem;
    height: 0.95rem;
}

.acsi-training-feature,
.acsi-training-tool,
.acsi-training-panel,
.acsi-training-single-card,
.acsi-training-step-grid article,
.acsi-training-calendar {
    border: 1px solid var(--acsi-border);
    border-radius: 1.5rem;
    background: var(--acsi-card);
    box-shadow: 0 16px 46px -40px rgba(15, 23, 42, 0.82);
}

.acsi-training-feature,
.acsi-training-tool,
.acsi-training-panel,
.acsi-training-step-grid article {
    padding: clamp(1.4rem, 3vw, 2rem);
}

.acsi-training-feature {
    position: relative;
    overflow: hidden;
}

/* Gutenberg stores the feature icon in a standalone paragraph. Recompose
 * icon and title into the horizontal heading used by the React cards. */
.acsi-training-feature:has(> p:first-child .acsi-training-icon) {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    align-content: start;
    column-gap: 1rem;
}

.acsi-training-feature:has(> p:first-child .acsi-training-icon) > p:first-child {
    grid-row: 1;
    grid-column: 1;
    align-self: start;
    margin: 0;
    line-height: 0;
}

.acsi-training-feature:has(> p:first-child .acsi-training-icon) > h2 {
    grid-row: 1;
    grid-column: 2;
    align-self: center;
}

.acsi-training-feature:has(> p:first-child .acsi-training-icon) > :not(p:first-child, h2) {
    grid-column: 1 / -1;
}

.acsi-training-feature::before {
    position: absolute;
    inset: 0;
    background: linear-gradient(145deg, color-mix(in srgb, var(--acsi-primary) 13%, transparent), transparent 68%);
    content: "";
    pointer-events: none;
}

.acsi-training-feature--green::before {
    background: linear-gradient(145deg, rgba(16, 185, 129, 0.17), transparent 68%);
}

.acsi-training-feature > *,
.acsi-training-panel > * {
    position: relative;
}

.acsi-training-feature h2,
.acsi-training-tool h2,
.acsi-training-panel h2,
.acsi-training-single-card h2,
.acsi-training-step-grid h2,
.acsi-training-cta h2,
.acsi-training-calendar h2 {
    margin: 0.7rem 0 0;
    color: var(--acsi-foreground);
    font-size: clamp(1.35rem, 2.5vw, 1.8rem);
    letter-spacing: -0.025em;
    line-height: 1.18;
}

.acsi-training-feature p,
.acsi-training-tool p:not(.acsi-eyebrow),
.acsi-training-panel p:not(.acsi-eyebrow),
.acsi-training-single-card p:not(.acsi-eyebrow),
.acsi-training-step-grid p,
.acsi-training-cta p:not(.acsi-eyebrow) {
    margin: 0.75rem 0 0;
    color: var(--acsi-muted);
}

.acsi-training-feature small {
    display: block;
    margin-top: 0.85rem;
    color: var(--acsi-muted);
    font-size: 0.77rem;
}

.acsi-training-tool ul,
.acsi-training-panel ul {
    margin: 1rem 0 1.25rem;
    padding: 0.9rem 1rem 0.9rem 2.2rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.9rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-foreground);
    font-size: 0.87rem;
}

.acsi-training-tool li + li,
.acsi-training-panel li + li {
    margin-top: 0.3rem;
}

.acsi-training-tool .acsi-button,
.acsi-training-panel .acsi-button {
    margin-top: 1rem;
}

/* Match the React tool cards: icon and heading share a row, while the
 * requirements live in their own labelled inset panel. */
.acsi-training-tool {
    position: relative;
    overflow: hidden;
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.acsi-training-tool::before {
    position: absolute;
    inset: 0;
    background: linear-gradient(145deg, color-mix(in srgb, var(--acsi-card-muted) 72%, transparent), transparent 72%);
    content: "";
    pointer-events: none;
}

.acsi-training-tool > * {
    position: relative;
}

.acsi-training-tool:hover {
    transform: translateY(-3px);
    box-shadow: var(--acsi-shadow);
}

.acsi-training-tool .acsi-card-heading {
    align-items: center;
    margin-bottom: 0;
}

.acsi-training-tool .acsi-card-heading > p {
    line-height: 0;
}

.acsi-training-tool .acsi-card-heading .acsi-training-icon {
    background: color-mix(in srgb, var(--acsi-primary) 14%, var(--acsi-card));
}

.acsi-training-requirements {
    margin-top: 0.8rem;
    padding: 0.8rem 1rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card-muted);
}

.acsi-training-tool .acsi-training-requirements__label {
    margin: 0;
    color: var(--acsi-muted);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.3;
    text-transform: uppercase;
}

.acsi-training-tool .acsi-training-requirements ul {
    margin: 0.55rem 0 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    list-style: none;
}

.acsi-training-tool .acsi-training-requirements li {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
}

.acsi-training-tool .acsi-training-requirements li::before {
    width: 0.45rem;
    height: 0.45rem;
    flex: 0 0 0.45rem;
    margin-top: 0.45rem;
    border-radius: 999px;
    background: var(--acsi-primary);
    content: "";
}

.acsi-training-panel--dark,
.acsi-training-cta--dark {
    border-color: rgba(148, 163, 184, 0.22);
    background: linear-gradient(145deg, #0f172a, #020617);
    color: #ffffff;
}

.acsi-training-panel--dark h2,
.acsi-training-cta--dark h2 {
    color: #ffffff;
}

.acsi-training-panel--dark p:not(.acsi-eyebrow),
.acsi-training-cta--dark p:not(.acsi-eyebrow) {
    color: rgba(255, 255, 255, 0.8);
}

.acsi-training-panel--dark .acsi-eyebrow,
.acsi-training-cta--dark .acsi-eyebrow {
    color: #7dd3fc;
}

.acsi-training-section-heading {
    margin-bottom: 1rem;
}

.acsi-training-section-heading h2 {
    margin: 0.45rem 0 0;
    font-size: clamp(1.75rem, 3vw, 2.4rem);
    letter-spacing: -0.035em;
}

.acsi-training-course-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.acsi-training-course {
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: 1.25rem;
    background: var(--acsi-card);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.acsi-training-course:hover {
    transform: translateY(-3px);
    box-shadow: var(--acsi-shadow);
}

.acsi-training-course > img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
}

.acsi-training-course > div {
    padding: 1.15rem;
}

.acsi-training-course h3 {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.3;
}

.acsi-training-course p {
    margin: 0.6rem 0 0.85rem;
    color: var(--acsi-muted);
    font-size: 0.83rem;
}

.acsi-training-step-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.acsi-training-step-grid article > span {
    display: block;
    color: color-mix(in srgb, var(--acsi-primary) 32%, transparent);
    font-size: 3rem;
    font-weight: 900;
    letter-spacing: -0.08em;
    line-height: 1;
}

.acsi-training-single-card {
    display: flex;
    max-width: 950px;
    align-items: flex-start;
    gap: 1.25rem;
    padding: clamp(1.5rem, 4vw, 3rem);
}

.acsi-training-single-card .acsi-button {
    margin-top: 1.25rem;
}

.acsi-training-manuals {
    padding: clamp(1.5rem, 4vw, 3rem);
    border: 1px solid var(--acsi-border);
    border-radius: 1.5rem;
    background: var(--acsi-card);
    box-shadow: 0 16px 46px -40px rgba(15, 23, 42, 0.82);
}

.acsi-training-manuals__heading {
    max-width: 850px;
}

.acsi-training-manuals__heading h2 {
    margin: 0.55rem 0 0;
    color: var(--acsi-foreground);
    font-size: clamp(1.75rem, 3vw, 2.4rem);
    letter-spacing: -0.035em;
    line-height: 1.12;
}

.acsi-training-manuals__heading > p:last-child {
    margin: 0.85rem 0 0;
    color: var(--acsi-muted);
    line-height: 1.7;
}

.acsi-training-manuals__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

.acsi-training-manual {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: 1.15rem;
    background: var(--acsi-card-muted);
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.acsi-training-manual:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--acsi-primary) 40%, var(--acsi-border));
    box-shadow: var(--acsi-shadow);
}

.acsi-training-manual__cover {
    display: grid;
    min-height: 340px;
    margin: 0;
    padding: 1.25rem;
    place-items: center;
    border-bottom: 1px solid var(--acsi-border);
    background:
        radial-gradient(circle at 50% 22%, color-mix(in srgb, var(--acsi-primary-bright) 18%, transparent), transparent 62%),
        color-mix(in srgb, var(--acsi-primary) 7%, var(--acsi-card));
}

.acsi-training-manual__cover img {
    display: block;
    width: auto;
    max-width: 100%;
    height: 300px;
    object-fit: contain;
    box-shadow: 0 24px 45px -22px rgba(2, 6, 23, 0.72);
}

.acsi-training-manual__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 1.25rem;
}

.acsi-training-manual__meta {
    margin: 0;
    color: var(--acsi-primary);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.45;
    text-transform: uppercase;
}

.acsi-training-manual h3 {
    margin: 0.55rem 0 0;
    color: var(--acsi-foreground);
    font-size: 1.08rem;
    letter-spacing: -0.018em;
    line-height: 1.28;
}

.acsi-training-manual__author {
    margin: 0.55rem 0 0;
    color: var(--acsi-foreground);
    font-size: 0.78rem;
    font-weight: 750;
}

.acsi-training-manual__description {
    margin: 0.65rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.82rem;
    line-height: 1.6;
}

.acsi-training-manual__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: auto;
    padding-top: 1.15rem;
}

.acsi-training-manual__button {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.55rem 0.85rem;
    border: 1px solid var(--acsi-primary);
    border-radius: 999px;
    background: var(--acsi-primary);
    color: #ffffff;
    font-size: 0.67rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
}

.acsi-training-manual__button:hover {
    filter: brightness(1.08);
}

.acsi-training-manual__button--secondary {
    background: transparent;
    color: var(--acsi-primary);
}

.acsi-training-manual__availability {
    margin: auto 0 0;
    padding-top: 1.15rem;
    color: var(--acsi-muted);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.45;
}

.acsi-training-manuals__notice {
    margin: 1.25rem 0 0;
    padding: 1rem 1.1rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.9rem;
    background: color-mix(in srgb, var(--acsi-primary) 5%, var(--acsi-card-muted));
    color: var(--acsi-muted);
    font-size: 0.78rem;
    line-height: 1.6;
}

.acsi-training-manuals__notice strong {
    color: var(--acsi-foreground);
}

.acsi-training-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border: 1px solid color-mix(in srgb, var(--acsi-primary) 25%, var(--acsi-border));
    border-radius: 1.5rem;
    background: linear-gradient(125deg, color-mix(in srgb, var(--acsi-primary) 10%, var(--acsi-card)), var(--acsi-card));
}

.acsi-training-cta > div {
    max-width: 800px;
}

.acsi-training-cta .acsi-button {
    flex: 0 0 auto;
}

.acsi-training-calendar {
    padding: clamp(1.2rem, 3vw, 2rem);
}

.acsi-training-calendar__toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1.3rem;
    border-bottom: 1px solid var(--acsi-border);
}

.acsi-training-calendar__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.acsi-training-calendar input,
.acsi-training-calendar select {
    min-height: 44px;
    padding: 0.65rem 0.8rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.7rem;
    background: var(--acsi-background);
    color: var(--acsi-foreground);
    font-size: 0.82rem;
}

.acsi-training-calendar input {
    width: min(280px, 70vw);
}

.acsi-training-event-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.3rem;
}

.acsi-training-event {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card);
}

.acsi-training-event[hidden] {
    display: none;
}

.acsi-training-event header {
    display: flex;
    flex: 1 1 auto;
    align-items: flex-start;
    gap: 0.9rem;
    padding: 1rem;
}

.acsi-training-event time {
    display: flex;
    flex: 0 0 4rem;
    width: 4rem;
    min-height: 4.5rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    background: var(--acsi-primary);
    color: #ffffff;
    line-height: 1;
}

.acsi-training-event time span {
    font-size: 0.63rem;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.acsi-training-event time strong {
    margin: 0.2rem 0;
    font-size: 1.45rem;
}

.acsi-training-event time small {
    font-size: 0.62rem;
    opacity: 0.78;
}

.acsi-training-event h3 {
    margin: 0.5rem 0 0;
    font-size: 1rem;
    line-height: 1.28;
}

.acsi-training-event header p {
    margin: 0.45rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.78rem;
    line-height: 1.5;
}

.acsi-training-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.acsi-training-tags span {
    padding: 0.18rem 0.35rem;
    border: 1px solid var(--acsi-border);
    border-radius: 999px;
    color: var(--acsi-muted);
    font-size: 0.58rem;
    font-weight: 700;
}

.acsi-training-event footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-top: 1px solid var(--acsi-border);
    background: var(--acsi-card-muted);
    color: var(--acsi-muted);
    font-size: 0.7rem;
}

.acsi-training-event footer span {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 0.3rem;
}

.acsi-training-event footer svg {
    width: 1rem;
    height: 1rem;
    flex: 0 0 auto;
}

.acsi-training-event footer strong {
    flex: 0 0 auto;
    color: var(--acsi-foreground);
    font-size: 0.68rem;
}

.acsi-training-calendar__empty {
    margin: 1.3rem 0 0;
    padding: 1.25rem;
    border: 1px dashed var(--acsi-border);
    border-radius: 0.9rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-muted);
    text-align: center;
}

@media (max-width: 1120px) {
    .acsi-training-course-grid,
    .acsi-training-event-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .acsi-training-manuals__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .acsi-training-hero,
    .acsi-training-cta,
    .acsi-training-calendar__toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .acsi-training-card-grid,
    .acsi-training-feature-grid,
    .acsi-training-tool-grid,
    .acsi-training-intro-grid,
    .acsi-training-step-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-training-hero > .acsi-button,
    .acsi-training-cta .acsi-button {
        flex: initial;
    }
}

@media (max-width: 620px) {
    .acsi-training-hero {
        min-height: 390px;
        padding: 1.5rem;
    }

    .acsi-training-card-grid,
    .acsi-training-course-grid,
    .acsi-training-event-grid,
    .acsi-training-manuals__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-training-manuals {
        padding: 1.25rem;
    }

    .acsi-training-link-card,
    .acsi-training-single-card {
        flex-direction: column;
    }

    .acsi-training-calendar__filters,
    .acsi-training-calendar__filters label,
    .acsi-training-calendar input,
    .acsi-training-calendar select {
        width: 100%;
    }

    .acsi-training-event header {
        flex-direction: column;
    }

    .acsi-training-event footer {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* FAQ archive */
.acsi-faq-page {
    overflow: clip;
    background:
        radial-gradient(circle at 8% 8rem, color-mix(in srgb, var(--acsi-primary) 10%, transparent), transparent 24rem),
        var(--acsi-background);
}

.acsi-faq-shell {
    padding-block: clamp(2rem, 5vw, 4.5rem) clamp(4rem, 8vw, 7rem);
}

.acsi-faq-hero {
    position: relative;
    display: grid;
    min-height: clamp(20rem, 42vw, 32rem);
    grid-template-columns: minmax(0, 1fr) minmax(11rem, 0.38fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: center;
    overflow: hidden;
    padding: clamp(2rem, 6vw, 5rem);
    border: 1px solid color-mix(in srgb, #38bdf8 35%, transparent);
    border-radius: clamp(1.75rem, 4vw, 3.25rem);
    color: #f8fafc;
    background:
        radial-gradient(circle at 88% 15%, rgba(56, 189, 248, 0.28), transparent 18rem),
        linear-gradient(135deg, #020617 0%, #0f172a 55%, #082f49 100%);
    box-shadow: 0 35px 80px -52px rgba(2, 132, 199, 0.85);
}

.acsi-faq-hero::after {
    position: absolute;
    right: -8rem;
    bottom: -13rem;
    width: 32rem;
    height: 32rem;
    border: 1px solid rgba(125, 211, 252, 0.18);
    border-radius: 50%;
    content: "";
}

.acsi-faq-hero__copy,
.acsi-faq-hero__mark {
    position: relative;
    z-index: 1;
}

.acsi-faq-hero .acsi-eyebrow {
    margin: 0 0 1rem;
    color: #38bdf8;
}

.acsi-faq-hero h1 {
    max-width: 820px;
    margin: 0;
    color: #fff;
    font-size: clamp(3rem, 7vw, 6.5rem);
    font-weight: 900;
    letter-spacing: -0.065em;
    line-height: 0.92;
    text-wrap: balance;
}

.acsi-faq-hero__copy > p:last-of-type {
    max-width: 720px;
    margin: 1.5rem 0 0;
    color: #bac7d9;
    font-size: clamp(1rem, 1.6vw, 1.2rem);
    line-height: 1.7;
}

.acsi-faq-hero__link {
    display: inline-flex;
    gap: 0.65rem;
    align-items: center;
    margin-top: 2rem;
    color: #7dd3fc;
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.1em;
    text-decoration: none;
    text-transform: uppercase;
}

.acsi-faq-hero__mark {
    display: grid;
    width: clamp(9rem, 18vw, 15rem);
    aspect-ratio: 1;
    place-items: center;
    justify-self: end;
    border: 1px solid rgba(125, 211, 252, 0.45);
    border-radius: 3rem;
    color: #e0f2fe;
    background: linear-gradient(145deg, rgba(56, 189, 248, 0.24), rgba(14, 165, 233, 0.05));
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.18), 0 24px 60px rgba(2, 132, 199, 0.22);
    font-size: clamp(5rem, 12vw, 10rem);
    font-weight: 250;
    line-height: 1;
    transform: rotate(7deg);
}

.acsi-faq-layout {
    display: grid;
    grid-template-columns: minmax(13rem, 0.3fr) minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 5.5rem);
    align-items: start;
    padding-top: clamp(4rem, 8vw, 7rem);
    scroll-margin-top: 7rem;
}

.acsi-faq-topics {
    position: sticky;
    top: 7rem;
    padding: 1.35rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1.5rem;
    background: color-mix(in srgb, var(--acsi-card) 92%, transparent);
    box-shadow: 0 20px 50px -42px rgba(15, 23, 42, 0.65);
}

.acsi-faq-topics > .acsi-eyebrow {
    margin: 0 0 0.8rem;
}

.acsi-faq-topics nav {
    display: grid;
    gap: 0.35rem;
}

.acsi-faq-topics a {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    padding: 0.85rem 0.9rem;
    border-radius: 0.85rem;
    color: var(--acsi-foreground);
    font-size: 0.84rem;
    font-weight: 750;
    text-decoration: none;
}

.acsi-faq-topics a:hover,
.acsi-faq-topics a:focus-visible {
    color: var(--acsi-primary);
    background: color-mix(in srgb, var(--acsi-primary) 8%, transparent);
}

.acsi-faq-topics small {
    display: grid;
    min-width: 1.8rem;
    height: 1.8rem;
    place-items: center;
    border-radius: 999px;
    color: var(--acsi-muted);
    background: var(--acsi-card-muted);
    font-size: 0.7rem;
}

.acsi-faq-sections {
    display: grid;
    gap: clamp(3rem, 6vw, 5rem);
}

.acsi-faq-section {
    scroll-margin-top: 7rem;
}

.acsi-faq-section__heading {
    margin-bottom: 1.25rem;
}

.acsi-faq-section__heading .acsi-eyebrow {
    margin: 0 0 0.55rem;
}

.acsi-faq-section__heading h2 {
    margin: 0;
    font-size: clamp(1.85rem, 3vw, 2.75rem);
    letter-spacing: -0.035em;
    line-height: 1.05;
}

.acsi-faq-list {
    display: grid;
    gap: 0.85rem;
}

.acsi-faq-item {
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: 1.25rem;
    background: var(--acsi-card);
    box-shadow: 0 18px 45px -42px rgba(15, 23, 42, 0.75);
}

.acsi-faq-item[open] {
    border-color: color-mix(in srgb, var(--acsi-primary) 40%, var(--acsi-border));
}

.acsi-faq-item summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 2.3rem;
    gap: 1rem;
    align-items: center;
    min-height: 5.2rem;
    padding: 1.15rem 1.25rem 1.15rem clamp(1.25rem, 3vw, 2rem);
    color: var(--acsi-foreground);
    cursor: pointer;
    font-size: clamp(1rem, 1.4vw, 1.12rem);
    font-weight: 800;
    list-style: none;
}

.acsi-faq-item summary::-webkit-details-marker {
    display: none;
}

.acsi-faq-item summary:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--acsi-primary) 45%, transparent);
    outline-offset: -3px;
}

.acsi-faq-item__toggle {
    position: relative;
    display: grid;
    width: 2.3rem;
    height: 2.3rem;
    place-items: center;
    border-radius: 999px;
    background: color-mix(in srgb, var(--acsi-primary) 10%, transparent);
}

.acsi-faq-item__toggle::before,
.acsi-faq-item__toggle::after {
    position: absolute;
    width: 0.8rem;
    height: 2px;
    border-radius: 999px;
    background: var(--acsi-primary);
    content: "";
    transition: transform 180ms ease;
}

.acsi-faq-item__toggle::after {
    transform: rotate(90deg);
}

.acsi-faq-item[open] .acsi-faq-item__toggle::after {
    transform: rotate(0);
}

.acsi-faq-item__answer {
    padding: 0 clamp(1.25rem, 3vw, 2rem) 1.5rem;
    color: var(--acsi-muted);
    font-size: 0.95rem;
    line-height: 1.75;
}

.acsi-faq-item__answer > :first-child {
    margin-top: 0;
}

.acsi-faq-item__answer > :last-child {
    margin-bottom: 0;
}

.acsi-faq-item__answer a {
    color: var(--acsi-primary);
    font-weight: 750;
}

.acsi-faq-empty,
.acsi-faq-support {
    margin-top: clamp(3rem, 7vw, 6rem);
    padding: clamp(1.75rem, 4vw, 3.5rem);
    border: 1px solid var(--acsi-border);
    border-radius: clamp(1.5rem, 3vw, 2.5rem);
}

.acsi-faq-support {
    display: flex;
    gap: 2rem;
    align-items: end;
    justify-content: space-between;
    color: #f8fafc;
    background: linear-gradient(135deg, #0f172a, #082f49);
}

.acsi-faq-support .acsi-eyebrow {
    margin: 0 0 0.7rem;
    color: #38bdf8;
}

.acsi-faq-support h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(1.8rem, 3.5vw, 3rem);
    letter-spacing: -0.04em;
}

.acsi-faq-support p:last-child {
    max-width: 690px;
    margin: 0.8rem 0 0;
    color: #bac7d9;
}

.acsi-faq-support__actions {
    display: flex;
    flex: 0 0 auto;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.acsi-faq-support .acsi-button--outline {
    border-color: rgba(255, 255, 255, 0.35);
    color: #fff;
}

@media (max-width: 900px) {
    .acsi-faq-hero {
        min-height: auto;
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-faq-hero__mark {
        position: absolute;
        right: 1rem;
        bottom: -3.5rem;
        width: 9rem;
        opacity: 0.28;
    }

    .acsi-faq-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-faq-topics {
        position: static;
    }

    .acsi-faq-topics nav {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .acsi-faq-support {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 620px) {
    .acsi-faq-shell {
        padding-top: 1.25rem;
    }

    .acsi-faq-hero {
        padding: 2rem 1.25rem 2.4rem;
        border-radius: 1.5rem;
    }

    .acsi-faq-hero h1 {
        font-size: clamp(2.7rem, 15vw, 4rem);
    }

    .acsi-faq-topics nav {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-faq-item summary {
        min-height: 4.6rem;
        padding: 1rem;
    }

    .acsi-faq-item__answer {
        padding: 0 1rem 1.2rem;
    }

    .acsi-faq-support__actions,
    .acsi-faq-support__actions .acsi-button {
        width: 100%;
    }
}

/* E-learning: Gutenberg port of the current React page. */
.acsi-training-hero--elearning {
    display: block;
    min-height: 0;
    padding: 3rem 1.5rem;
    border-radius: 1.5rem;
    background: linear-gradient(90deg, #0c4a6e, #075985 52%, #0284c7);
}

.acsi-training-hero--elearning .acsi-training-hero__copy {
    display: flex;
    max-width: none;
    align-items: flex-start;
    flex-direction: column;
    gap: 1rem;
}

.acsi-training-hero--elearning .acsi-training-hero__eyebrow,
.acsi-training-hero--elearning .acsi-training-hero__description {
    margin: 0;
}

.acsi-training-hero--elearning h1 {
    font-size: clamp(1.875rem, 3vw, 2.25rem);
    font-weight: 900;
    letter-spacing: -0.025em;
    line-height: 1.2;
}

.acsi-training-hero--elearning .acsi-training-hero__description {
    max-width: 48rem;
    color: rgba(255, 255, 255, 0.85);
    font-size: 1rem;
    line-height: 1.5;
}

.acsi-elearning-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 0;
}

.acsi-training .wp-block-button.acsi-elearning-button > .wp-block-button__link {
    display: inline-flex;
    min-height: 0;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.25;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.acsi-training .wp-block-button.acsi-elearning-button--hero-primary > .wp-block-button__link {
    background: #ffffff;
    color: #075985;
    box-shadow: 0 10px 24px -14px rgba(2, 6, 23, 0.75);
}

.acsi-training .wp-block-button.acsi-elearning-button--hero-secondary > .wp-block-button__link {
    border-color: rgba(255, 255, 255, 0.7);
    background: transparent;
    color: #ffffff;
}

.acsi-training .wp-block-button.acsi-elearning-button--primary > .wp-block-button__link,
.acsi-training .wp-block-button.acsi-elearning-course-button > .wp-block-button__link {
    padding: 0.5rem 1rem;
    background: #0284c7;
    color: #ffffff;
    box-shadow: 0 8px 18px -12px rgba(2, 132, 199, 0.9);
}

.acsi-training .wp-block-button.acsi-elearning-button--secondary > .wp-block-button__link {
    padding: 0.5rem 1rem;
    border-color: var(--acsi-border);
    background: transparent;
    color: var(--acsi-foreground);
}

.acsi-training .wp-block-button.acsi-elearning-button--hero-primary > .wp-block-button__link::after,
.acsi-training .wp-block-button.acsi-elearning-button--secondary > .wp-block-button__link::after {
    content: "→";
    font-size: 1rem;
}

.acsi-training .wp-block-button.acsi-elearning-button--primary > .wp-block-button__link::after,
.acsi-training .wp-block-button.acsi-elearning-course-button > .wp-block-button__link::after {
    content: "↗";
    font-size: 0.95rem;
}

.acsi-training .wp-block-button.acsi-elearning-button > .wp-block-button__link:hover {
    transform: translateY(-2px);
}

.acsi-training .wp-block-button.acsi-elearning-button--hero-secondary > .wp-block-button__link:hover {
    background: rgba(255, 255, 255, 0.1);
}

.acsi-training .wp-block-button.acsi-elearning-button--primary > .wp-block-button__link:hover,
.acsi-training .wp-block-button.acsi-elearning-course-button > .wp-block-button__link:hover {
    background: #0369a1;
}

.acsi-elearning-info-grid {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 1.5rem;
}

.acsi-training .acsi-elearning-panel {
    padding: 1.5rem;
    border-radius: 1.5rem;
}

.acsi-elearning-panel-heading {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.acsi-elearning-panel-heading__copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0;
}

.acsi-elearning-panel-icon {
    display: grid;
    width: 3rem;
    height: 3rem;
    flex: 0 0 3rem;
    margin: 0;
    place-items: center;
    border-radius: 0.75rem;
    background: color-mix(in srgb, var(--acsi-primary) 12%, var(--acsi-card));
    color: var(--acsi-primary);
}

.acsi-training p.acsi-elearning-panel-icon {
    margin: 0;
}

.acsi-elearning-panel-icon span {
    width: 1.25rem;
    height: 1.25rem;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='14' x='2' y='3' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3Cpath d='m10 8 5 3-5 3Z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='14' x='2' y='3' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3Cpath d='m10 8 5 3-5 3Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acsi-elearning-panel-eyebrow,
.acsi-elearning-catalog .acsi-eyebrow {
    margin: 0;
    color: var(--acsi-primary);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.3em;
    line-height: 1.35;
    text-transform: uppercase;
}

.acsi-training p.acsi-elearning-panel-eyebrow {
    margin: 0;
}

.acsi-training .acsi-elearning-panel h2,
.acsi-training .acsi-elearning-panel h3 {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.3333;
}

.acsi-training-panel .acsi-elearning-highlights {
    display: grid;
    gap: 0.5rem;
    margin: 1rem 0 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--acsi-foreground);
    font-size: 0.875rem;
    line-height: 1.4286;
    list-style: none;
}

.acsi-training-panel .acsi-elearning-highlights li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.acsi-training-panel .acsi-elearning-highlights li + li {
    margin-top: 0;
}

.acsi-training-panel .acsi-elearning-highlights li::before {
    width: 0.5rem;
    height: 0.5rem;
    flex: 0 0 0.5rem;
    margin-top: 0.4rem;
    border-radius: 999px;
    background: #0ea5e9;
    content: "";
}

.acsi-training .acsi-elearning-support-panel {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    background: linear-gradient(135deg, #0f172a, #0f172a 52%, #020617);
}

.acsi-training .acsi-elearning-support-panel > p {
    margin: 0;
}

.acsi-training .acsi-elearning-support-panel > p:not(.acsi-elearning-panel-eyebrow) {
    margin: 0;
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.875rem;
    line-height: 1.4286;
}

.acsi-training .acsi-elearning-support-panel > p:last-child {
    line-height: 0;
}

.acsi-training .acsi-elearning-support-panel .acsi-elearning-panel-eyebrow {
    color: rgba(255, 255, 255, 0.8);
}

.acsi-elearning-support-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0;
    color: #e0f2fe;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.4286;
    text-decoration: underline;
    text-decoration-color: rgba(186, 230, 253, 0.6);
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

.acsi-elearning-support-link::before {
    width: 1rem;
    height: 1rem;
    flex: 0 0 1rem;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 12-8 12S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 12-8 12S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
    content: "";
}

.acsi-elearning-catalog {
    overflow: hidden;
    padding: 1.5rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1.5rem;
    background: var(--acsi-card);
    box-shadow: 0 16px 46px -40px rgba(15, 23, 42, 0.82);
}

.acsi-elearning-catalog-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.acsi-elearning-catalog-copy {
    display: flex;
    width: 100%;
    max-width: none;
    flex-direction: column;
    gap: 0.5rem;
}

.acsi-elearning-catalog h2 {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.25;
}

.acsi-elearning-catalog-copy > p:last-child {
    margin: 0;
    color: var(--acsi-muted);
    font-size: 0.875rem;
    line-height: 1.5;
}

.acsi-elearning-catalog-actions {
    gap: 0.5rem;
}

.acsi-training-course-grid.acsi-elearning-course-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.5rem;
}

.acsi-training-course.acsi-elearning-course {
    display: flex;
    height: 100%;
    flex-direction: column;
    border-radius: 1rem;
    box-shadow: 0 8px 24px -22px rgba(15, 23, 42, 0.85);
}

.acsi-elearning-course-media {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--acsi-card-muted);
}

.acsi-elearning-course-media .wp-block-image {
    width: 100%;
    height: 100%;
    margin: 0;
}

.acsi-elearning-course-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.acsi-elearning-course-badge {
    position: absolute;
    z-index: 1;
    top: 0.75rem;
    left: 0.75rem;
    margin: 0;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.9);
    color: #1e293b;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    line-height: 1.35;
    text-transform: uppercase;
    box-shadow: 0 4px 12px -8px rgba(15, 23, 42, 0.7);
    backdrop-filter: blur(8px);
}

.acsi-training-course .acsi-elearning-course-body {
    padding: 0.75rem 1rem 1rem;
}

.acsi-training-course .acsi-elearning-course-body h3 {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.5556;
}

.acsi-training-course > .acsi-elearning-course-actions {
    margin-top: auto;
    padding: 0 1rem 1rem;
}

.acsi-training .wp-block-button.acsi-elearning-course-button > .wp-block-button__link {
    font-size: 0.875rem;
}

@media (max-width: 1279px) {
    .acsi-training-course-grid.acsi-elearning-course-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .acsi-elearning-info-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 767px) {
    .acsi-training-hero--elearning {
        padding: 3rem 1.5rem;
    }

    .acsi-training-course-grid.acsi-elearning-course-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-elearning-catalog-header {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* SNaQ: React page structure enriched with the recoverable legacy content. */
.acsi-training-snaq .acsi-training-hero {
    min-height: 300px;
}

.acsi-snaq-intro-grid,
.acsi-snaq-continuous-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.acsi-snaq-intro-grid {
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
}

.acsi-snaq-intro {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.acsi-snaq-intro > p:not(.acsi-eyebrow) {
    font-size: 0.9rem;
    line-height: 1.68;
}

.acsi-snaq-media {
    min-height: 100%;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: 1.5rem;
    background: var(--acsi-card);
    box-shadow: 0 16px 46px -40px rgba(15, 23, 42, 0.82);
}

.acsi-snaq-media img {
    width: 100%;
    height: 100%;
    min-height: 390px;
    object-fit: cover;
}

.acsi-snaq-principles {
    display: grid;
    grid-template-columns: minmax(240px, 0.75fr) minmax(0, 1.25fr);
    align-items: center;
    gap: clamp(1.5rem, 4vw, 3rem);
}

.acsi-snaq-principles__heading h2 {
    max-width: 560px;
}

.acsi-training-panel .acsi-snaq-principles__list {
    display: grid;
    gap: 0.7rem;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    list-style: none;
}

.acsi-snaq-principles__list li {
    position: relative;
    min-height: 3.1rem;
    padding: 0.82rem 1rem 0.82rem 3.15rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.9rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-foreground);
    line-height: 1.5;
}

.acsi-snaq-principles__list li::before {
    position: absolute;
    top: 50%;
    left: 1rem;
    display: grid;
    width: 1.45rem;
    height: 1.45rem;
    transform: translateY(-50%);
    place-items: center;
    border-radius: 50%;
    background: color-mix(in srgb, var(--acsi-primary) 14%, var(--acsi-card));
    color: var(--acsi-primary);
    content: "✓";
    font-size: 0.72rem;
    font-weight: 900;
}

.acsi-snaq-level-section {
    padding-block: 0.5rem;
}

.acsi-snaq-level-section .acsi-training-section-heading > p:last-child {
    max-width: 760px;
    margin: 0.7rem 0 0;
    color: var(--acsi-muted);
}

.acsi-snaq-level-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.acsi-snaq-level-card {
    --acsi-snaq-level: var(--acsi-primary);
    position: relative;
    display: flex;
    min-height: 310px;
    flex-direction: column;
    overflow: hidden;
    padding: clamp(1.4rem, 3vw, 2rem);
    border: 1px solid color-mix(in srgb, var(--acsi-snaq-level) 34%, var(--acsi-border));
    border-radius: 1.5rem;
    background:
        linear-gradient(145deg, color-mix(in srgb, var(--acsi-snaq-level) 11%, var(--acsi-card)), var(--acsi-card) 62%);
    box-shadow: 0 16px 46px -40px rgba(15, 23, 42, 0.82);
}

.acsi-snaq-level-card::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: var(--acsi-snaq-level);
    content: "";
}

.acsi-snaq-level-card--assistant {
    --acsi-snaq-level: #8b5cf6;
}

.acsi-snaq-level-card--technician {
    --acsi-snaq-level: #f59e0b;
}

.acsi-snaq-level-card__credits {
    margin: 0;
    color: var(--acsi-snaq-level);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.acsi-snaq-level-card h3 {
    margin: 0.65rem 0 0;
    color: var(--acsi-foreground);
    font-size: clamp(1.35rem, 2.4vw, 1.75rem);
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.acsi-snaq-level-card > p:not(.acsi-snaq-level-card__credits, .acsi-snaq-level-card__update) {
    margin: 0.9rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.87rem;
    line-height: 1.65;
}

.acsi-snaq-level-card__update {
    margin: auto 0 0;
    padding-top: 1.1rem;
    border-top: 1px solid var(--acsi-border);
    color: var(--acsi-muted);
    font-size: 0.76rem;
}

.acsi-snaq-level-card__update strong {
    color: var(--acsi-foreground);
}

.acsi-snaq-continuous-grid > .acsi-training-panel {
    height: 100%;
}

.acsi-snaq-resources .acsi-card-actions {
    flex: 0 0 auto;
    justify-content: flex-end;
    margin-top: 0;
}

@media (max-width: 900px) {
    .acsi-snaq-intro-grid,
    .acsi-snaq-principles,
    .acsi-snaq-continuous-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-snaq-level-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .acsi-snaq-media img {
        min-height: 300px;
    }

    .acsi-snaq-resources .acsi-card-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 620px) {
    .acsi-training-snaq .acsi-training-hero {
        min-height: 340px;
    }

    .acsi-snaq-level-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-snaq-level-card {
        min-height: 0;
    }

    .acsi-snaq-level-card__update {
        margin-top: 1.25rem;
    }

    .acsi-snaq-media img {
        min-height: 240px;
    }
}

/* Projects, ACSI 2.0 and On Demand */
.acsi-project-main {
    padding-block: 1.25rem 4rem;
}

.acsi-project-hero,
.acsi-project-detail__hero,
.acsi-media-hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    min-height: 370px;
    padding: clamp(1.6rem, 4vw, 4rem);
    overflow: hidden;
    border-radius: 1.8rem;
    background: linear-gradient(125deg, #047857, #065f46 55%, #0369a1);
    color: #fff;
    box-shadow: var(--acsi-shadow);
}

.acsi-project-hero::after,
.acsi-project-detail__hero::after,
.acsi-media-hero::after {
    position: absolute;
    right: -7rem;
    bottom: -9rem;
    width: 25rem;
    height: 25rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    content: "";
}

.acsi-project-hero > *,
.acsi-project-detail__hero > *,
.acsi-media-hero > * {
    position: relative;
    z-index: 1;
}

.acsi-project-hero > div:first-child,
.acsi-project-detail__hero > div:first-child,
.acsi-media-hero > div:first-child {
    max-width: 850px;
}

.acsi-project-hero .acsi-eyebrow,
.acsi-project-detail__hero .acsi-eyebrow,
.acsi-media-hero .acsi-eyebrow,
.acsi-project-featured .acsi-eyebrow,
.acsi-project-highlight .acsi-eyebrow {
    color: rgba(255, 255, 255, 0.76);
}

.acsi-project-hero h1,
.acsi-project-detail__hero h1,
.acsi-media-hero h1 {
    max-width: 950px;
    margin: 0.35rem 0 0.75rem;
    color: #fff;
    font-size: clamp(2.1rem, 5vw, 4.6rem);
    line-height: 1.02;
}

.acsi-project-hero p,
.acsi-project-detail__hero p,
.acsi-media-hero p {
    max-width: 780px;
    margin: 0;
    color: rgba(255, 255, 255, 0.86);
    font-size: clamp(1rem, 1.7vw, 1.25rem);
}

.acsi-project-hero__badge,
.acsi-media-hero__number {
    display: grid;
    min-width: 180px;
    padding: 1.2rem;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 1.2rem;
    background: rgba(255, 255, 255, 0.12);
    text-align: center;
    backdrop-filter: blur(12px);
}

.acsi-project-hero__badge span {
    font-size: 1.4rem;
}

.acsi-project-hero__badge strong,
.acsi-media-hero__number strong {
    font-size: 3.7rem;
    line-height: 1;
}

.acsi-project-hero__badge small,
.acsi-media-hero__number span {
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.66rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.acsi-project-featured {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 2rem;
    margin-top: 1.25rem;
    padding: clamp(1.4rem, 3vw, 2.5rem);
    border-radius: 1.5rem;
    background: linear-gradient(120deg, #064e3b, #0f766e);
    color: #fff;
}

.acsi-project-featured h2 {
    margin: 0.25rem 0 0.55rem;
    color: #fff;
    font-size: clamp(1.5rem, 3vw, 2.4rem);
    line-height: 1.15;
}

.acsi-project-featured p {
    max-width: 850px;
    margin: 0;
    color: rgba(255, 255, 255, 0.84);
}

.acsi-project-featured__actions {
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    gap: 0.8rem;
}

.acsi-project-status {
    padding: 0.35rem 0.7rem;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 999px;
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
}

.acsi-project-tags,
.acsi-project-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 1rem;
}

.acsi-project-tags span,
.acsi-project-badges span {
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.16);
    color: inherit;
    font-size: 0.62rem;
    font-weight: 750;
}

.acsi-project-directory,
.acsi-media-library,
.acsi-media-overview {
    margin-top: 1.25rem;
    padding: clamp(1.25rem, 3vw, 2.5rem);
    border: 1px solid var(--acsi-border);
    border-radius: 1.5rem;
    background: var(--acsi-card);
    box-shadow: var(--acsi-shadow);
}

.acsi-project-directory__heading,
.acsi-media-library__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, 360px);
    align-items: end;
    gap: 1.5rem;
    margin-bottom: 1.25rem;
}

.acsi-media-library__heading {
    grid-template-columns: minmax(0, 1fr);
}

.acsi-project-directory__heading h2,
.acsi-media-library__heading h2,
.acsi-media-overview h2,
.acsi-project-panel h2 {
    margin: 0.25rem 0 0.45rem;
    color: var(--acsi-foreground);
    font-size: clamp(1.45rem, 2.6vw, 2.25rem);
    line-height: 1.15;
}

.acsi-project-directory__heading p,
.acsi-media-library__heading p,
.acsi-media-overview p {
    margin: 0;
    color: var(--acsi-muted);
}

.acsi-project-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.acsi-project-card {
    display: flex;
    min-height: 310px;
    padding: 1.3rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1.2rem;
    background: var(--acsi-card-muted);
    flex-direction: column;
    transition: transform 160ms ease, box-shadow 160ms ease;
}

.acsi-project-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--acsi-shadow);
}

.acsi-project-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.acsi-project-card__meta span,
.acsi-project-card__meta small {
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    background: #047857;
    color: #fff;
    font-size: 0.58rem;
    font-weight: 800;
    text-transform: uppercase;
}

.acsi-project-card__meta small {
    background: var(--acsi-border);
    color: var(--acsi-foreground);
}

.acsi-project-card h3 {
    margin: 1rem 0 0.55rem;
    font-size: 1.3rem;
    line-height: 1.2;
}

.acsi-project-card p {
    margin: 0;
    color: var(--acsi-muted);
    font-size: 0.88rem;
}

.acsi-project-card .acsi-project-tags span {
    background: var(--acsi-card);
    color: var(--acsi-muted);
    box-shadow: inset 0 0 0 1px var(--acsi-border);
}

.acsi-project-card > a {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: auto;
    padding-top: 1rem;
    color: #047857;
    font-size: 0.78rem;
    font-weight: 800;
}

.acsi-project-card > a svg {
    width: 1rem;
}

.acsi-project-notice {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.25rem;
    padding: 1.35rem;
    border: 1px dashed var(--acsi-border);
    border-radius: 1.2rem;
    background: var(--acsi-card-muted);
}

.acsi-project-notice p {
    margin: 0.15rem 0 0;
    color: var(--acsi-muted);
}

.acsi-project-notice > div:last-child {
    display: flex;
    gap: 0.6rem;
}

.acsi-project-detail__hero {
    align-items: flex-end;
}

.acsi-project-detail__hero > div > a {
    display: inline-block;
    margin-bottom: 1.5rem;
    font-size: 0.75rem;
    font-weight: 750;
}

.acsi-project-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.8fr) minmax(260px, 0.7fr);
    gap: 1.25rem;
    margin-top: 1.25rem;
}

.acsi-project-detail__content {
    display: grid;
    gap: 1.25rem;
}

.acsi-project-detail__aside {
    position: sticky;
    top: calc(var(--acsi-header-height) + 1rem);
    align-self: start;
}

.acsi-project-highlight,
.acsi-project-panel {
    margin-top: 1.25rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid var(--acsi-border);
    border-radius: 1.35rem;
    background: var(--acsi-card);
    box-shadow: var(--acsi-shadow);
}

.acsi-project-highlight {
    background: linear-gradient(135deg, #075985, #0e7490);
    color: #fff;
}

.acsi-project-highlight p {
    max-width: 1050px;
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, 0.88);
    font-size: 1.05rem;
    font-weight: 650;
}

.acsi-project-panel {
    margin-top: 0;
}

.acsi-project-panel p,
.acsi-project-panel li {
    color: var(--acsi-muted);
}

.acsi-project-panel ul,
.acsi-project-panel ol {
    margin: 1rem 0;
    padding-left: 1.2rem;
}

.acsi-project-panel .acsi-button {
    margin-top: 0.75rem;
}

.acsi-project-objectives {
    display: grid;
    gap: 0.8rem;
    list-style: none;
    counter-reset: objective;
}

.acsi-project-objectives li {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    gap: 0.7rem;
    counter-increment: objective;
}

.acsi-project-objectives li::before {
    display: grid;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: #047857;
    color: #fff;
    content: counter(objective);
    font-size: 0.7rem;
    font-weight: 850;
    place-items: center;
}

.acsi-project-sdgs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.acsi-project-sdgs span {
    padding: 0.7rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.75rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-foreground);
    font-size: 0.72rem;
    font-weight: 700;
}

.acsi-media-hero {
    background: linear-gradient(125deg, #581c87, #312e81 55%, #4c1d95);
}

.acsi-media-hero--digital {
    min-height: 300px;
    padding: clamp(1.5rem, 3vw, 2.75rem);
    background: linear-gradient(125deg, #1e1b4b, #020617 55%, #581c87);
}

.acsi-media-hero--digital h1 {
    max-width: 880px;
    font-size: clamp(2rem, 3.6vw, 3.55rem);
}

.acsi-media-hero__title {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}

.acsi-media-hero__title img {
    width: min(280px, 42vw);
    max-height: 92px;
    object-fit: contain;
}

.acsi-media-hero__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1.25rem;
}

.acsi-media-hero__funding {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    min-height: 44px;
    padding: 0.35rem 0.45rem 0.35rem 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
}

.acsi-media-hero__funding p {
    max-width: none;
    color: rgba(255, 255, 255, 0.84);
    font-size: 0.62rem;
    font-weight: 750;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    white-space: nowrap;
}

.acsi-media-hero__funding figure,
.acsi-media-hero__series-logo {
    margin: 0;
}

.acsi-media-hero__funding img {
    display: block;
    width: 96px;
    height: 34px;
    padding: 0.25rem 0.4rem;
    border-radius: 0.55rem;
    background: #fff;
    object-fit: contain;
}

.acsi-media-hero__series-logo img {
    display: block;
    width: 110px;
    height: 44px;
    padding: 0.3rem;
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.15);
    object-fit: contain;
}

.acsi-media-hero__partner {
    width: min(300px, 30vw);
    max-height: 170px;
    padding: 1rem;
    border-radius: 1.2rem;
    background: rgba(255, 255, 255, 0.92);
    object-fit: contain;
}

.acsi-media-overview__columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.25rem;
}

.acsi-media-overview__columns article {
    padding: 1.2rem;
    border-radius: 1rem;
    background: var(--acsi-card-muted);
}

.acsi-media-overview__columns h3 {
    margin: 0 0 0.65rem;
}

.acsi-media-overview__columns ul {
    margin: 0;
    padding-left: 1.2rem;
}

.acsi-media-overview__columns li {
    margin-top: 0.45rem;
    color: var(--acsi-muted);
    font-size: 0.88rem;
}

.acsi-media-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.acsi-video-card {
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: 1.1rem;
    background: var(--acsi-card);
    box-shadow: 0 14px 30px -26px rgba(15, 23, 42, 0.65);
}

.acsi-video-card__media,
.acsi-video-card__media-frame {
    position: relative;
    display: grid;
    width: 100%;
    aspect-ratio: 16 / 9;
    padding: 0;
    overflow: hidden;
    border: 0;
    background: #020617;
    color: #fff;
    place-items: center;
}

.acsi-video-card__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0.78;
    object-fit: cover;
    transition: transform 180ms ease, opacity 180ms ease;
}

.acsi-video-card__media:hover img {
    opacity: 0.62;
    transform: scale(1.025);
}

.acsi-video-card__placeholder {
    position: absolute;
    inset: 0;
    display: grid;
    background: radial-gradient(circle at 30% 20%, #7c3aed, #1e1b4b 55%, #020617);
    color: rgba(255, 255, 255, 0.2);
    font-size: clamp(4rem, 9vw, 8rem);
    font-weight: 900;
    place-items: center;
}

.acsi-video-card__play {
    position: relative;
    z-index: 1;
    display: grid;
    width: 3.2rem;
    height: 3.2rem;
    padding-left: 0.2rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.94);
    color: #312e81;
    box-shadow: 0 12px 25px rgba(0, 0, 0, 0.3);
    place-items: center;
}

.acsi-video-card__media > small {
    position: absolute;
    z-index: 1;
    bottom: 0.75rem;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    background: rgba(2, 6, 23, 0.7);
    font-size: 0.6rem;
    font-weight: 800;
    text-transform: uppercase;
}

.acsi-video-card__media-frame {
    border-radius: 0;
}

.acsi-video-card__body {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.7rem;
    padding: 0.9rem;
}

.acsi-video-card__body > span {
    display: grid;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--acsi-card-muted);
    color: var(--acsi-muted);
    font-size: 0.62rem;
    font-weight: 800;
    place-items: center;
}

.acsi-video-card__body small {
    display: block;
    color: var(--acsi-muted);
    font-size: 0.55rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.acsi-video-card__body h3 {
    margin: 0.1rem 0 0;
    font-size: 0.92rem;
    line-height: 1.2;
}

.acsi-video-card__body em {
    padding: 0.25rem 0.45rem;
    border: 1px solid var(--acsi-border);
    border-radius: 999px;
    color: var(--acsi-muted);
    font-size: 0.52rem;
    font-style: normal;
    font-weight: 750;
    text-transform: uppercase;
}

@media (max-width: 1080px) {
    .acsi-project-grid,
    .acsi-media-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 840px) {
    .acsi-project-hero,
    .acsi-project-detail__hero,
    .acsi-media-hero,
    .acsi-project-notice {
        align-items: flex-start;
        flex-direction: column;
    }

    .acsi-project-featured,
    .acsi-project-directory__heading,
    .acsi-media-library__heading,
    .acsi-project-detail__layout,
    .acsi-media-overview__columns {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-project-featured__actions {
        align-items: flex-start;
    }

    .acsi-project-detail__aside {
        position: static;
    }

    .acsi-media-hero__partner {
        width: min(250px, 72vw);
    }
}

@media (max-width: 620px) {
    .acsi-project-main {
        padding-top: 0.7rem;
    }

    .acsi-project-hero,
    .acsi-project-detail__hero,
    .acsi-media-hero {
        min-height: 410px;
        padding: 1.35rem;
    }

    .acsi-media-hero--digital {
        min-height: 340px;
    }

    .acsi-media-hero--digital h1 {
        font-size: clamp(1.85rem, 9vw, 2.55rem);
    }

    .acsi-project-hero__badge,
    .acsi-media-hero__number {
        min-width: 145px;
    }

    .acsi-project-grid,
    .acsi-media-grid,
    .acsi-project-sdgs {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-project-notice > div:last-child {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }

    .acsi-video-card__body {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .acsi-video-card__body em {
        grid-column: 2;
        width: fit-content;
    }
}

/* React-aligned Bandi e progetti archive. */
.acsi-project-index > .acsi-container {
    display: grid;
    width: min(90%, 1152px);
    gap: clamp(1.5rem, 3vw, 3rem);
}

.acsi-project-index .acsi-project-hero {
    min-height: 0;
    padding: clamp(2rem, 4vw, 3rem);
    border: 1px solid rgba(167, 243, 208, 0.28);
    border-radius: 1.5rem;
    background: linear-gradient(90deg, #047857 0%, #065f46 52%, #075985 100%);
    box-shadow: 0 24px 55px -34px rgba(4, 120, 87, 0.72);
}

.acsi-project-index .acsi-project-hero h1 {
    max-width: 780px;
    margin-block: 0.45rem 0.75rem;
    font-size: clamp(2rem, 4vw, 3rem);
    letter-spacing: -0.035em;
    line-height: 1.08;
}

.acsi-project-index .acsi-project-hero p {
    font-size: 1rem;
}

.acsi-project-index__overview {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    align-items: stretch;
    gap: 1.5rem;
}

.acsi-project-featured-panel,
.acsi-project-upcoming {
    padding: clamp(1.5rem, 3vw, 2rem);
    border: 1px solid var(--acsi-border);
    border-radius: 1.5rem;
    background: var(--acsi-card);
    box-shadow: var(--acsi-shadow);
}

.acsi-project-featured-panel {
    border-color: color-mix(in srgb, #10b981 36%, var(--acsi-border));
    box-shadow: 0 20px 50px -36px rgba(5, 150, 105, 0.58);
}

.acsi-project-panel-heading {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.acsi-project-panel-heading__content {
    min-width: 0;
}

.acsi-project-panel-heading__icon {
    display: grid;
    flex: 0 0 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    border-radius: 0.75rem;
}

.acsi-project-panel-heading__icon--featured {
    background: #d1fae5;
    color: #047857;
}

.acsi-project-panel-heading__icon--upcoming {
    background: #e0f2fe;
    color: #0369a1;
}

.acsi-project-panel-heading__icon svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

html[data-theme="dark"] .acsi-project-panel-heading__icon--featured {
    background: rgba(6, 78, 59, 0.55);
    color: #a7f3d0;
}

html[data-theme="dark"] .acsi-project-panel-heading__icon--upcoming {
    background: rgba(12, 74, 110, 0.55);
    color: #bae6fd;
}

.acsi-project-panel-heading h2,
.acsi-project-upcoming h2 {
    margin: 0.2rem 0 0.55rem;
    color: var(--acsi-foreground);
    font-size: clamp(1.35rem, 2.4vw, 1.75rem);
    line-height: 1.15;
}

.acsi-project-panel-heading__content > p:last-child,
.acsi-project-upcoming > p {
    margin: 0;
    color: var(--acsi-muted);
    font-size: 0.88rem;
}

.acsi-project-featured-card {
    margin-top: 1.25rem;
    padding: 1.25rem;
    border: 1px solid color-mix(in srgb, #10b981 24%, var(--acsi-border));
    border-radius: 1.1rem;
    background: color-mix(in srgb, #d1fae5 56%, var(--acsi-card));
    box-shadow: 0 12px 28px -25px rgba(5, 150, 105, 0.7);
}

html[data-theme="dark"] .acsi-project-featured-card {
    background: color-mix(in srgb, #064e3b 22%, var(--acsi-card));
}

.acsi-project-featured-card h3 {
    margin: 0.8rem 0 0.45rem;
    font-size: clamp(1.2rem, 2vw, 1.45rem);
    line-height: 1.2;
}

.acsi-project-featured-card > p {
    margin: 0.45rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.86rem;
}

.acsi-project-featured-card > p:first-of-type {
    color: color-mix(in srgb, #065f46 78%, var(--acsi-foreground));
    font-weight: 700;
}

.acsi-project-featured-card .acsi-project-tags {
    margin-top: 0;
}

.acsi-project-featured-card .acsi-project-tags span {
    background: #059669;
    color: #ffffff;
}

.acsi-project-featured-card__actions,
.acsi-project-upcoming__actions,
.acsi-project-filters {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.7rem;
}

.acsi-project-featured-card__actions,
.acsi-project-upcoming__actions {
    margin-top: 1.15rem;
}

.acsi-project-featured-card__actions > .wp-block-buttons,
.acsi-project-upcoming__actions > .wp-block-buttons {
    display: contents;
}

.acsi-project-upcoming {
    display: flex;
    flex-direction: column;
}

.acsi-project-upcoming__note {
    margin-top: 1.25rem;
    padding: 1rem;
    border: 1px dashed var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-muted);
    font-size: 0.82rem;
}

.acsi-project-upcoming__actions {
    margin-top: auto;
    padding-top: 1.25rem;
}

.acsi-project-index .acsi-project-directory {
    margin-top: 0;
    padding: clamp(1.5rem, 3vw, 2rem);
}

.acsi-project-index .acsi-project-directory__heading {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    margin-bottom: 1rem;
}

.acsi-project-filters {
    justify-content: flex-end;
}

.wp-block-button.acsi-project-filter {
    min-height: 36px;
    padding: 0.55rem 0.95rem;
    border: 0;
    border-radius: 999px;
    background: var(--acsi-card-muted);
    color: var(--acsi-muted);
    font-size: 0.7rem;
    font-weight: 750;
    text-transform: capitalize;
}

.wp-block-button.acsi-project-filter.is-active {
    background: #0f172a;
    color: #ffffff;
    box-shadow: 0 7px 18px -12px rgba(15, 23, 42, 0.7);
}

.acsi-project-search {
    margin-bottom: 1.25rem;
}

.acsi-project-search > input[type="search"] {
    width: 100%;
    min-height: 46px;
    padding: 0.7rem 1rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.8rem;
    outline: 0;
    background: var(--acsi-card);
    color: var(--acsi-foreground);
    box-shadow: 0 8px 22px -18px rgba(15, 23, 42, 0.45);
}

.acsi-project-search .wp-block-search__inside-wrapper {
    min-height: 46px;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: 0.8rem;
    background: var(--acsi-card);
    box-shadow: 0 8px 22px -18px rgba(15, 23, 42, 0.45);
}

.acsi-project-search .wp-block-search__input {
    min-width: 0;
    padding: 0.7rem 1rem;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--acsi-foreground);
}

.acsi-project-search .wp-block-search__button {
    width: 46px;
    min-width: 46px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: var(--acsi-card-muted);
    color: var(--acsi-muted);
}

.acsi-project-search .wp-block-search__button svg {
    width: 18px;
    height: 18px;
}

.acsi-project-index .acsi-project-card,
.acsi-home-projects .acsi-project-card {
    min-height: 280px;
}

.acsi-project-index .acsi-project-card > p:last-child {
    margin-top: auto;
    padding-top: 1rem;
}

.acsi-project-index .acsi-project-card > p:last-child a {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: #047857;
    font-size: 0.78rem;
    font-weight: 800;
}

html[data-theme="dark"] .acsi-project-index .acsi-project-card > p:last-child a {
    color: #6ee7b7;
}

.acsi-project-card[hidden],
.acsi-project-empty {
    display: none;
}

.acsi-project-empty.is-visible {
    display: block;
    grid-column: 1 / -1;
    margin: 0;
    padding: 1.25rem;
    border: 1px dashed var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-muted);
    text-align: center;
}

@media (max-width: 840px) {
    .acsi-project-index__overview {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-project-index .acsi-project-directory__heading {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-project-filters {
        justify-content: flex-start;
    }
}

@media (max-width: 620px) {
    .acsi-project-index .acsi-project-hero {
        min-height: 0;
        padding: 1.5rem;
    }

    .acsi-project-index .acsi-project-hero h1 {
        font-size: clamp(1.9rem, 10vw, 2.5rem);
    }

    .acsi-project-featured-panel,
    .acsi-project-upcoming,
    .acsi-project-index .acsi-project-directory {
        padding: 1.25rem;
    }

    .acsi-project-featured-card__actions,
    .acsi-project-upcoming__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .acsi-project-featured-card__actions .acsi-button,
    .acsi-project-upcoming__actions .acsi-button {
        width: 100%;
    }
}

/* Native affiliation section */
.acsi-button--light {
    border-color: #ffffff;
    background: #ffffff;
    color: #075985;
}

.acsi-button--light:hover {
    background: #e0f2fe;
}

.acsi-theme a.acsi-button {
    color: #ffffff;
}

.acsi-theme a.acsi-button--outline {
    color: var(--acsi-primary);
}

.acsi-theme a.acsi-button--outline:hover {
    color: #ffffff;
}

.acsi-theme a.acsi-button--glass {
    color: #ffffff;
}

.acsi-theme a.acsi-button--light {
    color: #075985;
}

.acsi-affiliation {
    background:
        radial-gradient(circle at 90% 18%, color-mix(in srgb, var(--acsi-primary) 7%, transparent), transparent 28rem),
        var(--acsi-background);
}

.acsi-affiliation__shell {
    display: flex;
    flex-direction: column;
    gap: clamp(1.5rem, 3vw, 3rem);
    padding-block: clamp(1.4rem, 3vw, 2.5rem) clamp(4rem, 8vw, 7rem);
}

.acsi-affiliation-hero {
    position: relative;
    min-height: clamp(500px, 67vh, 720px);
    overflow: hidden;
    border-radius: clamp(1.35rem, 3vw, 2.25rem);
    background:
        linear-gradient(to top, rgba(2, 6, 23, 0.95), rgba(2, 6, 23, 0.64) 55%, rgba(2, 6, 23, 0.5)),
        linear-gradient(to right, rgba(3, 105, 161, 0.46), transparent 65%),
        #020617;
    background-position: center;
    background-size: cover;
    color: #ffffff;
    box-shadow: var(--acsi-shadow);
}

.acsi-affiliation-hero__copy {
    position: absolute;
    z-index: 1;
    right: 6%;
    bottom: clamp(2rem, 6vw, 5rem);
    left: 6%;
    max-width: 980px;
}

.acsi-affiliation-hero__copy > p:first-child,
.acsi-affiliation-subhero__eyebrow,
.acsi-affiliation-cta > p:first-child {
    margin: 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.24em;
    text-transform: uppercase;
}

.acsi-affiliation-hero h1,
.acsi-affiliation-subhero h1 {
    max-width: 950px;
    margin: 0.75rem 0 0;
    color: #ffffff;
    font-size: clamp(2.4rem, 5.5vw, 5rem);
    font-weight: 880;
    letter-spacing: -0.05em;
    line-height: 1.02;
    text-wrap: balance;
}

.acsi-affiliation-hero__copy > p:nth-child(3) {
    max-width: 850px;
    margin: 1rem 0 1.5rem;
    color: rgba(255, 255, 255, 0.84);
    font-size: clamp(1rem, 1.5vw, 1.17rem);
}

.acsi-affiliation-hero__copy > div,
.acsi-affiliation-subhero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
}

.acsi-affiliation-hero svg,
.acsi-affiliation-subhero svg,
.acsi-affiliation-benefit svg,
.acsi-affiliation-tier svg,
.acsi-affiliation-highlight svg,
.acsi-affiliation-cta svg,
.acsi-affiliation-support > span svg,
.acsi-affiliation-doc-grid svg,
.acsi-affiliation-panel__icon svg,
.acsi-affiliation-tesseramento li svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-affiliation-benefits {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.7rem;
}

.acsi-affiliation-benefit {
    position: relative;
    display: flex;
    align-items: center;
    flex-direction: column;
    min-height: 135px;
    overflow: hidden;
    padding: 1rem;
    border-radius: 1rem;
    background: linear-gradient(145deg, #a7f3d0, #059669);
    color: #052e16;
    text-align: center;
}

.acsi-affiliation-benefit--purple { background: linear-gradient(145deg, #c4b5fd, #4f46e5); color: #1e1b4b; }
.acsi-affiliation-benefit--teal { background: linear-gradient(145deg, #99f6e4, #0891b2); color: #083344; }
.acsi-affiliation-benefit--rose { background: linear-gradient(145deg, #fda4af, #e11d48); color: #4c0519; }
.acsi-affiliation-benefit--amber { background: linear-gradient(145deg, #fde68a, #d97706); color: #451a03; }
.acsi-affiliation-benefit--blue { background: linear-gradient(145deg, #7dd3fc, #2563eb); color: #082f49; }

.acsi-affiliation-benefit > span {
    display: grid;
    width: 2.6rem;
    height: 2.6rem;
    margin-inline: auto;
    place-items: center;
    border-radius: 0.75rem;
    background: rgba(255, 255, 255, 0.68);
    color: #0f172a;
    box-shadow: 0 8px 18px -12px rgba(15, 23, 42, 0.75);
}

.acsi-affiliation-benefit h2 {
    margin: 0.7rem 0 0;
    color: inherit;
    font-size: 0.8rem;
    line-height: 1.35;
}

html[data-theme="dark"] .acsi-affiliation-benefit {
    color: #ffffff;
}

html[data-theme="dark"] .acsi-affiliation-benefit > span {
    background: #1e293b;
    color: #ffffff;
}

.acsi-affiliation-section {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.acsi-affiliation-heading {
    max-width: 900px;
}

.acsi-affiliation-heading--center {
    margin-inline: auto;
    text-align: center;
}

.acsi-affiliation-heading h2,
.acsi-affiliation-panel h2,
.acsi-affiliation-cta h2,
.acsi-affiliation-support h2 {
    margin: 0.45rem 0 0;
    color: var(--acsi-foreground);
    font-size: clamp(1.6rem, 3vw, 2.35rem);
    letter-spacing: -0.035em;
    line-height: 1.12;
}

.acsi-affiliation-heading > p:not(.acsi-eyebrow),
.acsi-affiliation-panel > p:not(.acsi-eyebrow),
.acsi-affiliation-support > p {
    margin: 0.65rem 0 0;
    color: var(--acsi-muted);
}

.acsi-affiliation-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
}

.acsi-affiliation-member-card {
    position: relative;
    min-height: 160px;
    overflow: hidden;
    padding: 1.5rem;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 1.2rem;
    background: linear-gradient(145deg, #0284c7, #075985);
    color: #ffffff;
    box-shadow: 0 18px 38px -28px rgba(15, 23, 42, 0.8);
}

.acsi-affiliation-member-card::before {
    position: absolute;
    top: -45%;
    right: -10%;
    width: 12rem;
    height: 12rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    content: "";
}

.acsi-affiliation-member-card--teal { background: linear-gradient(145deg, #0d9488, #047857); }
.acsi-affiliation-member-card--red { background: linear-gradient(145deg, #dc2626, #9f1239); }
.acsi-affiliation-member-card--violet { background: linear-gradient(145deg, #7c3aed, #5b21b6); }
.acsi-affiliation-member-card--orange { background: linear-gradient(145deg, #f97316, #c2410c); }
.acsi-affiliation-member-card--yellow { background: linear-gradient(145deg, #f59e0b, #a16207); }

.acsi-affiliation-member-card h3 {
    position: relative;
    margin: 0;
    font-size: clamp(1.35rem, 2.5vw, 1.8rem);
    line-height: 1.1;
}

.acsi-affiliation-member-card p {
    position: relative;
    margin: 0.65rem 0 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.84rem;
}

.acsi-affiliation-tier-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.9rem;
}

.acsi-affiliation-tier,
.acsi-affiliation-panel,
.acsi-affiliation-support {
    border: 1px solid var(--acsi-border);
    border-radius: 1.35rem;
    background: var(--acsi-card);
    box-shadow: 0 16px 46px -40px rgba(15, 23, 42, 0.82);
}

.acsi-affiliation-tier {
    padding: 1.4rem;
}

.acsi-affiliation-tier:nth-child(n+2) {
    border-color: color-mix(in srgb, var(--acsi-primary) 45%, var(--acsi-border));
    background: color-mix(in srgb, var(--acsi-primary) 6%, var(--acsi-card));
}

.acsi-affiliation-tier h3 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0;
    font-size: 1.1rem;
}

.acsi-affiliation-tier h3 span {
    color: var(--acsi-primary);
}

.acsi-affiliation-tier dl {
    display: grid;
    gap: 0.75rem;
    margin: 1rem 0 0;
}

.acsi-affiliation-tier dl > div {
    padding-top: 0.7rem;
    border-top: 1px solid var(--acsi-border);
}

.acsi-affiliation-tier dt {
    font-size: 0.73rem;
    font-weight: 750;
}

.acsi-affiliation-tier dd {
    margin: 0.25rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.78rem;
    line-height: 1.45;
}

.acsi-affiliation-inline-link {
    margin: 0;
    color: var(--acsi-primary);
    font-size: 0.82rem;
    font-weight: 750;
    text-align: center;
}

.acsi-affiliation-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
}

.acsi-affiliation-step {
    padding: 1.25rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card);
    box-shadow: 0 10px 24px -22px rgba(15, 23, 42, 0.7);
}

.acsi-affiliation-step__heading {
    display: flex;
    align-items: center;
    gap: 0.7rem;
}

.acsi-affiliation-step__heading > span {
    display: grid;
    flex: 0 0 1.9rem;
    width: 1.9rem;
    height: 1.9rem;
    place-items: center;
    border-radius: 999px;
    background: var(--acsi-primary);
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 760;
}

.acsi-affiliation-step__heading h3 {
    margin: 0;
    color: var(--acsi-foreground);
    font-size: 0.94rem;
    line-height: 1.35;
}

.acsi-affiliation-step__body {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    margin-top: 1rem;
    color: var(--acsi-muted);
    font-size: 0.82rem;
}

.acsi-affiliation-step__body p,
.acsi-affiliation-step__body ul {
    margin: 0;
}

.acsi-affiliation-step__body ul:not(.acsi-affiliation-step__links) {
    padding-left: 1.2rem;
}

.acsi-affiliation-step__links {
    display: grid;
    gap: 0.45rem;
    padding: 0;
    list-style: none;
}

.acsi-affiliation-step__links a {
    color: var(--acsi-primary);
    font-weight: 750;
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, var(--acsi-primary) 30%, transparent);
    text-decoration-thickness: 2px;
    text-underline-offset: 0.2rem;
}

.acsi-affiliation-steps details,
.acsi-affiliation-benefit-list details {
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card);
}

.acsi-affiliation-steps summary,
.acsi-affiliation-benefit-list summary {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 1rem;
    color: var(--acsi-foreground);
    font-size: 0.88rem;
    font-weight: 760;
    list-style: none;
    cursor: pointer;
}

.acsi-affiliation-steps summary::-webkit-details-marker,
.acsi-affiliation-benefit-list summary::-webkit-details-marker {
    display: none;
}

.acsi-affiliation-steps summary span {
    display: grid;
    flex: 0 0 1.9rem;
    width: 1.9rem;
    height: 1.9rem;
    place-items: center;
    border-radius: 999px;
    background: var(--acsi-primary);
    color: #ffffff;
    font-size: 0.75rem;
}

.acsi-affiliation-steps details > div {
    padding: 0 1rem 1rem;
    color: var(--acsi-muted);
    font-size: 0.82rem;
}

.acsi-affiliation-steps ul {
    margin: 0;
    padding-left: 1.2rem;
}

.acsi-affiliation-steps a,
.acsi-affiliation-highlight a {
    display: block;
    margin-top: 0.45rem;
    color: var(--acsi-primary);
    font-weight: 750;
}

.acsi-affiliation-member-benefits {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.9rem;
}

.acsi-affiliation-highlight {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.4rem;
    border: 1px solid color-mix(in srgb, var(--acsi-primary) 30%, var(--acsi-border));
    border-radius: 1rem;
    background: color-mix(in srgb, var(--acsi-primary) 7%, var(--acsi-card));
}

.acsi-affiliation-highlight > span,
.acsi-affiliation-panel__icon,
.acsi-affiliation-support > span {
    display: grid;
    flex: 0 0 3rem;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border-radius: 0.85rem;
    background: color-mix(in srgb, var(--acsi-primary) 12%, var(--acsi-card));
    color: var(--acsi-primary);
}

.acsi-affiliation-highlight h3 {
    margin: 0;
    font-size: 1.1rem;
}

.acsi-affiliation-highlight p {
    margin: 0.45rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.83rem;
}

.acsi-affiliation-benefit-list {
    display: grid;
    gap: 0.45rem;
}

.acsi-affiliation-benefit-list details[open] summary {
    background: var(--acsi-primary);
    color: #ffffff;
}

.acsi-affiliation-benefit-list p {
    margin: 0;
    padding: 0.9rem 1rem;
    color: var(--acsi-muted);
    font-size: 0.82rem;
}

.acsi-affiliation-cta-grid,
.acsi-affiliation-two-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.acsi-affiliation-cta {
    position: relative;
    overflow: hidden;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border-radius: 1.35rem;
    background: linear-gradient(145deg, #0284c7, #075985 58%, #1e3a8a);
    color: #ffffff;
    box-shadow: var(--acsi-shadow);
}

.acsi-affiliation-cta::before {
    position: absolute;
    top: -7rem;
    right: -5rem;
    width: 18rem;
    height: 18rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    content: "";
}

.acsi-affiliation-cta > * {
    position: relative;
}

.acsi-affiliation-cta h2 {
    color: #ffffff;
}

.acsi-affiliation-cta > p:not(:first-child) {
    color: rgba(255, 255, 255, 0.82);
}

.acsi-affiliation-cta .acsi-button {
    margin-top: 1rem;
}

.acsi-affiliation-support {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    align-items: center;
    gap: 0 1rem;
    padding: clamp(1.5rem, 4vw, 2.5rem);
}

/* The Gutenberg content for this card has no icon node, while the React
 * reference uses the Users icon beside its heading. Keep it decorative and
 * generated by the theme so editors do not have to preserve SVG markup. */
.acsi-affiliation-support::before {
    flex: 0 0 3rem;
    width: 3rem;
    height: 3rem;
    border-radius: 0.85rem;
    background:
        color-mix(in srgb, var(--acsi-primary) 12%, var(--acsi-card))
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230ea5e9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E")
        center / 1.25rem no-repeat;
    content: "";
}

.acsi-affiliation-support--deadlines::before {
    background:
        color-mix(in srgb, #14b8a6 12%, var(--acsi-card))
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d9488' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 2h4'/%3E%3Cpath d='M12 14v-4'/%3E%3Cpath d='M4 13a8 8 0 1 0 8-8 9.7 9.7 0 0 0-3.1.5'/%3E%3C/svg%3E")
        center / 1.25rem no-repeat;
}

.acsi-affiliation-support > .wp-block-group:first-of-type {
    flex: 1 1 260px;
}

.acsi-affiliation-support > p,
.acsi-affiliation-support > .acsi-button {
    flex-basis: 100%;
}

.acsi-affiliation-support > .acsi-button {
    width: fit-content;
    margin-top: 1rem;
}

.acsi-affiliation-support > .acsi-button + .acsi-button {
    flex-basis: auto;
    margin-left: 0.45rem;
}

.acsi-affiliation-support > .wp-block-buttons {
    display: flex;
    flex: 1 1 100%;
    flex-wrap: wrap;
    gap: 0.7rem;
    margin-top: 1.5rem;
}

.acsi-affiliation-support .wp-block-button.acsi-button--dark > .wp-block-button__link {
    border-color: #0f172a;
    background: #0f172a;
    color: #ffffff;
}

.acsi-affiliation-support .wp-block-button.acsi-button--outline:hover > .wp-block-button__link,
.acsi-affiliation-support .wp-block-button.acsi-button--outline > .wp-block-button__link:hover {
    border-color: var(--acsi-primary);
    background: var(--acsi-primary);
    color: #ffffff;
}

.acsi-affiliation-subhero {
    display: flex;
    min-height: 330px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    overflow: hidden;
    padding: clamp(2rem, 5vw, 4rem);
    border-radius: clamp(1.35rem, 3vw, 2.1rem);
    background:
        radial-gradient(circle at 90% 0%, rgba(56, 189, 248, 0.3), transparent 35%),
        linear-gradient(125deg, #082f49, #075985 58%, #0369a1);
    color: #ffffff;
}

.acsi-affiliation-subhero > div:first-child {
    max-width: 880px;
}

.acsi-affiliation-subhero h1 {
    font-size: clamp(2.2rem, 4.5vw, 4.1rem);
}

.acsi-affiliation-subhero > div:first-child > p:last-child {
    max-width: 800px;
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, 0.82);
}

.acsi-affiliation-subhero__actions {
    flex: 0 0 auto;
    flex-direction: column;
}

.acsi-affiliation-come-affiliarsi .acsi-affiliation-subhero,
.acsi-affiliation-subhero--stacked {
    align-items: flex-start;
    flex-direction: column;
    justify-content: flex-end;
    gap: 1.5rem;
}

.acsi-affiliation-come-affiliarsi .acsi-affiliation-subhero__actions,
.acsi-affiliation-subhero--stacked .acsi-affiliation-subhero__actions {
    flex-direction: row;
}

.acsi-affiliation-panel {
    padding: clamp(1.4rem, 3vw, 2.2rem);
}

.acsi-affiliation-panel--green {
    background: linear-gradient(145deg, color-mix(in srgb, #10b981 7%, var(--acsi-card)), var(--acsi-card));
}

.acsi-affiliation-panel__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.2rem;
}

.acsi-affiliation-panel__heading p:not(.acsi-eyebrow) {
    margin: 0.55rem 0 0;
    color: var(--acsi-muted);
}

.acsi-affiliation-panel > .acsi-affiliation-panel__icon {
    margin-bottom: 1rem;
}

/* The migrated Gutenberg markup stores the panel icon in its own paragraph.
 * Recompose the heading like the React card: icon on the left, eyebrow and
 * title stacked on the right, with the remaining content full width. */
.acsi-affiliation-two-columns > .acsi-affiliation-panel {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    align-content: start;
    column-gap: 1rem;
}

.acsi-affiliation-two-columns > .acsi-affiliation-panel > p:first-child:has(.acsi-affiliation-panel__icon) {
    grid-row: 1 / 3;
    grid-column: 1;
    align-self: start;
    margin: 0;
    line-height: 0;
}

.acsi-affiliation-two-columns > .acsi-affiliation-panel > .acsi-eyebrow {
    grid-row: 1;
    grid-column: 2;
    align-self: end;
}

.acsi-affiliation-two-columns > .acsi-affiliation-panel > h2 {
    grid-row: 2;
    grid-column: 2;
}

.acsi-affiliation-two-columns > .acsi-affiliation-panel > :not(p:first-child, .acsi-eyebrow, h2) {
    grid-column: 1 / -1;
}

.acsi-affiliation-panel > ul {
    margin: 1rem 0;
    padding: 0.85rem 1rem 0.85rem 2.2rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.9rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-foreground);
    font-size: 0.84rem;
}

.acsi-affiliation-panel > h3 {
    margin: 1.25rem 0 0;
    font-size: 1rem;
}

.acsi-affiliation-doc-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
}

/* Gutenberg may wrap the document links in a paragraph. Keep the links as
   direct visual grid items so the frontend matches the React reference. */
.acsi-affiliation-doc-grid > .wp-block-paragraph {
    display: contents;
}

.acsi-affiliation-doc-grid a {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.15rem 0.65rem;
    padding: 0.9rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.85rem;
    background: var(--acsi-card-muted);
    transition: transform 160ms ease, border-color 160ms ease;
}

.acsi-affiliation-doc-grid a:hover {
    transform: translateY(-2px);
    border-color: var(--acsi-primary);
}

.acsi-affiliation-doc-grid a > span {
    display: grid;
    grid-row: 1 / 3;
    grid-column: 1;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 0.65rem;
    background: color-mix(in srgb, var(--acsi-primary) 11%, var(--acsi-card));
    color: var(--acsi-primary);
}

.acsi-affiliation-doc-grid a > span::before {
    width: 1.15rem;
    height: 1.15rem;
    background: currentColor;
    content: "";
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6M14 2v5a1 1 0 0 0 1 1h5m-6 12 2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6M14 2v5a1 1 0 0 0 1 1h5m-6 12 2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acsi-affiliation-doc-grid a::after {
    grid-row: 1 / 3;
    grid-column: 3;
    align-self: center;
    color: var(--acsi-muted);
    content: "↗";
    font-size: 1rem;
    transition: color 160ms ease, transform 160ms ease;
}

.acsi-affiliation-doc-grid a:hover::after {
    transform: translate(2px, -2px);
    color: var(--acsi-primary);
}

.acsi-affiliation-doc-grid strong {
    grid-row: 1;
    grid-column: 2;
    font-size: 0.8rem;
    line-height: 1.35;
}

.acsi-affiliation-doc-grid small {
    grid-row: 2;
    grid-column: 2;
    color: var(--acsi-muted);
    font-size: 0.68rem;
}

.acsi-affiliation-numbered-list {
    display: grid;
    gap: 0.55rem;
    margin-top: 1rem;
}

.acsi-affiliation-numbered-list > div {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    gap: 0 0.6rem;
    padding: 0.8rem;
    border: 1px solid color-mix(in srgb, var(--acsi-primary) 16%, var(--acsi-border));
    border-radius: 0.85rem;
    background: color-mix(in srgb, var(--acsi-primary) 5%, var(--acsi-card));
}

.acsi-affiliation-numbered-list > div > span {
    display: grid;
    grid-row: 1 / 3;
    width: 1.8rem;
    height: 1.8rem;
    place-items: center;
    border-radius: 999px;
    background: var(--acsi-primary);
    color: #ffffff;
    font-size: 0.7rem;
    font-weight: 800;
}

.acsi-affiliation-numbered-list h3 {
    margin: 0;
    font-size: 0.88rem;
}

.acsi-affiliation-numbered-list p {
    margin: 0.25rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.76rem;
}

/* Gutenberg wraps the numbered badge in a paragraph. Place that wrapper in
 * the narrow column so the description always occupies the full text column. */
.acsi-affiliation-numbered-list > div > p:first-child:has(> span) {
    grid-row: 1 / 3;
    grid-column: 1;
    align-self: start;
    margin: 0;
    line-height: 0;
}

.acsi-affiliation-numbered-list > div > p:first-child > span {
    display: grid;
    width: 1.8rem;
    height: 1.8rem;
    place-items: center;
    border-radius: 999px;
    background: var(--acsi-primary);
    color: #ffffff;
    font-size: 0.7rem;
    font-weight: 800;
    line-height: 1;
}

.acsi-affiliation-numbered-list > div > h3 {
    grid-row: 1;
    grid-column: 2;
}

.acsi-affiliation-numbered-list > div > p:last-child {
    grid-row: 2;
    grid-column: 2;
}

.acsi-affiliation-numbered-list--purple {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
}

.acsi-affiliation-numbered-list--purple > div {
    border-color: color-mix(in srgb, #6366f1 18%, var(--acsi-border));
    background: color-mix(in srgb, #6366f1 6%, var(--acsi-card));
}

.acsi-affiliation-numbered-list--purple > div > span {
    background: #6366f1;
}

.acsi-affiliation-numbered-list--purple > div > p:first-child > span {
    background: #6366f1;
}

.acsi-affiliation-runts-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
}

.acsi-affiliation-runts-grid article {
    padding: 1rem;
    border: 1px solid color-mix(in srgb, #06b6d4 18%, var(--acsi-border));
    border-radius: 0.85rem;
    background: color-mix(in srgb, #06b6d4 6%, var(--acsi-card));
}

.acsi-affiliation-runts-grid h3 {
    margin: 0;
    font-size: 0.95rem;
}

.acsi-affiliation-runts-grid p {
    margin: 0.45rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.79rem;
}

.acsi-affiliation-list-title {
    margin: 1.4rem 0 0.7rem;
    font-size: 0.78rem;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.acsi-affiliation-requirement-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.6rem;
    margin-top: 1rem;
}

.acsi-affiliation-requirement-grid > div {
    padding: 0.85rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.75rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-muted);
    font-size: 0.74rem;
}

.acsi-affiliation-tesseramento {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    gap: 1.4rem;
}

.acsi-affiliation-tesseramento > div:first-child > p:not(.acsi-eyebrow) {
    color: var(--acsi-muted);
}

.acsi-affiliation-tesseramento > div:first-child {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    align-content: start;
    column-gap: 1rem;
}

.acsi-affiliation-tesseramento > div:first-child > p:first-child:has(.acsi-affiliation-panel__icon) {
    grid-row: 1 / 3;
    grid-column: 1;
    align-self: start;
    margin: 0;
    line-height: 0;
}

.acsi-affiliation-tesseramento > div:first-child > .acsi-eyebrow {
    grid-row: 1;
    grid-column: 2;
    align-self: end;
    margin: 0;
}

.acsi-affiliation-tesseramento > div:first-child > h2 {
    grid-row: 2;
    grid-column: 2;
    margin-top: 0.35rem;
}

.acsi-affiliation-tesseramento > div:first-child > :not(p:first-child, .acsi-eyebrow, h2) {
    grid-column: 1 / -1;
}

.acsi-affiliation-tesseramento ul {
    display: grid;
    gap: 0.5rem;
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
}

.acsi-affiliation-tesseramento li {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    color: var(--acsi-muted);
    font-size: 0.82rem;
}

.acsi-affiliation-tesseramento li svg {
    flex: 0 0 1.05rem;
    width: 1.05rem;
    height: 1.05rem;
    margin-top: 0.15rem;
    color: var(--acsi-primary);
}

.acsi-affiliation-expiry-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
}

.acsi-affiliation-expiry-grid article {
    padding: 1rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.9rem;
    background: var(--acsi-card-muted);
}

.acsi-affiliation-expiry-grid article > p:first-child {
    margin: 0;
    color: var(--acsi-muted);
    font-size: 0.67rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.acsi-affiliation-expiry-grid h3 {
    margin: 0.4rem 0 0;
    font-size: 1.2rem;
}

.acsi-affiliation-expiry-grid article > p:last-child {
    margin: 0.6rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.78rem;
}

@media (max-width: 1120px) {
    .acsi-affiliation-benefits {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .acsi-affiliation-requirement-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1023px) {
    .acsi-affiliation-doc-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 840px) {
    .acsi-affiliation-subhero,
    .acsi-affiliation-panel__heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .acsi-affiliation-subhero__actions {
        flex-direction: row;
    }

    .acsi-affiliation-card-grid,
    .acsi-affiliation-tier-grid,
    .acsi-affiliation-steps,
    .acsi-affiliation-runts-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-affiliation-member-benefits,
    .acsi-affiliation-cta-grid,
    .acsi-affiliation-two-columns,
    .acsi-affiliation-tesseramento {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 620px) {
    .acsi-affiliation-hero {
        min-height: 600px;
    }

    .acsi-affiliation-hero__copy {
        right: 1.4rem;
        left: 1.4rem;
    }

    .acsi-affiliation-benefits,
    .acsi-affiliation-doc-grid,
    .acsi-affiliation-requirement-grid,
    .acsi-affiliation-expiry-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-affiliation-subhero {
        min-height: 470px;
        padding: 1.5rem;
    }

    .acsi-affiliation-subhero__actions,
    .acsi-affiliation-subhero__actions .acsi-button {
        width: 100%;
    }

    .acsi-affiliation-numbered-list--purple {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-affiliation-support > .acsi-button + .acsi-button {
        margin-left: 0;
    }
}

/* Native contact, territorial committee and sector routes */
.acsi-contact-main {
    padding: 1.4rem 0 5rem;
}

.acsi-contact-main [hidden] {
    display: none !important;
}

.acsi-contact-main svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-contact-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    min-height: 270px;
    gap: 2rem;
    padding: clamp(1.6rem, 4vw, 3.5rem);
    overflow: hidden;
    border-radius: 1.5rem;
    background:
        radial-gradient(circle at 88% 20%, rgba(56, 189, 248, 0.28), transparent 28%),
        linear-gradient(135deg, #082f49 0%, #0054a6 52%, #0369a1 100%);
    color: #ffffff;
    box-shadow: var(--acsi-shadow);
}

.acsi-contact-hero .acsi-eyebrow,
.acsi-sector-detail__hero .acsi-eyebrow {
    color: #bae6fd;
}

.acsi-contact-hero h1,
.acsi-sector-detail__hero h1 {
    max-width: 900px;
    margin: 0.35rem 0 0;
    color: #ffffff;
    font-size: clamp(2rem, 5vw, 4.5rem);
    letter-spacing: -0.045em;
    line-height: 0.98;
}

.acsi-contact-hero > div:first-child > p:last-child {
    max-width: 780px;
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: clamp(0.88rem, 1.3vw, 1.04rem);
}

.acsi-contact-hero__facts {
    display: grid;
    flex: 0 0 min(380px, 34%);
    gap: 0.55rem;
}

.acsi-contact-hero__facts > a,
.acsi-contact-hero__facts > span {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 0.8rem;
    background: rgba(255, 255, 255, 0.1);
    font-size: 0.76rem;
    font-weight: 700;
    backdrop-filter: blur(12px);
}

.acsi-contact-hero__facts svg,
.acsi-contact-hero__stats svg {
    width: 1.1rem;
    height: 1.1rem;
}

.acsi-contact-hero__stats {
    display: flex;
    gap: 0.7rem;
}

.acsi-contact-hero__stats span {
    display: grid;
    min-width: 105px;
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.1);
    font-size: 0.68rem;
    font-weight: 750;
    letter-spacing: 0.1em;
    text-align: center;
    text-transform: uppercase;
    backdrop-filter: blur(12px);
}

.acsi-contact-hero__stats strong {
    font-size: 2rem;
    letter-spacing: -0.04em;
    line-height: 1;
}

.acsi-contact-office-grid,
.acsi-contact-message-grid,
.acsi-sector-detail__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.acsi-contact-panel,
.acsi-contact-map-card,
.acsi-committees-controls {
    padding: clamp(1.2rem, 2.8vw, 2rem);
    border: 1px solid var(--acsi-border);
    border-radius: 1.25rem;
    background: var(--acsi-card);
    box-shadow: 0 18px 45px -38px rgba(15, 23, 42, 0.55);
}

.acsi-contact-panel h2,
.acsi-contact-map-card h2,
.acsi-contact-section h2,
.acsi-committees-controls h2 {
    margin: 0.35rem 0 0;
    font-size: clamp(1.25rem, 2.5vw, 2rem);
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.acsi-contact-panel > p:not(.acsi-eyebrow),
.acsi-contact-map-card p,
.acsi-contact-section__heading > p:last-child {
    color: var(--acsi-muted);
}

:is(
    .acsi-contact-office-grid > .acsi-contact-panel:first-child,
    .acsi-contact-secretary
)::before {
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    margin-bottom: 0.9rem;
    place-items: center;
    border-radius: 0.8rem;
    background-color: color-mix(in srgb, var(--acsi-primary) 10%, var(--acsi-card));
    background-position: center;
    background-repeat: no-repeat;
    background-size: 1.25rem;
    content: "";
}

.acsi-contact-office-grid > .acsi-contact-panel:first-child::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230ea5e9' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}

.acsi-contact-secretary::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230ea5e9' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E");
}

.acsi-contact-addresses {
    display: grid;
    gap: 0.55rem;
    margin: 1.2rem 0;
}

.acsi-contact-addresses > div {
    display: grid;
    gap: 0.1rem;
    padding: 0.8rem 0.9rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.8rem;
    background: var(--acsi-card-muted);
}

.acsi-contact-addresses strong,
.acsi-contact-quick-grid small {
    color: var(--acsi-muted);
    font-size: 0.66rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.acsi-contact-addresses span {
    font-size: 0.82rem;
    font-weight: 650;
}

.acsi-contact-quick-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin-bottom: 1rem;
}

.acsi-contact-quick-grid > a,
.acsi-contact-quick-grid > span {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.8rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.8rem;
}

.acsi-contact-quick-grid svg {
    width: 1.05rem;
    height: 1.05rem;
    margin-top: 0.15rem;
    color: var(--acsi-primary);
}

.acsi-contact-quick-grid > * > span {
    display: grid;
}

.acsi-contact-quick-grid strong,
.acsi-contact-quick-grid em {
    font-size: 0.76rem;
    font-style: normal;
}

.acsi-contact-map-card {
    padding: 0;
    overflow: hidden;
}

.acsi-contact-map-card iframe {
    display: block;
    width: 100%;
    height: 330px;
    border: 0;
}

.acsi-contact-map-card > div {
    padding: 1.2rem;
}

.acsi-contact-map-card > div > p:not(.acsi-eyebrow, .acsi-contact-location-pill) {
    margin: 0.55rem 0 1rem;
    font-size: 0.8rem;
}

.acsi-contact-section {
    padding: clamp(2.5rem, 6vw, 5rem) 0;
}

.acsi-contact-section__heading {
    max-width: 850px;
    margin-bottom: 1.2rem;
}

.acsi-contact-section__heading > p:last-child {
    margin: 0.7rem 0 0;
}

.acsi-contact-email-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.6rem;
}

.acsi-contact-email-grid > a {
    display: grid;
    grid-template-columns: 2.3rem minmax(0, 1fr) 1rem;
    align-items: center;
    gap: 0.7rem;
    padding: 0.8rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.85rem;
    background: var(--acsi-card);
    transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.acsi-contact-email-grid > a:hover {
    transform: translateY(-2px);
    border-color: var(--acsi-primary);
    box-shadow: var(--acsi-shadow);
}

.acsi-contact-email-grid > a > span:first-child {
    display: grid;
    width: 2.3rem;
    height: 2.3rem;
    place-items: center;
    border-radius: 0.65rem;
    background: color-mix(in srgb, var(--acsi-primary) 9%, var(--acsi-card));
    color: var(--acsi-primary);
}

.acsi-contact-email-grid svg {
    width: 1rem;
    height: 1rem;
}

.acsi-contact-email-grid > a > span:nth-child(2) {
    display: grid;
}

.acsi-contact-email-grid strong {
    font-size: 0.79rem;
}

.acsi-contact-email-grid small {
    color: var(--acsi-primary);
    font-size: 0.7rem;
}

.acsi-contact-message-grid {
    align-items: stretch;
}

.acsi-contact-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
    margin-top: 1.2rem;
}

.acsi-contact-form label {
    display: grid;
    gap: 0.3rem;
    color: var(--acsi-muted);
    font-size: 0.7rem;
    font-weight: 700;
}

.acsi-contact-form label:nth-child(4) {
    grid-column: 1 / -1;
}

.acsi-contact-form input,
.acsi-contact-form textarea,
.acsi-contact-field input,
.acsi-contact-field select {
    width: 100%;
    border: 1px solid var(--acsi-border);
    border-radius: 0.7rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-foreground);
}

.acsi-contact-form input,
.acsi-contact-field input,
.acsi-contact-field select {
    min-height: 44px;
    padding: 0.65rem 0.8rem;
}

.acsi-contact-form textarea {
    min-height: 120px;
    padding: 0.65rem 0.8rem;
    resize: vertical;
}

.acsi-contact-form button {
    width: fit-content;
}

.acsi-contact-secretary {
    display: flex;
    flex-direction: column;
    justify-content: center;
    background:
        radial-gradient(circle at 90% 10%, color-mix(in srgb, var(--acsi-primary) 18%, transparent), transparent 35%),
        var(--acsi-card);
}

.acsi-contact-secretary .acsi-button {
    width: fit-content;
}

.acsi-committees-intro {
    display: grid;
    grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr);
    gap: 1rem;
    margin-top: 1rem;
}

.acsi-committees-map {
    display: flex;
    min-height: 500px;
    align-items: center;
    flex-direction: column;
    padding: 1.5rem;
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: 1.25rem;
    background: linear-gradient(145deg, #e0f2fe, #f8fafc);
}

.acsi-committees-map h2 {
    width: 100%;
    margin: 0;
    color: var(--acsi-foreground);
    font-size: 1.125rem;
    line-height: 1.4;
}

.acsi-committees-map__label {
    min-height: 1.5rem;
    margin: 0.75rem 0 0;
    color: #075985;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.5rem;
    text-align: center;
}

.acsi-committees-map__canvas {
    display: grid;
    width: 100%;
    flex: 1;
    place-items: center;
}

.acsi-committees-map__help {
    max-width: 28rem;
    margin: 0.75rem auto 0;
    color: var(--acsi-muted);
    font-size: 0.75rem;
    line-height: 1.5;
    text-align: center;
}

html[data-theme="dark"] .acsi-committees-map {
    background: linear-gradient(145deg, #0c4a6e, #0f172a);
}

.acsi-committees-map img,
.acsi-italy-map {
    width: min(100%, 390px);
    max-height: 460px;
}

.acsi-italy-map {
    height: auto;
    overflow: visible;
    user-select: none;
}

.acsi-italy-map path {
    fill: #4fa3ff;
    stroke: #002b5c;
    stroke-width: 0.5;
    cursor: pointer;
    transition: fill 180ms ease, filter 180ms ease, stroke-width 180ms ease;
}

.acsi-italy-map path:hover,
.acsi-italy-map path:focus,
.acsi-italy-map path.is-active {
    fill: #005bbb;
    outline: none;
}

.acsi-italy-map path:focus-visible {
    filter: drop-shadow(0 0 8px rgba(14, 165, 233, 0.8));
    stroke: #ffffff;
    stroke-width: 2.5;
}

.acsi-italy-map path.is-active {
    filter: drop-shadow(0 5px 8px rgba(2, 43, 92, 0.28));
    stroke: #ffffff;
    stroke-width: 2;
}

html[data-theme="dark"] .acsi-committees-map__label {
    color: #bae6fd;
}

.acsi-committees-controls {
    align-self: stretch;
}

.acsi-contact-field {
    display: grid;
    gap: 0.35rem;
    margin-top: 0.9rem;
    color: var(--acsi-muted);
    font-size: 0.7rem;
    font-weight: 750;
}

.acsi-contact-search {
    position: relative;
    display: block;
}

.acsi-contact-search > svg {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 0.8rem;
    width: 1rem;
    height: 1rem;
    color: var(--acsi-muted);
    transform: translateY(-50%);
}

.acsi-contact-search input {
    padding-left: 2.35rem;
}

.acsi-region-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 1rem;
}

.acsi-region-buttons button {
    padding: 0.36rem 0.55rem;
    border: 1px solid var(--acsi-border);
    border-radius: 999px;
    background: var(--acsi-card-muted);
    color: var(--acsi-muted);
    font-size: 0.62rem;
    font-weight: 700;
}

.acsi-region-buttons button:hover,
.acsi-region-buttons button.is-active {
    border-color: var(--acsi-primary);
    background: var(--acsi-primary);
    color: #ffffff;
}

.acsi-committee-regions,
.acsi-committees-intro > .acsi-contact-empty {
    grid-column: 1 / -1;
}

.acsi-committee-region {
    scroll-margin-top: calc(var(--acsi-header-height) + 1rem);
    padding: 1.2rem 0 2.5rem;
    border-top: 1px solid var(--acsi-border);
}

.acsi-committee-region__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.8rem;
}

.acsi-committee-region__heading h2 {
    margin: 0.25rem 0 0;
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    letter-spacing: -0.035em;
}

.acsi-committee-region__heading > span {
    color: var(--acsi-muted);
    font-size: 0.68rem;
    font-weight: 700;
}

.acsi-committee-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
    margin-top: 0.7rem;
}

.acsi-committee-card {
    padding: 1rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.95rem;
    background: var(--acsi-card);
}

.acsi-committee-card--regional {
    border-color: color-mix(in srgb, var(--acsi-primary) 35%, var(--acsi-border));
    background: color-mix(in srgb, var(--acsi-primary) 5%, var(--acsi-card));
}

.acsi-committee-card__badge {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--acsi-primary);
    font-size: 0.61rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.acsi-committee-card__badge svg {
    width: 0.85rem;
    height: 0.85rem;
}

.acsi-committee-card h3 {
    margin: 0.55rem 0 0;
    font-size: 0.92rem;
    line-height: 1.25;
}

.acsi-committee-card > p {
    margin: 0.35rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.7rem;
}

.acsi-committee-card ul {
    display: grid;
    gap: 0.45rem;
    margin: 0.85rem 0 0;
    padding: 0;
    list-style: none;
}

.acsi-committee-card li {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    color: var(--acsi-muted);
    font-size: 0.68rem;
    line-height: 1.4;
}

.acsi-committee-card li svg {
    flex: 0 0 0.9rem;
    width: 0.9rem;
    height: 0.9rem;
    margin-top: 0.12rem;
    color: var(--acsi-primary);
}

.acsi-committee-card li a {
    color: var(--acsi-primary);
    overflow-wrap: anywhere;
}

.acsi-committee-card li a:hover {
    text-decoration: underline;
}

.acsi-committee-card__note {
    display: block;
    margin-top: 0.7rem;
    padding-top: 0.7rem;
    border-top: 1px solid var(--acsi-border);
    color: var(--acsi-muted);
    font-size: 0.65rem;
}

.acsi-contact-empty {
    padding: 2rem;
    border: 1px dashed var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-muted);
    text-align: center;
}

.acsi-contact-empty h1 {
    color: var(--acsi-foreground);
}

.acsi-sector-directory {
    margin-top: 1rem;
}

.acsi-sector-search {
    max-width: 720px;
    margin: 0 auto 1rem;
}

.acsi-sector-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
}

.acsi-sector-card {
    position: relative;
    display: flex;
    min-height: 285px;
    flex-direction: column;
    padding: 1.5rem;
    overflow: hidden;
    border-radius: 1.1rem;
    color: #ffffff;
    isolation: isolate;
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.acsi-theme a.acsi-sector-card {
    color: #ffffff;
}

.acsi-sector-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 22px 48px -25px rgba(15, 23, 42, 0.75);
}

.acsi-sector-card--tone-0 { background: linear-gradient(135deg, #b45309, #e11d48); }
.acsi-sector-card--tone-1 { background: linear-gradient(135deg, #0369a1, #4338ca); }
.acsi-sector-card--tone-2 { background: linear-gradient(135deg, #be123c, #ea580c); }
.acsi-sector-card--tone-3 { background: linear-gradient(135deg, #047857, #0369a1); }
.acsi-sector-card--tone-4 { background: linear-gradient(135deg, #6d28d9, #be185d); }
.acsi-sector-card--tone-5 { background: linear-gradient(135deg, #0f172a, #0369a1); }

.acsi-sector-card::before,
.acsi-sector-detail__hero::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: radial-gradient(circle at 85% 15%, rgba(255, 255, 255, 0.24), transparent 34%);
    content: "";
}

.acsi-sector-card__label {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.acsi-sector-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.35rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.acsi-sector-card h2 {
    max-width: 82%;
    margin: 0;
    font-size: clamp(1.2rem, 2.2vw, 1.8rem);
    letter-spacing: -0.03em;
    line-height: 1.08;
}

.acsi-sector-card > p {
    max-width: 82%;
    margin: 0.45rem 0 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.75rem;
}

.acsi-sector-card > small {
    max-width: 80%;
    margin-top: auto;
    padding-top: 1.2rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.63rem;
}

.acsi-sector-card__link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.8rem;
    font-size: 0.72rem;
    font-weight: 750;
}

.acsi-sector-card__link svg {
    width: 1rem;
    height: 1rem;
}

.acsi-sector-card > img {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    width: 3.5rem;
    height: 3.5rem;
    object-fit: contain;
    opacity: 0.88;
    filter: brightness(0) invert(1) drop-shadow(0 8px 10px rgba(0, 0, 0, 0.2));
}

.acsi-sector-detail {
    margin-top: 1rem;
}

.acsi-sector-detail__hero {
    position: relative;
    min-height: 330px;
    padding: clamp(2rem, 5vw, 4.5rem);
    overflow: hidden;
    border-radius: 1.4rem;
    color: #ffffff;
    isolation: isolate;
}

.acsi-sector-detail__hero h1 {
    max-width: 1000px;
    margin: 0.55rem 0 0;
    font-size: clamp(2.15rem, 4.5vw, 4rem);
}

.acsi-sector-detail__description {
    max-width: 780px;
    margin: 0.85rem 0 0;
    color: rgba(255, 255, 255, 0.86);
    font-size: 1rem;
    line-height: 1.65;
}

.acsi-sector-detail__subtitle {
    margin: 0.8rem 0 0;
    font-weight: 750;
}

.acsi-sector-detail__website {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 750;
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, 0.55);
    text-decoration-thickness: 2px;
    text-underline-offset: 0.3rem;
}

.acsi-sector-detail__website svg {
    width: 1rem;
    height: 1rem;
}

.acsi-sector-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
    align-items: start;
    gap: 2rem;
    margin-top: 2.5rem;
}

.acsi-sector-detail__main,
.acsi-sector-detail__sidebar {
    display: grid;
    gap: 1.5rem;
}

.acsi-sector-panel {
    min-width: 0;
    padding: 1.5rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1.35rem;
    background: var(--acsi-card);
    box-shadow: 0 16px 38px -30px rgba(2, 8, 23, 0.55);
}

.acsi-sector-panel h2,
.acsi-sector-panel h3,
.acsi-sector-panel p {
    margin-top: 0;
}

.acsi-sector-panel__heading {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.acsi-sector-panel__heading > span {
    display: grid;
    flex: 0 0 2.65rem;
    width: 2.65rem;
    height: 2.65rem;
    place-items: center;
    border-radius: 0.75rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-foreground);
}

.acsi-sector-panel__heading > span svg {
    width: 1.15rem;
    height: 1.15rem;
}

.acsi-sector-panel__heading .acsi-eyebrow {
    margin-bottom: 0.12rem;
    color: var(--acsi-muted);
}

.acsi-sector-panel__heading h2 {
    margin: 0;
    font-size: 1.15rem;
}

.acsi-sector-panel__all {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: auto;
    color: var(--acsi-primary);
    font-size: 0.68rem;
    font-weight: 800;
    white-space: nowrap;
}

.acsi-sector-panel__all svg {
    width: 0.9rem;
    height: 0.9rem;
}

.acsi-sector-panel__heading--blue > span,
.acsi-sector-panel__heading--blue .acsi-eyebrow {
    color: #38bdf8;
}

.acsi-sector-panel__heading--green > span,
.acsi-sector-panel__heading--green .acsi-eyebrow {
    color: #34d399;
}

.acsi-sector-news-grid,
.acsi-sector-event-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.acsi-sector-news-card,
.acsi-sector-event-card {
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card-muted);
}

.acsi-sector-news-card__image {
    display: block;
    aspect-ratio: 16 / 8;
    overflow: hidden;
}

.acsi-sector-news-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 220ms ease;
}

.acsi-sector-news-card:hover .acsi-sector-news-card__image img {
    transform: scale(1.025);
}

.acsi-sector-news-card > div {
    padding: 1rem;
}

.acsi-sector-news-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    color: var(--acsi-muted);
    font-size: 0.62rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.acsi-sector-news-card__meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.acsi-sector-news-card__meta span::before {
    width: 0.38rem;
    height: 0.38rem;
    border-radius: 50%;
    background: #34d399;
    content: "";
}

.acsi-sector-news-card h3,
.acsi-sector-event-card h3 {
    margin: 0.65rem 0 0;
    color: var(--acsi-foreground);
    font-size: 1rem;
    line-height: 1.3;
}

.acsi-sector-news-card h3 a,
.acsi-sector-event-card h3 a {
    color: inherit;
}

.acsi-sector-news-card > div > p:not(.acsi-sector-news-card__meta) {
    margin: 0.55rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.78rem;
    line-height: 1.55;
}

.acsi-sector-news-card .acsi-text-link {
    margin-top: 0.8rem;
}

.acsi-sector-event-card {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    padding: 1rem;
}

.acsi-sector-event-card__date {
    margin-bottom: 0;
    color: var(--acsi-primary);
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.acsi-sector-event-card__location {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0.65rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.75rem;
}

.acsi-sector-event-card__location svg {
    width: 0.9rem;
    height: 0.9rem;
}

.acsi-sector-event-card .acsi-button {
    margin-top: 1rem;
    padding: 0.65rem 1rem;
    font-size: 0.65rem;
}

.acsi-sector-contacts,
.acsi-sector-resources {
    display: grid;
    gap: 0.6rem;
    margin-top: 1rem;
}

.acsi-sector-contacts > div,
.acsi-sector-resources > a {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.8rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.8rem;
    background: var(--acsi-card-muted);
}

.acsi-sector-contacts > div {
    padding: 0.85rem 1rem;
}

.acsi-sector-contacts > div > p {
    width: 100%;
}

.acsi-sector-contacts a {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.35rem;
    color: var(--acsi-primary);
    font-size: 0.68rem;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.acsi-sector-contacts a svg {
    width: 0.8rem;
    height: 0.8rem;
}

.acsi-sector-official-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: var(--acsi-primary);
    font-size: 0.77rem;
    font-weight: 750;
    overflow-wrap: anywhere;
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, var(--acsi-primary) 45%, transparent);
    text-decoration-thickness: 2px;
    text-underline-offset: 0.25rem;
}

.acsi-sector-official-link svg {
    flex: 0 0 0.9rem;
    width: 0.9rem;
    height: 0.9rem;
}

.acsi-sector-resources > a {
    align-items: center;
    color: var(--acsi-foreground);
    font-size: 0.75rem;
}

.acsi-sector-resources > a > span {
    flex: 0 0 0.5rem;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: #34d399;
}

.acsi-sector-panel--empty > p:last-child {
    margin-bottom: 0;
    color: var(--acsi-muted);
}

.acsi-sector-contacts > div > span,
.acsi-sector-resources > a > svg:first-child {
    display: grid;
    flex: 0 0 2rem;
    width: 2rem;
    height: 2rem;
    padding: 0.45rem;
    place-items: center;
    border-radius: 0.6rem;
    background: color-mix(in srgb, var(--acsi-primary) 10%, var(--acsi-card));
    color: var(--acsi-primary);
}

.acsi-sector-contacts svg {
    width: 1rem;
    height: 1rem;
}

.acsi-sector-contacts p,
.acsi-sector-resources span {
    display: grid;
    min-width: 0;
    margin: 0;
}

.acsi-sector-contacts small,
.acsi-sector-resources small {
    color: var(--acsi-muted);
    font-size: 0.64rem;
    font-weight: 750;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.acsi-sector-contacts strong,
.acsi-sector-resources strong {
    margin-top: 0.15rem;
    font-size: 0.78rem;
    overflow-wrap: anywhere;
}

.acsi-sector-resources > a > svg:last-child {
    width: 1rem;
    height: 1rem;
    margin: 0.5rem 0 0 auto;
    color: var(--acsi-primary);
}

@media (max-width: 1080px) {
    .acsi-committee-grid,
    .acsi-sector-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 840px) {
    .acsi-contact-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .acsi-contact-hero__facts {
        width: 100%;
        flex-basis: auto;
    }

    .acsi-contact-office-grid,
    .acsi-contact-message-grid,
    .acsi-sector-detail__grid,
    .acsi-sector-detail__layout,
    .acsi-committees-intro {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-contact-email-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-committees-map {
        min-height: 350px;
    }

    .acsi-committee-regions,
    .acsi-committees-intro > .acsi-contact-empty {
        grid-column: auto;
    }
}

@media (max-width: 620px) {
    .acsi-contact-main {
        padding-top: 0.7rem;
    }

    .acsi-contact-hero {
        min-height: 380px;
        padding: 1.35rem;
    }

    .acsi-contact-hero__stats {
        width: 100%;
    }

    .acsi-contact-hero__stats span {
        flex: 1 1 0;
        min-width: 0;
    }

    .acsi-contact-quick-grid,
    .acsi-contact-form,
    .acsi-committee-grid,
    .acsi-sector-grid,
    .acsi-sector-news-grid,
    .acsi-sector-event-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-contact-form label:nth-child(4) {
        grid-column: auto;
    }

    .acsi-contact-email-grid strong,
    .acsi-contact-email-grid small {
        overflow-wrap: anywhere;
    }

    .acsi-committees-map {
        display: none;
    }

    .acsi-region-buttons {
        max-height: none;
        overflow-y: visible;
    }

    .acsi-committee-region__heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .acsi-sector-card {
        min-height: 260px;
    }

    .acsi-sector-detail__hero {
        min-height: 360px;
        padding: 1.5rem;
    }

    .acsi-sector-panel__heading {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .acsi-sector-panel__all {
        width: 100%;
        margin-left: 3.4rem;
    }
}

/* Institutional pages */
.acsi-institutional-main,
.acsi-convention-main {
    padding: 1.4rem 0 5rem;
}

.acsi-institutional-main [hidden],
.acsi-convention-main [hidden] {
    display: none !important;
}

.acsi-institutional-main svg,
.acsi-convention-main svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-institutional-hero,
.acsi-convention-hero {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    min-height: 300px;
    gap: 2rem;
    padding: clamp(1.6rem, 4vw, 3.6rem);
    overflow: hidden;
    border-radius: 1.5rem;
    background:
        radial-gradient(circle at 88% 14%, rgba(255, 255, 255, 0.2), transparent 26%),
        linear-gradient(135deg, #082f49, #075985 52%, #0284c7);
    color: #ffffff;
    box-shadow: var(--acsi-shadow);
}

.acsi-institutional-hero::after,
.acsi-convention-hero::after {
    position: absolute;
    right: -8rem;
    bottom: -11rem;
    width: 28rem;
    height: 28rem;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 999px;
    content: "";
}

.acsi-institutional-hero > div,
.acsi-convention-hero > div {
    position: relative;
    z-index: 1;
}

.acsi-institutional-hero .acsi-eyebrow,
.acsi-convention-hero .acsi-eyebrow,
.acsi-institutional-panel--dark .acsi-eyebrow,
.acsi-institutional-panel--blue .acsi-eyebrow,
.acsi-convention-panel--dark .acsi-eyebrow {
    color: #7dd3fc;
}

.acsi-institutional-hero h1,
.acsi-convention-hero h1 {
    max-width: 950px;
    margin: 0.35rem 0 0;
    font-size: clamp(2rem, 5vw, 4.4rem);
    letter-spacing: -0.05em;
    line-height: 0.98;
}

.acsi-institutional-hero > div > p:last-child,
.acsi-convention-hero > div > p:last-child,
.acsi-convention-hero__intro {
    max-width: 820px;
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, 0.82);
}

.acsi-convention-hero__intro > :first-child {
    margin-top: 0;
}

.acsi-convention-hero__intro > :last-child {
    margin-bottom: 0;
}

.acsi-institutional-hero__year {
    position: relative;
    z-index: 1;
    display: grid;
    flex: 0 0 160px;
    padding: 1.3rem;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.11);
    font-size: 2.3rem;
    font-weight: 850;
    letter-spacing: -0.04em;
    line-height: 1;
    text-align: center;
    backdrop-filter: blur(12px);
}

.acsi-institutional-hero__year small {
    margin-top: 0.45rem;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.acsi-institutional-two-columns,
.acsi-transparency-grid,
.acsi-convention-proposal-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 1rem;
    margin-top: 1rem;
}

.acsi-institutional-panel,
.acsi-convention-panel,
.acsi-convention-directory {
    padding: clamp(1.2rem, 2.8vw, 2rem);
    border: 1px solid var(--acsi-border);
    border-radius: 1.2rem;
    background: var(--acsi-card);
    box-shadow: 0 18px 45px -38px rgba(15, 23, 42, 0.55);
}

.acsi-institutional-panel h2,
.acsi-convention-panel h2,
.acsi-convention-directory h2 {
    margin: 0.35rem 0 0;
    font-size: clamp(1.2rem, 2.5vw, 2rem);
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.acsi-institutional-panel > p:not(.acsi-eyebrow),
.acsi-convention-panel > p:not(.acsi-eyebrow),
.acsi-convention-directory__heading > p:last-child {
    color: var(--acsi-muted);
}

.acsi-institutional-panel--dark,
.acsi-convention-panel--dark {
    border-color: #1e293b;
    background:
        radial-gradient(circle at 90% 10%, rgba(56, 189, 248, 0.14), transparent 30%),
        linear-gradient(145deg, #0f172a, #020617);
    color: #ffffff;
}

.acsi-institutional-panel--dark > p:not(.acsi-eyebrow),
.acsi-convention-panel--dark > p:not(.acsi-eyebrow) {
    color: rgba(255, 255, 255, 0.8);
}

.acsi-institutional-panel--blue {
    border-color: #0284c7;
    background: linear-gradient(135deg, #0369a1, #1d4ed8);
    color: #ffffff;
}

.acsi-institutional-panel--blue > p:not(.acsi-eyebrow) {
    color: rgba(255, 255, 255, 0.82);
}

.acsi-institutional-icon {
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    margin-bottom: 0.9rem;
    place-items: center;
    border-radius: 0.8rem;
    background: color-mix(in srgb, var(--acsi-primary) 10%, var(--acsi-card));
    color: var(--acsi-primary);
}

.acsi-institutional-icon--green {
    background: color-mix(in srgb, #10b981 12%, var(--acsi-card));
    color: #059669;
}

.acsi-institutional-icon--purple {
    background: color-mix(in srgb, #7c3aed 12%, var(--acsi-card));
    color: #7c3aed;
}

.acsi-institutional-icon svg {
    width: 1.2rem;
    height: 1.2rem;
}

.acsi-institutional-copy {
    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
    color: var(--acsi-muted);
    font-size: 0.82rem;
}

.acsi-institutional-copy p {
    margin: 0;
}

.acsi-recognition-list {
    display: grid;
    gap: 0.55rem;
    margin-top: 1rem;
}

.acsi-recognition-list > div {
    padding: 0.8rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.75rem;
    background: var(--acsi-card-muted);
}

.acsi-recognition-list strong {
    font-size: 0.78rem;
}

.acsi-recognition-list p {
    margin: 0.3rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.7rem;
}

.acsi-institutional-checklist,
.acsi-institutional-panel ul,
.acsi-convention-panel ul,
.acsi-convention-panel ol {
    display: grid;
    gap: 0.55rem;
    margin: 1rem 0 0;
    padding-left: 1.1rem;
    color: var(--acsi-muted);
    font-size: 0.78rem;
}

.acsi-institutional-checklist {
    padding: 0;
    list-style: none;
}

.acsi-institutional-checklist li {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 0.7rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.7rem;
    background: var(--acsi-card-muted);
}

.acsi-institutional-checklist li > span {
    flex: 0 0 0.55rem;
    width: 0.55rem;
    height: 0.55rem;
    margin-top: 0.35rem;
    border-radius: 999px;
    background: #7c3aed;
}

.acsi-institutional-panel--dark ul,
.acsi-convention-panel--dark ul {
    color: rgba(255, 255, 255, 0.82);
}

.acsi-institutional-feature-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin: 1rem 0;
}

.acsi-institutional-feature-grid > div {
    padding: 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.75rem;
    background: rgba(255, 255, 255, 0.05);
}

.acsi-institutional-feature-grid strong {
    font-size: 0.72rem;
    text-transform: uppercase;
}

.acsi-institutional-feature-grid p {
    margin: 0.35rem 0 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.7rem;
}

.acsi-leadership-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
    margin-top: 1rem;
}

.acsi-leadership-grid article {
    padding: 1.2rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card);
}

.acsi-leadership-grid article > span {
    display: grid;
    width: 2.3rem;
    height: 2.3rem;
    margin-bottom: 1rem;
    place-items: center;
    border-radius: 0.7rem;
    background: color-mix(in srgb, var(--acsi-primary) 10%, var(--acsi-card));
    color: var(--acsi-primary);
}

.acsi-leadership-grid svg {
    width: 1.1rem;
    height: 1.1rem;
}

.acsi-leadership-grid small {
    color: var(--acsi-muted);
    font-size: 0.64rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.acsi-leadership-grid h2 {
    margin: 0.25rem 0 0;
    font-size: 1.1rem;
}

.acsi-name-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
    margin-top: 1rem;
}

.acsi-name-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.acsi-name-grid > span {
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.65rem;
    background: var(--acsi-card-muted);
    font-size: 0.72rem;
    font-weight: 650;
}

.acsi-institutional-panel__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
}

.acsi-institutional-panel__heading > span {
    color: var(--acsi-muted);
    font-size: 0.68rem;
}

.acsi-justice-list {
    display: grid;
    gap: 0.55rem;
    margin-top: 1rem;
}

.acsi-justice-list > div,
.acsi-justice-list > a {
    display: grid;
    gap: 0.2rem;
    padding: 0.75rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.7rem;
    background: var(--acsi-card-muted);
}

.acsi-justice-list small {
    color: var(--acsi-muted);
    font-size: 0.62rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.acsi-justice-list strong,
.acsi-justice-list span,
.acsi-justice-list a {
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.acsi-justice-list div > a,
.acsi-justice-list > a strong {
    color: var(--acsi-primary);
}

/* Struttura nazionale: Gutenberg-native counterpart of the React page. */
.acsi-structure {
    --acsi-structure-blue: #0ea5e9;
    --acsi-structure-indigo: #6366f1;
    --acsi-structure-green: #10b981;
}

.acsi-structure > .acsi-container {
    display: grid;
    gap: clamp(1.5rem, 3vw, 2.5rem);
}

.acsi-structure > .acsi-container > *,
.acsi-structure-leader,
.acsi-structure-panel,
.acsi-structure-heading,
.acsi-structure-heading > * {
    min-width: 0;
}

.acsi-structure .acsi-institutional-hero {
    min-height: 0;
    padding: clamp(2rem, 4vw, 3rem);
    background: linear-gradient(100deg, #075985 0%, #0c4a6e 58%, #1e293b 100%);
}

.acsi-structure .acsi-institutional-hero h1 {
    max-width: 900px;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.05;
}

.acsi-structure .acsi-institutional-hero > div > p:last-child {
    max-width: 880px;
    font-size: 0.9rem;
    line-height: 1.65;
}

.acsi-structure .acsi-leadership-grid,
.acsi-structure .acsi-institutional-two-columns,
.acsi-structure .acsi-institutional-panel,
.acsi-structure .acsi-structure-panel {
    margin-top: 0;
}

.acsi-structure .acsi-leadership-grid {
    gap: 1rem;
}

.acsi-structure-leader,
.acsi-structure-panel {
    padding: clamp(1.2rem, 2.5vw, 1.6rem);
    border: 1px solid var(--acsi-border);
    border-radius: 1.2rem;
    background: var(--acsi-card);
    box-shadow: 0 18px 45px -38px rgba(15, 23, 42, 0.55);
}

.acsi-structure-leader {
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.acsi-structure-leader:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--acsi-structure-blue) 42%, var(--acsi-border));
    box-shadow: 0 18px 42px -30px rgba(14, 165, 233, 0.48);
}

.acsi-structure-leader h2 {
    margin: 1rem 0 0;
    font-size: 1.15rem;
    letter-spacing: -0.02em;
}

.acsi-structure-leader > p:last-child {
    margin: 0.18rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.78rem;
}

.acsi-structure-kicker,
.acsi-structure-heading {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.acsi-structure-kicker .acsi-eyebrow,
.acsi-structure-heading .acsi-eyebrow {
    margin: 0;
}

.acsi-structure-heading > .wp-block-group {
    min-width: 0;
}

.acsi-structure-heading h2 {
    margin: 0.2rem 0 0;
    font-size: clamp(1.25rem, 2.4vw, 1.8rem);
    line-height: 1.12;
    overflow-wrap: anywhere;
}

.acsi-structure-icon-wrap {
    flex: 0 0 auto;
    margin: 0;
}

.acsi-structure-icon {
    --acsi-structure-icon-mask: none;
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    place-items: center;
    border-radius: 0.8rem;
    background: color-mix(in srgb, var(--acsi-structure-blue) 13%, var(--acsi-card));
    color: var(--acsi-structure-blue);
}

.acsi-structure-icon::before {
    width: 1.2rem;
    height: 1.2rem;
    background: currentColor;
    content: "";
    -webkit-mask: var(--acsi-structure-icon-mask) center / contain no-repeat;
    mask: var(--acsi-structure-icon-mask) center / contain no-repeat;
}

.acsi-structure-icon--shield {
    --acsi-structure-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-8 9-4.5-1.5-8-4-8-9V5l8-3 8 3v8Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
}

.acsi-structure-icon--users {
    --acsi-structure-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
}

.acsi-structure-icon--gavel {
    --acsi-structure-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m14 13-8.381 8.38a1 1 0 0 1-3.001-3l8.384-8.381'/%3E%3Cpath d='m16 16 6-6'/%3E%3Cpath d='m21.5 10.5-8-8'/%3E%3Cpath d='m8 8 6-6'/%3E%3Cpath d='m8.5 7.5 8 8'/%3E%3C/svg%3E");
}

.acsi-structure-icon--mail {
    --acsi-structure-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E");
}

.acsi-structure-icon--indigo {
    background: color-mix(in srgb, var(--acsi-structure-indigo) 14%, var(--acsi-card));
    color: var(--acsi-structure-indigo);
}

.acsi-structure-icon--green {
    background: color-mix(in srgb, var(--acsi-structure-green) 14%, var(--acsi-card));
    color: var(--acsi-structure-green);
}

.acsi-structure-directory {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
}

.acsi-structure-panel--dark {
    border-color: #1e293b;
    background:
        radial-gradient(circle at 90% 10%, rgba(56, 189, 248, 0.13), transparent 34%),
        linear-gradient(145deg, #0f172a, #020617);
    color: #ffffff;
}

.acsi-structure-panel--dark .acsi-structure-icon {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

.acsi-structure-panel--dark > p {
    margin: 1.2rem 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.82rem;
    line-height: 1.7;
}

.acsi-structure-name-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin-top: 1.2rem;
}

.acsi-structure-name-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.acsi-structure-person {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 0.65rem;
    margin: 0;
    padding: 0.58rem 0.75rem;
    border: 1px solid color-mix(in srgb, var(--acsi-border) 75%, transparent);
    border-radius: 0.7rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-foreground);
    font-size: 0.74rem;
    font-weight: 650;
    line-height: 1.35;
}

.acsi-structure-person::before {
    flex: 0 0 0.55rem;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    background: var(--acsi-structure-blue);
    content: "";
}

.acsi-structure-person--indigo::before {
    background: var(--acsi-structure-indigo);
}

.acsi-structure-person--green::before {
    background: var(--acsi-structure-green);
}

.acsi-structure-council__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.acsi-structure-council__heading > p {
    margin: 0;
    color: var(--acsi-muted);
    font-size: 0.72rem;
    text-align: right;
}

.acsi-structure-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.acsi-structure-justice-list {
    display: grid;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.acsi-structure-justice-card {
    display: grid;
    gap: 0.18rem;
    padding: 0.85rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.85rem;
    background: var(--acsi-card-muted);
}

.acsi-structure-justice-card--primary {
    border-color: color-mix(in srgb, var(--acsi-structure-indigo) 35%, var(--acsi-border));
    background: color-mix(in srgb, var(--acsi-structure-indigo) 12%, var(--acsi-card));
}

.acsi-structure-justice-card > p {
    margin: 0;
}

.acsi-structure-justice-card strong {
    display: block;
    color: var(--acsi-foreground);
    font-size: 0.76rem;
}

.acsi-structure-justice-card > p:not(:first-child),
.acsi-structure-justice-card a {
    color: var(--acsi-muted);
    font-size: 0.72rem;
}

.acsi-structure-mail-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    width: fit-content;
    color: color-mix(in srgb, var(--acsi-structure-indigo) 78%, var(--acsi-foreground)) !important;
    overflow-wrap: anywhere;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.2em;
}

.acsi-structure-mail-link::before {
    width: 0.95rem;
    height: 0.95rem;
    flex: 0 0 0.95rem;
    background: currentColor;
    content: "";
    -webkit-mask: var(--acsi-structure-icon-mask) center / contain no-repeat;
    mask: var(--acsi-structure-icon-mask) center / contain no-repeat;
    --acsi-structure-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E");
}

.acsi-structure-justice-names {
    display: grid;
    gap: 0.35rem;
    margin-top: 0.35rem;
}

.acsi-structure-reviewers .acsi-structure-name-grid {
    grid-template-columns: minmax(0, 1fr);
}

@media (max-width: 840px) {
    .acsi-structure-directory,
    .acsi-structure-controls {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-structure-name-grid--three {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .acsi-structure .acsi-institutional-hero {
        min-height: 0;
        padding: 1.5rem;
    }

    .acsi-structure-name-grid,
    .acsi-structure-name-grid--three {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-structure-council__heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .acsi-structure-council__heading > p {
        text-align: left;
    }
}

.acsi-transparency-grid {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
}

.acsi-transparency-grid > aside {
    align-self: start;
}

.acsi-transparency-years {
    display: grid;
    gap: 1.1rem;
    margin-top: 1.2rem;
}

.acsi-transparency-years section {
    display: grid;
    gap: 0.45rem;
}

.acsi-transparency-years h3 {
    margin: 0;
    color: var(--acsi-muted);
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.acsi-transparency-years a,
.acsi-regulation-card > div > a,
.acsi-regulation-card > div > p > a {
    display: grid;
    grid-template-columns: 1.2rem minmax(0, 1fr) 1rem;
    align-items: center;
    gap: 0.6rem;
    padding: 0.7rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.7rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-primary);
    font-size: 0.74rem;
    font-weight: 700;
}

.acsi-transparency-years a:hover,
.acsi-regulation-card > div > a:hover,
.acsi-regulation-card > div > p > a:hover {
    border-color: var(--acsi-primary);
}

.acsi-transparency-years svg,
.acsi-regulation-card > div > a svg,
.acsi-regulation-card > div > p > a svg {
    width: 1rem;
    height: 1rem;
}

.acsi-regulation-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
    margin-top: 1rem;
}

.acsi-regulation-card {
    position: relative;
    display: grid;
    grid-template-columns: 2.7rem minmax(0, 1fr);
    align-content: start;
    column-gap: 0.85rem;
    overflow: hidden;
}

.acsi-regulation-card > p:first-child {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
}

.acsi-regulation-card > h2 {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    margin: 0;
}

.acsi-regulation-card::before {
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: var(--regulation-accent, var(--acsi-primary));
    content: "";
}

.acsi-regulation-card--sky { --regulation-accent: #0ea5e9; }
.acsi-regulation-card--indigo { --regulation-accent: #6366f1; }
.acsi-regulation-card--green { --regulation-accent: #10b981; }

.acsi-regulation-card > div {
    grid-column: 1 / -1;
    display: grid;
    gap: 0.55rem;
    margin-top: 1rem;
}

.acsi-regulation-card > div > p {
    display: grid;
    gap: 0.55rem;
    margin: 0;
}

.acsi-regulation-card > div > a,
.acsi-regulation-card > div > p > a {
    grid-template-columns: 1rem minmax(0, 1fr);
}

.acsi-regulation-card > div > p > a::before {
    display: grid;
    width: 0.9rem;
    height: 0.9rem;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 999px;
    content: "\2713";
    font-size: 0.55rem;
    line-height: 1;
}

.acsi-institutional-two-columns .wp-block-buttons {
    gap: 0.75rem;
    margin-top: 1.25rem;
}

/* Conventions */
.acsi-convention-hero {
    background:
        radial-gradient(circle at 88% 14%, rgba(255, 255, 255, 0.2), transparent 26%),
        linear-gradient(135deg, #0c4a6e, #0369a1 55%, #2563eb);
}

.acsi-convention-hero__actions {
    display: grid;
    flex: 0 0 auto;
    gap: 0.55rem;
}

.acsi-convention-hero > div > .acsi-convention-hero__actions {
    display: flex;
    flex-wrap: wrap;
    margin-top: 1.25rem;
}

.acsi-convention-highlights {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    margin-top: 1rem;
}

.acsi-convention-highlights > a {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.9rem;
    border: 1px solid color-mix(in srgb, var(--acsi-primary) 25%, var(--acsi-border));
    border-radius: 0.9rem;
    background: color-mix(in srgb, var(--acsi-primary) 6%, var(--acsi-card));
}

.acsi-convention-highlights span {
    padding: 0.3rem 0.5rem;
    border-radius: 999px;
    background: #f59e0b;
    color: #ffffff;
    font-size: 0.58rem;
    font-weight: 800;
    text-transform: uppercase;
}

.acsi-convention-highlights p {
    margin: 0;
    color: var(--acsi-muted);
    font-size: 0.7rem;
}

.acsi-convention-highlights strong {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--acsi-primary);
    font-size: 0.68rem;
}

.acsi-convention-highlights svg {
    width: 1rem;
    height: 1rem;
}

.acsi-convention-directory {
    margin-top: 1rem;
}

.acsi-convention-directory__heading {
    max-width: 850px;
}

.acsi-convention-audience {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    width: fit-content;
    margin-top: 1rem;
    padding: 0.3rem;
    border: 1px solid var(--acsi-border);
    border-radius: 999px;
    background: var(--acsi-card-muted);
}

.acsi-convention-audience button {
    padding: 0.5rem 0.8rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--acsi-muted);
    font-size: 0.7rem;
    font-weight: 750;
}

.acsi-convention-audience button.is-active {
    background: var(--acsi-primary);
    color: #ffffff;
}

.acsi-convention-filters {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(180px, 0.35fr);
    gap: 0.7rem;
    max-width: 900px;
    margin: 0.5rem 0 1rem;
}

.acsi-convention-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
}

.acsi-convention-card {
    display: flex;
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: 1rem;
    background: var(--acsi-card);
    flex-direction: column;
    transition: transform 170ms ease, box-shadow 170ms ease;
}

.acsi-convention-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--acsi-shadow);
}

.acsi-convention-card__image {
    position: relative;
    display: grid;
    height: 180px;
    padding: 1.5rem;
    place-items: center;
    background: #ffffff;
}

.acsi-convention-card__image img {
    width: min(100%, 220px);
    height: 110px;
    object-fit: contain;
}

.acsi-convention-card__image > span,
.acsi-convention-card__image > em {
    position: absolute;
    top: 0.7rem;
    padding: 0.25rem 0.5rem;
    border-radius: 999px;
    color: #ffffff;
    font-size: 0.55rem;
    font-style: normal;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.acsi-convention-card__image > span {
    left: 0.7rem;
    background: #0f172a;
}

.acsi-convention-card__image > em {
    right: 0.7rem;
    background: #f59e0b;
}

.acsi-convention-card__body {
    display: flex;
    flex: 1;
    padding: 1rem;
    flex-direction: column;
}

.acsi-convention-card__body > small {
    color: var(--acsi-primary);
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.acsi-convention-card__body h3 {
    margin: 0.35rem 0 0;
    font-size: 1.05rem;
    line-height: 1.2;
}

.acsi-convention-card__body p {
    margin: 0.55rem 0 1rem;
    color: var(--acsi-muted);
    font-size: 0.72rem;
}

.acsi-convention-card__body .acsi-button {
    width: fit-content;
    margin-top: auto;
}

.acsi-convention-proposal-grid ul {
    list-style: disc;
}

.acsi-convention-panel > .wp-block-buttons {
    margin-top: 1.25rem;
}

.acsi-convention-detail {
    margin-top: 1rem;
}

.acsi-convention-detail__hero {
    display: grid;
    grid-template-columns: minmax(200px, 0.35fr) minmax(0, 1fr);
    align-items: center;
    gap: 2rem;
    padding: clamp(1.5rem, 4vw, 3rem);
    border-radius: 1.3rem;
    background: linear-gradient(135deg, #082f49, #0369a1 55%, #2563eb);
    color: #ffffff;
}

.acsi-convention-detail__logo {
    display: grid;
    min-height: 220px;
    padding: 1.2rem;
    place-items: center;
    border-radius: 1rem;
    background: #ffffff;
}

.acsi-convention-detail__logo img {
    width: min(100%, 230px);
    max-height: 160px;
    object-fit: contain;
}

.acsi-convention-detail__hero > div:last-child > a {
    display: inline-block;
    margin-bottom: 1.2rem;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.7rem;
    font-weight: 750;
}

.acsi-convention-detail__hero .acsi-eyebrow {
    color: #bae6fd;
}

.acsi-convention-detail__hero h1 {
    margin: 0.35rem 0 0;
    font-size: clamp(2rem, 4vw, 3.6rem);
    letter-spacing: -0.045em;
    line-height: 1;
}

.acsi-convention-detail__hero > div:last-child > p:last-child {
    max-width: 780px;
    margin: 0.8rem 0 0;
    color: rgba(255, 255, 255, 0.82);
}

.acsi-convention-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.65fr);
    align-items: start;
    gap: 1rem;
    margin-top: 1rem;
}

.acsi-convention-detail__content {
    display: grid;
    gap: 0.8rem;
}

.acsi-convention-editorial-content .acsi-convention-download {
    width: fit-content;
    margin-top: 0.75rem;
    text-decoration: none;
}

.acsi-convention-editorial-content .acsi-convention-download::after {
    width: 1rem;
    height: 1rem;
    flex: 0 0 1rem;
    background: currentColor;
    content: "";
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12m0 0 4-4m-4 4-4-4M5 21h14'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12m0 0 4-4m-4 4-4-4M5 21h14'/%3E%3C/svg%3E") center / contain no-repeat;
}

.acsi-convention-detail__aside {
    position: sticky;
    top: calc(var(--acsi-header-height) + 1rem);
}

.acsi-convention-detail__aside .acsi-convention-panel {
    display: grid;
    gap: 0.65rem;
}

.acsi-convention-benefit {
    padding: 1.2rem;
    border: 1px solid color-mix(in srgb, #f59e0b 35%, var(--acsi-border));
    border-radius: 1rem;
    background: color-mix(in srgb, #f59e0b 9%, var(--acsi-card));
}

.acsi-convention-benefit small {
    color: #b45309;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.acsi-convention-benefit h2 {
    margin: 0.3rem 0 0;
    font-size: clamp(1.25rem, 2.5vw, 2rem);
}

.acsi-convention-panel > small {
    display: block;
    margin-top: 0.8rem;
    color: var(--acsi-muted);
}

.acsi-convention-terms {
    display: grid;
    gap: 0.45rem;
    margin-top: 1rem;
}

.acsi-convention-terms > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.15rem 1rem;
    padding: 0.7rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.7rem;
    background: var(--acsi-card-muted);
    font-size: 0.75rem;
}

.acsi-convention-terms strong {
    color: var(--acsi-primary);
}

.acsi-convention-terms small {
    grid-column: 1 / -1;
    color: var(--acsi-muted);
}

.acsi-convention-video {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 1rem;
    background: #020617;
}

.acsi-convention-video button,
.acsi-convention-video iframe {
    display: grid;
    width: 100%;
    height: 100%;
    border: 0;
}

.acsi-convention-video button {
    padding: 2rem;
    place-content: center;
    place-items: center;
    background: radial-gradient(circle, #075985, #020617 68%);
    color: #ffffff;
}

.acsi-convention-video button > span {
    display: grid;
    width: 4rem;
    height: 4rem;
    margin-bottom: 0.8rem;
    place-items: center;
    border-radius: 999px;
    background: #ffffff;
    color: #0369a1;
    font-size: 1.2rem;
}

.acsi-convention-video button small {
    margin-top: 0.3rem;
    color: rgba(255, 255, 255, 0.65);
}

.acsi-convention-contacts {
    display: grid;
    gap: 0.45rem;
}

.acsi-convention-contacts > div {
    display: grid;
    padding: 0.65rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.7rem;
    background: var(--acsi-card-muted);
}

.acsi-convention-contacts small {
    color: var(--acsi-muted);
    font-size: 0.6rem;
    font-weight: 750;
    text-transform: uppercase;
}

.acsi-convention-contacts a,
.acsi-convention-contacts strong {
    color: var(--acsi-primary);
    font-size: 0.75rem;
    overflow-wrap: anywhere;
}

@media (max-width: 1080px) {
    .acsi-regulation-grid,
    .acsi-convention-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .acsi-name-grid--three {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 840px) {
    .acsi-institutional-hero,
    .acsi-convention-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .acsi-institutional-two-columns,
    .acsi-transparency-grid,
    .acsi-convention-proposal-grid,
    .acsi-convention-detail__layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-convention-detail__aside {
        position: static;
    }

    .acsi-convention-highlights {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 620px) {
    .acsi-institutional-main,
    .acsi-convention-main {
        padding-top: 0.7rem;
    }

    .acsi-institutional-hero,
    .acsi-convention-hero {
        min-height: 390px;
        padding: 1.35rem;
    }

    .acsi-institutional-hero__year {
        width: 100%;
        flex-basis: auto;
    }

    .acsi-leadership-grid,
    .acsi-regulation-grid,
    .acsi-convention-grid,
    .acsi-institutional-feature-grid,
    .acsi-name-grid,
    .acsi-name-grid--three,
    .acsi-convention-filters {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-convention-highlights > a {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .acsi-convention-highlights strong {
        grid-column: 1 / -1;
    }

    .acsi-convention-audience {
        width: 100%;
        border-radius: 0.8rem;
    }

    .acsi-convention-audience button {
        flex: 1 1 auto;
    }

    .acsi-convention-detail__hero {
        grid-template-columns: minmax(0, 1fr);
        padding: 1.2rem;
    }

    .acsi-convention-detail__logo {
        min-height: 170px;
    }

    .acsi-convention-terms > div {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-convention-terms small {
        grid-column: auto;
    }
}

/* Native events */
.acsi-events > .acsi-text-link {
    margin-top: 1.1rem;
}

.acsi-event-main {
    min-height: 70vh;
    background: var(--acsi-background);
}

.acsi-event-main [hidden] {
    display: none !important;
}

.acsi-event-archive-hero,
.acsi-event-detail__hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 92% 10%, rgba(14, 165, 233, 0.3), transparent 30%),
        linear-gradient(135deg, #07152b 0%, #020617 72%);
    color: #ffffff;
}

.acsi-event-archive-hero__inner {
    display: flex;
    min-height: 370px;
    padding-block: clamp(4.5rem, 9vw, 7rem);
    align-items: flex-end;
    justify-content: space-between;
    gap: 3rem;
}

.acsi-event-archive-hero .acsi-eyebrow,
.acsi-event-detail__hero .acsi-eyebrow {
    color: #38bdf8;
}

.acsi-event-archive-hero h1,
.acsi-event-detail__hero h1 {
    max-width: 1050px;
    margin: 0.6rem 0 0;
    font-size: clamp(2.7rem, 6vw, 5.8rem);
    letter-spacing: -0.055em;
    line-height: 0.98;
    text-wrap: balance;
}

.acsi-event-archive-hero__inner > div:first-child > p:last-child,
.acsi-event-detail__lead {
    max-width: 820px;
    margin: 1.3rem 0 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: clamp(1rem, 1.7vw, 1.25rem);
}

.acsi-event-archive-hero__stats {
    display: flex;
    flex: 0 0 auto;
    gap: 0.8rem;
}

.acsi-event-archive-hero__stats span {
    display: grid;
    min-width: 110px;
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 1rem;
    background: rgba(15, 23, 42, 0.62);
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.67rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.acsi-event-archive-hero__stats strong {
    color: #ffffff;
    font-size: 1.65rem;
    line-height: 1;
}

.acsi-event-directory {
    padding-block: clamp(2.5rem, 6vw, 5rem);
}

.acsi-event-filters {
    display: grid;
    grid-template-columns: minmax(260px, 1.7fr) repeat(2, minmax(190px, 0.8fr));
    gap: 1rem;
    padding: 1.25rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1.35rem;
    background: var(--acsi-card);
    box-shadow: var(--acsi-shadow);
}

.acsi-event-filters label {
    display: grid;
    gap: 0.4rem;
    color: var(--acsi-muted);
    font-size: 0.7rem;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.acsi-event-filters input,
.acsi-event-filters select {
    width: 100%;
    min-height: 50px;
    padding: 0 0.9rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.8rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-foreground);
    font-size: 0.88rem;
    letter-spacing: normal;
    text-transform: none;
}

.acsi-event-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 2rem;
}

.acsi-event-card {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid var(--acsi-border);
    border-radius: 1.35rem;
    background: var(--acsi-card);
    box-shadow: 0 22px 55px -45px rgba(15, 23, 42, 0.75);
    transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.acsi-event-card:hover {
    border-color: color-mix(in srgb, var(--acsi-primary) 45%, var(--acsi-border));
    box-shadow: 0 28px 65px -42px rgba(2, 132, 199, 0.42);
    transform: translateY(-2px);
}

.acsi-event-card--highlight {
    border-color: color-mix(in srgb, #38bdf8 58%, var(--acsi-border));
}

.acsi-event-card__date {
    display: grid;
    padding: 1.25rem 0.8rem;
    place-items: start center;
    background: linear-gradient(180deg, #0ea5e9, #075985);
    color: #ffffff;
}

.acsi-event-card__date time {
    display: grid;
    place-items: center;
    line-height: 1;
}

.acsi-event-card__date strong {
    font-size: 2rem;
}

.acsi-event-card__date span {
    margin-top: 0.35rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.acsi-event-card__date small {
    margin-top: 0.3rem;
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.63rem;
}

.acsi-event-card__body {
    display: flex;
    min-width: 0;
    padding: 1.35rem;
    flex-direction: column;
}

.acsi-event-card__badges,
.acsi-event-detail__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.acsi-event-card__badges span,
.acsi-event-detail__badges span {
    padding: 0.3rem 0.55rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--acsi-primary) 10%, var(--acsi-card-muted));
    color: var(--acsi-primary);
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.acsi-event-card h2 {
    margin: 0.8rem 0 0.5rem;
    font-size: clamp(1.25rem, 2vw, 1.7rem);
    line-height: 1.14;
}

.acsi-event-card h2 a:hover {
    color: var(--acsi-primary);
}

.acsi-event-card__body > p {
    margin: 0;
    color: var(--acsi-muted);
    font-size: 0.83rem;
    line-height: 1.55;
}

.acsi-event-card dl {
    display: grid;
    gap: 0.35rem;
    margin: 1rem 0;
}

.acsi-event-card dl > div {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 0.7rem;
    font-size: 0.72rem;
}

.acsi-event-card dt {
    color: var(--acsi-muted);
    font-weight: 750;
}

.acsi-event-card dd {
    margin: 0;
    font-weight: 650;
}

.acsi-event-card .acsi-text-link {
    margin-top: auto;
}

.acsi-event-empty {
    margin: 2rem 0 0;
    padding: 1.5rem;
    border: 1px dashed var(--acsi-border);
    border-radius: 1rem;
    color: var(--acsi-muted);
    text-align: center;
}

.acsi-event-detail__hero {
    padding-block: clamp(3.5rem, 7vw, 6.5rem);
}

.acsi-event-detail__back {
    display: inline-flex;
    margin-bottom: 1.5rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.72rem;
    font-weight: 750;
}

.acsi-event-detail__back:hover {
    color: #38bdf8;
}

.acsi-event-detail__badges span {
    background: rgba(56, 189, 248, 0.14);
    color: #7dd3fc;
}

.acsi-event-detail__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 1100px;
    gap: 0.8rem;
    margin-top: 2.2rem;
}

.acsi-event-detail__facts > div {
    display: grid;
    gap: 0.25rem;
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 1rem;
    background: rgba(15, 23, 42, 0.55);
}

.acsi-event-detail__facts small {
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.62rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.acsi-event-detail__facts strong {
    font-size: 0.88rem;
}

.acsi-event-detail__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    margin-top: 1.5rem;
}

.acsi-event-detail__hero .acsi-button--outline {
    border-color: rgba(255, 255, 255, 0.35);
    color: #ffffff;
}

.acsi-event-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.75fr);
    gap: 1.5rem;
    padding-block: clamp(2.5rem, 6vw, 5rem);
    align-items: start;
}

.acsi-event-detail__content {
    display: grid;
    gap: 1.25rem;
}

.acsi-event-detail__panel,
.acsi-event-related {
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid var(--acsi-border);
    border-radius: 1.35rem;
    background: var(--acsi-card);
}

.acsi-event-detail__panel h2,
.acsi-event-related h2 {
    margin: 0.35rem 0 0;
    font-size: clamp(1.35rem, 2.5vw, 2rem);
}

.acsi-event-program {
    display: grid;
    gap: 0.7rem;
    padding: 0;
    margin: 1.5rem 0 0;
    list-style: none;
}

.acsi-event-program li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.8rem;
    padding: 1rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.9rem;
    background: var(--acsi-card-muted);
    align-items: start;
}

.acsi-event-program li > span {
    width: 0.65rem;
    height: 0.65rem;
    margin-top: 0.35rem;
    border-radius: 999px;
    background: #0ea5e9;
}

.acsi-event-program p {
    margin: 0;
    color: var(--acsi-muted);
    font-size: 0.84rem;
}

.acsi-event-detail__info {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 1.5rem 0 0;
}

.acsi-event-detail__info > div {
    display: grid;
    gap: 0.25rem;
    padding: 0.9rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.8rem;
    background: var(--acsi-card-muted);
}

.acsi-event-detail__info dt {
    color: var(--acsi-muted);
    font-size: 0.65rem;
    font-weight: 750;
    text-transform: uppercase;
}

.acsi-event-detail__info dd {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 700;
}

.acsi-event-detail__info dd small {
    display: block;
    margin-top: 0.2rem;
    color: var(--acsi-muted);
    font-size: 0.68rem;
    font-weight: 500;
}

.acsi-event-detail__info dd.acsi-event-detail__info-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.acsi-event-detail__info-tags span {
    padding: 0.3rem 0.55rem;
    border-radius: 999px;
    background: var(--acsi-card);
    box-shadow: 0 8px 20px -18px rgba(15, 23, 42, 0.8);
    font-size: 0.66rem;
}

.acsi-event-logistics > div {
    margin-top: 1rem;
    color: var(--acsi-muted);
    font-size: 0.86rem;
}

.acsi-event-logistics > div p {
    margin: 0.65rem 0 0;
}

.acsi-event-related {
    position: sticky;
    top: calc(var(--acsi-header-height) + 1rem);
}

.acsi-event-related__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.acsi-event-related__heading > a {
    color: var(--acsi-primary);
    font-size: 0.68rem;
    font-weight: 750;
    text-decoration: underline;
    text-underline-offset: 0.2rem;
}

.acsi-event-related__list {
    display: grid;
    gap: 0.7rem;
    margin-top: 1rem;
}

.acsi-event-related__list > a {
    display: grid;
    gap: 0.3rem;
    padding: 0.9rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.8rem;
    background: var(--acsi-card-muted);
    transition: border-color 180ms ease, transform 180ms ease;
}

.acsi-event-related__list > a:hover {
    border-color: var(--acsi-primary);
    transform: translateY(-1px);
}

.acsi-event-related__list small,
.acsi-event-related__list span {
    color: var(--acsi-muted);
    font-size: 0.64rem;
}

.acsi-event-related__list strong {
    font-size: 0.82rem;
    line-height: 1.3;
}

@media (max-width: 980px) {
    .acsi-event-grid,
    .acsi-event-detail__layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-event-related {
        position: static;
    }
}

@media (max-width: 760px) {
    .acsi-event-archive-hero__inner {
        min-height: 0;
        align-items: flex-start;
        flex-direction: column;
    }

    .acsi-event-filters,
    .acsi-event-detail__facts {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-event-archive-hero__stats {
        width: 100%;
    }

    .acsi-event-archive-hero__stats span {
        flex: 1 1 0;
    }
}

@media (max-width: 520px) {
    .acsi-event-card {
        grid-template-columns: 76px minmax(0, 1fr);
    }

    .acsi-event-card__body {
        padding: 1rem;
    }

    .acsi-event-detail__info {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Event archive and detail aligned with the React frontend. */
.acsi-event-archive-hero,
.acsi-event-detail__hero {
    position: relative;
    min-height: 0;
    margin-block: clamp(1.25rem, 3vw, 2.25rem);
    overflow: hidden;
    isolation: isolate;
    border: 1px solid var(--acsi-border);
    border-radius: 1.5rem;
    background: linear-gradient(125deg, #075985 0%, #0f172a 48%, #111827 100%);
    box-shadow: 0 24px 55px -34px rgba(2, 132, 199, 0.7);
}

.acsi-event-archive-hero::before,
.acsi-event-detail__hero::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(circle at 15% 20%, rgba(255, 255, 255, 0.1), transparent 27%),
        radial-gradient(circle at 80% 8%, rgba(255, 255, 255, 0.1), transparent 25%);
    content: "";
}

.acsi-event-archive-hero {
    padding: clamp(2rem, 4vw, 2.75rem);
}

.acsi-event-archive-hero__inner {
    min-height: 0;
    padding: 0;
    align-items: center;
}

.acsi-event-archive-hero .acsi-eyebrow {
    color: rgba(255, 255, 255, 0.72);
}

.acsi-event-archive-hero h1 {
    max-width: 760px;
    margin-top: 0.65rem;
    font-size: clamp(2rem, 3.4vw, 3.3rem);
    letter-spacing: -0.045em;
    line-height: 1.05;
}

.acsi-event-archive-hero__inner > div:first-child > p:last-child {
    max-width: 720px;
    margin-top: 0.8rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: clamp(0.95rem, 1.35vw, 1.1rem);
    line-height: 1.6;
}

.acsi-event-archive-hero__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(135px, 1fr));
    gap: 0.75rem;
}

.acsi-event-archive-hero__stats span {
    display: flex;
    min-width: 0;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.1);
    flex-direction: column;
    text-transform: none;
    backdrop-filter: blur(8px);
}

.acsi-event-archive-hero__stats small {
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.65rem;
    font-style: normal;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.acsi-event-archive-hero__stats strong {
    margin-top: 0.15rem;
    color: #ffffff;
    font-size: 1.8rem;
}

.acsi-event-archive-hero__stats em {
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.67rem;
    font-style: normal;
    letter-spacing: normal;
}

.acsi-event-directory {
    padding-block: clamp(1rem, 3vw, 2.5rem) clamp(3rem, 6vw, 5rem);
}

.acsi-event-filters {
    display: block;
    padding: clamp(1.25rem, 3vw, 1.75rem);
    border-radius: 1.5rem;
}

.acsi-event-filters__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.acsi-event-filters__heading h2 {
    margin: 0.35rem 0 0;
    font-size: clamp(1.45rem, 2.6vw, 2rem);
}

.acsi-event-filter-chips {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.45rem;
}

.acsi-event-filter-chips button {
    padding: 0.45rem 0.8rem;
    border: 1px solid var(--acsi-border);
    border-radius: 999px;
    background: transparent;
    color: var(--acsi-muted);
    cursor: pointer;
    font: inherit;
    font-size: 0.76rem;
    font-weight: 650;
    transition: 160ms ease;
}

.acsi-event-filter-chips button:hover {
    border-color: var(--acsi-primary);
    color: var(--acsi-primary);
}

.acsi-event-filter-chips button.is-active {
    border-color: var(--acsi-primary);
    background: var(--acsi-primary);
    color: #ffffff;
    box-shadow: 0 8px 20px -14px rgba(2, 132, 199, 0.9);
}

.acsi-event-filters__fields {
    --acsi-event-filter-height: 52px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.acsi-event-filters .acsi-event-filters__fields > *,
.acsi-event-filters .acsi-event-search,
.acsi-event-filters .acsi-event-month-filter,
.acsi-event-filters .acsi-event-sector-filter label {
    min-width: 0;
    min-height: var(--acsi-event-filter-height);
}

.acsi-event-filters .acsi-event-search input,
.acsi-event-filters .acsi-event-month-filter select,
.acsi-event-filters .acsi-event-sector-filter select {
    min-height: 0;
    height: 100%;
}

.acsi-event-sector-filter label {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 100%;
    padding: 0 0.75rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.8rem;
    background: var(--acsi-card-muted);
}

.acsi-event-sector-filter select {
    min-width: 0;
    width: 100%;
    padding: 0 0.35rem;
    border: 0;
    background: transparent;
}

.acsi-event-filters label.acsi-event-search,
.acsi-event-filters label.acsi-event-month-filter {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.45rem;
    color: var(--acsi-muted);
}

.acsi-event-search > svg {
    position: absolute;
    z-index: 1;
    left: 0.9rem;
}

.acsi-event-search input {
    padding-left: 2.5rem;
}

.acsi-event-month-filter {
    padding-left: 0.75rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.8rem;
    background: var(--acsi-card-muted);
}

.acsi-event-month-filter select {
    min-width: 0;
    padding-left: 0.35rem;
    border: 0;
    background: transparent;
}

.acsi-event-search > svg,
.acsi-event-month-filter > svg,
.acsi-event-sector-filter svg,
.acsi-event-directory__summary svg,
.acsi-event-card__meta svg,
.acsi-event-card__footer svg {
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.acsi-event-directory__summary {
    display: flex;
    margin-top: 1.35rem;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    color: var(--acsi-muted);
    font-size: 0.75rem;
}

.acsi-event-directory__summary > span {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.acsi-event-directory__summary > span:last-child {
    color: var(--acsi-primary);
}

.acsi-event-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.1rem;
    margin-top: 1.1rem;
}

.acsi-event-card {
    display: flex;
    min-width: 0;
    height: 100%;
    overflow: hidden;
    border-radius: 1rem;
    flex-direction: column;
}

.acsi-event-card__header {
    position: relative;
    display: flex;
    padding: 1rem;
    border-bottom: 1px solid var(--acsi-border);
    align-items: flex-start;
    gap: 0.9rem;
}

.acsi-event-card__date {
    display: flex;
    width: 64px;
    height: 64px;
    padding: 0.35rem;
    border-radius: 0.75rem;
    flex: 0 0 64px;
    place-items: initial;
    align-items: center;
    justify-content: center;
    background: #0284c7;
}

.acsi-event-card__date time {
    display: flex;
    align-items: center;
    flex-direction: column;
}

.acsi-event-card__date span {
    margin: 0;
    font-size: 0.61rem;
    letter-spacing: 0.1em;
    line-height: 1;
    text-transform: uppercase;
}

.acsi-event-card__date strong {
    margin-top: 0.1rem;
    font-size: 1.55rem;
    line-height: 1;
}

.acsi-event-card__date small {
    margin-top: 0.15rem;
    font-size: 0.56rem;
}

.acsi-event-card__intro {
    min-width: 0;
}

.acsi-event-card__badges span {
    padding: 0.27rem 0.5rem;
    border: 1px solid var(--acsi-border);
    background: var(--acsi-card-muted);
    color: var(--acsi-foreground);
    font-size: 0.58rem;
    letter-spacing: normal;
    text-transform: none;
}

.acsi-event-card h2 {
    margin: 0.55rem 0 0.3rem;
    font-size: 1rem;
    line-height: 1.3;
}

.acsi-event-card__intro > p {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: var(--acsi-muted);
    font-size: 0.74rem;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.acsi-event-card__body {
    display: flex;
    padding: 1rem;
    flex: 1;
    gap: 0.9rem;
}

.acsi-event-card__meta {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 0.55rem 0.9rem;
    color: var(--acsi-muted);
    font-size: 0.7rem;
}

.acsi-event-card__meta > span,
.acsi-event-card__footer > span,
.acsi-event-card__footer .acsi-text-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.acsi-event-card__footer {
    display: flex;
    margin-top: auto;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    color: var(--acsi-muted);
    font-size: 0.66rem;
}

.acsi-event-card__footer .acsi-text-link {
    margin: 0;
    color: var(--acsi-primary);
    font-size: 0.72rem;
}

.acsi-event-card__footer .acsi-text-link svg {
    transform: none;
}

.acsi-event-detail__hero {
    padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 4vw, 2.5rem);
}

.acsi-event-detail__back {
    display: inline-flex;
    margin: 0;
    align-items: center;
    gap: 0.5rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, 0.4);
    text-underline-offset: 0.25rem;
}

.acsi-event-detail__back:hover {
    color: #ffffff;
}

.acsi-event-detail__back svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transform: rotate(180deg);
}

.acsi-event-detail__badges {
    margin-top: 1.25rem;
}

.acsi-event-detail__badges span {
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    font-size: 0.65rem;
    letter-spacing: normal;
    text-transform: none;
}

.acsi-event-detail__hero h1 {
    max-width: 950px;
    margin-top: 1rem;
    font-size: clamp(2rem, 3.1vw, 3.15rem);
    letter-spacing: -0.04em;
    line-height: 1.04;
}

.acsi-event-detail__lead {
    margin-top: 0.75rem;
    font-size: clamp(0.95rem, 1.4vw, 1.1rem);
    line-height: 1.6;
}

.acsi-event-detail__facts {
    margin-top: 1.5rem;
}

.acsi-event-detail__facts > div {
    border-color: rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(8px);
}

.acsi-event-detail__facts strong {
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.acsi-event-detail__facts strong svg,
.acsi-event-detail__actions svg,
.acsi-event-detail__panel-heading > svg {
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.acsi-event-detail__actions .acsi-button:not(.acsi-button--outline) {
    border-color: #ffffff;
    background: #ffffff;
    color: #334155;
}

.acsi-event-detail__actions .acsi-button:not(.acsi-button--outline):hover {
    color: #0f172a;
}

.acsi-event-detail__panel-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.acsi-event-detail__panel-heading > svg {
    margin-top: 0.15rem;
    color: var(--acsi-muted);
}

@media (max-width: 1100px) {
    .acsi-event-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .acsi-event-archive-hero__inner,
    .acsi-event-filters__heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .acsi-event-filter-chips {
        justify-content: flex-start;
    }

    .acsi-event-filters__fields {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 700px) {
    .acsi-event-grid,
    .acsi-event-detail__facts {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-event-directory__summary {
        align-items: flex-start;
        flex-direction: column;
    }

    .acsi-event-archive-hero__stats {
        width: 100%;
    }
}

@media (max-width: 460px) {
    .acsi-event-archive-hero__stats {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-event-card__header {
        flex-direction: column;
    }
}

.acsi-event-card__status {
    font-weight: 700;
}

.acsi-event-card__status--open {
    color: #059669;
}

.acsi-event-card__status--closed,
.acsi-event-card__status--concluded,
.acsi-event-card__status--pending {
    color: #64748b;
}

.acsi-event-card__status--cancelled {
    color: #dc2626;
}

.acsi-event-card[hidden],
.acsi-event-empty[hidden] {
    display: none;
}

/* Shared Gutenberg card headings and React parity fixes.
 * Keep icon, eyebrow and title in one reusable row across institutional,
 * training and contact pages instead of correcting every card independently. */
.acsi-card-heading {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    margin-bottom: 1rem;
}

.acsi-card-heading > p,
.acsi-card-heading > .wp-block-group > :first-child,
.acsi-card-heading > .wp-block-group > :last-child {
    margin-block: 0;
}

.acsi-card-heading > p {
    flex: 0 0 auto;
}

.acsi-card-heading > .wp-block-group {
    min-width: 0;
}

.acsi-card-heading h2,
.acsi-card-heading h3,
.acsi-training-panel .acsi-card-heading h2,
.acsi-training-tool .acsi-card-heading h2,
.acsi-contact-panel .acsi-card-heading h2 {
    margin: 0.22rem 0 0;
}

.acsi-card-heading > .wp-block-group > p:not(.acsi-eyebrow) {
    margin: 0.45rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.82rem;
    line-height: 1.55;
}

/* Existing Chi siamo cards retain their native blocks while adopting the
 * same shared heading geometry. */
.acsi-institutional-panel:not(.acsi-regulation-card):has(> p:first-child > .acsi-institutional-icon) {
    display: grid;
    grid-template-columns: 2.7rem minmax(0, 1fr);
    align-content: start;
    column-gap: 0.85rem;
}

.acsi-institutional-panel:not(.acsi-regulation-card):has(> p:first-child > .acsi-institutional-icon) > p:first-child {
    grid-column: 1;
    grid-row: 1 / span 2;
    margin: 0;
}

.acsi-institutional-panel:not(.acsi-regulation-card):has(> p:first-child > .acsi-institutional-icon) > .acsi-eyebrow {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
}

.acsi-institutional-panel:not(.acsi-regulation-card):has(> p:first-child > .acsi-institutional-icon) > h2 {
    grid-column: 2;
    grid-row: 2;
    margin: 0.22rem 0 0;
}

.acsi-institutional-panel:not(.acsi-regulation-card):has(> p:first-child > .acsi-institutional-icon) > :nth-child(n + 4) {
    grid-column: 1 / -1;
}

.acsi-institutional-icon,
.acsi-training-icon,
.acsi-contact-icon {
    margin-bottom: 0;
}

.acsi-contact-icon {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border-radius: 0.85rem;
    background: color-mix(in srgb, var(--acsi-primary) 10%, var(--acsi-card));
    color: var(--acsi-primary);
}

.acsi-contact-icon svg {
    width: 1.25rem;
    height: 1.25rem;
}

.acsi-training-icon--green {
    background: color-mix(in srgb, #10b981 12%, var(--acsi-card));
    color: #059669;
}

/* Gutenberg Core Button places the custom class on a wrapper. Normalize that
 * wrapper and style the real link so buttons are compact and consistent. */
:is(.acsi-training, .acsi-contact-main) .wp-block-button.acsi-button {
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

:is(.acsi-training, .acsi-contact-main) .wp-block-button.acsi-button > .wp-block-button__link {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.6rem 1rem;
    border: 1px solid var(--acsi-primary);
    border-radius: 999px;
    background: var(--acsi-primary);
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.07em;
    line-height: 1;
    text-transform: uppercase;
}

:is(.acsi-training, .acsi-contact-main) .wp-block-button.acsi-button--outline > .wp-block-button__link {
    background: transparent;
    color: var(--acsi-primary);
}

:is(.acsi-training, .acsi-contact-main) .wp-block-button.acsi-button--light > .wp-block-button__link {
    border-color: #ffffff;
    background: #ffffff;
    color: #075985;
}

:is(.acsi-training, .acsi-contact-main) .wp-block-button.acsi-button--glass > .wp-block-button__link {
    border-color: rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
}

:is(.acsi-training, .acsi-contact-main) .wp-block-button.acsi-button > .wp-block-button__link svg {
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-card-actions,
.acsi-hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
}

.acsi-card-actions {
    margin-top: 1rem;
}

.acsi-card-actions .acsi-button,
.acsi-training-panel .acsi-card-actions .acsi-button,
.acsi-training-tool .acsi-card-actions .acsi-button {
    margin: 0;
}

.acsi-training-hero > .acsi-hero-actions {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
}

.acsi-card-note {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.9rem;
    background: rgba(255, 255, 255, 0.06);
}

.acsi-card-note > :first-child,
.acsi-card-note > :last-child {
    margin-block: 0;
}

.acsi-card-note > p:last-child {
    margin-top: 0.35rem;
}

.acsi-card-footnote {
    margin: 0.85rem 0 0 !important;
    font-size: 0.74rem;
}

/* Trasparenza */
.acsi-transparency-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1.2rem;
}

.acsi-transparency-controls button,
.acsi-transparency-controls select {
    min-height: 40px;
    padding: 0.55rem 0.85rem;
    border: 1px solid var(--acsi-border);
    border-radius: 999px;
    background: var(--acsi-card-muted);
    color: var(--acsi-foreground);
    font: inherit;
    font-size: 0.74rem;
    font-weight: 700;
}

.acsi-transparency-controls button[aria-pressed="true"] {
    border-color: var(--acsi-primary);
    background: color-mix(in srgb, var(--acsi-primary) 10%, var(--acsi-card));
    color: var(--acsi-primary);
}

.acsi-transparency-controls label {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
    color: var(--acsi-muted);
    font-size: 0.65rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.acsi-transparency-year > p {
    margin: 0;
}

.acsi-transparency-document {
    grid-template-columns: 1.2rem minmax(0, 1fr) !important;
    width: 100%;
    white-space: normal;
}

.acsi-transparency-document span {
    min-width: 0;
    overflow-wrap: normal;
    word-break: normal;
}

.acsi-transparency-guide-list {
    padding: 0 !important;
    list-style: none;
}

.acsi-transparency-guide-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
}

.acsi-list-icon {
    display: inline-grid;
    flex: 0 0 1rem;
    width: 1rem;
    height: 1rem;
    margin-top: 0.1rem;
    color: #67e8f9;
}

.acsi-list-icon svg {
    width: 100%;
    height: 100%;
}

.acsi-transparency-note {
    margin-top: 1rem !important;
    color: rgba(255, 255, 255, 0.68) !important;
    font-size: 0.76rem;
}

/* Sede nazionale */
.acsi-contact-hero {
    align-items: flex-start;
    flex-direction: column;
    justify-content: flex-end;
}

.acsi-contact-hero__facts {
    display: flex;
    width: 100%;
    flex: 0 0 auto;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.acsi-contact-fact {
    margin: 0;
}

.acsi-contact-fact > a,
.acsi-contact-fact > span {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 38px;
    padding: 0.55rem 0.85rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    backdrop-filter: blur(12px);
}

.acsi-contact-fact svg {
    width: 1rem;
    height: 1rem;
}

.acsi-contact-office-grid {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 1.25rem;
}

.acsi-contact-office-grid > .acsi-contact-panel:first-child::before,
.acsi-contact-secretary::before {
    display: none;
}

.acsi-contact-main .acsi-contact-message-grid .acsi-contact-secretary::before {
    display: none;
}

.acsi-contact-addresses > .acsi-contact-address {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    margin: 0;
    padding: 0.8rem 0.9rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.8rem;
    background: var(--acsi-card-muted);
}

.acsi-contact-address > span:last-child {
    display: grid;
    gap: 0.15rem;
}

.acsi-contact-address small {
    color: var(--acsi-muted);
    font-size: 0.65rem;
    font-weight: 750;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.acsi-contact-address strong {
    color: var(--acsi-foreground);
    font-size: 0.8rem;
    line-height: 1.5;
}

.acsi-contact-address__dot {
    flex: 0 0 0.55rem;
    width: 0.55rem;
    height: 0.55rem;
    margin-top: 0.35rem;
    border-radius: 999px;
    background: var(--acsi-primary);
}

.acsi-contact-quick-grid > p {
    margin: 0;
}

.acsi-contact-quick-grid > p > a,
.acsi-contact-quick-grid > p > span {
    display: flex;
    height: 100%;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.8rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.8rem;
    color: var(--acsi-foreground);
}

/* The phone card contains only two compact text lines: centre that unit in
 * the available card height instead of pinning it to the top edge. */
.acsi-contact-quick-grid > p:first-child > a,
.acsi-contact-quick-grid > p:first-child > span {
    align-items: center;
}

.acsi-contact-quick-grid > p > * > span {
    display: grid;
}

.acsi-contact-inline-action {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1rem;
}

.acsi-contact-inline-action .acsi-card-actions,
.acsi-contact-inline-action p {
    margin: 0;
}

.acsi-contact-inline-action > p {
    flex: 1 1 240px;
    color: var(--acsi-muted);
    font-size: 0.76rem;
}

.acsi-contact-map-card {
    background: linear-gradient(180deg, color-mix(in srgb, var(--acsi-primary) 7%, var(--acsi-card)), var(--acsi-card));
}

.acsi-contact-map-card iframe {
    height: 320px;
}

.acsi-contact-map-card > .acsi-contact-map-card__body {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: max-content max-content;
    align-items: center;
    justify-content: start;
    column-gap: 0.55rem;
    margin: -3.4rem 1rem 1rem;
    padding: 1.15rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1rem;
    background: color-mix(in srgb, var(--acsi-card) 94%, transparent);
    box-shadow: var(--acsi-shadow);
    backdrop-filter: blur(14px);
}

.acsi-contact-map-card__body > :not(.acsi-card-actions, .acsi-contact-location-pill) {
    grid-column: 1 / -1;
}

.acsi-contact-map-card__body > .acsi-card-actions,
.acsi-contact-map-card__body > .acsi-contact-location-pill {
    grid-row: 4;
    margin-top: 0.55rem;
    margin-bottom: 0;
}

.acsi-contact-map-card__body > .acsi-card-actions {
    grid-column: 1;
}

.acsi-contact-map-card__body > .acsi-contact-location-pill {
    grid-column: 2;
}

.acsi-contact-map-card__body h3 {
    margin: 0.3rem 0 0;
    font-size: 1.15rem;
}

.acsi-contact-map-card__body > p:not(.acsi-eyebrow, .acsi-contact-location-pill) {
    margin: 0.5rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.78rem;
}

.acsi-contact-map-card__body > .acsi-contact-location-pill {
    display: inline-flex;
    box-sizing: border-box;
    align-items: center;
    gap: 0.4rem;
    width: fit-content;
    min-height: 40px;
    margin-top: 0.55rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--acsi-border);
    border-radius: 999px;
    color: var(--acsi-foreground);
    font-size: 0.68rem;
    font-weight: 700;
}

.acsi-contact-location-pill svg {
    width: 0.95rem;
    height: 0.95rem;
    color: var(--acsi-primary);
}

.acsi-contact-email-grid > p {
    margin: 0;
}

.acsi-contact-email-grid > p > a {
    display: grid;
    grid-template-columns: 2.3rem minmax(0, 1fr) 1rem;
    height: 100%;
    align-items: center;
    gap: 0.7rem;
    padding: 0.8rem;
    border: 1px solid var(--acsi-border);
    border-radius: 0.85rem;
    background: var(--acsi-card);
    color: var(--acsi-foreground);
    transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.acsi-contact-email-grid > p > a:hover {
    transform: translateY(-2px);
    border-color: var(--acsi-primary);
    box-shadow: var(--acsi-shadow);
}

.acsi-contact-email-grid > p > a > span:first-child {
    display: grid;
    width: 2.3rem;
    height: 2.3rem;
    place-items: center;
    border-radius: 0.65rem;
    background: color-mix(in srgb, var(--acsi-primary) 9%, var(--acsi-card));
    color: var(--acsi-primary);
}

.acsi-contact-email-grid > p > a > span:nth-child(2) {
    display: grid;
    min-width: 0;
}

.acsi-contact-email-grid > p > a > svg:last-child {
    color: var(--acsi-muted);
}

.acsi-contact-form-wrap {
    margin-top: 1rem;
}

.acsi-contact-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.acsi-contact-form label.acsi-contact-form__field--name,
.acsi-contact-form label.acsi-contact-form__field--email {
    grid-column: auto;
}

.acsi-contact-form .acsi-contact-form__field--phone,
.acsi-contact-form .acsi-contact-form__field--message,
.acsi-contact-form button {
    grid-column: 1 / -1;
}

.acsi-contact-form button {
    width: 100%;
}

.acsi-form-privacy-note {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--acsi-muted);
    font-size: 0.8rem;
    line-height: 1.5;
}

.acsi-form-privacy-note a {
    color: var(--acsi-primary);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.acsi-contact-form__website {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.acsi-contact-form__notice {
    margin-bottom: 1rem;
    padding: 0.8rem 0.9rem;
    border-radius: 0.7rem;
    font-size: 0.78rem;
}

.acsi-contact-form__notice--success {
    border: 1px solid #6ee7b7;
    background: #ecfdf5;
    color: #065f46;
}

.acsi-contact-form__notice--error {
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #991b1b;
}

.acsi-contact-secretary {
    justify-content: flex-start;
    border-color: #1e293b;
    background:
        radial-gradient(circle at 90% 10%, rgba(56, 189, 248, 0.14), transparent 32%),
        linear-gradient(145deg, #0f172a, #020617);
    color: #ffffff;
}

.acsi-contact-secretary h2,
.acsi-contact-secretary h3 {
    color: #ffffff;
}

.acsi-contact-secretary > p {
    color: rgba(255, 255, 255, 0.78) !important;
}

.acsi-contact-icon--glass {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

.acsi-contact-secretary__person {
    margin-top: 1.1rem;
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.9rem;
    background: rgba(255, 255, 255, 0.06);
}

.acsi-contact-secretary__person h3 {
    margin: 0.25rem 0 0;
}

.acsi-contact-secretary__person > p:last-child {
    margin: 0.45rem 0 0;
}

.acsi-contact-secretary__person a {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: #bae6fd;
    font-size: 0.78rem;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.acsi-contact-secretary__person svg {
    width: 1rem;
    height: 1rem;
}

@media (max-width: 840px) {
    .acsi-training-hero > .acsi-hero-actions {
        align-self: flex-start;
    }

    .acsi-contact-office-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 620px) {
    .acsi-card-heading {
        gap: 0.7rem;
    }

    .acsi-contact-form {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-contact-form .acsi-contact-form__field--phone,
    .acsi-contact-form .acsi-contact-form__field--message,
    .acsi-contact-form button {
        grid-column: auto;
    }

    .acsi-contact-map-card > .acsi-contact-map-card__body {
        margin-inline: 0.75rem;
    }
}

/* React parity: compact Norme e dintorni archive. */
.acsi-norms .acsi-articles__header h1 {
    font-size: clamp(2rem, 3vw, 2.65rem);
    line-height: 1.1;
}

.acsi-norms > .acsi-container {
    padding-top: 2.5rem;
}

.acsi-norms__toolbar .acsi-article-search {
    margin-left: auto;
}

/* React parity: native digital-service pages. */
.acsi-digital-service__container {
    max-width: 1280px;
    padding-block: clamp(2rem, 4vw, 3.5rem);
}

.acsi-digital-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(2.4rem, 5vw, 3.5rem) clamp(1.5rem, 4vw, 3rem);
    border-radius: 1.5rem;
    background:
        radial-gradient(circle at 0 0, rgba(255, 255, 255, 0.12), transparent 32%),
        radial-gradient(circle at 100% 100%, rgba(255, 255, 255, 0.1), transparent 38%),
        linear-gradient(90deg, #0c4a6e, #075985 52%, #0284c7);
    color: #ffffff;
    box-shadow: 0 24px 55px -34px rgba(3, 105, 161, 0.8);
}

.acsi-digital-hero__content {
    position: relative;
    z-index: 1;
    max-width: 900px;
}

.acsi-digital-hero .acsi-eyebrow {
    color: rgba(255, 255, 255, 0.78);
    letter-spacing: 0.3em;
}

.acsi-digital-hero h1 {
    margin: 0.8rem 0 0;
    font-size: clamp(2.15rem, 4vw, 3rem);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.08;
}

.acsi-digital-hero__content > p:not(.acsi-eyebrow) {
    max-width: 780px;
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, 0.84);
    font-size: 1rem;
    line-height: 1.65;
}

.acsi-digital-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.acsi-digital-hero__action {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    padding: 0.7rem 1.25rem;
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1;
    transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.acsi-digital-hero__action:hover {
    transform: translateY(-2px);
}

.acsi-theme .acsi-digital-hero__action--light {
    border-color: #ffffff;
    background: #ffffff;
    color: #075985;
    box-shadow: 0 16px 30px -22px rgba(15, 23, 42, 0.85);
}

.acsi-digital-hero__action--outline {
    color: #ffffff;
}

.acsi-digital-hero__action--outline:hover {
    background: rgba(255, 255, 255, 0.1);
}

.acsi-digital-hero__action svg {
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-digital-overview {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 1.5rem;
    margin-top: 2.5rem;
}

.acsi-digital-panel {
    min-width: 0;
    padding: 1.5rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1.5rem;
    box-shadow: 0 18px 40px -34px rgba(15, 23, 42, 0.5);
}

.acsi-digital-panel--light {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 0.9rem;
    background: var(--acsi-card);
}

.acsi-digital-panel__icon {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border-radius: 0.75rem;
    background: #e0f2fe;
    color: #0369a1;
    box-shadow: inset 0 0 18px rgba(14, 165, 233, 0.08);
}

.acsi-digital-panel__icon svg,
.acsi-digital-checklist svg,
.acsi-digital-feature svg,
.acsi-digital-benefit svg {
    width: 1.2rem;
    height: 1.2rem;
    flex: 0 0 1.2rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-digital-panel .acsi-eyebrow {
    margin-bottom: 0.65rem;
    color: #0369a1;
    letter-spacing: 0.26em;
}

.acsi-digital-panel h2 {
    margin: 0;
    font-size: clamp(1.35rem, 2vw, 1.6rem);
    font-weight: 850;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.acsi-digital-panel__copy {
    margin: 0.75rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.9rem;
    line-height: 1.65;
}

.acsi-digital-checklist {
    display: grid;
    gap: 0.65rem;
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
}

.acsi-digital-checklist li {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    color: color-mix(in srgb, var(--acsi-foreground) 88%, transparent);
    font-size: 0.88rem;
    line-height: 1.55;
}

.acsi-digital-checklist svg {
    margin-top: 0.15rem;
    color: #0284c7;
}

.acsi-digital-panel--dark {
    position: relative;
    overflow: hidden;
    border-color: #1e293b;
    background:
        radial-gradient(circle at 18% 12%, rgba(56, 189, 248, 0.13), transparent 38%),
        radial-gradient(circle at 85% 0, rgba(14, 165, 233, 0.11), transparent 34%),
        #020617;
    color: #ffffff;
}

.acsi-digital-panel--dark .acsi-digital-panel__copy {
    color: rgba(255, 255, 255, 0.8);
}

.acsi-digital-focus-badge {
    display: inline-flex;
    padding: 0.34rem 0.62rem;
    border-radius: 0.4rem;
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    font-size: 0.7rem;
    font-weight: 800;
}

.acsi-digital-panel--dark > h2 {
    margin-top: 0.75rem;
}

.acsi-digital-features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
}

.acsi-digital-feature {
    min-width: 0;
    padding: 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.05);
}

.acsi-digital-feature__title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.acsi-digital-feature__title > span {
    display: grid;
    width: 2rem;
    height: 2rem;
    flex: 0 0 2rem;
    place-items: center;
    border-radius: 0.5rem;
    background: rgba(255, 255, 255, 0.14);
}

.acsi-digital-feature__title h3 {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.3;
}

.acsi-digital-feature p {
    margin: 0.45rem 0 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.72rem;
    line-height: 1.5;
}

.acsi-digital-store-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.acsi-digital-store-links a {
    padding: 0.48rem 0.8rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    font-size: 0.75rem;
    font-weight: 800;
}

.acsi-digital-store-links a:hover {
    background: rgba(255, 255, 255, 0.18);
}

.acsi-digital-benefits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.5rem;
}

.acsi-digital-benefit {
    position: relative;
    overflow: hidden;
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1.5rem;
    background: linear-gradient(135deg, #e0f2fe, #f0f9ff);
    box-shadow: 0 18px 40px -34px rgba(15, 23, 42, 0.45);
}

.acsi-digital-benefit:nth-child(2) {
    background: linear-gradient(135deg, #dbeafe, #eff6ff);
}

.acsi-digital-benefit:nth-child(3) {
    background: linear-gradient(135deg, #e0e7ff, #eef2ff);
}

.acsi-digital-benefit h2 {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0;
    color: #0f172a;
    font-size: 1.05rem;
}

.acsi-digital-benefit h2 svg {
    color: #0369a1;
}

.acsi-digital-benefit ul {
    display: grid;
    gap: 0.55rem;
    margin: 0.9rem 0 0;
    padding: 0;
    color: #334155;
    font-size: 0.86rem;
    line-height: 1.5;
    list-style: none;
}

.acsi-digital-benefit li {
    position: relative;
    padding-left: 1rem;
}

.acsi-digital-benefit li::before {
    position: absolute;
    top: 0.62em;
    left: 0;
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 999px;
    background: #0ea5e9;
    content: "";
}

html[data-theme="dark"] .acsi-digital-panel__icon {
    background: rgba(14, 165, 233, 0.18);
    color: #7dd3fc;
}

html[data-theme="dark"] .acsi-digital-hero {
    background:
        radial-gradient(circle at 0 0, rgba(56, 189, 248, 0.08), transparent 32%),
        radial-gradient(circle at 100% 100%, rgba(255, 255, 255, 0.05), transparent 38%),
        linear-gradient(90deg, #020617, #0b1120 55%, #0f172a);
}

html[data-theme="dark"] .acsi-digital-benefit,
html[data-theme="dark"] .acsi-digital-benefit:nth-child(2),
html[data-theme="dark"] .acsi-digital-benefit:nth-child(3) {
    background: linear-gradient(135deg, #0f172a, #111c32);
}

html[data-theme="dark"] .acsi-digital-benefit h2 {
    color: #f8fafc;
}

html[data-theme="dark"] .acsi-digital-benefit ul {
    color: #cbd5e1;
}

/* React parity: TeamSystem campaign hero with the editable legacy modules kept below. */
.acsi-teamsystem-page {
    background:
        radial-gradient(circle at 0 0, rgba(34, 211, 238, 0.14), transparent 25rem),
        radial-gradient(circle at 100% 0, rgba(14, 165, 233, 0.1), transparent 24rem),
        linear-gradient(180deg, #f7fbff 0, #ffffff 34rem, #eef6ff 100%);
}

.acsi-teamsystem-shell {
    max-width: 1280px;
    padding-block: clamp(2.5rem, 5vw, 4rem) 1.5rem;
}

.acsi-teamsystem-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, 420px);
    align-items: stretch;
    gap: 2rem;
}

.acsi-teamsystem-hero__main {
    padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 3.5vw, 2.5rem);
    border: 1px solid rgba(34, 211, 238, 0.16);
    border-radius: 2rem;
    background:
        radial-gradient(circle at 100% 0, rgba(103, 232, 249, 0.18), transparent 24%),
        radial-gradient(circle at 0 100%, rgba(14, 165, 233, 0.2), transparent 30%),
        linear-gradient(135deg, #020617, #0f172a);
    color: #ffffff;
    box-shadow: 0 28px 65px -34px rgba(2, 6, 23, 0.85);
}

html[data-theme="light"] .acsi-teamsystem-hero__main {
    border-color: #bae6fd;
    background:
        radial-gradient(circle at 100% 0, rgba(34, 211, 238, 0.24), transparent 30%),
        radial-gradient(circle at 0 100%, rgba(14, 165, 233, 0.12), transparent 36%),
        linear-gradient(145deg, #ffffff 0%, #f0f9ff 58%, #e0f2fe 100%);
    color: #0f172a;
    box-shadow: 0 28px 65px -38px rgba(14, 116, 144, 0.3);
}

.acsi-teamsystem-hero__badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.acsi-teamsystem-hero__badges span,
.acsi-teamsystem-hero__badges strong {
    display: inline-flex;
    padding: 0.38rem 0.7rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.22em;
    line-height: 1;
    text-transform: uppercase;
}

.acsi-teamsystem-hero__badges span {
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.08);
    color: #cffafe;
}

.acsi-teamsystem-hero__badges strong {
    background: #67e8f9;
    color: #020617;
}

html[data-theme="light"] .acsi-teamsystem-hero__badges span {
    border-color: #a5f3fc;
    background: rgba(255, 255, 255, 0.72);
    color: #0e7490;
}

.acsi-teamsystem-hero h1 {
    max-width: 850px;
    margin: 1.4rem 0 0;
    font-size: clamp(2.5rem, 4.4vw, 3.75rem);
    font-weight: 950;
    letter-spacing: -0.045em;
    line-height: 1.02;
    text-wrap: balance;
}

html[data-theme="light"] .acsi-teamsystem-hero h1 {
    color: #0f172a;
}

.acsi-teamsystem-hero__main > p {
    max-width: 760px;
    margin: 1rem 0 0;
    color: #cbd5e1;
    font-size: 0.96rem;
    line-height: 1.7;
}

.acsi-teamsystem-hero__main > .acsi-teamsystem-hero__lead {
    color: #e2e8f0;
    font-size: 1.05rem;
}

.acsi-teamsystem-hero__main > .acsi-teamsystem-hero__note {
    color: rgba(203, 213, 225, 0.85);
    font-size: 0.82rem;
    line-height: 1.55;
}

html[data-theme="light"] .acsi-teamsystem-hero__main > p {
    color: #475569;
}

html[data-theme="light"] .acsi-teamsystem-hero__main > .acsi-teamsystem-hero__lead {
    color: #334155;
}

html[data-theme="light"] .acsi-teamsystem-hero__main > .acsi-teamsystem-hero__note {
    color: #64748b;
}

.acsi-teamsystem-highlights {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1.4rem;
}

.acsi-teamsystem-highlights p {
    margin: 0;
    padding: 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.05);
    color: #f1f5f9;
    font-size: 0.8rem;
    line-height: 1.55;
}

html[data-theme="light"] .acsi-teamsystem-highlights p {
    border-color: rgba(14, 116, 144, 0.16);
    background: rgba(255, 255, 255, 0.74);
    color: #334155;
    box-shadow: 0 12px 28px -24px rgba(14, 116, 144, 0.45);
}

.acsi-teamsystem-audience {
    align-self: start;
    margin-top: 2rem;
    padding: 1.5rem;
    border: 1px solid var(--acsi-border);
    border-radius: 2rem;
    background: var(--acsi-card);
    box-shadow: 0 22px 50px -38px rgba(15, 23, 42, 0.65);
}

.acsi-teamsystem-audience h2 {
    margin: 0;
    color: var(--acsi-muted);
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.acsi-teamsystem-audience > div {
    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
}

.acsi-teamsystem-audience p {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin: 0;
    padding: 0.8rem 1rem;
    border-radius: 1rem;
    background: var(--acsi-card-muted);
    color: var(--acsi-muted);
    font-size: 0.82rem;
    line-height: 1.55;
}

.acsi-teamsystem-audience svg,
.acsi-teamsystem-audience-grid__items svg {
    width: 1.2rem;
    height: 1.2rem;
    flex: 0 0 1.2rem;
    margin-top: 0.12rem;
    fill: none;
    stroke: #0e7490;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-teamsystem-audience-grid {
    padding-block: clamp(2.5rem, 5vw, 4rem);
}

.acsi-teamsystem-section-title {
    max-width: 850px;
    margin-inline: auto;
    text-align: center;
}

.acsi-teamsystem-section-title h2 {
    margin: 0.7rem 0 0;
    font-size: clamp(2rem, 3.5vw, 2.55rem);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.1;
}

.acsi-teamsystem-audience-grid__items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    max-width: 1024px;
    margin: 2rem auto 0;
}

.acsi-teamsystem-audience-grid__items article {
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid var(--acsi-border);
    border-radius: 1.5rem;
    background: var(--acsi-card);
    box-shadow: 0 18px 40px -36px rgba(15, 23, 42, 0.55);
}

.acsi-teamsystem-audience-grid__items p {
    margin: 0.7rem 0 0;
    color: var(--acsi-muted);
    font-size: 0.84rem;
    line-height: 1.6;
}

.acsi-teamsystem-products {
    padding-block: 1rem clamp(3.5rem, 6vw, 5rem);
}

.acsi-teamsystem-products__heading {
    max-width: 760px;
}

.acsi-teamsystem-products__heading h2 {
    margin: 0.7rem 0 0;
    font-size: clamp(2rem, 3.5vw, 2.55rem);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.1;
}

.acsi-teamsystem-products__heading > p:last-child,
.acsi-teamsystem-products__lead p,
.acsi-teamsystem-product__description {
    color: var(--acsi-muted);
    line-height: 1.7;
}

.acsi-teamsystem-products__heading > p:last-child {
    margin: 0.9rem 0 0;
    font-size: 1rem;
}

.acsi-teamsystem-products__lead {
    margin-top: 2rem;
    padding: 1.5rem clamp(1.25rem, 3vw, 2rem);
    border: 1px solid var(--acsi-border);
    border-radius: 2rem;
    background: var(--acsi-card);
    box-shadow: 0 18px 40px -36px rgba(15, 23, 42, 0.55);
}

.acsi-teamsystem-products__lead p {
    margin: 0;
}

.acsi-teamsystem-products__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 1.25rem;
}

.acsi-teamsystem-product {
    display: flex;
    min-width: 0;
    min-height: 100%;
    flex-direction: column;
    justify-content: space-between;
    padding: clamp(1.4rem, 3vw, 2rem);
    border: 1px solid;
    border-radius: 2rem;
    box-shadow: 0 18px 40px -36px rgba(15, 23, 42, 0.55);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.acsi-teamsystem-product:hover,
.acsi-teamsystem-product:focus-within {
    transform: translateY(-0.25rem);
    box-shadow: 0 24px 45px -30px rgba(15, 23, 42, 0.35);
}

.acsi-teamsystem-product--sport {
    border-color: #a5f3fc;
    background: #ecfeff;
    color: #155e75;
}

.acsi-teamsystem-product--third-sector {
    border-color: #fde68a;
    background: #fffbeb;
    color: #92400e;
}

.acsi-teamsystem-product__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.acsi-teamsystem-product__audience {
    margin: 0;
    color: currentColor;
    font-size: 0.75rem;
    font-weight: 850;
    letter-spacing: 0.16em;
    line-height: 1.45;
    text-transform: uppercase;
}

.acsi-teamsystem-product h3 {
    margin: 0.55rem 0 0;
    color: var(--acsi-foreground);
    font-size: clamp(1.45rem, 2.5vw, 1.8rem);
    font-weight: 900;
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.acsi-teamsystem-product__icon {
    display: inline-grid;
    width: 3rem;
    height: 3rem;
    flex: 0 0 3rem;
    place-items: center;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.72);
}

.acsi-teamsystem-product__icon svg {
    width: 1.5rem;
    height: 1.5rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-teamsystem-product__description {
    margin: 1.25rem 0 0;
}

.acsi-teamsystem-product ul {
    display: grid;
    gap: 0.8rem;
    margin: 1.25rem 0 0;
    padding: 0;
    list-style: none;
}

.acsi-teamsystem-product li {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    color: var(--acsi-muted);
    font-size: 0.88rem;
    line-height: 1.55;
}

.acsi-teamsystem-product li svg {
    width: 1.2rem;
    height: 1.2rem;
    flex: 0 0 1.2rem;
    margin-top: 0.12rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-teamsystem-product__link {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1.5rem;
    color: currentColor;
    font-size: 0.88rem;
    font-weight: 800;
    text-decoration: none;
}

.acsi-teamsystem-product__link:hover {
    color: var(--acsi-foreground);
}

.acsi-teamsystem-product__link svg {
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.acsi-teamsystem-legacy {
    padding-top: 0;
}

.acsi-teamsystem-legacy > .acsi-editorial-section:first-child {
    display: none;
}

.acsi-teamsystem-legacy > .acsi-editorial-section + .acsi-editorial-section {
    margin-top: clamp(4rem, 8vw, 6.5rem);
}

.acsi-teamsystem-legacy > .acsi-editorial-section:nth-child(2) {
    margin-top: 0;
}

.acsi-teamsystem-legacy .acsi-teamsystem-legacy-title {
    margin: 0 0 clamp(1.5rem, 3vw, 2rem);
    color: var(--acsi-foreground);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1.08;
    text-align: left;
    text-wrap: balance;
}

/* The product cards above replace the older editorial CTA block while the
   remaining benefits, FAQ and contact form stay editable in WordPress. */
.acsi-teamsystem-legacy > .acsi-editorial-section:has(.cta-group) {
    display: none;
}

@supports not selector(:has(*)) {
    .acsi-teamsystem-legacy > .acsi-editorial-section:nth-child(4) {
        display: none;
    }
}

/* Match the dedicated FAQ archive instead of retaining the flatter legacy
   Gutenberg presentation used by the imported landing. */
.acsi-teamsystem-page .acsi-pattern-faq {
    gap: 0.85rem;
}

.acsi-teamsystem-page .acsi-pattern-faq .faq-item {
    overflow: hidden;
    padding: 0;
    border: 1px solid var(--acsi-border);
    border-radius: 1.25rem;
    background: var(--acsi-card);
    box-shadow: 0 18px 45px -42px rgba(15, 23, 42, 0.75);
}

.acsi-teamsystem-page .acsi-pattern-faq .faq-item[open] {
    border-color: color-mix(in srgb, var(--acsi-primary) 40%, var(--acsi-border));
}

.acsi-teamsystem-page .acsi-pattern-faq .faq-item summary {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 2.3rem;
    align-items: center;
    gap: 1rem;
    min-height: 5.2rem;
    padding: 1.15rem 1.25rem 1.15rem clamp(1.25rem, 3vw, 2rem);
    color: var(--acsi-foreground);
    cursor: pointer;
    font-size: clamp(1rem, 1.4vw, 1.12rem);
    font-weight: 800;
    list-style: none;
}

.acsi-teamsystem-page .acsi-pattern-faq .faq-item summary::-webkit-details-marker {
    display: none;
}

.acsi-teamsystem-page .acsi-pattern-faq .faq-item summary::after {
    display: grid;
    width: 2.3rem;
    height: 2.3rem;
    place-items: center;
    border-radius: 999px;
    background: color-mix(in srgb, var(--acsi-primary) 10%, transparent);
    color: var(--acsi-primary);
    content: "+";
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1;
}

.acsi-teamsystem-page .acsi-pattern-faq .faq-item[open] summary::after {
    content: "−";
}

.acsi-teamsystem-page .acsi-pattern-faq .faq-item summary:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--acsi-primary) 45%, transparent);
    outline-offset: -3px;
}

.acsi-teamsystem-page .acsi-pattern-faq .faq-item > :not(summary) {
    margin-top: 0;
    padding-right: clamp(1.25rem, 3vw, 2rem);
    padding-left: clamp(1.25rem, 3vw, 2rem);
    color: var(--acsi-muted);
    font-size: 0.95rem;
    line-height: 1.75;
}

.acsi-teamsystem-page .acsi-pattern-faq .faq-item > :last-child {
    margin-bottom: 0;
    padding-bottom: 1.5rem;
}

/* The campaign form now shares the National Secretariat form component. */
.acsi-teamsystem-form-wrap {
    margin-top: 0;
}

.acsi-teamsystem-contact-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 0;
}

.acsi-teamsystem-contact-form .acsi-contact-form__field--organization,
.acsi-teamsystem-contact-form .acsi-contact-form__field--phone {
    grid-column: auto;
}

.acsi-teamsystem-contact-form .acsi-contact-form__field--message,
.acsi-teamsystem-contact-form .acsi-form-privacy-note,
.acsi-teamsystem-contact-form button {
    grid-column: 1 / -1;
}

@media (max-width: 620px) {
    .acsi-teamsystem-contact-form {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-teamsystem-contact-form :is(
        .acsi-contact-form__field--organization,
        .acsi-contact-form__field--phone,
        .acsi-contact-form__field--message,
        .acsi-form-privacy-note,
        button
    ) {
        grid-column: auto;
    }
}

html[data-theme="dark"] .acsi-teamsystem-page {
    background:
        radial-gradient(circle at 0 0, rgba(34, 211, 238, 0.08), transparent 24rem),
        linear-gradient(180deg, #020617, #0b1120 38rem, #020617);
}

html[data-theme="dark"] .acsi-teamsystem-product--sport,
html[data-theme="dark"] .acsi-teamsystem-product--third-sector {
    border-color: rgba(148, 163, 184, 0.22);
    background: rgba(15, 23, 42, 0.82);
}

html[data-theme="dark"] .acsi-teamsystem-product--sport {
    color: #67e8f9;
}

html[data-theme="dark"] .acsi-teamsystem-product--third-sector {
    color: #fcd34d;
}

html[data-theme="dark"] .acsi-teamsystem-product__icon {
    background: rgba(255, 255, 255, 0.06);
}

@media (max-width: 1024px) {
    .acsi-digital-overview,
    .acsi-teamsystem-hero {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-teamsystem-audience {
        margin-top: 0;
    }
}

@media (max-width: 780px) {
    .acsi-digital-benefits,
    .acsi-teamsystem-audience-grid__items,
    .acsi-teamsystem-products__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-norms__toolbar .acsi-article-search {
        margin-left: 0;
    }
}

@media (max-width: 620px) {
    .acsi-contact-map-card > .acsi-contact-map-card__body {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-contact-map-card__body > .acsi-card-actions,
    .acsi-contact-map-card__body > .acsi-contact-location-pill {
        grid-row: auto;
        grid-column: 1;
        max-width: 100%;
        justify-self: start;
    }

    .acsi-contact-map-card__body > .acsi-contact-location-pill {
        overflow-wrap: anywhere;
    }

    .acsi-digital-hero {
        padding: 2rem 1.25rem;
        border-radius: 1.25rem;
    }

    .acsi-digital-hero__actions,
    .acsi-digital-store-links {
        align-items: stretch;
        flex-direction: column;
    }

    .acsi-digital-hero__action,
    .acsi-digital-store-links a {
        width: 100%;
        text-align: center;
    }

    .acsi-digital-panel--light {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-digital-features,
    .acsi-teamsystem-highlights {
        grid-template-columns: minmax(0, 1fr);
    }

    .acsi-teamsystem-shell {
        padding-top: 2rem;
    }

    .acsi-teamsystem-hero__main,
    .acsi-teamsystem-audience {
        border-radius: 1.5rem;
    }

    .acsi-teamsystem-hero h1 {
        font-size: clamp(2.1rem, 11vw, 2.7rem);
    }

    .acsi-teamsystem-hero__badges span,
    .acsi-teamsystem-hero__badges strong {
        letter-spacing: 0.14em;
    }
}

/* The certification CTA uses the dark variant in Gutenberg, but its surface
   resolves to a light gradient in the light theme. Keep its text legible. */
html[data-theme="light"] .acsi-training-cta--dark {
    color: var(--acsi-foreground);
}

html[data-theme="light"] .acsi-training-cta--dark h2 {
    color: var(--acsi-foreground);
}

html[data-theme="light"] .acsi-training-cta--dark p:not(.acsi-eyebrow) {
    color: var(--acsi-muted);
}

html[data-theme="light"] .acsi-training-cta--dark .acsi-eyebrow {
    color: var(--acsi-primary);
}

html[data-theme="light"] .acsi-training .acsi-training-cta--dark .wp-block-button.acsi-button--glass > .wp-block-button__link {
    border-color: var(--acsi-border);
    background: color-mix(in srgb, var(--acsi-primary) 7%, transparent);
    color: var(--acsi-foreground);
}

/* Dark companion cards are used as the final tile in several React-derived
   grids. In the light theme they should read as companion cards, not as dark
   theme islands; the dark theme keeps the original high-contrast treatment. */
html[data-theme="light"] :is(
    .acsi-training-panel--dark,
    .acsi-training-cta--dark,
    .acsi-institutional-panel--dark,
    .acsi-convention-panel--dark,
    .acsi-structure-panel--dark,
    .acsi-digital-panel--dark,
    .acsi-contact-secretary,
    .acsi-faq-support
) {
    border-color: var(--acsi-border);
    background:
        radial-gradient(circle at 90% 10%, color-mix(in srgb, var(--acsi-primary) 9%, transparent), transparent 34%),
        linear-gradient(145deg, var(--acsi-card), var(--acsi-card-muted));
    color: var(--acsi-foreground);
}

html[data-theme="light"] :is(
    .acsi-training-panel--dark,
    .acsi-training-cta--dark,
    .acsi-institutional-panel--dark,
    .acsi-convention-panel--dark,
    .acsi-structure-panel--dark,
    .acsi-digital-panel--dark,
    .acsi-contact-secretary,
    .acsi-faq-support
) :is(h2, h3) {
    color: var(--acsi-foreground);
}

html[data-theme="light"] :is(
    .acsi-training-panel--dark,
    .acsi-training-cta--dark,
    .acsi-institutional-panel--dark,
    .acsi-convention-panel--dark,
    .acsi-structure-panel--dark,
    .acsi-digital-panel--dark,
    .acsi-contact-secretary,
    .acsi-faq-support
) p:not(.acsi-eyebrow, .acsi-elearning-panel-eyebrow) {
    color: var(--acsi-muted);
}

html[data-theme="light"] :is(
    .acsi-training-panel--dark,
    .acsi-training-cta--dark,
    .acsi-institutional-panel--dark,
    .acsi-convention-panel--dark,
    .acsi-faq-support
) .acsi-eyebrow,
html[data-theme="light"] .acsi-training .acsi-elearning-support-panel .acsi-elearning-panel-eyebrow {
    color: var(--acsi-primary);
}

html[data-theme="light"] .acsi-training .acsi-elearning-support-panel {
    background:
        radial-gradient(circle at 90% 10%, color-mix(in srgb, var(--acsi-primary) 9%, transparent), transparent 34%),
        linear-gradient(145deg, var(--acsi-card), var(--acsi-card-muted));
}

html[data-theme="light"] .acsi-training .acsi-elearning-support-panel > p:not(.acsi-elearning-panel-eyebrow),
html[data-theme="light"] .acsi-institutional-panel--dark > p:not(.acsi-eyebrow),
html[data-theme="light"] .acsi-convention-panel--dark > p:not(.acsi-eyebrow),
html[data-theme="light"] .acsi-structure-panel--dark > p,
html[data-theme="light"] .acsi-digital-panel--dark .acsi-digital-panel__copy,
html[data-theme="light"] .acsi-faq-support p:last-child {
    color: var(--acsi-muted);
}

html[data-theme="light"] .acsi-contact-secretary > p {
    color: var(--acsi-muted) !important;
}

html[data-theme="light"] :is(
    .acsi-institutional-panel--dark,
    .acsi-convention-panel--dark
) ul {
    color: var(--acsi-muted);
}

html[data-theme="light"] :is(
    .acsi-institutional-feature-grid > div,
    .acsi-digital-feature,
    .acsi-contact-secretary__person
) {
    border-color: var(--acsi-border);
    background: var(--acsi-card-muted);
}

html[data-theme="light"] .acsi-institutional-feature-grid p,
html[data-theme="light"] .acsi-digital-feature p {
    color: var(--acsi-muted);
}

html[data-theme="light"] :is(
    .acsi-institutional-panel--dark .acsi-institutional-icon,
    .acsi-structure-panel--dark .acsi-structure-icon,
    .acsi-contact-secretary .acsi-contact-heading-icon,
    .acsi-contact-secretary .acsi-contact-icon--glass,
    .acsi-digital-feature__title > span
) {
    background: color-mix(in srgb, var(--acsi-primary) 11%, var(--acsi-card));
    color: var(--acsi-primary);
}

html[data-theme="light"] .acsi-digital-focus-badge,
html[data-theme="light"] .acsi-digital-store-links a {
    background: color-mix(in srgb, var(--acsi-primary) 10%, var(--acsi-card));
    color: var(--acsi-foreground);
}

html[data-theme="light"] .acsi-elearning-support-link,
html[data-theme="light"] .acsi-contact-secretary__person a {
    color: var(--acsi-primary);
    text-decoration-color: color-mix(in srgb, var(--acsi-primary) 45%, transparent);
}

html[data-theme="light"] :is(
    .acsi-training-panel--dark,
    .acsi-training-cta--dark,
    .acsi-institutional-panel--dark,
    .acsi-convention-panel--dark,
    .acsi-contact-secretary
) :is(.wp-block-button.acsi-button--glass > .wp-block-button__link, a.acsi-button--glass),
html[data-theme="light"] .acsi-faq-support .acsi-button--outline {
    border-color: var(--acsi-border);
    background: color-mix(in srgb, var(--acsi-primary) 7%, transparent);
    color: var(--acsi-foreground);
}

/* -------------------------------------------------------------------------
 * Menu mobile: CTA "Login Gestionale" in cima al pannello.
 * Sotto i 720px il bottone dell'header (.acsi-header__login) viene nascosto
 * per fare posto a logo e hamburger: sotto quella soglia lo riproponiamo
 * dentro il drawer, così non risulta mai duplicato.
 * ---------------------------------------------------------------------- */
.acsi-nav__actions {
    display: none;
}

@media (max-width: 720px) {
    /* Il pannello resta un flex container (regola desktop): senza questo
     * il CTA si affiancherebbe alla lista delle voci invece di stare sopra. */
    .acsi-nav {
        flex-direction: column;
        justify-content: flex-start;
    }

    .acsi-nav__actions {
        display: block;
        flex: 0 0 auto;
        margin-bottom: 1rem;
        padding-bottom: 1rem;
        border-bottom: 1px solid var(--acsi-border);
    }

    .acsi-nav__login {
        width: 100%;
        min-height: 46px;
    }
}

/* -------------------------------------------------------------------------
 * Menu mobile: si apre sempre nello stesso punto.
 * All'apertura il menu bloccava lo scorrimento con overflow:hidden sul body;
 * così la pagina diventa un contenitore chiuso, l'header perde l'aggancio in
 * alto e si porta via il pannello (a meta pagina finivano entrambi fuori
 * schermo). Senza quel blocco restano al loro posto in qualunque punto.
 * ---------------------------------------------------------------------- */
@media (max-width: 960px) {
    body.acsi-menu-open {
        overflow: visible;
    }
}

/* -------------------------------------------------------------------------
 * Velo delicato, uguale dappertutto e sempre.
 * Velo al 98% su barra, pannello del menu e tendine: si deve appena
 * percepire. Il tema partiva da 90 sulla barra: era troppo.
 * Il velo NON cambia quando si scorre: l'effetto che compariva a metà strada
 * distraeva. Sul telefono niente sfocatura, solo il velo di colore: un header
 * sfocato diventa il riferimento degli elementi fissi che contiene e il
 * pannello del menu si aggancerebbe a lui, spostandosi.
 * ---------------------------------------------------------------------- */
.acsi-header {
    background: color-mix(in srgb, var(--acsi-background) 98%, transparent);
}

@media (max-width: 960px) {
    .acsi-header {
        background: color-mix(in srgb, var(--acsi-background) 98%, transparent);
    }
}

@media (min-width: 961px) {
    .acsi-nav .sub-menu {
        background: color-mix(in srgb, var(--acsi-card) 98%, transparent);
        -webkit-backdrop-filter: blur(14px);
        backdrop-filter: blur(14px);
    }

    /* I livelli interni del megamenu non hanno sfondo proprio: restano
     * trasparenti, altrimenti si sommerebbero due veli. */
    .acsi-nav__list > .mega-menu > .sub-menu .sub-menu {
        background: transparent;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }
}

/* Shared sector calendar groups and training sector filter. */
.acsi-sector-calendar__group + .acsi-sector-calendar__group {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--acsi-border);
}
.acsi-sector-calendar__heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.acsi-sector-calendar__heading h3 { margin: 0; }
.acsi-sector-event-card h4 {
    margin: 0;
    font-size: 1rem;
    line-height: 1.4;
}
.acsi-sector-event-card h4 a { color: inherit; text-decoration: none; }
.acsi-sector-event-card h4 a:hover { text-decoration: underline; }
