/* ==========================================================================
   Salone Mediterraneo - Main Stylesheet
   ========================================================================== */

/* Honeypot anti-spam: campo nascosto ai browser reali ma compilato dai bot.
   Non usare display:none (alcuni bot lo ignorano) — usare off-screen positioning. */
.sm-hp-field {
    position: absolute !important;
    left: -9999px !important;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

/* === Reset & Base === */

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    scroll-behavior: smooth;
    /* Compensazione globale per header fixed (100px) + admin bar WP (32px desktop /
       46px mobile) + respiro visivo su tutti gli scroll con hash anchor.
       160px copre: no-admin-bar (60px aria), admin-bar desktop (28px), admin-bar
       mobile (14px). Funziona cross-page e in-page. */
    scroll-padding-top: 160px;
}

body {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: var(--text-body-sm);
    line-height: var(--lh-body-sm);
    color: var(--color-gray-text);
    background-color: var(--color-white);
    overflow-x: hidden;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
}

ul, ol {
    list-style: none;
}

/* === Layout === */

.sm-container {
    max-width: var(--container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
}

.sm-section {
    padding-top: var(--section-padding-y);
    padding-bottom: var(--section-padding-y);
}

/* === Typography === */

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    color: var(--color-navy-dark);
}

.sm-h1 {
    font-family: var(--font-mono);
    font-weight: 900;
    font-size: var(--text-h1);
    line-height: var(--lh-h1);
    text-transform: uppercase;
    color: var(--color-navy);
}

.sm-h2 {
    font-weight: 900;
    font-size: var(--text-h2);
    line-height: var(--lh-h2);
    letter-spacing: var(--ls-h2);
}

.sm-h2--cta {
    font-size: var(--text-h2-cta);
    line-height: var(--lh-h2-cta);
    letter-spacing: var(--ls-h2-cta);
}

.sm-h3 {
    font-weight: 800;
    font-size: var(--text-h3);
    line-height: var(--lh-h3);
}

.sm-h4 {
    font-weight: 700;
    font-size: var(--text-h4);
    line-height: var(--lh-h4);
}

.sm-h4--section {
    font-weight: 900;
    font-size: var(--text-h4-section);
    line-height: var(--lh-h4-section);
    letter-spacing: var(--ls-h4-section);
}

.sm-overline {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--text-overline);
    line-height: var(--lh-overline);
    letter-spacing: var(--ls-overline);
    text-transform: uppercase;
    color: var(--color-red);
}

.sm-body-lg {
    font-size: var(--text-body-lg);
    line-height: var(--lh-body-lg);
    letter-spacing: var(--ls-body-lg);
}

.sm-body {
    font-size: var(--text-body);
    line-height: var(--lh-body);
}

.sm-body-sm {
    font-size: var(--text-body-sm);
    line-height: var(--lh-body-sm);
}

/* === Buttons (shared) === */

.sm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--text-button);
    line-height: var(--lh-button);
    letter-spacing: var(--ls-button);
    text-transform: uppercase;
    border-radius: var(--radius-button);
    cursor: pointer;
    transition: opacity 0.2s ease, transform 0.2s ease;
    border: none;
    white-space: nowrap;
}

.sm-btn:hover {
    opacity: 0.9;
}

.sm-btn--primary {
    background-color: var(--color-red);
    color: var(--color-white);
    padding: 20px 40px;
    box-shadow: 0px 20px 25px -5px rgba(187, 0, 39, 0.2),
                0px 8px 10px -6px rgba(187, 0, 39, 0.2);
}

.sm-btn--outline {
    background-color: transparent;
    border: 2px solid var(--color-blue-medium);
    color: var(--color-blue-medium);
    padding: 22px 42px;
}

.sm-btn--outline-white {
    background-color: transparent;
    border: 2px solid var(--color-white);
    color: var(--color-white);
    padding: 22px 50px;
}

/* === Utilities === */

.text-center {
    text-align: center;
}

.text-white {
    color: var(--color-white);
}

.text-red {
    color: var(--color-red);
}

.text-navy-dark {
    color: var(--color-navy-dark);
}

.bg-navy-dark {
    background-color: var(--color-navy-dark);
}

.bg-navy {
    background-color: var(--color-navy);
}

.bg-white {
    background-color: var(--color-white);
}

/* === Skip link === */

.sm-skip-link {
    position: absolute;
    top: -100px;
    left: 16px;
    z-index: 10000;
    padding: 12px 24px;
    background-color: var(--color-navy-dark);
    color: var(--color-white);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 14px;
    border-radius: 0 0 8px 8px;
    text-decoration: none;
    transition: top 0.2s ease;
}

.sm-skip-link:focus {
    top: 0;
    outline: 2px solid var(--color-red);
    outline-offset: 2px;
}

/* === Screen-reader only (visually hidden, accessible) === */

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* === Placeholder for sections === */

.sm-section-placeholder {
    padding: 80px 0;
    text-align: center;
    color: var(--color-gray-muted);
    font-style: italic;
    border-bottom: 1px solid var(--color-border-footer);
}

/* ==========================================================================
   HEADER
   Figma: 1920x100, backdrop-blur(6px), bg white
   ========================================================================== */

.sm-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    height: 100px;
    background-color: rgba(255, 255, 255, 0.92);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

.sm-header.is-sticky {
    background-color: rgba(255, 255, 255, 0.98);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.sm-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    height: 100%;
    padding: 24px 36px;
}

/* Logo: 220x60 visible area */
.sm-header__logo {
    flex-shrink: 0;
    width: 220px;
    height: 60px;
}

.sm-header__logo a {
    display: block;
    height: 100%;
}

.sm-header__logo img {
    height: 60px;
    width: auto;
    object-fit: contain;
    object-position: left center;
}

/* Nav: centered, Epilogue Bold 16px, uppercase, gap 40px */
.sm-header__nav {
    display: flex;
    align-items: center;
}

.sm-header__menu {
    display: flex;
    align-items: center;
    gap: 44px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.sm-header__menu li a {
    display: inline-block;
    padding: 6px 0;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 15.5px;
    line-height: 22px;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: var(--color-navy-dark);
    text-decoration: none;
    transition: color 0.2s ease;
}

.sm-header__menu li a:hover {
    color: var(--color-red);
}

/* Menu voce attiva (fallback nav + WP menu) */
.sm-header__menu li.is-active a,
.sm-header__menu li.current-menu-item a,
.sm-header__menu li.current_page_item a {
    color: var(--color-red);
    position: relative;
}

.sm-header__menu li.is-active a::after,
.sm-header__menu li.current-menu-item a::after,
.sm-header__menu li.current_page_item a::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 2px;
    background-color: var(--color-red);
    border-radius: 1px;
}

/* ── Sotto-menu (1 livello standard WordPress) ──
   Markup nativo emesso da wp_nav_menu (depth: 2):
     <li class="menu-item menu-item-has-children">
       <a>Voce padre</a>
       <ul class="sub-menu">…</ul>
     </li>
   Apertura via :hover e :focus-within (CSS puro, niente JS).
   Pattern volutamente semplice: 1 livello di sotto-menu è sufficiente
   per le esigenze del sito. */

.sm-header__menu li {
    position: relative;
}

/* Sotto-menu: card bianca con border sottile, ombra soft, raggio 12px */
.sm-header__menu .sub-menu {
    position: absolute;
    top: calc(100% + 12px);
    left: -16px;
    min-width: 220px;
    margin: 0;
    padding: 8px;
    list-style: none;
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.4);
    border-radius: 12px;
    box-shadow: 0 16px 40px -12px rgba(10, 30, 61, 0.18);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.18s;
    z-index: 200;
}

/* Connettore invisibile padre↔dropdown: evita che l'hover si interrompa nel gap. */
.sm-header__menu .sub-menu::before {
    content: '';
    position: absolute;
    top: -12px;
    left: 0;
    right: 0;
    height: 12px;
}

.sm-header__menu .menu-item-has-children:hover > .sub-menu,
.sm-header__menu .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s;
}

/* Voci interne al sotto-menu */
.sm-header__menu .sub-menu li {
    display: block;
}

.sm-header__menu .sub-menu li a {
    display: block;
    padding: 10px 14px;
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 13.5px;
    line-height: 18px;
    letter-spacing: 0.3px;
    text-transform: none;
    color: var(--color-navy-dark);
    border-radius: 8px;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.sm-header__menu .sub-menu li a:hover {
    background-color: rgba(26, 69, 145, 0.06);
    color: var(--color-red);
}

/* Voce attiva nel sotto-menu: solo color (no underline, in card è ridondante) */
.sm-header__menu .sub-menu li.is-active a::after,
.sm-header__menu .sub-menu li.current-menu-item a::after,
.sm-header__menu .sub-menu li.current_page_item a::after {
    display: none;
}

.sm-header__menu .sub-menu li.current-menu-item > a,
.sm-header__menu .sub-menu li.current_page_item > a {
    color: var(--color-red);
}

/* Indicatore visivo "ha sottomenu" sulla voce padre (chevron piccolo dopo il testo) */
.sm-header__menu > li.menu-item-has-children > a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.sm-header__menu > li.menu-item-has-children > a::after {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-1px);
    opacity: 0.7;
    transition: transform 0.18s ease, opacity 0.18s ease;
}

.sm-header__menu > li.menu-item-has-children:hover > a::after,
.sm-header__menu > li.menu-item-has-children:focus-within > a::after {
    transform: rotate(225deg) translateY(-1px);
    opacity: 1;
}

/* Header CTA buttons: height 44px */
.sm-header__actions {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
}

.sm-btn--header-outline {
    height: 44px;
    padding: 0 32px;
    background-color: transparent;
    border: 1px solid var(--color-blue-medium);
    color: var(--color-blue-medium);
    font-size: 14px;
    letter-spacing: -0.35px;
}

.sm-btn--header-primary {
    height: 44px;
    padding: 0 32px;
    background-color: var(--color-red);
    color: var(--color-white);
    font-size: 14px;
    letter-spacing: -0.35px;
}

/* Mobile toggle (hidden on desktop) */
.sm-header__toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
}

.sm-header__toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background-color: var(--color-navy-dark);
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* ==========================================================================
   HERO
   Figma: 1920x1094, photo bg + overlay + bottom gradient
   ========================================================================== */

.sm-hero {
    position: relative;
    width: 100%;
    min-height: auto;
    display: flex;
    justify-content: center;
    padding-top: 120px;
    padding-bottom: 72px;
    overflow: hidden;
}

/* Background layers */
.sm-hero__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.sm-hero__bg-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: none;
}

/* Video background (video-ready): attivo solo se $hero_video_src è settato
   nel template section-hero.php. Si posiziona sopra l'img e sotto l'overlay
   grazie all'ordine sorgente del DOM. Nascosto su mobile e reduced-motion. */
.sm-hero__bg-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

/* Overlay navy alleggerito (step hero redesign): da 0.60 → 0.50.
   Calibrato per funzionare sia con img-only (oggi) sia con video (futuro). */
.sm-hero__overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(11, 31, 67, 0.50);
}

/* Gradient bottom accorciato: da 328px → 240px.
   Alleggerisce la zona bassa dell'hero (countdown + CTA area). */
.sm-hero__gradient-bottom {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 240px;
    background: linear-gradient(to top, var(--color-hero-gradient) 20%, rgba(11, 31, 67, 0) 100%);
}

/* Hide video background on mobile/tablet:
   risparmio banda + batteria + autoplay instabile su iOS Safari */
@media (max-width: 960px) {
    .sm-hero__bg-video {
        display: none;
    }
}

/* Accessibilità: utenti con sensibilità al movimento vedono solo l'img */
@media (prefers-reduced-motion: reduce) {
    .sm-hero__bg-video {
        display: none;
    }
}

/* Decorative border rectangles */
.sm-hero__deco {
    position: absolute;
    border: 1px solid rgba(197, 198, 207, 0.2);
    border-radius: 12px;
    opacity: 0.3;
    z-index: 1;
    pointer-events: none;
}

.sm-hero__deco--right {
    width: 384px;
    top: 275px;
    right: -80px;
    height: 392px;
}

.sm-hero__deco--left {
    width: 480px;
    top: 337px;
    left: -80px;
    height: 490px;
}

/* Hero container: 1024px centered */
.sm-hero__container {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1024px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Logo: 470x100 */
.sm-hero__logo {
    width: 470px;
    height: 100px;
    margin-bottom: 28px;
}

.sm-hero__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* H1: Inter Black 96px, white, uppercase, centered */
.sm-hero__title {
    font-family: var(--font-mono);
    font-weight: 900;
    font-size: 96px;
    line-height: 96px;
    text-transform: uppercase;
    color: var(--color-white);
    text-align: center;
    margin-bottom: 24px;
}

/* Subtitle: Manrope Regular 24px, white, centered */
.sm-hero__subtitle {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 24px;
    line-height: 32px;
    letter-spacing: -0.6px;
    color: var(--color-white);
    text-align: center;
    max-width: 672px;
    margin-bottom: 48px;
}

/* Quando / Dove info blocks */
.sm-hero__info {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 48px;
    margin-bottom: 24px;
}

.sm-hero__info-block {
    display: flex;
    flex-direction: column;
    padding-left: 26px;
    padding-bottom: 4px;
    border-left: 2px solid var(--color-red);
}

.sm-hero__info-block:first-child {
    min-width: 298px;
}

.sm-hero__info-label {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 18px;
    line-height: 28px;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: var(--color-blue-bright);
}

.sm-hero__info-value {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 24px;
    line-height: 32px;
    color: var(--color-white);
}

.sm-hero__info-value em {
    font-style: normal;
    color: var(--color-blue-bright);
}

/* Countdown: 4 boxes, 100x84 each, gap 16px */
.sm-hero__countdown {
    display: grid;
    grid-template-columns: repeat(4, 100px);
    gap: 16px;
    margin-bottom: 48px;
}

.sm-hero__countdown-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100px;
    height: 84px;
    padding: 16px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: var(--radius-countdown);
    background-color: rgba(255, 255, 255, 0.06);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

.sm-hero__countdown-num {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 30px;
    line-height: 36px;
    color: var(--color-white);
    text-align: center;
}

.sm-hero__countdown-label {
    font-family: var(--font-heading);
    font-weight: 400;
    font-size: 12px;
    line-height: 16px;
    color: rgba(255, 255, 255, 0.85);
    text-transform: uppercase;
    margin-top: 2px;
}

/* CTA buttons row */
.sm-hero__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
}

/* Hero outline button: border #1B7FF0 */
.sm-btn--outline-hero {
    background-color: transparent;
    border: 2px solid var(--color-blue-bright);
    color: var(--color-blue-bright);
    padding: 22px 42px;
}

/* WP Admin bar offset */
.admin-bar .sm-header {
    top: 32px;
}

@media screen and (max-width: 782px) {
    .admin-bar .sm-header {
        top: 46px;
    }
}

/* ==========================================================================
   MANIFESTO
   Figma: 1920x994, bg white, py 96px
   ========================================================================== */

.sm-manifesto {
    background-color: var(--color-white);
    padding-top: var(--section-padding-y);
    padding-bottom: var(--section-padding-y);
}

/* Inner container: max 1536px, gap 80px between logo bar / text / cards */
.sm-manifesto .sm-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 80px;
}

/* --- Barra loghi istituzionali --- */
.sm-manifesto__logos {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 100px;
    width: 100%;
    position: relative;
}


.sm-manifesto__logo-item {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.sm-manifesto__logo-item img {
    display: block;
    height: auto;
    width: auto;
    max-height: 92px;
    object-fit: contain;
}

/* --- Headline + sottotitolo --- */
.sm-manifesto__text {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    max-width: 900px;
    width: 100%;
}

.sm-manifesto__title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 60px;
    line-height: 60px;
    letter-spacing: -3px;
    text-align: center;
    color: var(--color-navy-dark);
}

.sm-manifesto__subtitle {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 20px;
    line-height: 30px;
    text-align: center;
    color: var(--color-gray-text);
    max-width: 703px;
}

/* --- 3 Card blu --- */
.sm-manifesto__cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    width: 100%;
}

/* Light shift (step 3 redesign home): 3 card da navy pieno → white con
   border sottile e soft shadow blu. Icona rossa e border-radius asimmetrico
   invariati. Titolo e testo ricolorati in navy-dark / gray-text. */
.sm-manifesto__card {
    position: relative;
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    border-radius: 64px 0 0 0;
    padding: 48px;
    min-height: 350px;
    box-shadow: 0 20px 40px -16px rgba(10, 30, 61, 0.12);
}

/* Box icona 64x64: pill bianca con bordo blu sottile e stroke Tabler blu.
   Sostituisce il wash rosso precedente per coerenza con la palette navy/blu
   del design system (stesso trattamento delle icone sezione Attività home). */
.sm-manifesto__card-icon {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-icon);
    background-color: var(--color-white);
    border: 1px solid rgba(26, 69, 145, 0.18);
    box-shadow: 0 2px 10px -4px rgba(10, 30, 61, 0.12);
    color: var(--color-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 32px;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sm-manifesto__card:hover .sm-manifesto__card-icon {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px -8px rgba(10, 30, 61, 0.18);
    border-color: rgba(26, 69, 145, 0.35);
}

.sm-manifesto__card-icon svg {
    display: block;
    width: 28px;
    height: 28px;
}

/* Titolo card: Epilogue ExtraBold 24/32, navy-dark su card chiara */
.sm-manifesto__card-title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 24px;
    line-height: 32px;
    color: var(--color-navy-dark);
    margin-bottom: 16px;
}

/* Testo card: Manrope Regular 16/26, gray-text su card chiara */
.sm-manifesto__card-text {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    color: var(--color-gray-text);
}

/* ==========================================================================
   PERCHÉ TARANTO
   Figma: 1920x641.5, grid 50/50, foto sinistra + testo su navy-dark destra
   ========================================================================== */

.sm-taranto {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 641px;
    width: 100%;
}

/* --- Colonna foto --- */
.sm-taranto__photo {
    position: relative;
    overflow: hidden;
    min-height: 641px;
}

.sm-taranto__photo-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: none;
}

.sm-taranto__photo-overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 5, 21, 0.1);
    mix-blend-mode: multiply;
}

/* --- Colonna contenuto ---
   Light shift (step 1 redesign home): fondale passato da navy-dark pieno
   a off-white #FBF8FF. Titolo e testo ricolorati in navy-dark / gray-text.
   Icone feature e overline erano già rosso brand — invariate. */
.sm-taranto__content {
    background-color: #FBF8FF;
    padding: 96px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Overline: Epilogue Bold 16/24, tracking 1.6px, rosso brand */
.sm-taranto__overline {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    line-height: 24px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: var(--color-red);
    margin-bottom: 24px;
}

/* Titolo: Epilogue Black 60/60, navy-dark su fondale chiaro */
.sm-taranto__title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 60px;
    line-height: 60px;
    color: var(--color-navy-dark);
    margin-bottom: 32px;
}

/* Body: Manrope Regular 20/32.5, gray-text su fondale chiaro */
.sm-taranto__text {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 20px;
    line-height: 32.5px;
    color: var(--color-gray-text);
    margin-bottom: 32px;
}

/* Feature list */
.sm-taranto__features {
    display: flex;
    flex-direction: column;
    gap: 24px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.sm-taranto__feature {
    display: flex;
    align-items: center;
    gap: 16px;
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 16px;
    line-height: 24px;
    color: var(--color-navy-dark);
}

.sm-taranto__feature-icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    object-fit: contain;
    object-position: center;
}

/* ==========================================================================
   COSA ACCADE (ATTIVITÀ)
   Figma: 1920x220, bg #E0EBFF, py 60px, 4 icone + label
   ========================================================================== */

.sm-attivita {
    background-color: var(--color-bg-attivita);
    padding: 60px 0;
}

.sm-attivita__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    max-width: 1920px;
    margin: 0 auto;
    padding: 0 32px;
}

.sm-attivita__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.sm-attivita__icon {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    background-color: var(--color-white);
    border: 1px solid rgba(26, 69, 145, 0.18);
    box-shadow: 0 2px 10px -4px rgba(10, 30, 61, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-blue);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sm-attivita__item:hover .sm-attivita__icon {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px -8px rgba(10, 30, 61, 0.18);
    border-color: rgba(26, 69, 145, 0.35);
}

.sm-attivita__icon svg {
    width: 32px;
    height: 32px;
    display: block;
}

.sm-attivita__label {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--color-navy);
    text-align: center;
    white-space: nowrap;
}

/* ==========================================================================
   SPEAKER & PROGRAMMA
   Figma: 1920x832, bg white, py 96px
   Grid: agenda (4fr) + speaker (8fr), gap 48px
   ========================================================================== */

/* Header: titolo a sinistra, link a destra allineato in basso */
.sm-programma__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 64px;
}

.sm-programma__header-left {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 672px;
}

.sm-programma__title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 48px;
    line-height: 48px;
    letter-spacing: -2.4px;
    color: var(--color-navy-dark);
}

.sm-programma__subtitle {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 18px;
    line-height: 28px;
    color: var(--color-gray-text);
}

.sm-programma__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    transition: opacity 0.2s ease;
}

.sm-programma__link span {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--color-red);
}

.sm-programma__link img {
    width: 16px;
    height: 16px;
}

.sm-programma__link:hover {
    opacity: 0.7;
}

/* Main grid */
.sm-programma__grid {
    display: grid;
    grid-template-columns: 4fr 8fr;
    gap: 48px;
    align-items: start;
}

/* --- Agenda tabs --- */
.sm-programma__agenda {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sm-programma__day {
    appearance: none;
    -webkit-appearance: none;
    background-color: var(--color-white);
    border: none;
    border-left: 4px solid var(--color-navy-dark);
    padding: 24px 24px 24px 28px;
    box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    gap: 8px;
    text-align: left;
    cursor: pointer;
    opacity: 0.5;
    transition: opacity 0.25s ease, border-color 0.25s ease;
    width: 100%;
}

.sm-programma__day:hover {
    opacity: 0.75;
}

.sm-programma__day--active {
    border-left-color: var(--color-red);
    opacity: 1;
    cursor: default;
}

.sm-programma__day-label {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 14px;
    line-height: 20px;
    text-transform: uppercase;
    color: var(--color-navy-dark);
}

.sm-programma__day--active .sm-programma__day-label {
    color: var(--color-red);
}

.sm-programma__day-title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 18px;
    line-height: 28px;
    color: var(--color-blue-light);
}

.sm-programma__day-focus {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: var(--color-gray-text);
}

/* --- Speaker panels (tab content) --- */
.sm-programma__panels {
    position: relative;
    min-height: 456px;
}

.sm-programma__speaker-panel {
    display: none;
}

.sm-programma__speaker-panel.is-active {
    display: block;
    animation: smFadeIn 0.3s ease;
}

@keyframes smFadeIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* --- Speaker grid (home-only: 3 colonne generose, 1 card per speaker del giorno) --- */
.sm-programma__speakers {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

/* Card speaker — versione transitional editorial (step 1 redesign relatori).
   Le PNG sorgente sono poster completi con nome/ruolo/badge burned-in:
   qui vengono croppate via aspect-ratio + object-position, il bottom del
   photo zone è sfumato in bianco (magazine-cover fade, non navy poster-fade)
   per mascherare eventuali residui di banner, e l'info block sotto è pulito.
   Struttura markup già compatibile con Direzione A finale: sostituendo le
   PNG con ritratti editoriali puliti basterà togliere il fade ::after. */
.sm-programma__speaker-card {
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 12px 32px -12px rgba(10, 30, 61, 0.12);
    display: flex;
    flex-direction: column;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sm-programma__speaker-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 40px -12px rgba(10, 30, 61, 0.18);
}

/* Photo wrapper: aspect quadrato + crop top per ancorare il volto */
.sm-programma__speaker-photo {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background-color: #F1F3F8;
}

.sm-programma__speaker-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

/* Magazine fade bianco → trasparente sul bottom 32% del photo zone:
   smorza eventuali residui di banner burned-in. Bianco (non navy)
   = cover editoriale, non poster promozionale. */
.sm-programma__speaker-photo::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 32%;
    background: linear-gradient(
        to top,
        rgba(255, 255, 255, 0.96) 0%,
        rgba(255, 255, 255, 0.6) 45%,
        rgba(255, 255, 255, 0) 100%
    );
    pointer-events: none;
}

/* Info block: bianco, flow normale, barra rossa accent, tipografia editoriale */
.sm-programma__speaker-info {
    padding: 20px 22px 24px;
}

/* Accent bar rossa 36x2 — sobria, editoriale, coerente con .sm-news-section__bar */
.sm-programma__speaker-info::before {
    content: '';
    display: block;
    width: 36px;
    height: 2px;
    background-color: var(--color-red);
    border-radius: 1px;
    margin-bottom: 16px;
}

.sm-programma__speaker-name {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    line-height: 26px;
    color: var(--color-navy-dark);
    margin-bottom: 6px;
}

.sm-programma__speaker-role {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: var(--color-gray-text);
}

/* ==========================================================================
   STATS
   Figma: 1920x216, bg white, bordo top/bottom, py 64px
   ========================================================================== */

.sm-stats {
    background-color: var(--color-white);
    border-top: 1px solid #D8D9E2;
    border-bottom: 1px solid #D8D9E2;
}

.sm-stats__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    padding: 64px 0;
}

.sm-stats__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.sm-stats__number {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 72px;
    line-height: 72px;
    color: var(--color-blue);
    display: inline-block;
    transition: transform 0.15s ease-out;
    will-change: transform;
}

.sm-stats__number.is-counting {
    transform-origin: center bottom;
}

.sm-stats__number.is-done {
    transform: none;
}

.sm-stats__label {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 2.4px;
    text-transform: uppercase;
    color: var(--color-red);
}

/* ==========================================================================
   FINAL CTA
   Figma: 1920x502, gradient navy scuro + alone rosso, py 128px
   ========================================================================== */

/* Light shift (step 2 redesign home): la section diventa chiara,
   il navy si concentra in una card floating al centro con ombra soft.
   L'alone rosso radial si sposta DENTRO la card come glow confinato. */
.sm-cta {
    position: relative;
    padding: 128px 32px;
    background: #FBF8FF;
    overflow: hidden;
}

/* Reset del pseudo precedente — il radial rosso ora vive dentro la card */
.sm-cta::before {
    content: none;
}

/* La card navy floating: concentra l'impatto drammatico in un oggetto
   contenuto, lasciando respiro attorno. */
.sm-cta__inner {
    position: relative;
    z-index: 1;
    max-width: 1080px;
    margin: 0 auto;
    padding: 80px 64px;
    background: linear-gradient(135deg, var(--color-navy-dark) 0%, var(--color-blue) 100%);
    border-radius: 24px;
    box-shadow: 0 40px 80px -20px rgba(10, 30, 61, 0.35);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 35px;
}

/* Alone rosso confinato dentro la card (spostato dalla section) */
.sm-cta__inner::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse at 0% 100%,
        rgba(187, 0, 39, 0.20) 0%,
        rgba(187, 0, 39, 0) 55%
    );
    pointer-events: none;
    z-index: 0;
}

.sm-cta__title {
    position: relative;
    z-index: 1;
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 72px;
    line-height: 72px;
    letter-spacing: -3.6px;
    text-align: center;
    color: var(--color-white);
}

.sm-cta__title-accent {
    color: var(--color-red);
}

.sm-cta__buttons {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
}

/* Variante bottoni large per CTA */
.sm-btn--lg {
    padding: 24px 48px;
    font-size: 16px;
    letter-spacing: 1.4px;
}

/* ==========================================================================
   PARTNER
   Figma: 1920x264, bg white, py 40px, grid 6x2, loghi 260x76
   ========================================================================== */

.sm-partner {
    background-color: var(--color-white);
    padding: 40px 0;
}

/* Flex + wrap: i loghi si auto-centrano sia con pochi item (2-3) sia con molti.
   Ogni item ha base 260px senza crescita: su schermi larghi non si stirano;
   su schermi stretti si restringono. */
.sm-partner__grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 32px;
    max-width: 1920px;
    margin: 0 auto;
    padding: 0 32px;
}

.sm-partner__item {
    flex: 0 1 260px;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 76px;
}

.sm-partner__item img {
    max-width: 260px;
    max-height: 76px;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* ==========================================================================
   FOOTER
   Figma: 1920x358, bg white, border-top #f5f5f5
   Grid 3 colonne, gap 48px, py 64px
   Bottom bar: border-top rgba(0,0,0,0.05), py 33px
   ========================================================================== */

.sm-footer {
    background-color: var(--color-white);
    border-top: 1px solid #F5F5F5;
}

.sm-footer__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 48px;
    padding: 64px 0;
}

/* Colonna brand */
.sm-footer__brand {
    display: flex;
    flex-direction: column;
    gap: 23px;
}

.sm-footer__logo {
    width: 191px;
    height: 53px;
    object-fit: contain;
    object-position: left;
}

.sm-footer__desc {
    font-family: var(--font-mono);
    font-weight: 400;
    font-size: 14px;
    line-height: 22.75px;
    color: var(--color-gray-muted);
    opacity: 0.7;
    max-width: 320px;
}

/* Colonne link */
.sm-footer__col {
    display: flex;
    flex-direction: column;
}

.sm-footer__heading {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--color-blue-medium);
    margin-bottom: 23px;
}

.sm-footer__links {
    display: flex;
    flex-direction: column;
    gap: 16px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.sm-footer__links a {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 14px;
    line-height: 22.75px;
    color: var(--color-gray-text);
    opacity: 0.7;
    transition: opacity 0.2s ease;
}

.sm-footer__links a:hover {
    opacity: 1;
}

/* Cookie preferences button — styled as a footer link */
.sm-footer__cookie-btn {
    appearance: none;
    -webkit-appearance: none;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 14px;
    line-height: 22.75px;
    color: var(--color-gray-text);
    opacity: 0.7;
    transition: opacity 0.2s ease;
}

.sm-footer__cookie-btn:hover {
    opacity: 1;
}

/* Bottom bar */
.sm-footer__bottom {
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}

.sm-footer__bottom-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding: 33px 0 32px;
}

.sm-footer__copyright {
    font-family: var(--font-mono);
    font-weight: 400;
    font-size: 13px;
    line-height: 22.75px;
    color: #9a9da5; /* grigio desaturato: stesso effetto del vecchio opacity:0.6 ma
                       senza ereditarietà che spegnerebbe il cuore rosso */
    text-align: center;
    max-width: 960px;
    margin: 0;
}

/* Heart SVG inline: colorato via currentColor. A differenza dell'emoji ❤️
   nativa, il path SVG eredita il CSS color → rosso brand pieno e nitido. */
.sm-footer__heart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--color-red);
    vertical-align: -2px;
    margin: 0 2px;
    filter: drop-shadow(0 1px 2px rgba(187, 0, 39, 0.3));
}

.sm-footer__heart svg {
    display: block;
}

.sm-footer__credit {
    color: var(--color-gray-text);
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

.sm-footer__credit:hover {
    color: var(--color-navy-dark);
}

.sm-footer__social {
    display: flex;
    align-items: center;
    gap: 16px;
}

.sm-footer__social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    color: var(--color-gray-text);
    transition: color 0.2s ease;
}

.sm-footer__social a:hover {
    color: var(--color-navy-dark);
}

/* ==========================================================================
   TESTATE INTERNE — sistema unificato .sm-page-hero
   ------------------------------------------------------------------
   Componente condiviso per tutte le hero delle pagine interne del sito.
   3 varianti:
     · .sm-page-hero--dark        → statement scuro (Programma, Speaker, Partecipa)
     · .sm-page-hero--light       → editoriale con grid split (Espositori,
                                     Il Salone, News — con media a destra)
     · .sm-page-hero--text-only   → additivo a --light per single-col
                                     (Contatti — senza media, max-width 720)
   Token comuni: padding 180/80, min-height 420, container 1216, subtitle
   18/28 regular, barra rossa accent 44x4. Dark title 88px, light 72px.
   ========================================================================== */

.sm-page-hero {
    position: relative;
    padding: 140px 32px 72px;
    min-height: 360px;
    display: flex;
    align-items: flex-end;
}

.sm-page-hero__inner {
    max-width: 1216px;
    width: 100%;
    margin: 0 auto;
}

.sm-page-hero__content {
    display: flex;
    flex-direction: column;
}

.sm-page-hero__badge {
    display: inline-block;
    align-self: flex-start;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    padding: 6px 16px;
    border-radius: 12px;
    margin-bottom: 20px;
    background-color: #FFDAD8;
    color: #93001B;
}

.sm-page-hero__bar {
    display: block;
    width: 44px;
    height: 4px;
    background-color: var(--color-red);
    border-radius: 2px;
    margin-bottom: 20px;
}

.sm-page-hero__title {
    font-family: var(--font-heading);
    font-weight: 900;
    letter-spacing: -3px;
    margin: 0 0 18px;
}

.sm-page-hero__title-accent {
    color: var(--color-red);
}

.sm-page-hero__subtitle {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 17px;
    line-height: 27px;
    max-width: 620px;
    margin: 0;
}

.sm-page-hero__cta {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 32px;
}

.sm-page-hero__media {
    position: relative;
    aspect-ratio: 4 / 5;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 40px 80px -24px rgba(10, 30, 61, 0.25);
}

.sm-page-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Placeholder visivo (quando non è ancora disponibile un'immagine reale):
   gradient neutro + icona + label. Usato attualmente da News. */
.sm-page-hero__media--placeholder {
    background: linear-gradient(135deg, #F1F3F8 0%, #E5E8F0 100%);
    box-shadow: 0 20px 48px -20px rgba(10, 30, 61, 0.12);
}

.sm-page-hero__media-inner {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
}

.sm-page-hero__media-inner svg {
    width: 72px;
    height: 72px;
    color: rgba(10, 30, 61, 0.35);
}

.sm-page-hero__media-inner span {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--color-gray-muted);
}

/* ── Variante DARK (statement) ─────────── */
.sm-page-hero--dark {
    background-color: #1C4478; /* test cromatico dark hero v3 — precedente: #183D6E — originale: var(--color-navy-dark) #0A1E3D */
}

.sm-page-hero--dark .sm-page-hero__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.sm-page-hero--dark .sm-page-hero__title {
    font-size: 68px;
    line-height: 74px;
    color: var(--color-white);
}

.sm-page-hero--dark .sm-page-hero__subtitle {
    color: #9DB0D2;
}

.sm-page-hero--dark .sm-page-hero__badge {
    background-color: #2A3F66;
    color: #FFB4BA;
}

/* ── Variante LIGHT (editoriale con grid split) ── */
.sm-page-hero--light {
    background-color: #FBF8FF;
}

.sm-page-hero--light .sm-page-hero__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
}

.sm-page-hero--light .sm-page-hero__title {
    font-size: 72px;
    line-height: 78px;
    color: var(--color-navy-dark);
}

.sm-page-hero--light .sm-page-hero__subtitle {
    color: var(--color-gray-text);
}

/* ── Variante LIGHT TEXT-ONLY (additivo, single col narrow) ── */
.sm-page-hero--light.sm-page-hero--text-only .sm-page-hero__inner {
    display: block;
    max-width: 720px;
}

/* ── Modifier COMPACT (additivo, usato su "Il Salone") ──
   Riduce altezza complessiva: padding, aspect immagine landscape, proporzioni 1.25/1,
   titolo leggermente più piccolo. Scoped locale — non influenza altre pagine. */
.sm-page-hero--compact {
    padding-top: 120px;
    padding-bottom: 56px;
    min-height: 0;
    align-items: center;
}

.sm-page-hero--compact .sm-page-hero__inner {
    grid-template-columns: 1.25fr 1fr;
    gap: 40px;
}

.sm-page-hero--compact .sm-page-hero__title {
    font-size: 60px;
    line-height: 66px;
    letter-spacing: -2.8px;
}

.sm-page-hero--compact .sm-page-hero__subtitle {
    max-width: 520px;
}

.sm-page-hero--compact .sm-page-hero__media {
    aspect-ratio: 16 / 10;
    border-radius: 12px;
    overflow: hidden;
}

.sm-page-hero--compact .sm-page-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* ── Responsive ───────────────────────── */
@media (max-width: 1200px) {
    .sm-page-hero {
        padding-top: 124px;
    }
    .sm-page-hero--dark .sm-page-hero__title {
        font-size: 56px;
        line-height: 60px;
        letter-spacing: -2.2px;
    }
    .sm-page-hero--light .sm-page-hero__title {
        font-size: 52px;
        line-height: 56px;
        letter-spacing: -2.2px;
    }
}

@media (max-width: 960px) {
    .sm-page-hero {
        padding: 110px 24px 56px;
        min-height: auto;
    }
    .sm-page-hero--dark .sm-page-hero__title {
        font-size: 42px;
        line-height: 46px;
    }
    .sm-page-hero--light .sm-page-hero__title {
        font-size: 40px;
        line-height: 44px;
    }
    .sm-page-hero--light .sm-page-hero__inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .sm-page-hero--light .sm-page-hero__media {
        aspect-ratio: 16 / 10;
    }
    .sm-page-hero--compact {
        padding: 100px 24px 48px;
    }
    .sm-page-hero--compact .sm-page-hero__title {
        font-size: 42px;
        line-height: 48px;
    }
}

@media (max-width: 640px) {
    .sm-page-hero--dark .sm-page-hero__title {
        font-size: 34px;
        line-height: 38px;
        letter-spacing: -1.2px;
    }
    .sm-page-hero--light .sm-page-hero__title {
        font-size: 32px;
        line-height: 38px;
        letter-spacing: -1px;
    }
}


/* ==========================================================================
   PAGINA PROGRAMMA
   Tab sticky + sidebar + timeline sessioni + CTA
   (Hero ora gestito dal sistema unificato .sm-page-hero--dark)
   ========================================================================== */

/* Tab navigation */
.sm-prog-tabs {
    background-color: var(--color-white);
    border-bottom: 1px solid rgba(197, 198, 207, 0.2);
    position: sticky;
    top: 100px;
    z-index: 100;
}

.admin-bar .sm-prog-tabs {
    top: 132px;
}

.sm-prog-tabs__inner {
    display: flex;
    justify-content: center;
    gap: 48px;
    padding: 24px 32px;
}

.sm-prog-tabs__tab {
    appearance: none;
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-bottom: 12px;
    border-bottom: 4px solid transparent;
    opacity: 0.4;
    transition: opacity 0.25s ease, border-color 0.25s ease;
}

.sm-prog-tabs__tab--active {
    opacity: 1;
    border-bottom-color: var(--color-red);
}

.sm-prog-tabs__tab:hover {
    opacity: 0.7;
}

.sm-prog-tabs__tab--active:hover {
    opacity: 1;
}

.sm-prog-tabs__date {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--color-navy-dark);
    margin-bottom: 4px;
}

.sm-prog-tabs__tab--active .sm-prog-tabs__date {
    color: var(--color-red);
}

.sm-prog-tabs__label {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 24px;
    line-height: 32px;
    letter-spacing: -1.2px;
    color: #000515;
    text-transform: uppercase;
}

/* ==========================================================================
   PAGINA PROGRAMMA — refactor sezione giornate (editorial institutional)
   Main event card grande + stack secondary adattivo + day previews
   ========================================================================== */

/* Day panel container: visibile solo se .is-active (gestito da JS) */
.sm-prog-content {
    display: none;
    padding: 80px 0 96px;
    background-color: #FBF8FF;
}

.sm-prog-content.is-active {
    display: block;
    animation: smFadeIn 0.3s ease;
}

/* ── Day head: eyebrow + titolo + location chip ── */
.sm-prog-day__head {
    max-width: 1216px;
    margin: 0 auto 40px;
    padding: 0 32px;
}

.sm-prog-day__eyebrow {
    display: inline-block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--color-red);
    margin-bottom: 10px;
}

.sm-prog-day__title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 44px;
    line-height: 50px;
    letter-spacing: -1.8px;
    color: var(--color-navy-dark);
    margin: 0 0 16px;
    display: flex;
    align-items: center;
    gap: 16px;
}

.sm-prog-day__bar {
    display: inline-block;
    width: 4px;
    height: 40px;
    background-color: var(--color-red);
    border-radius: 2px;
    flex-shrink: 0;
}

.sm-prog-day__location {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border: 1px solid rgba(197, 198, 207, 0.4);
    border-radius: 999px;
    background-color: var(--color-white);
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 13px;
    line-height: 18px;
    color: var(--color-gray-text);
}

.sm-prog-day__location svg {
    color: var(--color-red);
    flex-shrink: 0;
}

/* ── Grid adattiva main event + secondary ── */
.sm-prog-day__grid {
    max-width: 1216px;
    margin: 0 auto 56px;
    padding: 0 32px;
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
    gap: 32px;
    align-items: start;
}

/* Quando il giorno ha una sola sessione, il main event diventa full-width */
.sm-prog-day__grid--single {
    grid-template-columns: minmax(0, 1fr);
    max-width: 960px;
}

/* ── Main event card ── */
.sm-prog-main {
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    border-radius: 16px;
    padding: 40px 44px 44px;
    box-shadow: 0 20px 48px -16px rgba(10, 30, 61, 0.14);
}

.sm-prog-main__time-row {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.sm-prog-main__time {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 42px;
    line-height: 42px;
    letter-spacing: -1.4px;
    color: var(--color-navy-dark);
}

.sm-prog-main__time-label {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 14px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--color-gray-muted);
    padding: 4px 10px;
    border: 1px solid rgba(197, 198, 207, 0.4);
    border-radius: 6px;
}

.sm-prog-main__badges {
    display: inline-flex;
    gap: 8px;
    margin-left: auto;
    flex-wrap: wrap;
}

.sm-prog-badge {
    display: inline-block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 15px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    padding: 5px 12px;
    border-radius: 999px;
}

.sm-prog-badge--plenaria {
    background-color: #FFE2E4;
    color: #93001B;
}

.sm-prog-badge--ghost {
    background-color: transparent;
    border: 1px solid rgba(197, 198, 207, 0.5);
    color: var(--color-navy-dark);
}

.sm-prog-badge--sm {
    font-size: 10px;
    padding: 4px 10px;
    letter-spacing: 0.6px;
}

.sm-prog-main__bar {
    width: 36px;
    height: 2px;
    background-color: var(--color-red);
    border-radius: 1px;
    margin: 4px 0 16px;
}

.sm-prog-main__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 28px;
    line-height: 36px;
    color: var(--color-navy-dark);
    margin: 0 0 16px;
    letter-spacing: -0.4px;
}

.sm-prog-main__desc {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    color: var(--color-gray-text);
    margin: 0 0 20px;
    max-width: 640px;
}

.sm-prog-main__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 24px;
}

.sm-prog-tag {
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 12px;
    line-height: 16px;
    color: var(--color-navy-dark);
    background-color: #F1F3F8;
    border: 1px solid rgba(197, 198, 207, 0.4);
    border-radius: 6px;
    padding: 5px 10px;
}

/* Speaker principale (primo ospite) */
.sm-prog-main__speaker {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px;
    background-color: #F8F9FC;
    border-radius: 12px;
    border: 1px solid rgba(197, 198, 207, 0.3);
    margin-top: 8px;
}

.sm-prog-main__speaker-avatar {
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-navy) 0%, var(--color-navy-dark) 100%);
    color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 22px;
    letter-spacing: 0.5px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 4px 12px -4px rgba(10, 30, 61, 0.25);
}

/* Variante con foto: ritratto a bordo pieno dentro il cerchio */
.sm-prog-main__speaker-avatar--photo {
    background: #F1F3F8;
    border: 1px solid rgba(10, 30, 61, 0.08);
}

.sm-prog-main__speaker-avatar-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}

.sm-prog-main__speaker-info {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.sm-prog-main__speaker-name {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    line-height: 22px;
    color: var(--color-navy-dark);
}

.sm-prog-main__speaker-role {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 13px;
    line-height: 18px;
    color: var(--color-gray-text);
    margin-top: 2px;
}

.sm-prog-main__others {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(197, 198, 207, 0.3);
}

.sm-prog-main__others-label {
    display: block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 14px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--color-gray-muted);
    margin-bottom: 10px;
}

.sm-prog-main__others-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sm-prog-main__others-list li {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: var(--color-gray-text);
}

.sm-prog-main__others-list strong {
    color: var(--color-navy-dark);
    font-weight: 700;
}

.sm-prog-main__mod {
    margin: 16px 0 0;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 13px;
    line-height: 20px;
    color: var(--color-gray-text);
}

.sm-prog-main__mod-label {
    font-weight: 700;
    color: var(--color-navy-dark);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    font-size: 11px;
    margin-right: 6px;
}

.sm-prog-main__mod strong {
    color: var(--color-navy-dark);
    font-weight: 700;
}

/* Extra highlight (es. Live Concert Mario Rosini sul Giorno 3 sessione 2) */
.sm-prog-main__extra {
    margin-top: 24px;
    padding: 16px 20px;
    background: linear-gradient(135deg, rgba(187, 0, 39, 0.08) 0%, rgba(187, 0, 39, 0.02) 100%);
    border: 1px solid rgba(187, 0, 39, 0.25);
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sm-prog-main__extra-label {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 10px;
    line-height: 14px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--color-red);
}

.sm-prog-main__extra-text {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    line-height: 22px;
    color: var(--color-navy-dark);
}

/* ── Secondary sessions stack ── */
.sm-prog-secondary {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sm-prog-session-card {
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    border-radius: 14px;
    padding: 22px 24px;
    box-shadow: 0 8px 24px -12px rgba(10, 30, 61, 0.08);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sm-prog-session-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 28px -10px rgba(10, 30, 61, 0.14);
}

.sm-prog-session-card__header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}

.sm-prog-session-card__time {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 20px;
    line-height: 24px;
    color: var(--color-navy-dark);
    letter-spacing: -0.3px;
}

.sm-prog-session-card__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    line-height: 22px;
    color: var(--color-navy-dark);
    margin: 0 0 8px;
}

.sm-prog-session-card__desc {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 13px;
    line-height: 19px;
    color: var(--color-gray-text);
    margin: 0 0 10px;
}

.sm-prog-session-card__speakers {
    margin: 10px 0 0;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 13px;
    line-height: 18px;
    color: var(--color-gray-text);
}

.sm-prog-session-card__speakers strong {
    color: var(--color-navy-dark);
    font-weight: 700;
}

.sm-prog-session-card__extra {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed rgba(187, 0, 39, 0.3);
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sm-prog-session-card__extra-label {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 10px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--color-red);
}

.sm-prog-session-card__extra-text {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 14px;
    line-height: 20px;
    color: var(--color-navy-dark);
}

/* ── Prenotazione (main card): disponibilità + CTA ── */
.sm-prog-main__booking {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid rgba(197, 198, 207, 0.35);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 24px;
    justify-content: space-between;
}

.sm-prog-seats {
    display: inline-flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.sm-prog-seats__label {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 14px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--color-red);
}

.sm-prog-seats__value {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 16px;
    line-height: 22px;
    color: var(--color-navy-dark);
}

.sm-prog-seats__value strong {
    font-weight: 800;
    color: var(--color-red);
    margin-right: 4px;
}

.sm-prog-booking__btn {
    gap: 8px;
}

.sm-prog-booking__btn svg {
    transition: transform 0.2s ease;
}

.sm-prog-booking__btn:hover svg {
    transform: translate(2px, -2px);
}

/* ── Prenotazione (secondary card): versione compatta ── */
.sm-prog-session-card__booking {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(197, 198, 207, 0.35);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    justify-content: space-between;
}

.sm-prog-seats--compact {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    font-family: var(--font-body);
    font-size: 13px;
    line-height: 18px;
    color: var(--color-navy-dark);
}

.sm-prog-seats--compact strong {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 15px;
    color: var(--color-red);
}

.sm-prog-session-card__booking-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 0.6px;
    color: var(--color-red);
    text-decoration: none;
    padding: 8px 14px;
    border: 1.5px solid var(--color-red);
    border-radius: 999px;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.sm-prog-session-card__booking-btn:hover {
    background-color: var(--color-red);
    color: var(--color-white);
}

@media (max-width: 640px) {
    .sm-prog-main__booking {
        flex-direction: column;
        align-items: stretch;
    }

    .sm-prog-booking__btn {
        width: 100%;
        justify-content: center;
    }
}

/* ── Day previews: 2 card "anteprima altro giorno" cliccabili ── */
.sm-prog-day__previews {
    max-width: 1216px;
    margin: 0 auto;
    padding: 0 32px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.sm-prog-preview-card {
    appearance: none;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    gap: 8px;
    padding: 28px 32px;
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    border-radius: 16px;
    box-shadow: 0 12px 32px -12px rgba(10, 30, 61, 0.10);
    cursor: pointer;
    font: inherit;
    color: inherit;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sm-prog-preview-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 40px -12px rgba(10, 30, 61, 0.18);
    border-color: rgba(187, 0, 39, 0.4);
}

.sm-prog-preview-card:focus-visible {
    outline: 2px solid var(--color-blue-medium);
    outline-offset: 3px;
}

.sm-prog-preview-card__label {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 14px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--color-gray-muted);
}

.sm-prog-preview-card__eyebrow {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 14px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--color-red);
}

.sm-prog-preview-card__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    line-height: 26px;
    color: var(--color-navy-dark);
    margin: 4px 0 6px;
}

.sm-prog-preview-card__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--color-red);
    margin-top: auto;
}

/* CTA finale pagina programma */
.sm-prog-cta {
    padding: 97px 0;
    background: linear-gradient(to bottom, #08142B, #1A4591);
}

.sm-prog-cta__title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 48px;
    line-height: 48px;
    letter-spacing: -2.4px;
    color: var(--color-white);
    margin-bottom: 32px;
}

.sm-prog-cta__buttons {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
}

/* ==========================================================================
   PAGINA SPEAKER
   Directory header con filtri + grid 4 colonne
   (Hero ora gestito dal sistema unificato .sm-page-hero--dark)
   ========================================================================== */

/* Directory */
.sm-spk-directory {
    padding: 80px 0 96px;
    background-color: var(--color-white);
}

.sm-spk-directory__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 64px;
}

.sm-spk-directory__title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--color-navy-dark);
    margin-bottom: 4px;
}

.sm-spk-directory__subtitle {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 32px;
    line-height: 40px;
    letter-spacing: -0.6px;
    color: var(--color-navy-dark);
    margin: 6px 0 0;
}

.sm-spk-directory__subtitle-accent {
    color: var(--color-red);
    font-style: italic;
    font-weight: 700;
}

@media (max-width: 640px) {
    .sm-spk-directory__subtitle {
        font-size: 26px;
        line-height: 32px;
    }
}

/* Filter tabs */
.sm-spk-filters {
    display: flex;
    gap: 8px;
}

.sm-spk-filters__btn {
    appearance: none;
    background: none;
    border: 1px solid rgba(197, 198, 207, 0.3);
    border-radius: 8px;
    padding: 8px 20px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: var(--color-gray-text);
    cursor: pointer;
    transition: all 0.2s ease;
}

.sm-spk-filters__btn--active {
    background-color: var(--color-navy-dark);
    border-color: var(--color-navy-dark);
    color: var(--color-white);
}

.sm-spk-filters__btn:hover:not(.sm-spk-filters__btn--active) {
    border-color: var(--color-navy-dark);
    color: var(--color-navy-dark);
}

/* Speaker grid: 5 colonne su desktop */
.sm-spk-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 32px 24px;
}

@media (max-width: 1200px) {
    .sm-spk-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Speaker card — allineata al linguaggio editoriale della home preview (step 5).
   White card + border sottile + soft blue shadow, aspect foto 4/5 editoriale,
   barra rossa accent 32x2, tipografia case normale navy/gray, topic block
   mantenuto come valore aggiunto della pagina dedicata.
   Direzione A ready: quando le foto diventeranno ritratti editoriali puliti
   basta popolare $speakers[]['foto'], zero modifiche a CSS/PHP. */
.sm-spk-card {
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 12px 32px -12px rgba(10, 30, 61, 0.12);
    display: flex;
    flex-direction: column;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sm-spk-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 40px -12px rgba(10, 30, 61, 0.18);
}

/* Photo area: aspect 1/1 — le foto dei relatori sono quadrate */
.sm-spk-card__photo {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background-color: #F1F3F8;
}

.sm-spk-card__photo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    max-width: none;
}

/* Placeholder: iniziali come filigrana editoriale su carta chiara */
.sm-spk-card__placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #F1F3F8;
}

.sm-spk-card__placeholder span {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 56px;
    color: rgba(10, 30, 61, 0.12);
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Info block sotto la foto */
.sm-spk-card__info {
    padding: 24px 24px 28px;
}

/* Accent bar rossa 32x2 — coerente con home preview + News section bar */
.sm-spk-card__info::before {
    content: '';
    display: block;
    width: 32px;
    height: 2px;
    background-color: var(--color-red);
    border-radius: 1px;
    margin-bottom: 14px;
}

.sm-spk-card__name {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    line-height: 26px;
    color: var(--color-navy-dark);
    margin: 0 0 6px;
}

.sm-spk-card__ruolo {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: var(--color-gray-text);
    margin: 0;
}

/* Topic block: valore aggiunto della pagina Speaker, gerarchia editoriale */
.sm-spk-card__topic {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid rgba(197, 198, 207, 0.35);
}

.sm-spk-card__topic-label {
    display: block;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 11px;
    line-height: 14px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--color-gray-muted);
    margin-bottom: 6px;
}

.sm-spk-card__topic-text {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: var(--color-gray-text);
    font-style: italic;
    margin: 0;
}

/* ==========================================================================
   PAGINA PARTECIPA
   3 conversion tracks + perché partecipare + CTA banner
   (Hero ora gestito dal sistema unificato .sm-page-hero--dark)
   ========================================================================== */

/* 3 Conversion Tracks */
.sm-part-tracks {
    padding: 50px 0;
    max-width: 1216px;
    margin: 0 auto;
}

.sm-part-tracks__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.sm-part-track {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 48px;
    min-height: 752px;
    position: relative;
}

.sm-part-track--white {
    background-color: var(--color-white);
    border: 1px solid #E0EBFF;
    border-radius: 64px 0 0 0;
    box-shadow: 0px 24px 48px -12px rgba(10, 30, 61, 0.06);
    color: var(--color-navy-dark);
}

.sm-part-track--blue {
    background-color: var(--color-blue-medium);
    color: var(--color-white);
}

.sm-part-track--navy {
    background-color: var(--color-navy-dark);
    color: var(--color-white);
}

.sm-part-track__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 30px;
    line-height: 36px;
    letter-spacing: -0.75px;
    margin-bottom: 16px;
}

.sm-part-track--white .sm-part-track__title { color: #000515; }
.sm-part-track--blue .sm-part-track__title,
.sm-part-track--navy .sm-part-track__title { color: var(--color-white); }

.sm-part-track__desc {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    margin-bottom: 32px;
}

.sm-part-track--white .sm-part-track__desc { color: var(--color-gray-text); }
.sm-part-track--blue .sm-part-track__desc { color: #E0EBFF; }
.sm-part-track--navy .sm-part-track__desc { color: #7586AB; }

/* Form (card bianca) */
.sm-part-form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.sm-part-form__field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sm-part-form__label {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #75777F;
}

.sm-part-form__input,
.sm-part-form__select {
    background-color: rgba(224, 235, 255, 0.8);
    border: none;
    border-radius: 10px;
    padding: 17px 16px;
    font-family: var(--font-body);
    font-size: 16px;
    color: #000515;
    width: 100%;
}

.sm-part-form__input::placeholder {
    color: #6B7280;
}

.sm-part-form__select {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
}

.sm-part-form__select svg {
    flex-shrink: 0;
    color: #6B7280;
}

/* CTA bottoni */
.sm-part-track__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 20px;
    border-radius: 10px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    line-height: 24px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    text-decoration: none;
    transition: opacity 0.2s ease;
    margin-top: 24px;
}

.sm-part-track__cta:hover { opacity: 0.85; }

.sm-part-track__cta--dark {
    background-color: var(--color-navy-dark);
    color: var(--color-white);
}

.sm-part-track__cta--outline-white {
    background: transparent;
    border: 2px solid var(--color-white);
    color: var(--color-white);
}

.sm-part-track__cta--red {
    background-color: var(--color-red);
    color: var(--color-white);
}

/* Expo (card blu) */
.sm-part-track__expo {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.sm-part-track__expo-img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    object-fit: cover;
}

.sm-part-track__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.sm-part-track__list li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 14px;
    line-height: 20px;
    color: var(--color-white);
}

.sm-part-track__list li::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--color-red);
    flex-shrink: 0;
}

/* Sponsorship tiers (card navy) */
.sm-part-track__tiers {
    background-color: rgba(0, 29, 70, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.05);
    padding: 25px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sm-part-track__tiers-label {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 2.4px;
    text-transform: uppercase;
    color: var(--color-red);
}

.sm-part-track__tier {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 9px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    line-height: 24px;
    color: var(--color-white);
}

/* Perché partecipare */
.sm-part-why {
    background-color: var(--color-bg-attivita);
}

.sm-part-why__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 710px;
}

.sm-part-why__photo {
    position: relative;
    overflow: hidden;
}

.sm-part-why__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: none;
}

.sm-part-why__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 32px;
    padding: 96px 80px;
}

.sm-part-why__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 48px;
    line-height: 48px;
    letter-spacing: -2.4px;
    color: #000515;
}

.sm-part-why__list {
    display: flex;
    flex-direction: column;
    gap: 48px;
}

.sm-part-why__item {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.sm-part-why__num {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 36px;
    line-height: 40px;
    color: var(--color-red);
    flex-shrink: 0;
}

.sm-part-why__item-title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    line-height: 28px;
    color: #1C1C18;
    margin-bottom: 8px;
}

.sm-part-why__item-desc {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 24px;
    color: var(--color-gray-text);
}

/* Variante compatta editoriale: fascia persuasiva prima delle CTA.
   Foto contenuta in card con radius/shadow, container centrato,
   grid asimmetrica testo-dominante, coerente col design system. */
.sm-part-why--compact {
    background-color: #FBF8FF;
    padding: 72px 32px;
}

.sm-part-why--compact .sm-part-why__grid {
    max-width: 1216px;
    margin: 0 auto;
    grid-template-columns: 2fr 3fr;
    min-height: auto;
    gap: 48px;
    align-items: center;
}

.sm-part-why--compact .sm-part-why__photo {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 20px 48px -16px rgba(10, 30, 61, 0.18);
    aspect-ratio: 4 / 5;
}

.sm-part-why--compact .sm-part-why__content {
    padding: 0;
    gap: 28px;
}

.sm-part-why--compact .sm-part-why__title {
    font-size: 32px;
    line-height: 38px;
    letter-spacing: -1.2px;
}

.sm-part-why--compact .sm-part-why__title::before {
    content: '';
    display: block;
    width: 44px;
    height: 4px;
    background-color: var(--color-red);
    border-radius: 2px;
    margin-bottom: 16px;
}

.sm-part-why--compact .sm-part-why__list {
    gap: 24px;
}

.sm-part-why--compact .sm-part-why__num {
    font-size: 26px;
    line-height: 32px;
}

.sm-part-why--compact .sm-part-why__item {
    gap: 18px;
}

.sm-part-why--compact .sm-part-why__item-title {
    font-size: 17px;
    line-height: 24px;
    margin-bottom: 4px;
}

.sm-part-why--compact .sm-part-why__item-desc {
    font-size: 14px;
    line-height: 22px;
}

/* CTA Banner */
.sm-part-banner {
    padding: 80px 0;
    background-color: var(--color-white);
}

.sm-part-banner__title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 48px;
    line-height: 48px;
    letter-spacing: -2.4px;
    color: var(--color-navy-dark);
    margin-bottom: 24px;
}

.sm-part-banner__subtitle {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 18px;
    line-height: 28px;
    color: var(--color-gray-text);
    margin-bottom: 24px;
}

.sm-part-banner__links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
}

.sm-part-banner__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 16px 48px;
    border: 1px solid var(--color-navy-dark);
    border-radius: 10px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    color: var(--color-navy-dark);
    transition: background-color 0.2s ease, color 0.2s ease;
}

.sm-part-banner__link:hover {
    background-color: var(--color-navy-dark);
    color: var(--color-white);
}

.sm-part-banner__link svg {
    flex-shrink: 0;
}

/* ==========================================================================
   PAGINA CONTATTI
   Routing "Come possiamo aiutarti?" + grid sede/form + mappa
   (Hero ora gestito dal sistema unificato .sm-page-hero--light --text-only)
   ========================================================================== */

/* ── Hero meta ribbon (sotto il sottotitolo) — allineato alla colonna editoriale
   del subtitle (max-width 620px) per non allargare la hero rispetto alle altre. ── */
.sm-cont-hero-meta {
    list-style: none;
    padding: 14px 0 0;
    margin: 18px 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 14px 32px;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    max-width: 620px;
}

.sm-cont-hero-meta__item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.sm-cont-hero-meta__label {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 14px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: #FFB4BA;
}

.sm-cont-hero-meta__value {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 15px;
    line-height: 22px;
    color: var(--color-white);
    text-decoration: none;
    word-break: break-word;
}

a.sm-cont-hero-meta__value:hover {
    color: #FFB4BA;
}

/* ── Routing — 4 box instradamento ───── */
.sm-cont-routing {
    background-color: #FBF8FF;
    padding: 72px 32px 64px;
}

.sm-cont-routing__inner {
    max-width: 1216px;
    margin: 0 auto;
}

.sm-cont-routing__head {
    max-width: 760px;
    margin: 0 0 40px;
}

.sm-cont-routing__eyebrow {
    display: inline-block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 15px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--color-red);
    margin-bottom: 12px;
}

.sm-cont-routing__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 34px;
    line-height: 40px;
    letter-spacing: -0.6px;
    color: var(--color-navy-dark);
    margin: 0 0 12px;
    display: flex;
    align-items: center;
    gap: 14px;
}

.sm-cont-routing__title::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 34px;
    background-color: var(--color-red);
    border-radius: 2px;
    flex-shrink: 0;
}

.sm-cont-routing__lead {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    color: var(--color-gray-text);
    margin: 0 0 0 18px;
    max-width: 640px;
}

.sm-cont-routing__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.sm-cont-routing__box {
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    border-radius: 16px;
    padding: 28px 24px;
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    gap: 10px;
    position: relative;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sm-cont-routing__box:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 36px -12px rgba(10, 30, 61, 0.15);
    border-color: var(--color-navy-dark);
}

.sm-cont-routing__box:focus-visible {
    outline: 2px solid var(--color-blue-medium);
    outline-offset: 3px;
}

.sm-cont-routing__box-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background-color: #FFE2E4;
    color: #93001B;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
}

.sm-cont-routing__box-title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    line-height: 22px;
    color: var(--color-navy-dark);
    margin: 0;
}

.sm-cont-routing__box-desc {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 13px;
    line-height: 19px;
    color: var(--color-gray-text);
    margin: 0;
    flex: 1;
}

.sm-cont-routing__box-arrow {
    color: var(--color-red);
    margin-top: auto;
    align-self: flex-end;
    transition: transform 0.2s ease;
}

.sm-cont-routing__box:hover .sm-cont-routing__box-arrow {
    transform: translateX(3px);
}

/* ── Form select (tipo richiesta) ────── */
.sm-cont-form__select-wrap {
    position: relative;
}

.sm-cont-form__select {
    width: 100%;
    border: 1px solid rgba(197, 198, 207, 0.3);
    border-radius: 10px;
    padding: 17px 48px 17px 16px;
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 22px;
    color: #000515;
    background-color: var(--color-white);
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    transition: border-color 0.2s ease;
}

.sm-cont-form__select:focus {
    outline: none;
    border-color: var(--color-blue-medium);
}

.sm-cont-form__select-arrow {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: var(--color-gray-text);
}

/* ── Footnote email sotto il form ────── */
.sm-cont-form__footnote {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 13px;
    line-height: 20px;
    color: var(--color-gray-muted);
    margin: 20px 0 0;
}

.sm-cont-form__footnote a {
    color: var(--color-blue-medium);
    text-decoration: none;
}

.sm-cont-form__footnote a:hover {
    text-decoration: underline;
}

/* ── Responsive routing ────────────── */
@media (max-width: 960px) {
    .sm-cont-routing {
        padding: 0 24px 48px;
    }

    .sm-cont-routing__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .sm-cont-routing__grid {
        grid-template-columns: 1fr;
    }

    .sm-cont-routing__box {
        padding: 22px 20px;
    }
}

/* Grid principale */
.sm-cont-main {
    padding: 0 32px 96px;
}

.sm-cont-main__grid {
    display: grid;
    grid-template-columns: 2fr 3fr;
    gap: 32px;
    max-width: 1216px;
    margin: 0 auto;
}

/* Info cards (sinistra) */
.sm-cont-cards {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.sm-cont-card {
    background-color: var(--color-bg-attivita);
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.sm-cont-card__body {
    padding: 40px;
}

.sm-cont-card__icon {
    display: block;
    margin-bottom: 24px;
}

.sm-cont-card__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 28px;
    line-height: 36px;
    color: var(--color-navy-dark);
    margin-bottom: 16px;
}

.sm-cont-card__line {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 18px;
    line-height: 28px;
    color: var(--color-navy-dark);
}

.sm-cont-card__line--bold {
    font-weight: 700;
}

.sm-cont-card__email {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 18px;
    line-height: 28px;
    color: var(--color-blue-medium);
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.sm-cont-card__email:hover {
    opacity: 0.7;
}

.sm-cont-card__footer {
    padding: 0 40px 40px;
}

.sm-cont-card__footer--border {
    border-top: 1px solid rgba(197, 198, 207, 0.2);
    margin: 0 40px;
    padding: 33px 0 40px;
}

.sm-cont-card__nota {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--color-gray-text);
    opacity: 0.5;
}

.sm-cont-card__eyebrow {
    display: inline-block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 14px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--color-red);
    margin-bottom: 10px;
}

/* Micro-card sidebar (scrivici / tempi) — stessa famiglia della card sede */
.sm-cont-mini {
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    border-radius: 12px;
    padding: 24px 28px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sm-cont-mini__label {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 14px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--color-red);
}

.sm-cont-mini__value {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    line-height: 28px;
    letter-spacing: -0.2px;
    color: var(--color-navy-dark);
    text-decoration: none;
    word-break: break-word;
}

.sm-cont-mini__value--small {
    font-size: 17px;
    line-height: 24px;
}

a.sm-cont-mini__value:hover {
    color: var(--color-red);
}

.sm-cont-mini__hint {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 13px;
    line-height: 20px;
    color: var(--color-gray-text);
    margin: 4px 0 0;
}

.sm-cont-card__promotore-label {
    display: block;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 12px;
    line-height: 16px;
    color: var(--color-gray-text);
    opacity: 0.6;
    margin-bottom: 8px;
}

.sm-cont-card__promotore {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 18px;
    line-height: 28px;
    color: var(--color-navy-dark);
}

/* Form (destra) */
.sm-cont-form-wrap {
    background-color: #F8F9FC;
    border-radius: 12px;
    padding: 65px;
}

.sm-cont-form__intro {
    margin-bottom: 36px;
}

.sm-cont-form__eyebrow {
    display: inline-block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 15px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--color-red);
    margin-bottom: 10px;
}

.sm-cont-form__heading {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 30px;
    line-height: 38px;
    letter-spacing: -0.4px;
    color: var(--color-navy-dark);
    margin: 0 0 10px;
}

.sm-cont-form__lead {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 15px;
    line-height: 24px;
    color: var(--color-gray-text);
    margin: 0;
    max-width: 560px;
}

.sm-cont-form__trust {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    color: var(--color-gray-muted);
    margin: 16px 0 0;
    max-width: 560px;
}

.sm-cont-form__row {
    display: flex;
    flex-wrap: wrap;
    gap: 32px 32px;
}

.sm-cont-form__field--half {
    flex: 1 1 calc(50% - 16px);
    min-width: 200px;
}

.sm-cont-form__field--full {
    flex: 1 1 100%;
}

.sm-cont-form__label {
    display: block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #75777F;
    margin-bottom: 8px;
}

.sm-cont-form__input,
.sm-cont-form__textarea {
    width: 100%;
    border: 1px solid rgba(197, 198, 207, 0.3);
    border-radius: 10px;
    padding: 17px 16px;
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 22px;
    color: #000515;
    background-color: var(--color-white);
    transition: border-color 0.2s ease;
}

.sm-cont-form__input::placeholder,
.sm-cont-form__textarea::placeholder {
    color: #6B7280;
}

.sm-cont-form__input:focus,
.sm-cont-form__textarea:focus {
    outline: none;
    border-color: var(--color-blue-medium);
}

.sm-cont-form__textarea {
    resize: vertical;
    min-height: 176px;
}

.sm-cont-form__submit {
    margin-top: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 20px 48px;
    background-color: var(--color-red);
    color: var(--color-white);
    border: none;
    border-radius: 12px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    line-height: 24px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0px 20px 25px -5px rgba(187, 0, 39, 0.2);
    transition: opacity 0.2s ease;
}

.sm-cont-form__submit:hover {
    opacity: 0.9;
}

/* ── Location Section: due sedi distinte (Circolo Ufficiali + Castello Aragonese)
   Due venue cards simmetriche, stessa famiglia navy, stesse proporzioni.
   Intro editoriale sopra la griglia chiarisce che le location sono due. */
.sm-cont-location {
    padding: 0 32px 96px;
    background-color: #FBF8FF;
}

.sm-cont-location__inner {
    max-width: 1216px;
    margin: 0 auto;
}

/* Intro editoriale */
.sm-cont-location__head {
    max-width: 760px;
    margin: 0 0 44px;
}

.sm-cont-location__eyebrow {
    display: inline-block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 14px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--color-red);
    margin-bottom: 14px;
}

.sm-cont-location__heading {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 36px;
    line-height: 42px;
    letter-spacing: -0.8px;
    color: var(--color-navy-dark);
    margin: 0 0 14px;
}

.sm-cont-location__heading-accent {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    font-weight: 500;
    color: var(--color-red);
}

.sm-cont-location__lead {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 26px;
    color: var(--color-gray-text);
    margin: 0;
}

.sm-cont-location__lead strong {
    color: var(--color-navy-dark);
    font-weight: 700;
}

/* Grid 2 venue cards */
.sm-cont-location__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

/* ── Venue Card ── */
.sm-cont-venue {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 44px 40px;
    border-radius: 20px;
    background: linear-gradient(145deg, #14315E 0%, #0A1E3D 60%, #081730 100%);
    color: var(--color-white);
    box-shadow: 0 20px 48px -28px rgba(10, 30, 61, 0.45);
    overflow: hidden;
}

.sm-cont-venue::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 100% 0%, rgba(245, 238, 219, 0.06) 0%, rgba(10, 30, 61, 0) 55%);
    pointer-events: none;
}

.sm-cont-venue__number {
    position: absolute;
    top: 28px;
    right: 36px;
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    font-weight: 900;
    font-size: 56px;
    line-height: 1;
    color: rgba(245, 238, 219, 0.18);
    letter-spacing: -2px;
}

.sm-cont-venue__eyebrow {
    display: inline-block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 14px;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: #FFB4BA;
    margin-bottom: 14px;
    position: relative;
}

.sm-cont-venue__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 32px;
    line-height: 38px;
    letter-spacing: -0.6px;
    color: var(--color-white);
    margin: 0 0 4px;
    position: relative;
}

.sm-cont-venue__city {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    font-weight: 500;
    font-size: 18px;
    line-height: 26px;
    color: #F5EEDB;
    margin: 0 0 18px;
    position: relative;
}

.sm-cont-venue__desc {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 15px;
    line-height: 24px;
    color: rgba(255, 255, 255, 0.82);
    margin: 0 0 22px;
    position: relative;
}

.sm-cont-venue__address {
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 22px;
    color: var(--color-white);
    margin: 0 0 24px;
    padding: 14px 18px;
    background-color: rgba(255, 255, 255, 0.05);
    border-left: 3px solid var(--color-red);
    border-radius: 6px;
    position: relative;
}

.sm-cont-venue__address strong {
    font-weight: 700;
    color: var(--color-white);
}

.sm-cont-venue__cta {
    align-self: flex-start;
    gap: 10px;
    margin-top: auto;
    position: relative;
}

.sm-cont-venue__cta svg {
    transition: transform 0.2s ease;
}

.sm-cont-venue__cta:hover svg {
    transform: translateX(3px);
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .sm-cont-location__grid {
        grid-template-columns: 1fr;
    }

    .sm-cont-location__heading {
        font-size: 30px;
        line-height: 36px;
    }

    .sm-cont-venue {
        padding: 36px 28px;
    }

    .sm-cont-venue__number {
        top: 20px;
        right: 26px;
        font-size: 44px;
    }

    .sm-cont-venue__title {
        font-size: 28px;
        line-height: 34px;
    }
}

/* CTA pre-footer */
.sm-cont-cta {
    background: linear-gradient(to bottom, #08142B, #1A4591);
    padding: 80px 0;
}

.sm-cont-cta__inner {
    max-width: 1208px;
    margin: 0 auto;
    padding: 0 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 48px;
}

.sm-cont-cta__title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 48px;
    line-height: 48px;
    letter-spacing: -2.4px;
    color: var(--color-white);
    margin-bottom: 16px;
}

.sm-cont-cta__desc {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 18px;
    line-height: 28px;
    color: #C4E7FF;
}

/* ==========================================================================
   RESPONSIVE (basic breakpoints)
   ========================================================================== */

@media (max-width: 1200px) {
    .sm-hero__title {
        font-size: 72px;
        line-height: 72px;
    }

    .sm-hero__deco {
        display: none;
    }

    .sm-manifesto__logos {
        gap: 48px;
        flex-wrap: wrap;
    }

    .sm-manifesto__text {
        width: 100%;
    }

    .sm-manifesto__title {
        font-size: 48px;
        line-height: 50px;
        letter-spacing: -2px;
    }

    .sm-taranto__title {
        font-size: 48px;
        line-height: 50px;
    }

    .sm-taranto__content {
        padding: 64px;
    }
}

@media (max-width: 960px) {
    /* Header: hide nav, show toggle */
    .sm-header__nav {
        display: none;
        position: absolute;
        top: 100px;
        left: 0;
        right: 0;
        background: var(--color-white);
        padding: 24px 32px;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
        flex-direction: column;
    }

    .sm-header__nav.is-open {
        display: flex;
    }

    .sm-header__menu {
        flex-direction: column;
        gap: 20px;
        align-items: flex-start;
        width: 100%;
    }

    /* Sotto-menu su mobile: accordion sempre visibile, indentato sotto la voce padre.
       Nessun toggle JS — pratica più semplice e robusta dentro il drawer mobile.
       Il chevron desktop viene rimosso (non serve indicatore inline). */
    .sm-header__menu .sub-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        transition: none;
        background: transparent;
        border: none;
        box-shadow: none;
        padding: 12px 0 4px 0;
        margin: 0;
        min-width: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .sm-header__menu .sub-menu::before {
        display: none;
    }

    .sm-header__menu .sub-menu li a {
        padding: 4px 0 4px 16px;
        border-left: 2px solid rgba(197, 198, 207, 0.4);
        border-radius: 0;
        font-size: 14px;
        font-weight: 600;
        background: transparent;
    }

    .sm-header__menu .sub-menu li a:hover,
    .sm-header__menu .sub-menu li.current-menu-item > a,
    .sm-header__menu .sub-menu li.current_page_item > a {
        background: transparent;
        border-left-color: var(--color-red);
        color: var(--color-red);
    }

    .sm-header__menu > li.menu-item-has-children > a::after {
        display: none; /* chevron non serve in modalità drawer */
    }

    .sm-header__actions {
        display: none;
    }

    .sm-header__toggle {
        display: flex;
    }

    /* Hero adjustments */
    .sm-hero {
        min-height: auto;
        padding-top: 140px;
        padding-bottom: 80px;
    }

    .sm-hero__container {
        padding: 0 24px;
    }

    .sm-hero__logo {
        width: 300px;
        height: auto;
    }

    .sm-hero__title {
        font-size: 48px;
        line-height: 52px;
    }

    .sm-hero__subtitle {
        font-size: 18px;
        line-height: 28px;
        margin-bottom: 48px;
    }

    .sm-hero__info {
        flex-direction: column;
        gap: 24px;
        align-items: flex-start;
        padding: 0 24px;
    }

    .sm-hero__countdown {
        grid-template-columns: repeat(4, 80px);
        gap: 12px;
    }

    .sm-hero__countdown-num {
        font-size: 24px;
        line-height: 30px;
    }

    .sm-hero__cta {
        flex-direction: column;
        gap: 16px;
    }

    .sm-hero__cta .sm-btn {
        width: 100%;
        max-width: 320px;
    }

    /* Manifesto responsive */
    .sm-manifesto .sm-container {
        gap: 48px;
    }

    .sm-manifesto__logos {
        gap: 32px;
    }

    .sm-manifesto__logo-item img {
        max-height: 60px;
    }

    .sm-manifesto__cards {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .sm-manifesto__card {
        min-height: auto;
    }

    .sm-manifesto__title {
        font-size: 36px;
        line-height: 40px;
    }

    .sm-manifesto__subtitle {
        font-size: 18px;
        line-height: 28px;
    }

    /* Taranto responsive */
    .sm-taranto {
        grid-template-columns: 1fr;
    }

    .sm-taranto__photo {
        min-height: 360px;
    }

    .sm-taranto__content {
        padding: 48px 24px;
    }

    .sm-taranto__title {
        font-size: 40px;
        line-height: 42px;
    }

    .sm-taranto__text {
        font-size: 18px;
        line-height: 28px;
    }

    /* Attività responsive */
    .sm-attivita__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }

    /* Programma responsive */
    .sm-programma__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 24px;
    }

    .sm-programma__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .sm-programma__speakers {
        grid-template-columns: 1fr 1fr;
    }

    .sm-programma__title {
        font-size: 36px;
        line-height: 40px;
    }

    /* Stats responsive */
    .sm-stats__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px 24px;
        padding: 48px 0;
    }

    .sm-stats__number {
        font-size: 48px;
        line-height: 48px;
    }

    /* CTA responsive — card floating adattata a mobile */
    .sm-cta {
        padding: 80px 24px;
    }

    .sm-cta__inner {
        padding: 48px 32px;
        border-radius: 20px;
    }

    .sm-cta__title {
        font-size: 40px;
        line-height: 44px;
        letter-spacing: -2px;
    }

    .sm-cta__buttons {
        flex-direction: column;
        gap: 16px;
    }

    .sm-btn--lg {
        padding: 20px 36px;
        font-size: 14px;
        width: 100%;
        max-width: 320px;
    }

    /* Pagina Programma responsive (hero gestito da .sm-page-hero--dark) */
    .sm-prog-tabs__inner {
        gap: 24px;
    }

    .sm-prog-tabs__label {
        font-size: 18px;
        line-height: 24px;
    }

    /* Programma day panel responsive */
    .sm-prog-day__head {
        padding: 0 24px;
    }

    .sm-prog-day__title {
        font-size: 32px;
        line-height: 38px;
    }

    .sm-prog-day__bar {
        height: 32px;
    }

    .sm-prog-day__grid {
        grid-template-columns: 1fr;
        padding: 0 24px;
        gap: 24px;
    }

    .sm-prog-main {
        padding: 32px 28px;
    }

    .sm-prog-main__time {
        font-size: 34px;
        line-height: 34px;
    }

    .sm-prog-main__badges {
        margin-left: 0;
        width: 100%;
        order: 3;
    }

    .sm-prog-main__title {
        font-size: 22px;
        line-height: 28px;
    }

    .sm-prog-day__previews {
        grid-template-columns: 1fr;
        padding: 0 24px;
    }

    .sm-prog-cta__title {
        font-size: 36px;
        line-height: 40px;
    }

    .sm-prog-cta__buttons {
        flex-direction: column;
        gap: 16px;
    }

    /* Speaker page responsive (hero gestito da .sm-page-hero--dark) */
    .sm-spk-directory__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 24px;
    }

    .sm-spk-filters {
        flex-wrap: wrap;
    }

    .sm-spk-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 28px 20px;
    }

    @media (max-width: 480px) {
        .sm-spk-grid {
            grid-template-columns: 1fr;
        }
    }

    /* Partecipa page responsive (hero gestito da .sm-page-hero--dark) */
    .sm-part-tracks__grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .sm-part-track {
        min-height: auto;
    }

    .sm-part-why__grid {
        grid-template-columns: 1fr;
    }

    .sm-part-why__photo {
        min-height: 300px;
    }

    .sm-part-why__content {
        padding: 48px 24px;
    }

    .sm-part-why__title {
        font-size: 36px;
        line-height: 40px;
    }

    /* Compatta: testo prima, foto dopo su mobile */
    .sm-part-why--compact {
        padding: 56px 24px;
    }

    .sm-part-why--compact .sm-part-why__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .sm-part-why--compact .sm-part-why__photo {
        order: 2;
        min-height: auto;
        max-height: 280px;
        aspect-ratio: 16 / 9;
    }

    .sm-part-why--compact .sm-part-why__content {
        order: 1;
    }

    .sm-part-banner__links {
        flex-direction: column;
    }

    .sm-part-banner__title {
        font-size: 32px;
        line-height: 36px;
    }

    /* Contatti page responsive */

    .sm-cont-hero-meta {
        gap: 20px 32px;
    }

    .sm-cont-routing {
        padding: 56px 24px 48px;
    }

    .sm-cont-routing__title {
        font-size: 28px;
        line-height: 34px;
    }

    .sm-cont-routing__lead {
        margin-left: 0;
    }

    .sm-cont-main__grid {
        grid-template-columns: 1fr;
    }

    .sm-cont-form-wrap {
        padding: 32px;
    }

    .sm-cont-form__field--half {
        flex: 1 1 100%;
    }

    .sm-cont-location {
        padding: 0 24px 64px;
    }

    .sm-cont-cta__inner {
        flex-direction: column;
        text-align: center;
    }

    .sm-cont-cta__title {
        font-size: 32px;
        line-height: 36px;
    }

    /* Partner responsive: gap più contenuto, flex-wrap gestisce già il resto */
    .sm-partner__grid {
        gap: 24px;
    }

    /* Footer responsive */
    .sm-footer__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .sm-footer__bottom-inner {
        flex-direction: column;
        gap: 16px;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .sm-header__logo {
        width: 160px;
    }

    .sm-hero__logo {
        width: 200px;
    }

    .sm-hero__title {
        font-size: 36px;
        line-height: 40px;
    }

    .sm-hero__subtitle {
        font-size: 16px;
        line-height: 24px;
    }

    .sm-hero__info-value {
        font-size: 18px;
        line-height: 26px;
    }

    .sm-hero__countdown {
        grid-template-columns: repeat(4, 68px);
        gap: 8px;
    }

    .sm-partner__grid {
        gap: 16px;
    }

    .sm-partner__item {
        flex: 0 1 200px;
    }
}

/* ==========================================================================
   PAGINA ESPOSITORI & SPONSOR
   Hero 2-col + filter bar + 4 sezioni card + bento grid + CTA espositore con form
   ========================================================================== */

.sm-esp-filters-bar,
.sm-esp-section,
.sm-esp-exhibitor {
    background-color: #FBF8FF;
}

/* ── Filter bar (directory filter) ────── */
.sm-esp-filters-bar {
    padding: 32px 32px 16px;
}

.sm-esp-filters {
    max-width: 1216px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.sm-esp-filters__btn {
    appearance: none;
    background: none;
    border: 1px solid rgba(197, 198, 207, 0.4);
    border-radius: 999px;
    padding: 10px 22px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--color-gray-text);
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.sm-esp-filters__btn:hover:not(.sm-esp-filters__btn--active) {
    border-color: var(--color-navy-dark);
    color: var(--color-navy-dark);
}

.sm-esp-filters__btn--active {
    background-color: var(--color-navy-dark);
    border-color: var(--color-navy-dark);
    color: var(--color-white);
}

.sm-esp-filters__btn:focus-visible {
    outline: 2px solid var(--color-blue-medium);
    outline-offset: 2px;
}

/* Hero ora gestito dal sistema unificato .sm-page-hero--light */

/* ── Wizard multi-step espositori ──────────────────────────────
   Progressive enhancement:
     No-JS  → tutti gli step visibili (form piatto funzionante)
     Con JS → .sm-wizard--js nasconde step non attivi            */

/* No-JS: tutti gli step visibili in sequenza */
.sm-wizard__step {
    margin-bottom: 32px;
}

.sm-wizard__step:last-child {
    margin-bottom: 0;
}

/* JS mode: solo step attivo visibile */
.sm-wizard--js .sm-wizard__step {
    display: none;
}

/* Dopo submit con successo: wizard nascosto, solo messaggio visibile */
.sm-wizard--done {
    display: none;
}

.sm-wizard--js .sm-wizard__step.is-active {
    display: block;
    animation: smWizardFadeIn 0.25s ease;
}

@keyframes smWizardFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Header: progress indicator + back button */
.sm-wizard__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    min-height: 28px;
}

.sm-wizard__progress {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--color-gray-muted);
    margin-left: auto;
}

.sm-wizard__back {
    appearance: none;
    background: none;
    border: none;
    padding: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: var(--color-red);
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.sm-wizard__back:hover {
    opacity: 0.7;
}

.sm-wizard__back:focus-visible {
    outline: 2px solid var(--color-blue-medium);
    outline-offset: 3px;
}

/* Question title */
.sm-wizard__question {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 22px;
    line-height: 28px;
    color: var(--color-navy-dark);
    margin: 0 0 24px;
}

/* Options grid (radio cards) */
.sm-wizard__options {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

/* Individual option (label wrapping hidden radio) */
.sm-wizard__option {
    position: relative;
    cursor: pointer;
}

.sm-wizard__option input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

.sm-wizard__option-label {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 16px 14px;
    border: 1px solid rgba(197, 198, 207, 0.5);
    border-radius: 12px;
    background-color: var(--color-white);
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 14px;
    line-height: 20px;
    color: var(--color-navy-dark);
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
    min-height: 56px;
}

.sm-wizard__option-label:hover {
    border-color: var(--color-navy-dark);
    box-shadow: 0 4px 12px -4px rgba(10, 30, 61, 0.12);
}

/* Selected state via :checked */
.sm-wizard__option input:checked + .sm-wizard__option-label {
    border-color: var(--color-navy-dark);
    background-color: var(--color-navy-dark);
    color: var(--color-white);
    box-shadow: 0 8px 20px -6px rgba(10, 30, 61, 0.25);
}

/* Focus visible for keyboard navigation */
.sm-wizard__option input:focus-visible + .sm-wizard__option-label {
    outline: 2px solid var(--color-blue-medium);
    outline-offset: 3px;
}

/* Optional label dimmer */
.sm-wizard__optional {
    opacity: 0.5;
}

/* Textarea inside wizard step 4 */
.sm-esp-form__textarea {
    resize: vertical;
}

/* Responsive wizard */
@media (max-width: 640px) {
    .sm-wizard__options {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .sm-wizard__question {
        font-size: 19px;
        line-height: 24px;
    }

    .sm-wizard__option-label {
        padding: 14px 12px;
        font-size: 14px;
        min-height: 48px;
    }
}

/* ── Messaggi di stato form (condiviso Espositori + Contatti) ── */
.sm-form-message {
    padding: 16px 20px;
    border-radius: 12px;
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 15px;
    line-height: 22px;
    margin-bottom: 24px;
}

.sm-form-message--success {
    background-color: #E8F5E9;
    color: #1B5E20;
    border: 1px solid #A5D6A7;
}

.sm-form-message--error {
    background-color: #FFEBEE;
    color: #B71C1C;
    border: 1px solid #EF9A9A;
}

/* ── Section wrapper (comune) ──────────── */
.sm-esp-section {
    padding: 64px 32px;
}

.sm-esp-section__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 24px;
    line-height: 32px;
    color: var(--color-navy-dark);
    max-width: 1216px;
    margin: 0 auto 40px;
    display: flex;
    align-items: center;
    gap: 16px;
}

.sm-esp-section__bar {
    display: inline-block;
    width: 4px;
    height: 28px;
    background-color: var(--color-red);
    border-radius: 2px;
    flex-shrink: 0;
}

/* ── 1. Istituzioni (heading centered + 4-col grid) ── */
.sm-esp-section__head {
    max-width: 1216px;
    margin: 0 auto 56px;
    display: flex;
    align-items: center;
    gap: 16px;
}

.sm-esp-section__divider {
    flex: 1;
    height: 1px;
    background-color: rgba(197, 198, 207, 0.5);
}

.sm-esp-section__title--centered {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--color-navy-dark);
}

.sm-esp-ist-grid {
    max-width: 1216px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    padding: 0;
    list-style: none;
}

.sm-esp-ist-card {
    background-color: var(--color-white);
    border-radius: 12px;
    padding: 28px 24px;
    text-align: center;
    box-shadow: 0 1px 2px rgba(10, 30, 61, 0.04);
    border: 1px solid rgba(197, 198, 207, 0.3);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sm-esp-ist-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(10, 30, 61, 0.08);
    border-color: rgba(10, 30, 61, 0.14);
}

.sm-esp-ist-card__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 20px;
    background-color: var(--color-bg-attivita);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-blue);
    overflow: hidden;
}

/* Variante con logo reale (featured image): sfondo bianco, bordo sottile,
   l'immagine riempie il box con object-fit contain per non deformarsi. */
.sm-esp-ist-card__icon--logo {
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    padding: 6px;
}

.sm-esp-ist-card__icon-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.sm-esp-ist-card__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 18px;
    line-height: 24px;
    color: var(--color-navy-dark);
    margin: 0 0 8px;
}

.sm-esp-ist-card__label {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 16px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--color-gray-muted);
    margin: 0;
}

/* ── 2. Associazioni (3-col horizontal) ── */
.sm-esp-assoc-grid {
    max-width: 1216px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    padding: 0;
    list-style: none;
}

.sm-esp-assoc-card {
    background-color: var(--color-white);
    border-radius: 12px;
    padding: 24px 26px;
    display: flex;
    align-items: center;
    gap: 20px;
    border: 1px solid rgba(197, 198, 207, 0.3);
    box-shadow: 0 1px 2px rgba(10, 30, 61, 0.04);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sm-esp-assoc-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(10, 30, 61, 0.08);
    border-color: rgba(10, 30, 61, 0.14);
}

.sm-esp-assoc-card__icon {
    width: 56px;
    height: 56px;
    background-color: var(--color-bg-attivita);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-blue);
    flex-shrink: 0;
    overflow: hidden;
}

/* Variante con logo reale (featured image): sfondo bianco, bordo sottile,
   immagine che riempie il box con object-fit contain per non deformarsi.
   Stesso trattamento di .sm-esp-ist-card__icon--logo per coerenza famiglia. */
.sm-esp-assoc-card__icon--logo {
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    padding: 6px;
}

.sm-esp-assoc-card__icon-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.sm-esp-assoc-card__body {
    min-width: 0;
}

.sm-esp-assoc-card__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    line-height: 28px;
    color: var(--color-navy-dark);
    margin: 0 0 4px;
}

.sm-esp-assoc-card__subtitle {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: var(--color-gray-text);
    margin: 0;
}

/* ── 3. Enti & Partner Strategici (grid 2×2 uniforme) ──
   Quattro card stessa dimensione, stesso raggio, stesso padding.
   La gerarchia è espressa via colore (featured navy, highlight red)
   senza rompere la famiglia visiva con proporzioni diverse. */
.sm-esp-enti-grid {
    max-width: 1216px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 1fr;
    gap: 20px;
}

/* Base comune a tutte le card della sezione */
.sm-esp-enti__featured,
.sm-esp-enti__small,
.sm-esp-enti__highlight {
    grid-column: auto;
    grid-row: auto;
    border-radius: 12px;
    padding: 32px;
    min-height: 220px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    text-align: left;
    gap: 16px;
    box-shadow: 0 1px 2px rgba(10, 30, 61, 0.04);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sm-esp-enti__featured:hover,
.sm-esp-enti__small:hover,
.sm-esp-enti__highlight:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(10, 30, 61, 0.10);
}

/* Icona normalizzata (pattern identico alle altre sezioni della pagina) */
.sm-esp-enti__featured-icon,
.sm-esp-enti__small-icon,
.sm-esp-enti__highlight-icon {
    width: 56px;
    height: 56px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: static;
}

.sm-esp-enti__featured-icon svg,
.sm-esp-enti__small-icon svg,
.sm-esp-enti__highlight-icon svg {
    width: 28px;
    height: 28px;
}

/* Titoli uniformi (stessa scala tipografica) */
.sm-esp-enti__featured-title,
.sm-esp-enti__small-title,
.sm-esp-enti__highlight-title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 22px;
    line-height: 28px;
    margin: 0;
    letter-spacing: -0.3px;
}

/* Testo descrittivo uniforme */
.sm-esp-enti__featured-desc,
.sm-esp-enti__highlight-desc {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 15px;
    line-height: 24px;
    margin: 0;
    max-width: none;
}

/* ── Varianti colore (= gerarchia senza cambio forma) ── */

/* Featured: navy */
.sm-esp-enti__featured {
    background-color: var(--color-blue);
    color: var(--color-white);
    border: 1px solid var(--color-blue);
}
.sm-esp-enti__featured-icon {
    background-color: rgba(255, 255, 255, 0.12);
    color: var(--color-white);
}
.sm-esp-enti__featured-title {
    color: var(--color-white);
}
.sm-esp-enti__featured-desc {
    color: rgba(255, 255, 255, 0.85);
}

/* Small: bianche con bordo */
.sm-esp-enti__small {
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.3);
}
.sm-esp-enti__small-icon {
    background-color: var(--color-bg-attivita);
    color: var(--color-blue);
}
.sm-esp-enti__small-title {
    color: var(--color-navy-dark);
}

/* Highlight: red */
.sm-esp-enti__highlight {
    background-color: var(--color-red);
    color: var(--color-white);
    border: 1px solid var(--color-red);
}
.sm-esp-enti__highlight-icon {
    background-color: rgba(255, 255, 255, 0.15);
    color: var(--color-white);
}
.sm-esp-enti__highlight-title {
    color: var(--color-white);
}
.sm-esp-enti__highlight-desc {
    color: rgba(255, 255, 255, 0.85);
}

/* ── 4. Le Aziende (griglia 6x2 con placeholder) ── */
.sm-esp-aziende {
    padding-bottom: 96px;
}

.sm-esp-aziende__head {
    max-width: 900px;
    margin: 0 auto 56px;
    text-align: center;
}

.sm-esp-aziende__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 40px;
    line-height: 48px;
    letter-spacing: -1.5px;
    color: var(--color-navy-dark);
    margin: 0 0 16px;
}

.sm-esp-aziende__subtitle {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 24px;
    color: var(--color-gray-text);
    margin: 0;
}

.sm-esp-aziende-grid {
    max-width: 1216px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0;
    padding: 0;
    list-style: none;
    border: 1px solid rgba(197, 198, 207, 0.4);
    border-radius: 12px;
    background-color: var(--color-white);
    overflow: hidden;
}

.sm-esp-aziende-slot {
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    border-right: 1px solid rgba(197, 198, 207, 0.4);
    border-bottom: 1px solid rgba(197, 198, 207, 0.4);
    background-color: var(--color-white);
}

.sm-esp-aziende-slot:nth-child(6n) {
    border-right: none;
}

.sm-esp-aziende-slot:nth-last-child(-n+6) {
    border-bottom: none;
}

.sm-esp-aziende-slot__label {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 14px;
    line-height: 18px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: rgba(10, 30, 61, 0.25);
    text-align: center;
}

.sm-esp-aziende-slot img {
    max-width: 82%;
    max-height: 78%;
    width: auto;
    height: auto;
    object-fit: contain;
    transition: transform 0.2s ease;
}

.sm-esp-aziende-slot:hover img {
    transform: scale(1.04);
}

/* ── 5. Become Exhibitor (navy + form) ── */
.sm-esp-exhibitor {
    padding: 0 32px 96px;
}

.sm-esp-exhibitor__grid {
    max-width: 1216px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 20px 40px -10px rgba(10, 30, 61, 0.12);
}

.sm-esp-exhibitor__copy {
    background: linear-gradient(135deg, var(--color-navy-dark) 0%, var(--color-blue) 100%);
    color: var(--color-white);
    padding: 64px;
}

.sm-esp-exhibitor__title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 40px;
    line-height: 48px;
    letter-spacing: -1.5px;
    color: var(--color-white);
    margin: 0 0 24px;
}

.sm-esp-exhibitor__desc {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    color: rgba(255, 255, 255, 0.85);
    margin: 0 0 32px;
}

.sm-esp-exhibitor__benefits {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sm-esp-exhibitor__benefits li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 24px;
    color: var(--color-white);
}

.sm-esp-exhibitor__benefits svg {
    flex-shrink: 0;
    color: var(--color-red);
    margin-top: 2px;
}

.sm-esp-exhibitor__form-wrap {
    background-color: var(--color-white);
    padding: 64px;
}

.sm-esp-exhibitor__form-title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 24px;
    line-height: 32px;
    color: var(--color-navy-dark);
    margin: 0 0 32px;
}

.sm-esp-form__row {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}

.sm-esp-form__field--half {
    flex: 1 1 calc(50% - 12px);
    min-width: 180px;
}

.sm-esp-form__field--full {
    flex: 1 1 100%;
}

.sm-esp-form__label {
    display: block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 16px;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    color: #75777F;
    margin-bottom: 8px;
}

.sm-esp-form__input,
.sm-esp-form__select {
    width: 100%;
    border: 1px solid rgba(197, 198, 207, 0.5);
    border-radius: 10px;
    padding: 16px;
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 22px;
    color: #000515;
    background-color: var(--color-white);
    transition: border-color 0.2s ease;
}

.sm-esp-form__input::placeholder {
    color: #9B9EA5;
}

.sm-esp-form__input:focus,
.sm-esp-form__select:focus {
    outline: none;
    border-color: var(--color-blue-medium);
}

.sm-esp-form__select-wrap {
    position: relative;
}

.sm-esp-form__select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 48px;
    cursor: pointer;
}

.sm-esp-form__select-arrow {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: var(--color-gray-text);
}

.sm-esp-form__submit {
    width: 100%;
    margin-top: 28px;
    padding: 20px 32px;
    background-color: var(--color-red);
    color: var(--color-white);
    border: none;
    border-radius: 12px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 15px;
    line-height: 22px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0px 20px 25px -5px rgba(187, 0, 39, 0.2);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.sm-esp-form__submit:hover {
    opacity: 0.92;
    transform: translateY(-1px);
}

/* ── Responsive Espositori (hero gestito da .sm-page-hero--light) ── */
@media (max-width: 1200px) {
    .sm-esp-enti-grid {
        grid-template-columns: minmax(0, 1fr) 240px 240px;
    }

    .sm-esp-exhibitor__copy,
    .sm-esp-exhibitor__form-wrap {
        padding: 48px;
    }
}

@media (max-width: 960px) {
    .sm-esp-filters-bar {
        padding: 24px 16px 8px;
    }

    .sm-esp-filters {
        gap: 8px;
    }

    .sm-esp-filters__btn {
        padding: 9px 16px;
        font-size: 11px;
    }

    .sm-esp-section {
        padding: 56px 24px;
    }

    .sm-esp-ist-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .sm-esp-assoc-grid {
        grid-template-columns: 1fr;
    }

    .sm-esp-enti-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 1fr;
    }

    .sm-esp-aziende-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .sm-esp-aziende-slot {
        border-right: 1px solid rgba(197, 198, 207, 0.4);
    }

    .sm-esp-aziende-slot:nth-child(3n) {
        border-right: none;
    }

    .sm-esp-aziende-slot:nth-child(6n) {
        border-right: none;
    }

    .sm-esp-aziende-slot:nth-last-child(-n+6) {
        border-bottom: 1px solid rgba(197, 198, 207, 0.4);
    }

    .sm-esp-aziende-slot:nth-last-child(-n+3) {
        border-bottom: none;
    }

    .sm-esp-aziende__title {
        font-size: 32px;
        line-height: 38px;
    }

    .sm-esp-exhibitor__grid {
        grid-template-columns: 1fr;
    }

    .sm-esp-exhibitor__title {
        font-size: 32px;
        line-height: 38px;
    }
}

@media (max-width: 640px) {
    .sm-esp-ist-grid {
        grid-template-columns: 1fr;
    }

    .sm-esp-enti-grid {
        grid-template-columns: 1fr;
    }

    .sm-esp-enti__featured,
    .sm-esp-enti__highlight {
        grid-column: auto;
    }

    .sm-esp-aziende-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .sm-esp-aziende-slot,
    .sm-esp-aziende-slot:nth-child(3n) {
        border-right: 1px solid rgba(197, 198, 207, 0.4);
    }

    .sm-esp-aziende-slot:nth-child(2n) {
        border-right: none;
    }

    .sm-esp-aziende-slot:nth-last-child(-n+3) {
        border-bottom: 1px solid rgba(197, 198, 207, 0.4);
    }

    .sm-esp-aziende-slot:nth-last-child(-n+2) {
        border-bottom: none;
    }

    .sm-esp-exhibitor__copy,
    .sm-esp-exhibitor__form-wrap {
        padding: 40px 28px;
    }

    .sm-esp-form__field--half {
        flex: 1 1 100%;
    }
}

/* ==========================================================================
   PAGINA NEWS & MEDIA
   Hero editoriale + 2 bandi + Sala Stampa bento grid + Press Kit + Newsletter
   ========================================================================== */

.sm-news-section {
    background-color: #FBF8FF;
}

/* Hero ora gestito dal sistema unificato .sm-page-hero--light.
   L'unico custom è la info card editoriale che vive dentro il grid cell destro. */

/* ── Singola news (single-news.php) — hero meta + cover + body prose ───
   Layout: hero text-only + cover wide + article prose 720px centered + back link.
   Usa il sistema .sm-page-hero--light --text-only per il hero. */
.sm-news-single__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.sm-news-single__meta-dot {
    color: var(--color-gray-muted);
    font-weight: 700;
    line-height: 1;
    user-select: none;
}

.sm-news-single__date {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 13px;
    line-height: 16px;
    color: var(--color-gray-muted);
}

.sm-news-single__cover-wrap {
    background-color: #FBF8FF;
    padding: 0 32px 48px;
}

.sm-news-single__cover {
    max-width: 1080px;
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 40px 80px -24px rgba(10, 30, 61, 0.25);
}

.sm-news-single__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.sm-news-single {
    background-color: #FBF8FF;
    padding: 32px 32px 96px;
}

.sm-news-single__body {
    max-width: 720px;
    margin: 0 auto;
}

.sm-news-single__body p {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 18px;
    line-height: 30px;
    color: var(--color-gray-text);
    margin: 0 0 22px;
}

.sm-news-single__body p:first-of-type {
    font-size: 20px;
    line-height: 32px;
    color: var(--color-navy-dark);
    font-weight: 500;
}

.sm-news-single__body p:last-child {
    margin-bottom: 0;
}

.sm-news-single__footer {
    max-width: 720px;
    margin: 48px auto 0;
    padding-top: 32px;
    border-top: 1px solid rgba(197, 198, 207, 0.35);
}

.sm-news-single__back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--color-red);
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.sm-news-single__back:hover {
    opacity: 0.7;
}

.sm-news-single__back:focus-visible {
    outline: 2px solid var(--color-blue-medium);
    outline-offset: 3px;
    border-radius: 2px;
}

@media (max-width: 960px) {
    .sm-news-single__cover-wrap {
        padding: 0 24px 40px;
    }

    .sm-news-single__cover {
        border-radius: 16px;
    }

    .sm-news-single {
        padding: 24px 24px 72px;
    }

    .sm-news-single__body p {
        font-size: 17px;
        line-height: 28px;
    }

    .sm-news-single__body p:first-of-type {
        font-size: 19px;
        line-height: 30px;
    }
}

/* ── Hero info card (news-specific, dentro .sm-page-hero--light) ─────────
   Sostituisce il placeholder generico del sistema con una card editoriale
   informativa: icona + titolo "Archivio stampa" + lista counter con marker
   rossi + riga descrittiva finale. Vive come 2° figlio del grid __inner. */
.sm-news-hero-card {
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    border-radius: 20px;
    padding: 40px;
    box-shadow: 0 20px 48px -20px rgba(10, 30, 61, 0.14);
    display: flex;
    flex-direction: column;
    gap: 24px;
    max-width: 480px;
    justify-self: start;
}

.sm-news-hero-card__icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background-color: #FFE2E4;
    color: #93001B;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sm-news-hero-card__icon svg {
    width: 24px;
    height: 24px;
}

.sm-news-hero-card__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 24px;
    line-height: 30px;
    color: var(--color-navy-dark);
    margin: 0;
}

.sm-news-hero-card__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.sm-news-hero-card__item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 0;
    border-top: 1px solid rgba(197, 198, 207, 0.3);
}

.sm-news-hero-card__item:last-child {
    border-bottom: 1px solid rgba(197, 198, 207, 0.3);
}

.sm-news-hero-card__marker {
    display: inline-block;
    width: 14px;
    height: 2px;
    background-color: var(--color-red);
    border-radius: 1px;
    flex-shrink: 0;
}

.sm-news-hero-card__count {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 22px;
    line-height: 28px;
    color: var(--color-navy-dark);
    min-width: 24px;
}

.sm-news-hero-card__label {
    flex: 1;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 15px;
    line-height: 22px;
    color: var(--color-gray-text);
}

.sm-news-hero-card__desc {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 13px;
    line-height: 20px;
    color: var(--color-gray-muted);
    margin: 0;
}

@media (max-width: 960px) {
    .sm-news-hero-card {
        max-width: none;
        justify-self: stretch;
        padding: 32px;
    }
}

/* ── Section wrapper comune ──────────── */
.sm-news-section {
    padding: 64px 32px;
}

.sm-news-section__head {
    max-width: 1216px;
    margin: 0 auto 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.sm-news-section__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 28px;
    line-height: 36px;
    color: var(--color-navy-dark);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 16px;
}

.sm-news-section__bar {
    display: inline-block;
    width: 4px;
    height: 28px;
    background-color: var(--color-red);
    border-radius: 2px;
    flex-shrink: 0;
}

.sm-news-section__link {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 13px;
    line-height: 20px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--color-red);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: opacity 0.2s ease;
}

.sm-news-section__link:hover {
    opacity: 0.7;
}

/* ── 1. Bandi & Incentivi (2 card grandi) ── */
/* News grid — archivio editoriale con 3 breakpoint reali:
   desktop ≥1200 → 3-col, tablet 960-1199 → 2-col, mobile ≤960 → 1-col
   ------------------------------------------------------------------
   TODO refactor futuro: le classi .sm-news-bando* sono un residuo storico
   (la sezione si chiamava "Ultimi Bandi e Incentivi"). Ora la semantica
   è "news/aggiornamenti/comunicati". Rinomina prevista .sm-news-bando*
   → .sm-news-card* in un refactor dedicato, senza urgenza (solo cleanup
   tecnico, zero impatto utente). Oggi le stesse classi sono usate da
   page-news.php e page-ultime-news.php per condividere lo stesso layout. */
.sm-news-bandi__grid {
    max-width: 1216px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.sm-news-bando {
    background-color: var(--color-white);
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(197, 198, 207, 0.3);
    display: flex;
    flex-direction: column;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sm-news-bando:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 36px -12px rgba(10, 30, 61, 0.15);
}

/* Cover 3/2 — leggermente più alta di 16/9 per dare peso all'immagine
   anche su card strette. min-height evita schiacciamento su schermi grandi. */
.sm-news-bando__cover {
    aspect-ratio: 3 / 2;
    min-height: 200px;
    overflow: hidden;
    background-color: var(--color-bg-attivita);
}

.sm-news-bando__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Body: flex-column con 2 zone — contenuto (meta+title+excerpt) e footer (link) */
.sm-news-bando__body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

/* Meta row: badge · date (dot separator, più sobrio) */
.sm-news-bando__meta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}

.sm-news-bando__meta-dot {
    color: var(--color-gray-muted);
    font-weight: 700;
    line-height: 1;
    user-select: none;
}

.sm-news-badge {
    display: inline-block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 15px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 6px;
}

.sm-news-badge--danger {
    background-color: #FFE2E4;
    color: #93001B;
}

.sm-news-badge--warning {
    background-color: #FFF4D4;
    color: #8A5A00;
}

.sm-news-badge--info {
    background-color: #E0EBFF;
    color: #1A4591;
}

.sm-news-bando__date {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 12px;
    line-height: 16px;
    color: var(--color-gray-muted);
}

/* Titolo: 18/24 ExtraBold, clampato a 3 righe per altezze coerenti tra card */
.sm-news-bando__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 18px;
    line-height: 24px;
    color: var(--color-navy-dark);
    margin: 0 0 12px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Excerpt: 14/22 regular, clampato a 3 righe. Flex-1 spinge il footer in basso */
.sm-news-bando__excerpt {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 14px;
    line-height: 22px;
    color: var(--color-gray-text);
    margin: 0 0 20px;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Footer: zona CTA separata da un border-top sottile — garantisce
   allineamento matematico delle CTA tra card di altezze differenti */
.sm-news-bando__footer {
    padding-top: 16px;
    border-top: 1px solid rgba(197, 198, 207, 0.3);
    margin-top: auto;
}

.sm-news-bando__link {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--color-red);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: opacity 0.2s ease;
}

.sm-news-bando__link:hover {
    opacity: 0.7;
}

.sm-news-bando__link:focus-visible {
    outline: 2px solid var(--color-blue-medium);
    outline-offset: 3px;
    border-radius: 2px;
}

/* ── 2. Sala Stampa (bento grid 5 card) ── */
.sm-news-pr__head {
    max-width: 1216px;
    margin: 0 auto 40px;
}

.sm-news-pr__subtitle {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 15px;
    line-height: 24px;
    color: var(--color-gray-text);
    margin: 8px 0 0 20px;
}

/* Sala Stampa — archivio editoriale uniforme (Step A refactor).
   Pattern identico a .sm-news-bando: grid 3-col, card uniforme, line-clamp,
   footer con border-top per allineamento CTA, cover opzionale con fallback. */
.sm-news-pr__grid {
    max-width: 1216px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.sm-news-pr-card {
    background-color: var(--color-white);
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(197, 198, 207, 0.3);
    display: flex;
    flex-direction: column;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sm-news-pr-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 36px -12px rgba(10, 30, 61, 0.15);
}

/* Cover: 3/2 con immagine reale, oppure placeholder visivo elegante */
.sm-news-pr-card__cover {
    position: relative;
    aspect-ratio: 3 / 2;
    min-height: 200px;
    overflow: hidden;
    background-color: var(--color-bg-attivita);
}

.sm-news-pr-card__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Placeholder: gradient neutro + icona + label "Press release" */
.sm-news-pr-card__cover--placeholder {
    background: linear-gradient(135deg, #F1F3F8 0%, #E5E8F0 100%);
}

.sm-news-pr-card__placeholder-inner {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.sm-news-pr-card__placeholder-inner svg {
    width: 40px;
    height: 40px;
    color: rgba(10, 30, 61, 0.35);
}

.sm-news-pr-card__placeholder-inner span {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 14px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--color-gray-muted);
}

/* Body: flex-column, padding compatto, allineamento verticale coerente */
.sm-news-pr-card__body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.sm-news-pr-card__eyebrow {
    display: inline-block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 15px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--color-red);
    margin-bottom: 12px;
}

/* Titolo: 18/24 ExtraBold line-clamp 3 (identico a .sm-news-bando__title) */
.sm-news-pr-card__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 18px;
    line-height: 24px;
    color: var(--color-navy-dark);
    margin: 0 0 12px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Excerpt: opzionale, line-clamp 3, flex 1 spinge il footer in basso */
.sm-news-pr-card__excerpt {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 14px;
    line-height: 22px;
    color: var(--color-gray-text);
    margin: 0 0 20px;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Footer: border-top separator + margin-top auto per allineamento CTA */
.sm-news-pr-card__footer {
    padding-top: 16px;
    border-top: 1px solid rgba(197, 198, 207, 0.3);
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Meta: location · date (dot separator, 12px gray-muted) */
.sm-news-pr-card__meta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 12px;
    line-height: 16px;
    color: var(--color-gray-muted);
}

.sm-news-pr-card__meta-location {
    font-weight: 700;
    color: var(--color-navy-dark);
}

.sm-news-pr-card__meta-dot {
    color: var(--color-gray-muted);
    line-height: 1;
    user-select: none;
}

.sm-news-pr-card__meta-date {
    /* Tempo visibile come stringa. Nessuno stile extra oltre all'eredità. */
}

/* Link CTA uniforme (identico a .sm-news-bando__link) */
.sm-news-pr-card__link {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--color-red);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: opacity 0.2s ease;
}

.sm-news-pr-card__link:hover {
    opacity: 0.7;
}

.sm-news-pr-card__link:focus-visible {
    outline: 2px solid var(--color-blue-medium);
    outline-offset: 3px;
    border-radius: 2px;
}

/* ── 3. Materiali & Press Kit (4 asset cards) ── */
.sm-news-media__grid {
    max-width: 1216px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    padding: 0;
    list-style: none;
}

.sm-news-asset {
    background-color: var(--color-white);
    border-radius: 16px;
    padding: 32px 24px;
    text-align: center;
    border: 1px solid rgba(197, 198, 207, 0.3);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sm-news-asset:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 32px -8px rgba(10, 30, 61, 0.12);
}

.sm-news-asset__icon {
    width: 64px;
    height: 64px;
    background-color: var(--color-bg-attivita);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-blue);
    margin-bottom: 8px;
}

.sm-news-asset__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 18px;
    line-height: 24px;
    color: var(--color-navy-dark);
    margin: 0;
}

.sm-news-asset__meta {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 13px;
    line-height: 16px;
    color: var(--color-gray-muted);
    margin: 0;
}

.sm-news-asset__link {
    margin-top: 8px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 12px;
    line-height: 20px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--color-red);
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.sm-news-asset__link:hover {
    opacity: 0.7;
}

/* ── 4. Newsletter (navy gradient con blob decorativi) ── */
.sm-news-newsletter {
    padding: 32px 32px 96px;
}

.sm-news-newsletter__inner {
    max-width: 1216px;
    margin: 0 auto;
    background: linear-gradient(135deg, var(--color-navy-dark) 0%, var(--color-blue) 100%);
    border-radius: 20px;
    padding: 80px 96px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.sm-news-newsletter__inner::before,
.sm-news-newsletter__inner::after {
    content: '';
    position: absolute;
    width: 256px;
    height: 256px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(26, 69, 145, 0.5) 0%, transparent 70%);
    filter: blur(60px);
    pointer-events: none;
}

.sm-news-newsletter__inner::before {
    top: -112px;
    right: -88px;
}

.sm-news-newsletter__inner::after {
    bottom: -112px;
    left: -128px;
    background: radial-gradient(circle, rgba(187, 0, 39, 0.3) 0%, transparent 70%);
}

.sm-news-newsletter__copy {
    position: relative;
    z-index: 1;
}

.sm-news-newsletter__title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 40px;
    line-height: 48px;
    letter-spacing: -1.5px;
    color: var(--color-white);
    margin: 0 0 16px;
}

.sm-news-newsletter__subtitle {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    color: rgba(255, 255, 255, 0.85);
    margin: 0;
}

.sm-news-newsletter__form {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sm-news-newsletter__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

.sm-news-newsletter__input {
    width: 100%;
    border: 1px solid rgba(255, 255, 255, 0.2);
    background-color: rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 18px 20px;
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 22px;
    color: var(--color-white);
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.sm-news-newsletter__input::placeholder {
    color: rgba(255, 255, 255, 0.55);
}

.sm-news-newsletter__input:focus {
    outline: none;
    border-color: rgba(255, 255, 255, 0.5);
    background-color: rgba(255, 255, 255, 0.12);
}

.sm-news-newsletter__submit {
    width: 100%;
    padding: 18px 32px;
    background-color: var(--color-white);
    color: var(--color-navy-dark);
    border: none;
    border-radius: 12px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 14px;
    line-height: 22px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.sm-news-newsletter__submit:hover {
    opacity: 0.92;
    transform: translateY(-1px);
}

.sm-news-newsletter__disclaimer {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 11px;
    line-height: 16px;
    color: rgba(255, 255, 255, 0.6);
    text-align: center;
    margin: 4px 0 0;
}

/* ── Responsive News (hero gestito da .sm-page-hero--light) ── */
@media (max-width: 1200px) {
    /* Bandi: 3-col → 2-col su tablet/laptop piccoli */
    .sm-news-bandi__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    /* Sala Stampa: stesso pattern bandi a 2-col tablet */
    .sm-news-pr__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    .sm-news-newsletter__inner {
        padding: 64px;
        gap: 48px;
    }

    .sm-news-newsletter__title {
        font-size: 32px;
        line-height: 38px;
    }
}

@media (max-width: 960px) {
    .sm-news-section {
        padding: 56px 24px;
    }

    .sm-news-section__head {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .sm-news-bandi__grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .sm-news-bando__body {
        padding: 20px;
    }

    .sm-news-pr__grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .sm-news-pr-card__body {
        padding: 20px;
    }

    .sm-news-media__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .sm-news-newsletter {
        padding: 16px 24px 72px;
    }

    .sm-news-newsletter__inner {
        grid-template-columns: 1fr;
        padding: 48px 32px;
        gap: 32px;
    }

    .sm-news-newsletter__title {
        font-size: 28px;
        line-height: 34px;
    }
}

@media (max-width: 640px) {
    .sm-news-pr-card__body {
        padding: 18px;
    }

    .sm-news-media__grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   PAGINA IL SALONE
   Hero split + 2 sezioni rendering editoriali + video rendering + CTA
   ========================================================================== */

.sm-isal-section,
.sm-isal-videos,
.sm-isal-cta {
    background-color: #FBF8FF;
}

/* Hero ora gestito dal sistema unificato .sm-page-hero--light */

/* ── Section (comune a istituzionale + espositivo) ── */
.sm-isal-section {
    padding: 72px 32px;
}

.sm-isal-section__head {
    max-width: 1216px;
    margin: 0 auto 48px;
}

.sm-isal-section__eyebrow {
    display: inline-block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 15px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--color-red);
    margin-bottom: 12px;
}

.sm-isal-section__title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 48px;
    line-height: 54px;
    letter-spacing: -1.6px;
    color: var(--color-navy-dark);
    margin: 0 0 16px;
    display: flex;
    align-items: center;
    gap: 18px;
}

.sm-isal-section__bar {
    display: inline-block;
    width: 4px;
    height: 44px;
    background-color: var(--color-red);
    border-radius: 2px;
    flex-shrink: 0;
}

.sm-isal-section__intro {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 17px;
    line-height: 28px;
    color: var(--color-gray-text);
    max-width: 720px;
    margin: 0;
    padding-left: 22px;
}

.sm-isal-section__grid {
    max-width: 1216px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.sm-isal-section__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
}

/* ── Render figure (card immagine + caption) ── */
.sm-isal-render {
    margin: 0;
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 12px 32px -12px rgba(10, 30, 61, 0.12);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sm-isal-render:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 40px -12px rgba(10, 30, 61, 0.18);
}

.sm-isal-render--wide {
    aspect-ratio: auto;
}

.sm-isal-render--wide img {
    aspect-ratio: 16 / 9;
}

.sm-isal-render--half img {
    aspect-ratio: 4 / 3;
}

.sm-isal-render img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.sm-isal-render__caption {
    padding: 18px 24px 22px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 14px;
    line-height: 20px;
    color: var(--color-navy-dark);
}

.sm-isal-render__caption::before {
    content: '';
    display: inline-block;
    width: 20px;
    height: 2px;
    background-color: var(--color-red);
    border-radius: 1px;
    vertical-align: middle;
    margin-right: 10px;
    transform: translateY(-2px);
}

/* ── Video section ────────────────────── */
.sm-isal-videos {
    padding: 72px 32px 96px;
}

.sm-isal-videos__grid {
    max-width: 1216px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
}

.sm-isal-video {
    margin: 0;
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 12px 32px -12px rgba(10, 30, 61, 0.12);
}

.sm-isal-video__player {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    background-color: #0A1E3D;
}

.sm-isal-video__preview {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background-color: #0A1E3D;
}

.sm-isal-video__preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: brightness(0.72) saturate(0.9);
}

.sm-isal-video__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    pointer-events: none;
}

.sm-isal-video__play-icon {
    width: 76px;
    height: 76px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.92);
    color: var(--color-navy-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.35);
}

.sm-isal-video__play-icon svg {
    margin-left: 4px;
}

.sm-isal-video__badge {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 14px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--color-white);
    background-color: rgba(10, 30, 61, 0.75);
    padding: 6px 14px;
    border-radius: 99px;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.sm-isal-video__caption {
    padding: 24px 28px 28px;
}

.sm-isal-video__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 20px;
    line-height: 26px;
    color: var(--color-navy-dark);
    margin: 0 0 6px;
}

.sm-isal-video__title::before {
    content: '';
    display: inline-block;
    width: 24px;
    height: 2px;
    background-color: var(--color-red);
    border-radius: 1px;
    vertical-align: middle;
    margin-right: 10px;
    transform: translateY(-3px);
}

.sm-isal-video__desc {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: var(--color-gray-text);
    margin: 0;
}

/* ── CTA finale (floating navy card) ──── */
.sm-isal-cta {
    padding: 32px 32px 96px;
}

.sm-isal-cta__inner {
    max-width: 1080px;
    margin: 0 auto;
    background: linear-gradient(135deg, var(--color-navy-dark) 0%, var(--color-blue) 100%);
    border-radius: 24px;
    padding: 72px 64px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 40px 80px -20px rgba(10, 30, 61, 0.35);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 28px;
    text-align: center;
}

.sm-isal-cta__inner::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 0% 100%, rgba(187, 0, 39, 0.20) 0%, rgba(187, 0, 39, 0) 55%);
    pointer-events: none;
    z-index: 0;
}

.sm-isal-cta__title {
    position: relative;
    z-index: 1;
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 52px;
    line-height: 58px;
    letter-spacing: -2.2px;
    color: var(--color-white);
    margin: 0;
}

.sm-isal-cta__subtitle {
    position: relative;
    z-index: 1;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 17px;
    line-height: 28px;
    color: rgba(255, 255, 255, 0.85);
    max-width: 640px;
    margin: 0;
}

.sm-isal-cta__buttons {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
    margin-top: 8px;
}

/* ── Responsive Il Salone (hero gestito da .sm-page-hero--light) ── */
@media (max-width: 1200px) {
    .sm-isal-section__title {
        font-size: 40px;
        line-height: 46px;
    }

    .sm-isal-cta__inner {
        padding: 56px 48px;
    }

    .sm-isal-cta__title {
        font-size: 42px;
        line-height: 48px;
    }
}

@media (max-width: 960px) {
    .sm-isal-section {
        padding: 56px 24px;
    }

    .sm-isal-section__title {
        font-size: 34px;
        line-height: 40px;
    }

    .sm-isal-section__bar {
        height: 34px;
    }

    .sm-isal-section__intro {
        padding-left: 0;
    }

    .sm-isal-section__row {
        grid-template-columns: 1fr;
    }

    .sm-isal-videos {
        padding: 56px 24px 72px;
    }

    .sm-isal-videos__grid {
        grid-template-columns: 1fr;
    }

    .sm-isal-cta {
        padding: 24px 24px 72px;
    }

    .sm-isal-cta__inner {
        padding: 48px 32px;
    }

    .sm-isal-cta__title {
        font-size: 34px;
        line-height: 40px;
    }
}

@media (max-width: 640px) {
    .sm-isal-section__title {
        font-size: 28px;
        line-height: 34px;
    }

    .sm-isal-cta__title {
        font-size: 28px;
        line-height: 34px;
    }

    .sm-isal-cta__buttons {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }

    .sm-isal-cta__buttons .sm-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ==========================================================================
   PAGINA IL SALONE — Sezioni narrative (manifesto, pilastri, temi,
   ecosistema, territorio, perché partecipare)
   ========================================================================== */

.sm-isal-manifesto,
.sm-isal-pillars,
.sm-isal-temi,
.sm-isal-ecosystem,
.sm-isal-territorio,
.sm-isal-why {
    background-color: #FBF8FF;
    padding: 72px 32px;
}

.sm-isal-manifesto__inner,
.sm-isal-pillars__inner,
.sm-isal-temi__inner,
.sm-isal-ecosystem__inner,
.sm-isal-territorio__inner,
.sm-isal-why__inner {
    max-width: 1216px;
    margin: 0 auto;
}

/* Alternanza di sfondo per dare ritmo visivo */
.sm-isal-pillars,
.sm-isal-ecosystem,
.sm-isal-why {
    background-color: #FFFFFF;
}

/* ── Manifesto ── */
.sm-isal-manifesto__inner {
    display: grid;
    grid-template-columns: minmax(280px, 420px) 1fr;
    gap: 48px;
    align-items: start;
}

.sm-isal-manifesto__lead {
    font-family: var(--font-body);
    font-size: 22px;
    line-height: 34px;
    color: var(--color-navy-dark);
    margin: 0 0 20px;
    font-weight: 500;
}

.sm-isal-manifesto__lead strong {
    color: var(--color-red);
    font-weight: 700;
}

.sm-isal-manifesto__text {
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 28px;
    color: var(--color-gray-text);
    margin: 0;
}

/* ── Pilastri (Finalità) ── */
.sm-isal-pillars__grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.sm-isal-pillar {
    background-color: #FBF8FF;
    border: 1px solid rgba(10, 23, 60, 0.08);
    border-radius: 12px;
    padding: 32px 28px;
    position: relative;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sm-isal-pillar:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 32px rgba(10, 23, 60, 0.08);
    border-color: rgba(10, 23, 60, 0.14);
}

.sm-isal-pillar__num {
    display: inline-block;
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 14px;
    letter-spacing: 1px;
    color: var(--color-red);
    margin-bottom: 16px;
}

.sm-isal-pillar__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 22px;
    line-height: 28px;
    color: var(--color-navy-dark);
    margin: 0 0 12px;
    letter-spacing: -0.3px;
}

.sm-isal-pillar__text {
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 24px;
    color: var(--color-gray-text);
    margin: 0;
}

/* ── Temi strategici ── */
.sm-isal-temi__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.sm-isal-tema {
    background-color: #FFFFFF;
    border-left: 3px solid var(--color-red);
    border-radius: 4px;
    padding: 24px 22px;
    box-shadow: 0 4px 16px rgba(10, 23, 60, 0.04);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sm-isal-tema:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(10, 23, 60, 0.08);
}

.sm-isal-tema__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 18px;
    line-height: 24px;
    color: var(--color-navy-dark);
    margin: 0 0 10px;
}

.sm-isal-tema__text {
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 22px;
    color: var(--color-gray-text);
    margin: 0;
}

/* ── Ecosistema attori ── */
.sm-isal-ecosystem__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.sm-isal-actor {
    background-color: #FBF8FF;
    border-radius: 12px;
    padding: 36px 32px;
    border-top: 3px solid var(--color-navy-dark);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sm-isal-actor:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(10, 23, 60, 0.08);
}

.sm-isal-actor__tag {
    display: inline-block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--color-red);
    margin-bottom: 12px;
}

.sm-isal-actor__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 24px;
    line-height: 30px;
    color: var(--color-navy-dark);
    margin: 0 0 14px;
    letter-spacing: -0.3px;
}

.sm-isal-actor__text {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 26px;
    color: var(--color-gray-text);
    margin: 0;
}

.sm-isal-actor__text strong {
    color: var(--color-navy-dark);
    font-weight: 700;
}

/* ── Territorio: pull quote editoriale ── */
.sm-isal-territorio {
    background-color: var(--color-navy-dark);
    color: #FFFFFF;
    padding: 88px 32px;
}

.sm-isal-territorio__inner {
    max-width: 960px;
    text-align: center;
}

.sm-isal-territorio .sm-isal-section__eyebrow {
    color: #FFFFFF;
    opacity: 0.75;
    margin-bottom: 20px;
}

.sm-isal-territorio__quote {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 32px;
    line-height: 44px;
    color: #FFFFFF;
    margin: 0 0 20px;
    letter-spacing: -0.5px;
}

.sm-isal-territorio__quote em {
    color: #F5D76E;
    font-style: italic;
}

.sm-isal-territorio__note {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 26px;
    color: rgba(255, 255, 255, 0.78);
    margin: 0;
}

/* ── Perché partecipare ── */
.sm-isal-why__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.sm-isal-why__item {
    padding: 24px 4px;
    border-top: 2px solid var(--color-red);
}

.sm-isal-why__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 18px;
    line-height: 24px;
    color: var(--color-navy-dark);
    margin: 16px 0 10px;
}

.sm-isal-why__text {
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 22px;
    color: var(--color-gray-text);
    margin: 0;
}

/* ── Responsive narrative blocks ── */
@media (max-width: 1200px) {
    .sm-isal-temi__grid,
    .sm-isal-why__list {
        grid-template-columns: repeat(2, 1fr);
    }

    .sm-isal-territorio__quote {
        font-size: 26px;
        line-height: 36px;
    }
}

@media (max-width: 960px) {
    .sm-isal-manifesto,
    .sm-isal-pillars,
    .sm-isal-temi,
    .sm-isal-ecosystem,
    .sm-isal-why {
        padding: 56px 24px;
    }

    .sm-isal-territorio {
        padding: 64px 24px;
    }

    .sm-isal-manifesto__inner {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .sm-isal-pillars__grid,
    .sm-isal-ecosystem__grid {
        grid-template-columns: 1fr;
    }

    .sm-isal-manifesto__lead {
        font-size: 19px;
        line-height: 30px;
    }

    .sm-isal-territorio__quote {
        font-size: 22px;
        line-height: 32px;
    }
}

@media (max-width: 640px) {
    .sm-isal-temi__grid,
    .sm-isal-why__list {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   PAGINA PRENOTA (/prenota/)
   Lobby di orientamento verso Eventbrite.
   Wizard legacy (.sm-prenota*, .sm-wizard*) rimane definito sotto per
   retrocompatibilità ma non è più utilizzato dal template.
   ========================================================================== */

/* ── Bridge "Come funziona" — 3 step editoriali ── */
.sm-prenota-bridge {
    padding: 72px 32px 40px;
    background-color: #FBF8FF;
}

.sm-prenota-bridge__inner {
    max-width: 1120px;
    margin: 0 auto;
}

.sm-prenota-bridge__head {
    max-width: 720px;
    margin: 0 0 48px;
}

.sm-prenota-bridge__eyebrow {
    display: inline-block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    line-height: 14px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--color-red);
    margin-bottom: 14px;
}

.sm-prenota-bridge__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 34px;
    line-height: 40px;
    letter-spacing: -0.6px;
    color: var(--color-navy-dark);
    margin: 0 0 14px;
}

.sm-prenota-bridge__title-accent {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    font-weight: 500;
    color: var(--color-red);
}

.sm-prenota-bridge__lead {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 26px;
    color: var(--color-gray-text);
    margin: 0;
}

.sm-prenota-steps {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.sm-prenota-step {
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    border-radius: 16px;
    padding: 28px 26px;
    box-shadow: 0 1px 2px rgba(10, 30, 61, 0.04);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sm-prenota-step:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(10, 30, 61, 0.08);
    border-color: rgba(10, 30, 61, 0.14);
}

.sm-prenota-step__num {
    display: inline-block;
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    font-weight: 900;
    font-size: 26px;
    color: var(--color-red);
    margin-bottom: 14px;
    letter-spacing: -0.5px;
}

.sm-prenota-step__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 20px;
    line-height: 26px;
    letter-spacing: -0.3px;
    color: var(--color-navy-dark);
    margin: 0 0 10px;
}

.sm-prenota-step__text {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 14.5px;
    line-height: 22px;
    color: var(--color-gray-text);
    margin: 0;
}

/* ── CTA principale Eventbrite ── */
.sm-prenota-cta {
    padding: 48px 32px 72px;
    background-color: #FBF8FF;
}

.sm-prenota-cta__inner {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
    padding: 48px 32px;
    border-radius: 20px;
    background: linear-gradient(145deg, #14315E 0%, #0A1E3D 60%, #081730 100%);
    color: var(--color-white);
    box-shadow: 0 20px 48px -28px rgba(10, 30, 61, 0.45);
}

.sm-prenota-cta__title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 28px;
    line-height: 34px;
    letter-spacing: -0.5px;
    color: var(--color-white);
    margin: 0 0 10px;
}

.sm-prenota-cta__lead {
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 24px;
    color: #9DB0D2;
    margin: 0 0 24px;
}

.sm-prenota-cta__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.sm-prenota-cta__btn svg {
    transition: transform 0.2s ease;
}

.sm-prenota-cta__btn:hover svg {
    transform: translate(2px, -2px);
}

.sm-prenota-cta__note {
    margin: 20px 0 0;
    font-family: var(--font-body);
    font-size: 12px;
    line-height: 18px;
    color: rgba(255, 255, 255, 0.55);
}

/* ── Day picker (visibile solo se per_day è popolato) ── */
.sm-prenota-day-picker {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 6px;
    margin: 0 0 24px;
    border-radius: 999px;
    background-color: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.sm-prenota-day-picker__pill {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.3px;
    color: rgba(255, 255, 255, 0.75);
    border-radius: 999px;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.sm-prenota-day-picker__pill:hover {
    color: var(--color-white);
}

.sm-prenota-day-picker__pill.is-active {
    background-color: var(--color-red);
    color: var(--color-white);
}

.sm-prenota-day-picker__pill input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

/* ── Aiuto / contatto di fallback ── */
.sm-prenota-help {
    padding: 0 32px 72px;
    background-color: #FBF8FF;
}

.sm-prenota-help__inner {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}

.sm-prenota-help__label {
    display: inline-block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: var(--color-red);
    margin-bottom: 8px;
}

.sm-prenota-help__text {
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 24px;
    color: var(--color-gray-text);
    margin: 0;
}

.sm-prenota-help__text a {
    color: var(--color-blue-medium);
    text-decoration: none;
    font-weight: 600;
}

.sm-prenota-help__text a:hover {
    text-decoration: underline;
}

/* Responsive */
@media (max-width: 900px) {
    .sm-prenota-bridge {
        padding: 56px 24px 32px;
    }
    .sm-prenota-bridge__title {
        font-size: 28px;
        line-height: 34px;
    }
    .sm-prenota-steps {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .sm-prenota-cta {
        padding: 32px 24px 56px;
    }
    .sm-prenota-cta__inner {
        padding: 40px 24px;
    }
    .sm-prenota-cta__title {
        font-size: 24px;
        line-height: 30px;
    }
    .sm-prenota-help {
        padding: 0 24px 56px;
    }
}

/* ==========================================================================
   PAGINA PRENOTA — Wizard legacy (non più in uso nel template attuale)
   Stili conservati per retrocompatibilità in caso di ripristino futuro.
   ========================================================================== */

.sm-prenota {
    background-color: #FBF8FF;
    padding: 0 32px 96px;
}

.sm-prenota__inner {
    max-width: 680px;
    margin: 0 auto;
    background-color: var(--color-white);
    border: 1px solid rgba(197, 198, 207, 0.35);
    border-radius: 20px;
    padding: 48px;
    box-shadow: 0 20px 48px -20px rgba(10, 30, 61, 0.14);
}

/* "Continua" button (step 1) */
.sm-prenota__continue {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 32px;
    padding: 16px 32px;
    background-color: var(--color-navy-dark);
    color: var(--color-white);
    border: none;
    border-radius: 12px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity 0.2s ease, transform 0.2s ease;
    width: 100%;
    justify-content: center;
}

.sm-prenota__continue:hover {
    opacity: 0.92;
    transform: translateY(-1px);
}

/* Pill variant for giornata options (horizontal row) */
.sm-wizard__options--pill {
    grid-template-columns: repeat(4, 1fr);
}

/* Shake animation for unselected required groups */
@keyframes smWizardShake {
    0%, 100% { transform: translateX(0); }
    20%      { transform: translateX(-6px); }
    40%      { transform: translateX(6px); }
    60%      { transform: translateX(-4px); }
    80%      { transform: translateX(4px); }
}

.sm-wizard__options--shake {
    animation: smWizardShake 0.5s ease;
}

/* Consent checkboxes */
.sm-prenota__consent {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 28px 0;
    padding-top: 24px;
    border-top: 1px solid rgba(197, 198, 207, 0.3);
}

.sm-prenota__checkbox {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: var(--color-gray-text);
}

.sm-prenota__checkbox input[type="checkbox"] {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin-top: 1px;
    accent-color: var(--color-navy-dark);
    cursor: pointer;
}

.sm-prenota__checkbox a {
    color: var(--color-red);
    text-decoration: none;
}

.sm-prenota__checkbox a:hover {
    text-decoration: underline;
}

/* Success state */
.sm-prenota__success {
    text-align: center;
    padding: 48px 32px;
    border: none;
    background-color: transparent;
}

.sm-prenota__success-title {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 28px;
    line-height: 34px;
    color: var(--color-navy-dark);
    margin: 0 0 16px;
}

.sm-prenota__success p {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    color: var(--color-gray-text);
    margin: 0 0 8px;
}

.sm-prenota__success-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 24px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--color-red);
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.sm-prenota__success-link:hover {
    opacity: 0.7;
}

/* Responsive prenota */
@media (max-width: 960px) {
    .sm-prenota {
        padding: 0 24px 72px;
    }

    .sm-prenota__inner {
        padding: 36px 28px;
    }
}

@media (max-width: 640px) {
    .sm-prenota__inner {
        padding: 28px 20px;
    }

    .sm-wizard__options--pill {
        grid-template-columns: repeat(2, 1fr);
    }

    .sm-prenota__continue {
        padding: 14px 24px;
    }
}

/* ==========================================================================
   PAGINE LEGALI (Privacy Policy, Cookie Policy, Termini, GDPR)
   Template: page-legal.php — contenuto da editor WP via the_content()
   ========================================================================== */

.sm-legal {
    background-color: #FBF8FF;
    padding: 48px 32px 96px;
}

.sm-legal__inner {
    max-width: 720px;
    margin: 0 auto;
}

/* Azzera il margin-top del primo elemento del contenuto per evitare
   margin-collapse che genererebbe una fascia bianca tra hero e sezione. */
.sm-legal__inner > *:first-child {
    margin-top: 0;
}

.sm-legal__inner h2 {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 24px;
    line-height: 30px;
    color: var(--color-navy-dark);
    margin: 40px 0 16px;
}

.sm-legal__inner h3 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 18px;
    line-height: 24px;
    color: var(--color-navy-dark);
    margin: 32px 0 12px;
}

.sm-legal__inner p {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    color: var(--color-gray-text);
    margin: 0 0 16px;
}

.sm-legal__inner ul,
.sm-legal__inner ol {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 26px;
    color: var(--color-gray-text);
    margin: 0 0 16px;
    padding-left: 24px;
}

.sm-legal__inner li {
    margin-bottom: 8px;
}

.sm-legal__inner a {
    color: var(--color-blue-medium);
    text-decoration: none;
}

.sm-legal__inner a:hover {
    text-decoration: underline;
}

@media (max-width: 960px) {
    .sm-legal {
        padding: 40px 24px 72px;
    }
}

/* ==========================================================================
   MOBILE-FIRST OPTIMIZATIONS (pre-deploy audit)
   Fix mirati per viewport 360-640px, isolati in coda per rollback facile.

   1. Hover neutralizzato su touch (evita "stuck elevated" post-tap)
   2. Home hero più compatta su smartphone piccoli
   3. Page hero (testate interne) padding ridotto su smartphone
   4. Contatti hero meta ribbon stack verticale pulito

   Rollback: rimuovere l'intero blocco fino a fine file.
   ========================================================================== */

/* ── 1. HOVER STUCK SU TOUCH ──
   I device touch attivano :hover al tap e restano in stato sollevato fino
   al tap successivo. Neutralizziamo transform solo per dispositivi senza
   hover preciso (smartphone, tablet). Desktop e laptop con mouse/trackpad
   mantengono tutti gli effetti intatti. */
@media (hover: none) and (pointer: coarse) {
    .sm-spk-card:hover,
    .sm-programma__speaker-card:hover,
    .sm-cont-routing__box:hover,
    .sm-prog-preview-card:hover,
    .sm-prog-session-card:hover,
    .sm-esp-ist-card:hover,
    .sm-esp-assoc-card:hover,
    .sm-esp-enti__featured:hover,
    .sm-esp-enti__small:hover,
    .sm-esp-enti__highlight:hover,
    .sm-prenota-step:hover,
    .sm-isal-pillar:hover,
    .sm-isal-actor:hover,
    .sm-isal-tema:hover,
    .sm-isal-why__item:hover,
    .sm-news-card:hover,
    .sm-part-track:hover,
    .sm-cont-venue:hover,
    .sm-attivita__item:hover .sm-attivita__icon,
    .sm-manifesto__card:hover .sm-manifesto__card-icon {
        transform: none;
    }
}

/* ── 2-4. Override smartphone compatto (<=640px) ── */
@media (max-width: 640px) {

    /* 2. HOME HERO — compattazione su smartphone piccoli.
       La hero base (960px override) lasciava padding-top 140px, eccessivo
       su viewport 360-430px. Qui riduciamo padding, logo, titolo, countdown. */
    .sm-hero {
        padding-top: 100px;
        padding-bottom: 56px;
    }
    .sm-hero__logo {
        width: 240px;
        margin-bottom: 20px;
    }
    .sm-hero__title {
        font-size: 40px;
        line-height: 44px;
    }
    .sm-hero__subtitle {
        font-size: 16px;
        line-height: 24px;
        margin-bottom: 32px;
    }
    .sm-hero__info {
        gap: 20px;
        margin-bottom: 24px;
    }
    .sm-hero__countdown {
        grid-template-columns: repeat(4, 68px);
        gap: 8px;
        margin-bottom: 32px;
    }
    .sm-hero__countdown-box {
        width: 68px;
        height: 72px;
        padding: 8px;
    }
    .sm-hero__countdown-num {
        font-size: 20px;
        line-height: 24px;
    }

    /* 3. PAGE HERO — testate interne Speaker/Programma/Partecipa/Espositori/
       Contatti: da 110px → 88px padding-top. Testo e CTA entrano prima nel fold. */
    .sm-page-hero {
        padding: 88px 20px 48px;
    }
    .sm-page-hero__bar {
        margin-bottom: 14px;
    }
    .sm-page-hero__badge {
        margin-bottom: 14px;
    }
    .sm-page-hero__subtitle {
        font-size: 15px;
        line-height: 24px;
    }
    /* Variante compact (Il Salone): ancora più snella */
    .sm-page-hero--compact {
        padding: 72px 20px 40px;
    }

    /* 4. CONTATTI META RIBBON — stack verticale pulito.
       Due voci "Scrivici" + "Sede evento" restavano in flex-wrap con gap
       ampio; su smartphone vanno una sotto l'altra per leggibilità. */
    .sm-cont-hero-meta {
        flex-direction: column;
        gap: 14px;
        padding-top: 14px;
        margin-top: 16px;
    }
}
