/**
 * SANMI Gestionale — stili pubblici eventi (tema verde)
 */
:root {
    --sg-green-900: #214d30;
    --sg-green-800: #2f6b3f;
    --sg-green-700: #2f6b3f;
    --sg-green-600: #3d8250;
    --sg-green-500: #4a9a5f;
    --sg-green-400: #5cb078;
    --sg-green-300: #7dce9e;
    --sg-green-100: #e8f4e4;
    --sg-green-50: #eef6e8;
    --sg-green: var(--sg-green-700);
    --sg-green-2: var(--sg-green-600);
    --sg-cream: #f3ebe0;
    --sg-white: #fffdf7;
    --sg-earth: #e88922;
    --sg-earth-hover: #c96f14;
    --sg-text: #243124;
    --sg-muted: #5a6d5c;
    --sg-border: rgba(47, 107, 63, 0.16);
    --sg-border-strong: rgba(47, 107, 63, 0.24);
    --sg-shadow: 0 12px 36px rgba(33, 77, 48, 0.1);
    --sg-shadow-hover: 0 18px 44px rgba(33, 77, 48, 0.14);
    --sg-radius: 22px;
    --sg-radius-sm: 12px;
    --sanmi-font-display: "Patrick Hand", "Segoe Print", "Bradley Hand", cursive;
    --sanmi-font-heading: var(--sanmi-font-display);
    --sanmi-font-body: "Nunito", "Quicksand", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --sanmi-font-brand: var(--sanmi-font-display);
    --sg-sun: #f4c542;
    --sg-prato: #4a9a5f;
    --sg-font: var(--sanmi-font-body);
}

/* —— Tema pagina verde (body + contenuto WP) —— */
body.sanmi-theme-green {
    background: var(--sg-green-50) !important;
    color: var(--sg-text);
    overflow-x: hidden;
}

body.sanmi-public-shell main > .wp-block-group.alignfull.has-global-padding,
body.sanmi-public-shell .wp-block-group.alignfull.has-global-padding.is-layout-constrained {
    padding-top: 0 !important;
}

body.sanmi-public-shell .wp-block-post-content.has-global-padding {
    padding-top: 0 !important;
}

body.sanmi-theme-green #primary,
body.sanmi-theme-green .site-main,
body.sanmi-theme-green main,
body.sanmi-theme-green .entry-content {
    background: transparent;
}

body.sanmi-theme-green.singular-sanmi_evento .entry-header,
body.sanmi-theme-green.singular-sanmi_evento .post-thumbnail {
    display: none;
}

body.sanmi-theme-green article.sg-event-article,
body.sanmi-theme-green article.sanmi_evento {
    background: transparent;
    box-shadow: none;
    border: none;
    padding: 0;
    margin: 0;
}

body.sanmi-theme-green .sg-wrap.sg-page-theme {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    max-width: 100vw;
}

@media (max-width: 782px) {
    body.sanmi-theme-green .sg-wrap.sg-page-theme,
    body.sanmi-public-shell .sg-wrap.sg-page-theme {
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* Impaginato in sanmi-sito-base: evita scroll orizzontale da 100vw */
.sb-wrap .sg-wrap.sg-page-theme {
    margin-left: 0;
    margin-right: 0;
    width: 100%;
    max-width: 100%;
}

.sg-wrap {
    font-family: var(--sg-font);
    color: var(--sg-text);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    max-width: 100%;
    min-width: 0;
}

.sg-wrap img,
.sg-wrap video,
.sg-wrap iframe,
.sg-wrap .sg-single-body img {
    max-width: 100%;
    height: auto;
}

.sg-page-theme .sg-section {
    background: linear-gradient(180deg, var(--sg-green-50) 0%, var(--sg-cream) 32%, var(--sg-white) 100%);
}

/* —— Sezioni —— */
.sg-section {
    padding: 28px 20px;
    background: linear-gradient(180deg, var(--sg-green-50) 0%, var(--sg-cream) 42%, var(--sg-white) 100%);
}

.sg-section--tight,
.sg-section--inline {
    padding-top: 14px;
    padding-bottom: 22px;
}

.sg-container {
    max-width: 1200px;
    margin: 0 auto;
}

/* —— Hero archivio / lista —— */
.sg-hero {
    margin-bottom: 20px;
    padding: 24px 22px;
    border-radius: var(--sg-radius);
    background: linear-gradient(135deg, #214d30 0%, #2f6b3f 52%, #4a9a5f 100%);
    border-bottom: 4px solid var(--sg-sun);
    color: #fff;
    box-shadow: var(--sg-shadow);
    position: relative;
    overflow: hidden;
}

.sg-hero--page {
    padding: 26px 24px;
}

.sg-hero--compact {
    margin-bottom: 20px;
    padding: 22px 22px;
}

.sg-hero__inner {
    position: relative;
    z-index: 1;
}

.sg-hero::before,
.sg-hero::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    pointer-events: none;
}

.sg-hero::before {
    left: -60px;
    bottom: -80px;
    width: 200px;
    height: 200px;
}

.sg-hero::after {
    right: -40px;
    top: -40px;
    width: 220px;
    height: 220px;
}

/* —— Toolbar filtri —— */
.sg-toolbar {
    margin-bottom: 10px;
    padding: 10px 12px;
    background: var(--sg-white);
    border: 1px solid var(--sg-border);
    border-radius: var(--sg-radius);
    box-shadow: 0 4px 20px rgba(15, 46, 31, 0.06);
}

.sg-toolbar .sg-filters {
    margin-bottom: 0;
}

.sg-hero__title {
    margin: 0;
    font-size: clamp(28px, 4vw, 42px);
    font-weight: 400;
    letter-spacing: 0.02em;
    line-height: 1.12;
    text-wrap: balance;
    overflow-wrap: normal;
    hyphens: none;
    position: relative;
    z-index: 1;
    color: #fff;
    font-family: var(--sanmi-font-heading);
}

.sg-hero__lead {
    margin: 12px 0 0;
    max-width: 560px;
    font-size: 17px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.94);
    position: relative;
    z-index: 1;
}

.sg-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 36px;
}

.sg-title {
    font-size: clamp(28px, 4.5vw, 46px);
    line-height: 1.1;
    color: var(--sg-green-800);
    margin: 0;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-wrap: balance;
    overflow-wrap: normal;
    hyphens: none;
    font-family: var(--sanmi-font-heading);
}

.sg-lead {
    max-width: 640px;
    color: var(--sg-muted);
    font-size: 18px;
    line-height: 1.6;
    margin-top: 12px;
}

/* —— Filtri —— */
.sg-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sg-filter {
    display: inline-flex;
    align-items: center;
    min-height: 40px; /* target touch ~40px senza ingrandire il testo */
    border: 1.5px solid var(--sg-border-strong);
    background: var(--sg-white);
    color: var(--sg-green-700);
    border-radius: 999px;
    padding: 8px 16px;
    font-weight: 700;
    cursor: pointer;
    font-size: 13px;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}

.sg-filter:hover {
    border-color: var(--sg-green-500);
    color: var(--sg-green-600);
    transform: translateY(-1px);
}

.sg-filter.is-active,
.sg-filter.is-active:hover {
    background: var(--sg-green-700);
    color: #fff;
    border-color: var(--sg-green-700);
    box-shadow: 0 4px 14px rgba(26, 92, 56, 0.25);
}

.sg-filter-empty {
    text-align: center;
    color: var(--sg-muted);
    font-weight: 600;
    margin-top: 24px;
    padding: 24px;
}

/* —— Griglia eventi —— */
.sg-events {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.sg-events--few {
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
}

.sg-side-help {
    margin: 18px auto 0;
    max-width: 980px;
    border: 1px solid var(--sg-border);
    border-radius: 16px;
    background: linear-gradient(135deg, #f8fcf8 0%, #ffffff 100%);
    box-shadow: 0 8px 24px rgba(15, 46, 31, 0.08);
    padding: 16px 18px;
    display: grid;
    gap: 8px;
}

.sg-side-help strong {
    color: var(--sg-green-800);
    font-size: 18px;
    line-height: 1.2;
}

.sg-side-help p {
    margin: 0;
    color: var(--sg-muted);
    font-size: 15px;
    line-height: 1.5;
}

.sg-side-help .sg-btn {
    justify-self: start;
}

.sg-side-help--info {
    background: linear-gradient(135deg, #f8fcf8 0%, #ffffff 100%);
    border-style: dashed;
}

.sg-side-help--info .sg-btn {
    display: none;
}

.sg-contact-fallback {
    margin: 14px 0 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--sg-muted);
}

.sg-contact-fallback a {
    color: var(--sg-green-700);
    font-weight: 700;
    text-decoration: none;
}

.sg-contact-fallback a:hover {
    color: var(--sg-earth);
    text-decoration: underline;
}

.sg-empty .sg-contact-fallback {
    margin-top: 16px;
    text-align: center;
}

.sg-events-cta-layout--few {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 24px;
    align-items: start;
}

.sg-events-cta-layout--few .sg-events {
    max-width: none;
    margin: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

@media (max-width: 1080px) {
    .sg-events-cta-layout--few .sg-events {
        grid-template-columns: 1fr;
    }
}

.sg-events-cta-layout--few .sg-side-help {
    margin: 0;
    max-width: none;
}

@media (max-width: 900px) {
    .sg-events-cta-layout--few {
        grid-template-columns: 1fr;
    }

    .sg-events-cta-layout--few .sg-side-help {
        margin-top: 14px;
    }
}

@media (min-width: 981px) {
    .sb-wrap--eventi-archive .sg-events {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    .sb-wrap--eventi-archive .sg-events {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.sg-card {
    background: var(--sg-white);
    border-radius: var(--sg-radius);
    box-shadow: var(--sg-shadow);
    border: 1px solid var(--sg-border-strong);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.sg-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--sg-shadow-hover);
    border-color: var(--sg-green-300);
}

.sg-card--stato-pubblicato {
    border-top: 4px solid var(--sg-earth);
    background: linear-gradient(180deg, #fffaf0 0%, var(--sg-white) 32%);
}

.sg-card--stato-bozza {
    border-top: 4px solid #787c82;
    background: linear-gradient(180deg, #f0f0f1 0%, var(--sg-white) 28%);
}

.sg-card--stato-sold_out {
    border-top: 4px solid #dba617;
    background: linear-gradient(180deg, #fff4e5 0%, var(--sg-white) 28%);
}

.sg-card--stato-chiuso {
    border-top: 4px solid #4a7ab8;
    background: linear-gradient(180deg, #e8f2fa 0%, var(--sg-white) 28%);
}

.sg-card--stato-annullato {
    border-top: 4px solid #c53030;
    background: linear-gradient(180deg, #fde8e8 0%, var(--sg-white) 28%);
    opacity: 0.94;
}

.sg-poster-link {
    display: block;
    text-decoration: none;
}

.sg-poster {
    aspect-ratio: 4 / 3;
    background:
        radial-gradient(circle at 18% 26%, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0) 58%),
        radial-gradient(circle at 82% 18%, rgba(214, 169, 116, 0.18) 0%, rgba(214, 169, 116, 0) 55%),
        linear-gradient(145deg, var(--sg-green-100) 0%, #d4eadc 50%, #f6efe1 100%);
    background-size: cover;
    background-position: center;
    position: relative;
}

.sg-poster::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 70% 55% at 50% 42%, rgba(255, 255, 255, 0.22) 0%, rgba(255, 255, 255, 0) 68%),
        radial-gradient(circle at 12% 82%, rgba(36, 122, 74, 0.16) 0%, rgba(36, 122, 74, 0) 56%),
        radial-gradient(circle at 86% 92%, rgba(36, 122, 74, 0.14) 0%, rgba(36, 122, 74, 0) 52%);
    pointer-events: none;
}

.sg-poster::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(15, 46, 31, 0.35) 100%);
    pointer-events: none;
}

.sg-poster-badge {
    position: absolute;
    bottom: 14px;
    right: 14px;
    background: var(--sg-earth);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 8px 14px;
    border-radius: 999px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
    z-index: 2;
}

.sg-poster-badge--muted {
    background: rgba(90, 107, 98, 0.92);
}

.sg-date {
    position: absolute;
    top: 14px;
    left: 14px;
    background: rgba(255, 255, 255, 0.96);
    color: var(--sg-green-800);
    border-radius: var(--sg-radius-sm);
    padding: 10px 14px;
    font-weight: 800;
    font-size: 14px;
    box-shadow: 0 4px 16px rgba(15, 46, 31, 0.12);
    z-index: 2;
    border: 1px solid var(--sg-border);
}

.sg-poster-fallback {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    font-size: 34px;
    font-weight: 900;
    color: rgba(26, 92, 56, 0.22);
    letter-spacing: 0.16em;
    z-index: 1;
    text-transform: uppercase;
}

.sg-poster-fallback::after {
    content: "Fattoria didattica";
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: rgba(26, 92, 56, 0.42);
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.65);
    border: 1px solid rgba(26, 92, 56, 0.14);
    box-shadow: 0 6px 18px rgba(15, 46, 31, 0.08);
    text-transform: none;
}

.sg-content {
    padding: 22px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1;
}

.sg-card__badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.sg-type {
    display: inline-flex;
    align-self: flex-start;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: var(--sg-green-100);
    color: var(--sg-green-700);
}

.sg-status-badge {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.02em;
    line-height: 1.2;
}

.sg-status-badge--disponibile {
    background: #e3f2e9;
    color: var(--sg-green-800);
    border: 1px solid rgba(36, 122, 74, 0.22);
}

.sg-status-badge--sold-out {
    background: #fff4e5;
    color: #9a6700;
    border: 1px solid rgba(219, 166, 23, 0.35);
}

.sg-status-badge--chiuso {
    background: #eef2f6;
    color: #4a5568;
    border: 1px solid rgba(74, 85, 104, 0.2);
}

.sg-card h3 {
    margin: 0;
    font-size: 1.5rem;
    line-height: 1.2;
    color: var(--sg-green-800);
    font-weight: 700;
    font-family: var(--sanmi-font-heading);
    text-wrap: balance;
    overflow-wrap: normal;
    hyphens: none;
}
/* Titolo evento sempre maiuscolo (solo card eventi, non Centri). */
.sanmi-event-card h3,
.sanmi-event-card h3 a {
    text-transform: uppercase;
}

.sg-card h3 a {
    color: inherit;
    text-decoration: none;
    transition: color 0.15s ease;
}

.sg-card h3 a:hover {
    color: var(--sg-earth);
}

.sg-desc {
    color: var(--sg-muted);
    line-height: 1.55;
    margin: 0;
    font-size: 15px;
}

.sg-meta-line {
    margin: 0;
    font-size: 14px;
    color: var(--sg-muted);
    line-height: 1.5;
    padding: 8px 14px;
    background: #f6faf7;
    border-radius: 10px;
    border: 1px solid #e6eee8;
}

.sg-meta-line strong {
    color: var(--sg-green-800);
}

.sg-card__meta {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 8px;
}

.sg-card__meta-item {
    margin: 0;
    font-size: 14px;
    color: var(--sg-green-800);
    line-height: 1.45;
    padding: 10px 14px;
    background: #f6faf7;
    border-radius: 10px;
    border: 1px solid #e6eee8;
}

.sg-card__meta-item--price {
    background: #fffdf9;
    border-color: #ecd9c4;
    font-weight: 700;
    color: #8a4b12;
}

.sg-card__meta-item--caparra {
    background: #fff8ef;
    border-color: #f0dcc0;
    font-weight: 600;
    color: #7a4e12;
}

.sg-card__meta-label {
    display: block;
    font-size: 11px; /* micro-label: +1px per leggibilità (era 10px) */
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--sg-green-700);
    margin-bottom: 2px;
}

.sg-card__footer {
    margin-top: auto;
    padding-top: 4px;
}

.sg-actions {
    margin-top: auto;
    padding-top: 8px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

/* —— Pulsanti —— */
.sg-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-decoration: none !important;
    border: 2px solid transparent;
    border-radius: 999px;
    padding: 13px 22px;
    font-weight: 800;
    font-size: 15px;
    line-height: 1.2;
    cursor: pointer;
    font-family: var(--sanmi-font-heading);
    transition: transform 0.18s ease, background 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.sg-btn:focus-visible {
    outline: 3px solid rgba(185, 112, 61, 0.45);
    outline-offset: 2px;
}

.sg-btn-primary {
    background: linear-gradient(135deg, #e88922, #f4a742);
    color: #3a2a05 !important; /* ink scuro su ambra: contrasto AA (~5.3:1), era #fff ~2.6:1 */
    box-shadow: 0 10px 22px rgba(232, 137, 34, 0.28);
}

.sg-btn-primary:hover {
    background: linear-gradient(135deg, #c96f14, #e88922);
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(201, 111, 20, 0.35);
}

.sg-btn-primary:active {
    transform: translateY(0);
}

.sg-btn-secondary {
    background: linear-gradient(135deg, #2f6b3f, #3d8250);
    color: #fff !important;
    box-shadow: 0 8px 20px rgba(47, 107, 63, 0.22);
}

/* Bottone secondario "ghost" (es. "Controlla riepilogo"): distinto dal primario — fix gerarchia #8.
   Il secondo selettore (0,4,0) vince anche sulla modalita demo (body.sanmi-demo-public .sg-wrap .sg-btn = 0,3,0). */
.sg-btn.sg-btn-light,
body.sanmi-demo-public .sg-wrap .sg-btn.sg-btn-light {
    background: #ffffff !important;
    color: #2f6b3f !important;
    border: 1.6px solid #cddfd2 !important;
    box-shadow: none !important;
}
.sg-btn.sg-btn-light:hover,
body.sanmi-demo-public .sg-wrap .sg-btn.sg-btn-light:hover {
    background: #f1f7f2 !important;
    border-color: #2f6b3f !important;
    transform: translateY(-1px);
}

.sg-btn-secondary:hover {
    background: linear-gradient(135deg, #214d30, #2f6b3f);
    transform: translateY(-2px);
}

.sg-btn-outline {
    background: transparent;
    color: var(--sg-green-700) !important;
    border-color: var(--sg-green-500);
}

.sg-btn-outline:hover {
    background: var(--sg-green-100);
    transform: translateY(-1px);
}

.sg-btn-lg {
    padding: 16px 28px;
    font-size: 16px;
}

.sg-btn--block,
.sg-btn-block {
    width: 100%;
    text-align: center;
}

.sg-btn--arrow span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.sg-btn--arrow span::after {
    content: "→";
    font-size: 1.1em;
    line-height: 1;
    transition: transform 0.18s ease;
}

.sg-btn--arrow:hover span::after {
    transform: translateX(4px);
}

/* —— Scheda singola evento —— */
.sg-wrap.sg-single {
    overflow: hidden;
}

.sg-single-hero {
    padding: 32px 20px 28px;
    background: linear-gradient(165deg, #214d30 0%, #2f6b3f 45%, #4a9a5f 100%);
    border-bottom: 4px solid var(--sg-sun);
    border-bottom: none;
    color: #fff;
    position: relative;
}

.sg-single-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 80% 60% at 100% 0%, rgba(255, 255, 255, 0.12) 0%, transparent 55%);
    pointer-events: none;
}

.sg-single-badge {
    display: inline-block;
    margin: 0 0 14px;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.25);
}

.sg-single-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
    gap: 36px;
    align-items: center;
}

.sg-single-title {
    font-size: clamp(28px, 3.5vw, 44px);
    line-height: 1.14;
    text-transform: uppercase;
    color: #fff;
    margin: 0 0 12px;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-wrap: balance;
    overflow-wrap: normal;
    hyphens: none;
    max-width: min(620px, 100%);
    font-family: var(--sanmi-font-heading);
}

.sg-single-hero-meta {
    font-size: clamp(15px, 1.8vw, 17px);
    color: rgba(255, 255, 255, 0.9);
    margin: 0 0 10px;
    line-height: 1.45;
    font-weight: 600;
}

.sg-single-lead {
    font-size: clamp(16px, 2vw, 19px);
    color: rgba(255, 255, 255, 0.88);
    margin: 0 0 18px;
    line-height: 1.5;
}

.sg-single-hero .sg-type {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    margin-bottom: 12px;
}

.sg-single-hero-facts {
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
    display: grid;
    gap: 10px;
    max-width: 520px;
}

.sg-single-hero-facts li {
    margin: 0;
    padding: 12px 16px;
    border-radius: var(--sg-radius-sm);
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.1);
    font-size: 15px;
    color: #fff;
    backdrop-filter: blur(6px);
}

.sg-single-hero-facts span {
    display: block;
    font-size: 11px; /* micro-label: +1px per leggibilità (era 10px) */
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 4px;
}

.sg-single-hero-cta .sg-btn-primary {
    background: var(--sg-earth);
    color: #3a2a05 !important; /* ink scuro su ambra: contrasto AA */
    box-shadow: 0 6px 24px rgba(217, 123, 26, 0.35);
    border: none;
}

.sg-single-hero-cta .sg-btn-primary:hover {
    background: #c96f14;
    color: #3a2a05 !important;
}

.sg-camp-single .sg-single-hero-cta .sg-btn-primary {
    background: var(--sg-earth);
    color: #3a2a05 !important; /* ink scuro su ambra: contrasto AA */
    box-shadow: 0 6px 24px rgba(217, 123, 26, 0.35);
    border: none;
}

.sg-camp-single .sg-single-hero-cta .sg-btn-primary:hover {
    background: #c96f14;
    color: #3a2a05 !important;
}

.sg-single-figure {
    margin: 0;
    border-radius: var(--sg-radius);
    overflow: hidden;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.25);
    background: var(--sg-green-100);
    border: 3px solid rgba(255, 255, 255, 0.25);
}

.sg-single-poster-img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

/* Placeholder senza foto: banda brand compatta (non più un grande box vuoto) */
.sg-poster--empty {
    min-height: 0;
    aspect-ratio: auto;
    height: 172px;
    position: relative;
}

.sg-single-body {
    padding-top: 48px;
    padding-bottom: 72px;
    background: var(--sg-cream);
}

.sg-single-cols {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.55fr);
    gap: 36px;
    align-items: start;
}

.sg-single-primary {
    min-width: 0;
}

.sg-single-aside {
    position: sticky;
    top: 28px;
}

.sg-info-card {
    background: var(--sg-white);
    border: 1px solid var(--sg-border);
    border-radius: var(--sg-radius);
    box-shadow: var(--sg-shadow);
    padding: 24px;
    border-top: 4px solid var(--sg-green-500);
}

.sg-info-card__title {
    margin: 0 0 16px;
    font-size: 17px;
    color: var(--sg-green-800);
    font-weight: 800;
}

.sg-info-list {
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
    display: grid;
    gap: 0;
    font-size: 15px;
}

.sg-info-list li {
    margin: 0;
    padding: 14px 0;
    border-bottom: 1px solid var(--sg-border);
    line-height: 1.45;
}

.sg-info-list li:last-child {
    border-bottom: none;
}

.sg-info-list strong {
    color: var(--sg-green-800);
    font-weight: 800;
}

.sg-subtitle {
    font-size: 22px;
    color: var(--sg-green-800);
    margin: 28px 0 14px;
    font-weight: 800;
    font-family: var(--sanmi-font-heading);
}

.sg-subtitle--sm {
    font-size: 18px;
    margin: 24px 0 12px;
    font-family: var(--sanmi-font-heading);
}

.sg-single-excerpt {
    color: var(--sg-muted);
    font-size: 17px;
    line-height: 1.6;
    margin: 0 0 20px;
}

.sg-single-desc {
    color: var(--sg-text);
    line-height: 1.65;
    font-size: 16px;
}

.sg-single-desc p {
    margin: 0 0 1em;
}

.sg-single-desc p:last-child {
    margin-bottom: 0;
}

.sg-single-primary-flow {
    max-width: 820px;
    margin: 0 0 36px;
}

.sg-single-location {
    margin: 0 0 20px;
    font-size: 16px;
    color: var(--sg-text);
}

.sg-single-unavailable {
    margin-top: 32px;
    max-width: 640px;
}

.sg-camp-enrollment-closed__hint {
    margin: 12px 0 0;
    color: var(--sg-muted);
    font-size: 15px;
}

.sg-quick-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr));
    gap: 14px;
    margin: 0 0 36px;
}

.sg-quick-info-card {
    background: var(--sg-white);
    border: 1px solid var(--sg-border);
    border-radius: var(--sg-radius-sm);
    padding: 16px 18px;
    box-shadow: 0 4px 16px rgba(15, 46, 31, 0.06);
    min-width: 0;
}

.sg-quick-info-card__label {
    margin: 0 0 6px;
    font-size: 11px;
    font-weight: 400;
    font-family: var(--sanmi-font-heading);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--sg-green-600);
}

.sg-quick-info-card__value {
    font-size: 15px;
    line-height: 1.45;
    color: var(--sg-text);
    font-weight: 700;
    font-family: var(--sanmi-font-body);
    word-break: break-word;
    overflow-wrap: normal;
    hyphens: none;
}

.sg-booking-panel--card {
    background: var(--sg-white);
    border: 1px solid var(--sg-border);
    border-radius: var(--sg-radius);
    padding: 28px 26px 32px;
    box-shadow: var(--sg-shadow);
    border-top: 4px solid var(--sg-green-500);
}

.sg-camp-how-it-works {
    margin: 0 0 36px;
    max-width: 820px;
}

.sg-camp-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 14px;
}

.sg-camp-step {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    background: var(--sg-white);
    border: 1px solid var(--sg-border);
    border-radius: var(--sg-radius-sm);
    padding: 16px 18px;
}

.sg-camp-step__num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--sg-green-100);
    color: var(--sg-green-800);
    font-weight: 800;
    font-size: 16px;
}

.sg-camp-step__title {
    display: block;
    color: var(--sg-green-800);
    font-size: 16px;
    margin: 0 0 4px;
}

.sg-camp-step__text {
    margin: 0;
    color: var(--sg-muted);
    font-size: 14px;
    line-height: 1.5;
}

.sb-back-link--hero {
    margin: 0 0 20px;
}

.sb-back-link--hero a {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
}

.sb-back-link--hero a:hover {
    color: #fff;
    text-decoration: underline;
}

.sg-camp-single .sg-camp-enrollment-panel {
    margin-top: 8px;
}

.sg-fasce-list {
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 10px;
}

.sg-fascia-item {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 10px;
    padding: 14px 18px;
    border: 1px solid var(--sg-border);
    border-radius: var(--sg-radius-sm);
    background: var(--sg-white);
    font-size: 15px;
    border-left: 4px solid var(--sg-green-500);
}

.sg-fascia-item strong {
    color: var(--sg-green-800);
}

.sg-single-booking {
    margin-top: 48px;
    padding-top: 40px;
    border-top: 2px solid var(--sg-border);
    max-width: 880px;
}

.sg-booking-panel .sg-form--booking {
    margin-top: 0;
    max-width: none;
}

.sg-form-fieldset {
    border: 0;
    margin: 0 0 28px;
    padding: 0;
}

.sg-form-fieldset legend {
    font-size: 17px;
    font-weight: 800;
    color: var(--sg-green-800);
    margin-bottom: 14px;
    padding: 0;
}

.sg-form-actions--stack {
    display: grid;
    gap: 12px;
}

.sg-booking-preview {
    margin: 20px 0 8px;
    padding: 18px 20px;
    border-radius: var(--sg-radius-sm);
    background: var(--sg-green-50);
    border: 2px solid var(--sg-border);
}

.sg-booking-preview__title {
    margin: 0 0 12px;
    font-weight: 800;
    color: var(--sg-green-800);
    font-size: 16px;
}

.sg-booking-preview__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 8px;
    font-size: 15px;
    line-height: 1.45;
}

.sg-booking-preview__list strong {
    color: var(--sg-green-800);
}

.sg-booking-preview__hint {
    margin: 14px 0 0;
    font-size: 14px;
    color: var(--sg-muted);
}

.sg-booking-success__title {
    margin: 0 0 8px;
    font-size: 20px;
    font-weight: 900;
}

.sg-booking-success__actions {
    margin: 20px 0 0;
}

.sg-booking-lead {
    margin: 0 0 20px;
    color: var(--sg-muted);
    font-size: 16px;
    line-height: 1.55;
    max-width: 640px;
}

.sg-form-intro {
    margin: 0 0 20px;
    padding: 14px 16px;
    border-radius: var(--sg-radius-sm);
    background: var(--sg-green-50);
    border: 1px solid var(--sg-border);
    color: var(--sg-muted);
    font-size: 15px;
    line-height: 1.5;
}

.sg-field-check .sg-check-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-weight: 600;
    line-height: 1.5;
    cursor: pointer;
}

.sg-field-check .sg-check-label input {
    margin-top: 4px;
    width: auto;
    flex-shrink: 0;
    accent-color: var(--sg-green-600);
}

.sg-field-check a {
    color: var(--sg-green-700);
    font-weight: 700;
}

/* Lista eventi incorporata in homepage (senza secondo hero) */
.sg-events-embed .sg-section--inline {
    padding-top: 0;
    padding-bottom: 0;
    background: transparent;
}

.sg-events-embed .sg-section--inline .sg-container {
    padding: 0;
}

/* Archivio dentro sanmi-sito-base: un solo hero pagina */
.sb-wrap .sg-archive .sg-hero.sg-hero--page {
    display: none;
}

.sb-wrap .sg-archive .sg-toolbar {
    margin-top: 0;
}

.sb-wrap--eventi-archive .sg-events,
.sb-wrap--settimane .sg-camps-archive .sg-events {
    gap: 22px;
}

/* Campi / Settimane Verdi dentro sanmi-sito-base */
.sb-wrap--settimane .sg-camps-archive .sg-section--inline {
    padding-top: 0;
    padding-bottom: 0;
    background: transparent;
}

.sb-wrap--settimane .sg-camps-archive .sg-section--inline .sg-container {
    padding-left: 0;
    padding-right: 0;
}

.sb-wrap--settimane .sg-camps-archive .sg-wrap {
    max-width: none;
}

.sg-card--camp.sg-card--stato-sold_out,
.sg-card--camp.sg-card--stato-chiuso {
    opacity: 0.96;
}

.sg-btn.sg-btn--muted {
    background: var(--sg-gray-100, #f3f4f6);
    color: var(--sg-green-800, #1b4332);
    border: 1px solid var(--sg-border, #d8e2dc);
}

.sg-btn.sg-btn--muted:hover {
    background: var(--sg-gray-200, #e5e7eb);
}

/* Dettaglio campo + iscrizione pubblica */
.sb-wrap--camp-detail .sb-page-hero--compact {
    padding-bottom: 24px;
}

.sb-back-link {
    margin: 0 0 12px;
    font-size: 15px;
}

.sb-back-link a {
    color: var(--sg-green-700, #2d6a4f);
    text-decoration: none;
    font-weight: 600;
}

.sb-back-link a:hover {
    text-decoration: underline;
}

.sg-camp-single .sg-single-hero-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 28px;
    margin-bottom: 32px;
}

.sg-camp-detail-meta {
    margin-top: 20px;
}

.sg-camp-enrollment-panel {
    margin-top: 8px;
}

.sg-week-options {
    display: grid;
    gap: 12px;
}

.sg-week-option {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--sg-border, #d8e2dc);
    border-radius: var(--sg-radius, 12px);
    background: var(--sg-white, #fff);
    cursor: pointer;
    min-height: 52px;
}

.sg-week-option.is-disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.sg-week-option input {
    margin-top: 4px;
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
}

.sg-week-option__body {
    display: grid;
    gap: 4px;
}

.sg-week-option__dates,
.sg-week-option__occ {
    font-size: 14px;
    color: var(--sg-muted, #5c6b63);
}

.sg-week-option__full {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    color: #b42318;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sg-error-list {
    margin: 0;
    padding-left: 18px;
}

.sg-form--camp-enrollment .sg-fieldset {
    margin-bottom: 24px;
}

/* Card periodi (calendario leggero) */
.sg-period-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px;
    margin: 0;
}

.sg-period-cards--select {
    grid-template-columns: 1fr;
}

.sg-period-card {
    position: relative;
    border: 1px solid var(--sg-border, #d8e2dc);
    border-radius: var(--sg-radius-sm, 12px);
    background: var(--sg-white, #fff);
    box-shadow: 0 1px 3px rgba(18, 42, 28, 0.06);
    overflow: hidden;
}

.sg-period-card--selectable {
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.sg-period-card--selectable:hover:not(.is-disabled) {
    border-color: rgba(47, 107, 63, 0.45);
    box-shadow: 0 4px 14px rgba(33, 77, 48, 0.1);
}

.sg-period-card.is-selected {
    border-color: var(--sg-green-600, #3d8250);
    background: rgba(232, 244, 228, 0.65);
    box-shadow: 0 0 0 1px rgba(47, 107, 63, 0.2);
}

.sg-period-card.is-disabled {
    opacity: 0.58;
    cursor: not-allowed;
}

.sg-period-card__label {
    display: block;
    margin: 0;
    cursor: inherit;
}

.sg-period-card__input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}

.sg-period-card__body {
    padding: 14px 16px 16px;
    display: grid;
    gap: 4px;
}

.sg-period-card__check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: var(--sg-green-700, #2f6b3f);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 4px;
}

.sg-period-card__title {
    margin: 0;
    font-size: 16px;
    line-height: 1.25;
    color: var(--sg-green-900, #214d30);
}

.sg-period-card__dates,
.sg-period-card__schedule {
    margin: 0;
    font-size: 14px;
    color: var(--sg-muted, #5a6d5c);
    line-height: 1.4;
}

.sg-period-card__status {
    margin: 6px 0 0;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.sg-period-card__status--available {
    color: var(--sg-green-700, #2f6b3f);
}

.sg-period-card__status--almost-full {
    color: #b45309;
}

.sg-period-card__status--sold-out {
    color: #b42318;
}

.sg-period-card__price {
    margin: 4px 0 0;
    font-size: 15px;
    font-weight: 700;
    color: var(--sg-green-800, #2d6a4f);
}

.sg-period-card__action {
    display: inline-block;
    margin-top: 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--sg-green-700, #2f6b3f);
}

.sg-camp-periods-section {
    margin: 28px 0 8px;
}

.sg-camp-periods-section .sg-subtitle {
    margin-bottom: 14px;
}

.sg-card__subtitle {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 600;
    color: var(--sg-green-700, #2f6b3f);
}

.sg-card__schedule-line {
    margin: 0 0 8px;
    font-size: 14px;
    color: var(--sg-muted, #5a6d5c);
}

.sb-settimane-cta__inner {
    text-align: center;
}

.sb-settimane-cta__links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin: 16px 0 0;
}

@media (min-width: 783px) {
    .sg-period-cards--display {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sg-period-cards--select {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1100px) {
    .sg-period-cards--display {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.sg-booking-success__amounts {
    margin: 12px 0 0;
    font-size: 15px;
}

.sg-booking-success__amounts p {
    margin: 6px 0;
}

.sg-booking-success__note {
    margin-top: 12px;
    font-size: 14px;
    color: var(--sg-muted, #5c6b63);
}

@media (max-width: 680px) {
    .sg-camp-single .sg-single-hero-grid {
        grid-template-columns: 1fr;
    }

    .sg-week-option {
        padding: 16px;
    }
}

/* —— Form —— */
.sg-form {
    background: var(--sg-white);
    border: 1px solid var(--sg-border);
    box-shadow: var(--sg-shadow);
    border-radius: var(--sg-radius);
    padding: 32px;
    max-width: 780px;
    margin: 40px auto 0;
    border-top: 4px solid var(--sg-green-500);
}

.sg-form h2,
.sg-form-page-title {
    color: var(--sg-green-800);
    margin-top: 0;
    font-size: 28px;
    font-weight: 800;
}

.sg-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.sg-field label {
    display: block;
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--sg-green-800);
    font-size: 14px;
}

.sg-field-hint {
    margin: 6px 0 0;
    font-size: 12px;
    line-height: 1.4;
    color: var(--sg-muted, #5c6b62);
    font-weight: 400;
}

.sg-field input,
.sg-field select,
.sg-field textarea {
    width: 100%;
    border: 2px solid var(--sg-border);
    border-radius: var(--sg-radius-sm);
    padding: 12px 14px;
    min-height: 48px;
    font-size: 16px;
    background: var(--sg-green-50);
    color: var(--sg-text);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.sg-field textarea {
    min-height: 120px;
    font-size: 16px;
}

.sg-field input:focus,
.sg-field select:focus,
.sg-field textarea:focus {
    outline: none;
    border-color: var(--sg-green-500);
    box-shadow: 0 0 0 3px rgba(47, 154, 95, 0.2);
    background: #fff;
}

.sg-field-full {
    grid-column: 1 / -1;
}

.sg-fascia-options {
    display: grid;
    gap: 10px;
}

.sg-fascia-option {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    border: 2px solid var(--sg-border);
    border-radius: var(--sg-radius-sm);
    padding: 14px 16px;
    background: var(--sg-white);
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.sg-fascia-option:hover {
    border-color: var(--sg-green-400);
    background: var(--sg-green-50);
}

.sg-fascia-option:has(input:checked) {
    border-color: var(--sg-green-600);
    background: var(--sg-green-100);
}

.sg-fascia-option input {
    margin-top: 4px;
    width: auto;
    accent-color: var(--sg-green-600);
}

.sg-form-actions {
    margin-top: 24px;
}

/* —— Alert —— */
.sg-alert {
    padding: 16px 18px;
    border-radius: var(--sg-radius-sm);
    margin: 20px 0;
    font-weight: 600;
    font-size: 15px;
    line-height: 1.45;
}

.sg-alert-ok {
    background: #e8f5ec;
    color: var(--sg-green-800);
    border: 2px solid var(--sg-green-400);
    box-shadow: 0 4px 16px rgba(26, 92, 56, 0.08);
}

.sg-alert-info {
    background: var(--sg-green-100);
    color: var(--sg-green-800);
    border: 1px solid var(--sg-green-300);
}

.sg-alert-ko {
    background: #fef2f2;
    color: #9b1c1c;
    border: 1px solid #fecaca;
}

.sg-alert-warn {
    background: #fffbeb;
    color: #92400e;
    border: 1px solid #fde68a;
}

.sg-alert--tight {
    margin-top: 14px;
    font-size: 14px;
}

.sg-alert--soft {
    font-weight: 500;
}

/* —— Modulo prenotazione —— */
.sg-form--booking,
.sg-form--inline.sg-form--booking {
    background: var(--sg-white);
    border: 1px solid var(--sg-border);
    border-radius: var(--sg-radius);
    padding: 24px 22px 28px;
    box-shadow: var(--sg-shadow);
}

.sg-form--booking .sg-alert--soft.sg-alert-info {
    margin-top: 0;
    margin-bottom: 18px;
    padding: 14px 16px;
    border-left: 4px solid var(--sg-green-600);
}

.sg-single-booking {
    margin-top: 32px;
    padding-top: 28px;
    border-top: 1px solid var(--sg-border);
}

.sg-single-booking .sg-subtitle {
    margin-bottom: 16px;
}

.sg-poster-badge--esauriti {
    background: #d4892a;
}

.sg-empty {
    background: var(--sg-white);
    padding: 40px 32px;
    border-radius: var(--sg-radius);
    border: 2px dashed var(--sg-border-strong);
    text-align: center;
    color: var(--sg-muted);
    font-size: 17px;
}

.sg-empty strong {
    color: var(--sg-green-800);
}

.sg-empty__actions {
    margin: 20px 0 0;
}

.sg-req {
    color: #c53030;
}

/* —— Responsive —— */
@media (max-width: 1366px) {
    .sg-container {
        max-width: min(1160px, calc(100% - 32px));
    }
}

@media (max-width: 980px) {
    .sg-events {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px;
    }

    .sg-single-cols {
        grid-template-columns: 1fr;
    }

    .sg-single-aside {
        position: static;
    }
}

@media (max-width: 768px) {
    .sg-section {
        padding: 56px 18px;
    }

    .sg-section--tight,
    .sg-section--inline {
        padding-top: 36px;
    }

    body.sanmi-theme-green .sg-wrap.sg-page-theme {
        margin-left: 0;
        margin-right: 0;
        width: 100%;
        max-width: 100%;
    }

    .sg-camp-single .sg-section {
        padding-left: 16px;
        padding-right: 16px;
    }

    .sg-form--camp-enrollment {
        padding: 24px 18px;
        margin-top: 28px;
    }

    .sg-events {
        gap: 18px;
    }

    .sg-card h3 {
        font-size: 1.2rem;
    }

    .sg-content {
        padding: 18px 18px 20px;
    }

    .sg-toolbar {
        padding: 12px;
        overflow: hidden;
    }

    .sg-filters {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 4px;
        gap: 8px;
    }

    .sg-filters::-webkit-scrollbar {
        display: none;
    }

    .sg-filters .sg-filter {
        flex: 0 0 auto;
        white-space: nowrap;
        min-height: 44px;
    }
}

@media (max-width: 680px) {
    .sg-head {
        display: block;
    }

    .sg-events,
    .sg-form-grid {
        grid-template-columns: 1fr;
    }

    .sg-section {
        padding: 48px 16px;
    }

    .sg-hero {
        padding: 28px 22px;
    }

    .sg-single-hero {
        padding-top: 36px;
    }

    .sg-single-hero-grid {
        grid-template-columns: 1fr;
    }

    .sg-single-hero-media {
        order: -1;
    }

    .sg-single-figure,
    .sg-single-poster-img {
        max-height: 220px;
        width: 100%;
        object-fit: cover;
    }

    .sg-quick-info-grid {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-bottom: 28px;
    }

    .sg-booking-panel--card {
        padding: 22px 16px 26px;
    }

    .sg-camp-step {
        grid-template-columns: 36px minmax(0, 1fr);
        gap: 12px;
        padding: 14px 16px;
    }

    .sg-camp-step__num {
        width: 36px;
        height: 36px;
        font-size: 14px;
    }

    .sg-single-primary-flow {
        margin-bottom: 28px;
    }

    body.sanmi-theme-green .sg-wrap.sg-page-theme {
        margin-left: 0;
        margin-right: 0;
        width: 100%;
        max-width: 100%;
    }

    .sg-form {
        padding: 22px 18px;
    }

    .sg-card__footer .sg-btn {
        width: 100%;
        min-height: 48px;
    }

    .sg-single-booking {
        max-width: none;
    }

    .sg-booking-panel .sg-form--booking {
        padding: 22px 16px;
    }

    .sg-form--camp-enrollment {
        padding: 22px 16px;
        max-width: none;
    }

    .sg-camp-enrollment-panel .sg-form--camp-enrollment {
        margin-left: 0;
        margin-right: 0;
    }

    .sg-booking-success__actions .sg-btn {
        width: 100%;
    }

    .sg-fascia-option {
        min-height: 52px;
        padding: 16px;
    }
}

@media (max-width: 430px) {
    .sg-section {
        padding: 44px 14px;
    }

    .sg-hero__title {
        font-size: 26px;
    }

    .sg-hero__lead {
        font-size: 16px;
    }

    .sg-btn {
        padding: 13px 18px;
        font-size: 15px;
        min-height: 48px;
    }

    .sg-poster {
        aspect-ratio: 16 / 10;
    }

    .sg-card__meta-item {
        font-size: 14px;
    }

    .sg-status-badge,
    .sg-type {
        font-size: 11px;
    }

    .sg-form--camp-enrollment {
        padding: 20px 14px;
    }

    .sg-week-option {
        min-height: 56px;
    }
}

@media (max-width: 390px) {
    .sg-section {
        padding: 40px 12px;
    }

    .sg-hero__title {
        font-size: 24px;
    }

    .sg-btn {
        padding: 12px 16px;
        font-size: 14px;
    }

    .sg-form--booking {
        padding: 18px 14px 22px;
    }

    .sg-fascia-option {
        padding: 12px 14px;
    }

    .sg-card h3 {
        font-size: 1.1rem;
    }

    .sg-single-title {
        font-size: clamp(26px, 7.5vw, 40px);
        line-height: 1.12;
    }

    .sg-single-hero {
        padding: 28px 0 32px;
    }

    .sg-single-booking {
        margin-top: 32px;
        padding-top: 28px;
    }

    .sg-booking-panel .sg-form--booking {
        padding: 18px 14px;
        border-radius: 16px;
    }

    .sg-form-fieldset {
        margin-bottom: 22px;
    }

    .sg-form--camp-enrollment {
        padding: 18px 12px 22px;
        border-radius: 16px;
    }

    .sg-form--camp-enrollment .sg-fieldset {
        margin-bottom: 20px;
    }

    .sg-camp-single .sg-single-title,
    .sg-camp-single .sg-form h2 {
        font-size: 1.35rem;
    }
}

/* —— Prenotazione: riepilogo evento —— */
.sg-booking-summary {
    margin: 0 0 20px;
    padding: 18px 20px;
    border-radius: var(--sg-radius-sm);
    background: #fff;
    border: 1px solid var(--sg-border-strong);
    box-shadow: var(--sg-shadow);
}

.sg-booking-summary__eyebrow {
    margin: 0 0 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--sg-green-600);
}

.sg-booking-summary__title {
    margin: 0 0 12px;
    font-size: 22px;
    line-height: 1.2;
    color: var(--sg-green-800);
}

.sg-booking-summary__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 6px;
    font-size: 15px;
    color: var(--sg-text);
}

.sg-poster-badge--warn {
    background: #f59e0b;
    color: #1a2420;
}

.sg-hero--compact {
    margin-bottom: 24px;
    padding: 22px 20px;
}

.sg-hero--compact .sg-hero__title {
    font-size: clamp(26px, 4vw, 36px);
    margin-bottom: 8px;
}

.sg-hero--compact .sg-hero__lead {
    font-size: 18px;
    opacity: 0.95;
}

/* Demo polish — sito pubblico eventi */
.sg-event-card,
.sg-card {
    border-radius: var(--sg-radius);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sg-event-card:hover,
.sg-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--sg-shadow-hover);
}

.sg-btn,
.sg-button,
.sg-event-card__cta {
    font-weight: 700;
    letter-spacing: 0.02em;
    border-radius: 999px;
    min-height: 44px;
    padding-left: 22px;
    padding-right: 22px;
}

.sg-events-grid {
    gap: 24px;
}

.sg-section {
    padding-top: 42px;
    padding-bottom: 42px;
}

@media (max-width: 600px) {
    .sg-hero {
        padding: 22px 16px;
    }

    .sg-section {
        padding: 40px 14px;
    }

    .sg-side-help {
        padding: 14px;
    }

    .sg-side-help .sg-btn {
        width: 100%;
        justify-self: stretch;
    }
}

/* Loghi istituzionali sotto brand SANMI (colonna sinistra footer) — badge singoli */
.sb-site-footer .sb-footer-brand {
    min-width: 0;
    max-width: 100%;
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    column-gap: 14px;
    align-items: start;
}

.sb-site-footer .sb-footer-brand-body {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}

.sb-site-footer .sb-footer-logos--brand {
    margin-top: 8px;
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
    opacity: 0.94;
}

.sb-site-footer .sb-footer-logos--brand .sb-footer-logos-inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 8px 10px;
    padding: 0;
    margin: 0;
    width: 100%;
}

.sb-site-footer .sb-footer-logos--brand .sb-footer-logo-item {
    flex: 0 1 auto;
    max-width: 100%;
    padding: 3px 6px;
    background: rgba(255, 253, 248, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.34);
    border-radius: 7px;
    box-shadow: 0 1px 2px rgba(18, 42, 28, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
}

.sb-site-footer .sb-footer-logos--brand .sb-footer-logo-item--fattorie-didattiche {
    justify-self: start;
}

.sb-site-footer .sb-footer-logos--brand .sb-footer-logo-item--bio-ue {
    justify-self: center;
}

.sb-site-footer .sb-footer-logos--brand .sb-footer-logo-item--veneto-land {
    justify-self: end;
}

.sb-site-footer .sb-footer-logos--brand .sb-footer-logo-link {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    overflow: hidden;
    max-height: 52px;
}

.sb-site-footer .sb-footer-logos--brand .sb-footer-logo-img {
    max-width: min(176px, 100%);
    max-height: 46px;
    object-fit: contain;
    filter: none;
}

.sb-site-footer .sb-footer-logos--brand .sb-footer-logo-item--fattorie-didattiche .sb-footer-logo-img {
    max-height: 50px;
    max-width: min(192px, 100%);
}

.sb-site-footer .sb-footer-logos--brand .sb-footer-logo-item--bio-ue .sb-footer-logo-img {
    max-height: 38px;
    max-width: min(104px, 100%);
}

.sb-site-footer .sb-footer-logos--brand .sb-footer-logo-item--veneto-land .sb-footer-logo-img {
    max-height: 44px;
    max-width: min(162px, 100%);
}

.sb-site-footer .sb-footer-brand-title {
    margin: 0 0 10px;
}

.sb-site-footer .sb-footer-sanmi-logo {
    grid-column: 1;
    grid-row: 1;
    width: 112px;
    height: 112px;
    border-radius: 50%;
    object-fit: cover;
    background: #fffdf5;
    padding: 6px;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
    box-sizing: border-box;
}

.sb-site-footer .sb-footer-grid {
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.9fr) minmax(0, 0.55fr);
}

@media (max-width: 782px) {
    .sb-site-footer .sb-footer-grid {
        grid-template-columns: 1fr;
        gap: 24px;
        max-width: 100%;
        padding-left: 14px;
        padding-right: 14px;
        box-sizing: border-box;
    }

    .sb-site-footer {
        padding-left: 0;
        padding-right: 0;
        overflow-x: hidden;
    }

    .sb-site-footer .sb-footer-bottom {
        padding-left: 14px;
        padding-right: 14px;
        box-sizing: border-box;
    }
}

@media (max-width: 700px) {
    .sb-site-footer .sb-footer-logos--brand .sb-footer-logos-inner {
        gap: 7px;
    }

    .sb-site-footer .sb-footer-brand {
        grid-template-columns: 80px minmax(0, 1fr);
        column-gap: 12px;
    }

    .sb-site-footer .sb-footer-sanmi-logo {
        width: 80px;
        height: 80px;
        padding: 4px;
        box-shadow: 0 6px 16px rgba(0, 0, 0, 0.16);
    }
}

/* —— Front repair post-review —— */
.sg-card__mobile-line {
    display: none;
    margin: 0;
    font-size: 14px;
    line-height: 1.45;
    color: var(--sg-muted);
}

@media (max-width: 640px) {
    .sg-card__mobile-line {
        display: block;
    }
}

.sg-card.sg-card--demo-soft {
    border-top-color: #c8d5cb;
    background: linear-gradient(180deg, #f8faf8 0%, var(--sg-white) 36%);
}

.sg-card.sg-card--demo-soft .sg-poster-fallback {
    font-size: 13px;
    letter-spacing: 0.12em;
    opacity: 0.72;
}

.sg-card.sg-card--no-poster .sg-poster {
    background: linear-gradient(145deg, #eaf4e9, #f6f0e4);
}

.sg-events--few {
    justify-items: center;
}

.sg-events--few > .sg-card {
    width: 100%;
    max-width: 420px;
}

.sg-events.sg-camps-grid.sg-events--few > .sg-card {
    max-width: 480px;
}

.sg-events.sg-camps-grid.sg-events--few:has(> .sg-card:only-child) {
    display: flex;
    justify-content: center;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
}

.sg-events.sg-camps-grid.sg-events--few > .sg-card:only-child {
    width: 100%;
    max-width: 460px;
}

.sg-btn-outline {
    background: #fff !important;
    color: #1f4d2c !important;
    border-color: #2f6b3f !important;
    font-weight: 700;
}

.sg-card__link-details.sg-btn-primary {
    background: linear-gradient(135deg, #e88922, #f4a742) !important;
    color: #3a2a05 !important; /* ink scuro su ambra: contrasto AA */
}

@media (min-width: 641px) {
    .sb-wrap--eventi-archive .sg-card.sg-card--list {
        display: flex;
        flex-direction: column;
        height: 100%;
        border-radius: 20px;
        overflow: hidden;
        border: 1px solid var(--sg-border);
        box-shadow: 0 4px 22px rgba(33, 77, 48, 0.07);
        background: var(--sg-white);
        transition: transform 0.2s ease, box-shadow 0.2s ease;
    }

    .sb-wrap--eventi-archive .sg-card.sg-card--list:hover {
        transform: translateY(-3px);
        box-shadow: var(--sg-shadow-hover);
    }

    .sb-wrap--eventi-archive .sg-card.sg-card--list .sg-content {
        display: flex;
        flex-direction: column;
        flex: 1;
        padding: 18px 18px 20px;
    }

    .sb-wrap--eventi-archive .sg-card.sg-card--list h3,
    .sb-wrap--eventi-archive .sg-card.sg-card--list h3 a {
        font-family: var(--sanmi-font-body) !important;
        font-weight: 800 !important;
        font-size: 1.4rem !important;
        letter-spacing: -0.01em;
        line-height: 1.25;
    }
}

/* ══ VISUAL REDESIGN v2 — eventi / vacanze ══ */
.sb-wrap--eventi-archive .sg-archive,
.sb-wrap--settimane .sg-camps-archive {
    padding-top: 8px;
}

.sb-wrap--eventi-archive .sg-card.sg-card--list .sg-poster {
    border-radius: 0;
}

.sb-wrap--eventi-archive .sg-card.sg-card--demo-soft {
    opacity: 0.92;
    border-top: 3px solid #d4ddd6 !important;
}

.sb-wrap--eventi-archive .sg-card.sg-card--demo-soft h3 a {
    color: var(--sg-muted) !important;
    font-weight: 700 !important;
}

.sb-wrap--eventi-archive .sg-card.sg-card--demo-soft .sg-poster-fallback {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    opacity: 0.55;
}

.sg-events.sg-camps-grid > .sg-card {
    border-radius: 20px;
    border: 1px solid var(--sg-border);
    box-shadow: 0 4px 22px rgba(33, 77, 48, 0.07);
    background: var(--sg-white);
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sg-events.sg-camps-grid > .sg-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--sg-shadow-hover);
}

.sg-events.sg-camps-grid > .sg-card h3,
.sg-events.sg-camps-grid > .sg-card h3 a {
    font-family: var(--sanmi-font-body) !important;
    font-weight: 800 !important;
}

.sg-card__meta {
    font-size: 13px;
}

@media (max-width: 640px) {
    .sb-wrap--eventi-archive .sg-card.sg-card--list {
        border-radius: 18px;
        margin-bottom: 14px;
        box-shadow: 0 4px 18px rgba(33, 77, 48, 0.08);
    }
}

/* ══════════════════════════════════════════════════════════════════
   COMPLETAMENTO FRONTEND — Eventi archive "pochi eventi" (1–4):
   griglia auto-fit che usa tutta la larghezza (max ~3 col, centrata);
   il pannello "Altri percorsi" diventa una banda SOTTO la griglia.
   Solo CSS di presentazione: nessuna modifica al markup o ai dati.
══════════════════════════════════════════════════════════════════ */
@media (min-width: 901px) {
  /* stack verticale: griglia eventi sopra, banda "Altri percorsi" sotto */
  .sb-wrap--eventi-archive .sg-events-cta-layout--few {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  /* griglia eventi responsiva: riempie la larghezza, max ~3 colonne, centrata */
  .sb-wrap--eventi-archive .sg-events-cta-layout--few .sg-events,
  .sb-wrap--eventi-archive .sg-events--few {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    justify-items: center;
    gap: 22px;
  }
  /* card larghe ma non smisurate: cappate e centrate nella loro traccia */
  .sb-wrap--eventi-archive .sg-events--few > .sg-card {
    max-width: 460px;
    width: 100%;
  }
  /* "Altri percorsi in fattoria" = banda centrata sotto la griglia */
  .sb-wrap--eventi-archive .sg-events-cta-layout--few .sg-side-help {
    max-width: 820px;
    margin: 4px auto 0;
    grid-template-columns: 1fr;
    text-align: center;
    justify-items: center;
  }
}

/* Fallback poster CURATO (evento/programma senza foto): pannello
   brandizzato verde con foglia + wordmark, al posto del riquadro grigio. */
.sg-card--no-poster .sg-poster,
.sg-poster--empty {
  background:
    radial-gradient(ellipse 80% 70% at 75% 25%, rgba(255,255,255,.10) 0%, transparent 60%),
    linear-gradient(150deg, #1f4d28 0%, #2d6a35 55%, #3a7d45 100%) !important;
}
/* Il fallback (assenza foto) copre il poster con inset:0, quindi lo
   brandizziamo direttamente: vale per eventi (.sg-card--no-poster) e
   per programmi/camps (.sg-card--camp) senza modificatore dedicato. */
.sg-poster-fallback {
  background:
    radial-gradient(ellipse 80% 70% at 75% 25%, rgba(255,255,255,.10) 0%, transparent 60%),
    linear-gradient(150deg, #1f4d28 0%, #2d6a35 55%, #3a7d45 100%);
  color: rgba(255,255,255,.94);
  font-size: 19px;
  font-weight: 800;
  letter-spacing: 0.20em;
  gap: 12px;
}
.sg-poster-fallback::before {
  content: "";
  width: 48px;
  height: 48px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffe8c4' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 20.5C6 20.5 3.5 17 3.5 12.5C3.5 7 8 3.5 19.5 3.5C19.5 12 16.5 20.5 11 20.5Z'/%3E%3Cpath d='M5 20.5C7.5 15 10.5 11.5 19 5.5'/%3E%3C/svg%3E") no-repeat center / contain;
  opacity: .9;
}
.sg-poster-fallback::after {
  color: rgba(255,255,255,.88) !important;
  background: rgba(255,255,255,.14) !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  box-shadow: none !important;
}
.sg-poster:has(> .sg-poster-fallback) .sg-date,
.sg-card--no-poster .sg-date {
  background: rgba(255,255,255,.92) !important;
  color: #1f4d28 !important;
}

/* =====================================================================
   EVENTO — testata a due colonne: locandina e, accanto, tutto quello che
   serve per decidere. Prima erano cinque riquadri uguali da scansionare.
   ===================================================================== */
.sg-single .sg-ev-hero{
  display:grid; grid-template-columns:minmax(0,0.85fr) minmax(0,1fr);
  gap:clamp(22px,3.4vw,46px); align-items:start;
}
.sg-single .sg-ev-hero__media{min-width:0}
.sg-single .sg-ev-poster{
  margin:0; border-radius:var(--sg-radius); overflow:hidden;
  background:var(--sg-green-50); box-shadow:var(--sg-shadow);
  border:1px solid var(--sg-border);
}
/* La locandina non si deforma mai: si adatta al suo formato. */
.sg-single .sg-ev-poster img{display:block;width:100%;height:auto}
.sg-single .sg-ev-poster--empty{
  display:grid; place-items:center; aspect-ratio:3/4;
  font-family:var(--sanmi-font-display); font-size:2rem; color:var(--sg-green-700);
}
.sg-single .sg-ev-hero__info{min-width:0;display:flex;flex-direction:column;gap:16px}
.sg-single .sg-ev-flags{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sg-single .sg-ev-flag{
  display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;
  font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  background:var(--sg-green-100);color:var(--sg-green-800);
}

/* Il titolo dell'evento si legge sempre in maiuscolo: la trasformazione è
   solo di stampa, il testo salvato resta quello scritto in redazione. */
.sg-single .sg-ev-title{
  margin:0; font-family:var(--sanmi-font-display);
  font-size:clamp(2rem,4.2vw,3.1rem); line-height:1.08; color:var(--sg-green-900);
  text-transform:uppercase;
}
.sg-single .sg-ev-lead{margin:0;color:var(--sg-muted);font-size:1.05rem;line-height:1.55}

.sg-single .sg-ev-facts{list-style:none;margin:2px 0 0;padding:0;display:grid;gap:10px}
.sg-single .sg-ev-facts li{
  display:grid;grid-template-columns:104px minmax(0,1fr);gap:14px;align-items:baseline;
  padding-bottom:10px;border-bottom:1px solid var(--sg-border);
}
.sg-single .sg-ev-facts li:last-child{border-bottom:0;padding-bottom:0}
.sg-single .sg-ev-facts__k{
  font-size:.78rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  color:var(--sg-green-700);
}
.sg-single .sg-ev-facts__v{color:var(--sg-text);font-weight:600;line-height:1.45}

/* Prezzi: ognuno il suo posto, la nota fuori dagli importi. */
.sg-single .sg-ev-prices{
  background:var(--sg-white);border:1px solid var(--sg-border);
  border-radius:var(--sg-radius-sm);padding:16px 18px;
}
.sg-single .sg-ev-prices__h{
  margin:0 0 12px;font-size:.78rem;font-weight:800;letter-spacing:.07em;
  text-transform:uppercase;color:var(--sg-green-700);
}
.sg-single .sg-ev-prices__grid{display:flex;gap:28px;flex-wrap:wrap}
.sg-single .sg-ev-price{display:flex;flex-direction:column;gap:2px}
.sg-single .sg-ev-price__k{font-size:.92rem;color:var(--sg-muted);font-weight:600}
.sg-single .sg-ev-price__v{
  font-size:1.65rem;font-weight:800;color:var(--sg-green-900);line-height:1.1;
}
.sg-single .sg-ev-prices__note{
  margin:14px 0 0;padding-top:12px;border-top:1px dashed var(--sg-border-strong);
  color:var(--sg-text);font-size:.95rem;line-height:1.5;
}

/* Pulsante e stato occupano lo stesso posto: si cerca lì. */
.sg-single .sg-ev-cta{margin-top:4px}
.sg-single .sg-ev-state{
  display:flex;flex-direction:column;gap:4px;
  padding:16px 18px;border-radius:var(--sg-radius-sm);
  background:var(--sg-green-50);border:1px solid var(--sg-border);
}
.sg-single .sg-ev-state__t{
  font-family:var(--sanmi-font-display);font-size:1.45rem;color:var(--sg-green-800);line-height:1.15;
}
.sg-single .sg-ev-state__s{color:var(--sg-muted);font-size:.95rem;line-height:1.5}
/* Posti esauriti: si distingue, ma non è un errore. */
.sg-single .sg-ev-state--esauriti{background:#fdf3e6;border-color:rgba(232,137,34,.35)}
.sg-single .sg-ev-state--esauriti .sg-ev-state__t{color:#a3620e}


@media (max-width:900px){
  /* Locandina sopra, dettagli sotto. */
  .sg-single .sg-ev-hero{grid-template-columns:1fr;gap:22px}
  .sg-single .sg-ev-poster img{max-height:62vh;width:auto;margin:0 auto}
  .sg-single .sg-ev-poster{display:grid;place-items:center;background:var(--sg-green-50)}
}
@media (max-width:520px){
  .sg-single .sg-ev-facts li{grid-template-columns:1fr;gap:2px}
  .sg-single .sg-ev-prices__grid{gap:18px}
  .sg-single .sg-ev-price__v{font-size:1.45rem}
  .sg-single .sg-ev-cta .sg-btn{width:100%}
}

/* La testata evento è verde scura con testo chiaro: i blocchi nuovi si
   adattano a quel fondo invece di ridipingere la pagina. */
.sg-single .sg-single-hero{position:relative;z-index:0}
.sg-single .sg-single-hero > .sg-container{position:relative;z-index:1}
.sg-single .sg-ev-title{color:#fff}
.sg-single .sg-ev-lead{color:rgba(255,255,255,.86)}
.sg-single .sg-ev-facts li{border-bottom-color:rgba(255,255,255,.22)}
.sg-single .sg-ev-facts__k{color:rgba(255,255,255,.72)}
.sg-single .sg-ev-facts__v{color:#fff}
.sg-single .sg-ev-flag{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.28)}
.sg-single .sg-ev-prices{
  background:rgba(255,255,255,.96);border-color:rgba(255,255,255,.5);
  box-shadow:0 14px 34px rgba(16,48,26,.28);
}
.sg-single .sg-ev-poster{border-color:rgba(255,255,255,.35);box-shadow:0 18px 44px rgba(16,48,26,.35)}
.sg-single .sg-ev-state{
  background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);
  backdrop-filter:blur(2px);
}
.sg-single .sg-ev-state__t{color:#fff}
.sg-single .sg-ev-state__s{color:rgba(255,255,255,.85)}
.sg-single .sg-ev-state--esauriti{background:rgba(255,214,153,.18);border-color:rgba(255,196,110,.5)}
.sg-single .sg-ev-state--esauriti .sg-ev-state__t{color:#ffd79a}

/* =====================================================================
   PREZZI EVENTO — un componente solo per card e pagina.
   Una riga per voce; la gratuità ha una gerarchia sua, non è una tariffa.
   ===================================================================== */
.sg-prices{display:grid;gap:0;margin:0}
.sg-prices__row{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding:9px 0;border-bottom:1px solid var(--sg-border);
}
.sg-prices__row:last-child{border-bottom:0}
.sg-prices__k{color:var(--sg-muted);font-weight:600;font-size:.98rem}
.sg-prices__v{font-weight:800;color:var(--sg-green-900);font-size:1.3rem;white-space:nowrap}
.sg-prices__ico{margin-right:2px}
.sg-prices__row--free .sg-prices__k{color:var(--sg-text)}
.sg-prices__pill{
  display:inline-block;padding:4px 12px;border-radius:999px;
  background:var(--sg-green-100);color:var(--sg-green-800);
  font-size:.76rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
}
.sg-prices--compact .sg-prices__row{padding:6px 0}
.sg-prices--compact .sg-prices__k{font-size:.9rem}
.sg-prices--compact .sg-prices__v{font-size:1.05rem}
.sg-prices--compact .sg-prices__pill{font-size:.7rem;padding:3px 10px}

/* Tre blocchi in testata: piccoli titoli, valore evidente ma non enorme. */
.sg-single .sg-ev-blocks{display:grid;gap:12px}
.sg-single .sg-ev-block{
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);
  border-radius:var(--sg-radius-sm);padding:13px 16px;
}
.sg-single .sg-ev-block__k{
  margin:0 0 4px;font-size:.74rem;font-weight:800;letter-spacing:.09em;
  text-transform:uppercase;color:rgba(255,255,255,.72);
}
.sg-single .sg-ev-block__v{margin:0;font-size:1.12rem;font-weight:700;color:#fff;line-height:1.4}
.sg-single .sg-ev-block--prezzi{background:rgba(255,255,255,.96);border-color:rgba(255,255,255,.5)}
.sg-single .sg-ev-block--prezzi .sg-ev-block__k{color:var(--sg-green-700)}

/* Chiusura pagina: sempre una conclusione, mai un avviso di errore. */
.sg-single .sg-ev-close{
  display:flex;flex-direction:column;gap:6px;text-align:center;
  padding:26px 24px;border-radius:var(--sg-radius);
  background:var(--sg-green-50);border:1px solid var(--sg-border);
}
.sg-single .sg-ev-close__t{
  font-family:var(--sanmi-font-display);font-size:1.85rem;color:var(--sg-green-800);line-height:1.15;
}
.sg-single .sg-ev-close__s{color:var(--sg-muted);font-size:1rem;line-height:1.55}
.sg-single .sg-ev-close--esauriti{background:#fdf3e6;border-color:rgba(232,137,34,.4)}
.sg-single .sg-ev-close--esauriti .sg-ev-close__t{color:#a3620e}

/* Card: orari su righe, due azioni affiancate, stato leggibile. */
.sg-card__orario{display:block;font-weight:600;color:var(--sg-text)}
.sg-card__footer--due{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sg-card__footer--due .sg-btn{flex:1 1 140px;justify-content:center}
.sg-card__stato{
  flex:1 1 140px;text-align:center;padding:10px 12px;border-radius:999px;
  font-size:.86rem;font-weight:700;line-height:1.25;
  background:var(--sg-green-50);color:var(--sg-green-800);border:1px solid var(--sg-border);
}
.sg-card__stato--esauriti{background:#fdf3e6;color:#a3620e;border-color:rgba(232,137,34,.4)}
@media (max-width:520px){
  .sg-card__footer--due{flex-direction:column;align-items:stretch}
  /* In colonna il `flex:1 1 140px` scritto per la riga diventa un'ALTEZZA di
     140 px che cresce ancora: i pulsanti diventavano due lastroni. In verticale
     ognuno è alto quanto il suo testo. */
  .sg-card__footer--due .sg-btn,
  .sg-card__footer--due .sg-card__stato{flex:0 0 auto}
  .sg-prices__row{gap:10px}
}

@media (max-width:560px){
  /* Il pulsante della testata sta dentro i bordi anche sui telefoni stretti. */
  .sg-single .sg-ev-cta{display:block}
  .sg-single .sg-ev-cta .sg-btn{display:flex;width:100%;box-sizing:border-box;justify-content:center;text-align:center}
}
/* =====================================================================
   PAGINA EVENTO
   Parla la lingua del sito pubblico: la sezione porta la classe `sanmi-v30`,
   quindi contenitore, pulsanti, sopratitolo e ritmo verticale sono quelli
   già approvati sulle altre pagine. Qui sotto ci sono solo le cose che il
   sito non ha già: la composizione locandina/contenuto e le tre righe dei
   prezzi. I colori arrivano dalle variabili --v30-*, non ne nasce una nuova.
   Il valore di riserva serve alle anteprime di prova, dove site-v30.css non
   viene caricato; sul sito vince sempre la variabile.

   Sinistra: la locandina, intera. Destra: titolo, data, orari, descrizione,
   prezzi, azione. Nell'ordine in cui si leggono.
   ===================================================================== */
.sg-single .sg-ev2{
  background:#FFFDF8;padding:clamp(56px,5.6vw,88px) 0 clamp(44px,5vw,72px);
}
/* Da 1025 px in su il foglio del sito fa risalire il contenitore di 185 px
   dietro l'intestazione trasparente: era il trucco con cui l'hero verde
   partiva da sotto il logo. Le pagine che lo usano rimettono quei pixel come
   spazio interno (l'hero del sito ne mette 278). La pagina evento l'hero non
   ce l'ha più: restava la risalita senza il compenso, e il titolo finiva
   sotto l'intestazione. Qui il compenso c'è, senza toccare l'header globale. */
@media (min-width:1025px){
  .sg-single .sg-ev2{padding-top:226px}
}
/* L'intestazione resta appiccicata in alto anche scorrendo: arrivando da un
   collegamento il titolo deve comunque restare sotto, non dietro. */
.sg-single .sg-ev2__titolo{scroll-margin-top:170px}
.sg-single .sg-ev2__grid{
  display:grid;
  grid-template-columns:minmax(0,46%) minmax(0,54%);
  grid-template-rows:auto 1fr;
  grid-template-areas:"poster titolo" "poster corpo";
  column-gap:clamp(28px,4vw,54px);row-gap:18px;align-items:start;
}
.sg-single .sg-ev2__titolo{grid-area:titolo;min-width:0}
.sg-single .sg-ev2__body{
  grid-area:corpo;min-width:0;display:flex;flex-direction:column;gap:20px;
}

/* La locandina è appoggiata nella pagina, non incastrata: larghezza e altezza
   hanno un tetto, e dentro quel riquadro l'immagine sta intera. Centrata sul
   contenuto di destra, così le due colonne si guardano invece di scivolare. */
.sg-single .sg-ev2__poster{
  grid-area:poster;min-width:0;align-self:center;justify-self:center;
  width:100%;max-width:480px;
}
.sg-single .sg-ev2__fig{
  position:relative;margin:0;padding:12px;
  background:#fff;border:1px solid var(--v30-linea,#E7E1D4);
  border-radius:var(--v30-r,16px);box-shadow:var(--v30-ombra-sm,0 6px 18px rgba(28,74,42,.07));
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.sg-single .sg-ev2__fig img{
  display:block;width:100%;height:auto;max-height:520px;
  object-fit:contain;border-radius:8px;
}
.sg-single .sg-ev2__fig img{max-height:620px}
.sg-single .sg-ev2__fig--empty{
  display:grid;place-items:center;aspect-ratio:3/4;padding:0;
  background:var(--v30-verde-soft,#EAF1E4);
  font-family:"Patrick Hand",cursive;font-size:2rem;color:var(--v30-verde,#3C7D45);
}

/* Titolo: la mano SANMI, maiuscolo, con lo stesso accento grano che il sito
   usa sotto i titoli di sezione. */
.sg-single .sg-ev2__flag{
  display:inline-flex;align-items:center;gap:9px;margin-bottom:10px;
  font-family:"Nunito",system-ui,sans-serif;font-weight:800;font-size:.76rem;
  letter-spacing:1.8px;text-transform:uppercase;color:var(--v30-verde,#3C7D45);
}
.sg-single .sg-ev2__flag::before{
  content:"";width:24px;height:2px;border-radius:2px;background:var(--v30-grano,#E29B2C);
}
.sg-single .sg-ev2__h1{
  margin:0;font-family:"Patrick Hand",cursive;font-weight:400;text-transform:uppercase;
  font-size:clamp(1.85rem,3.1vw,2.55rem);line-height:1.08;
  color:var(--v30-verde-scuro,#1C4A2A);letter-spacing:.01em;text-wrap:balance;
}
.sg-single .sg-ev2__h1::after{
  content:"";display:block;width:52px;height:3px;margin-top:14px;
  border-radius:3px;background:var(--v30-grano,#E29B2C);
}

/* Data e fasce in riquadri affiancati: la data prima e più larga, poi una
   casella per ogni fascia configurata. Sono sobri — filo di bordo e fondo
   bianco, gli stessi della card del sito — non un cruscotto. */
.sg-single .sg-ev2__riquadri{display:flex;flex-wrap:wrap;gap:10px}
.sg-single .sg-ev2__box{
  flex:1 1 140px;min-width:0;display:flex;flex-direction:column;gap:3px;
  padding:12px 16px;background:#fff;
  border:1px solid var(--v30-linea,#E7E1D4);border-radius:var(--v30-r,16px);
}
.sg-single .sg-ev2__box--data{flex:1.5 1 210px;background:var(--v30-verde-soft,#EAF1E4);border-color:transparent}
.sg-single .sg-ev2__box-k{
  font-family:"Nunito",system-ui,sans-serif;font-weight:800;font-size:.68rem;
  letter-spacing:1.4px;text-transform:uppercase;color:var(--v30-verde,#3C7D45);
}
.sg-single .sg-ev2__box-v{
  font-family:"Nunito",system-ui,sans-serif;font-weight:900;font-size:1.02rem;
  line-height:1.25;color:var(--v30-verde-scuro,#1C4A2A);letter-spacing:.01em;
}
.sg-single .sg-ev2__box--data .sg-ev2__box-v{font-size:1.2rem;text-transform:uppercase}

.sg-single .sg-ev2__dove{margin:0;display:flex;flex-direction:column;gap:4px}
.sg-single .sg-ev2__dove-v{font-size:.98rem;color:var(--v30-testo-soft,#56655B);line-height:1.45}

/* Descrizione: è il cuore della pagina. La mano SANMI, corpo pieno, respiro
   largo e la stessa larghezza di lettura del resto del sito. */
.sg-single .sg-ev2__desc{margin:2px 0}
.sg-single .sg-ev2__desc-body,
.sg-single .sg-ev2__desc-body p,
.sg-single .sg-ev2__desc-body li,
.sg-single .sg-ev2__desc-body strong,
.sg-single .sg-ev2__desc-body em{
  /* Il font va nominato anche sui figli: il foglio del sito assegna il font
     del corpo a `.sg-wrap *`, quindi ai paragrafi dentro, non solo al blocco. */
  font-family:"Patrick Hand",cursive;font-weight:400;
  font-size:clamp(1.2rem,1.5vw,1.36rem);line-height:1.68;
  color:var(--v30-testo,#23302A);
}
.sg-single .sg-ev2__desc-body{max-width:var(--sanmi-text-max,42rem)}
.sg-single .sg-ev2__desc-body p{margin:0 0 .9em}
.sg-single .sg-ev2__desc-body p:last-child{margin-bottom:0}
.sg-single .sg-ev2__desc-body img.emoji{display:inline-block;vertical-align:-.15em;margin:0 .05em}
.sg-single .sg-ev2__nota{
  margin-top:16px;padding:12px 14px;border-radius:12px;
  background:var(--v30-verde-soft,#EAF1E4);border:1px solid var(--v30-linea,#E7E1D4);
  font-size:.95rem;line-height:1.6;color:var(--v30-testo,#23302A);
}

/* Prezzi: informazione secondaria. Nessuna card, nessuna superficie bianca:
   solo righe separate da un filo, importi chiari e piccoli. */
.sg-single .sg-ev2__prezzi{
  margin:0;padding:0;background:none;border:0;
  border-top:1px solid var(--v30-linea,#E7E1D4);
  max-width:26rem;
}
.sg-single .sg-ev2__prezzi-h{
  margin:10px 0 0;font-family:"Nunito",system-ui,sans-serif;
  font-size:.64rem;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--v30-testo-soft,#56655B);opacity:.85;
}
.sg-single .sg-ev2__prezzi .sg-prices{gap:0}
.sg-single .sg-ev2__prezzi .sg-prices__row{
  padding:4px 0;border-bottom:1px solid rgba(231,225,212,.6);
}
.sg-single .sg-ev2__prezzi .sg-prices__row:last-child{border-bottom:0}
.sg-single .sg-ev2__prezzi .sg-prices__k{
  font-size:.86rem;font-weight:600;color:var(--v30-testo-soft,#56655B);
}
.sg-single .sg-ev2__prezzi .sg-prices__v{
  font-size:.88rem;font-weight:800;color:var(--v30-verde-scuro,#1C4A2A);
}
.sg-single .sg-ev2__prezzi .sg-prices__ico{display:none}
.sg-single .sg-ev2__prezzi .sg-prices__pill{
  font-size:.6rem;padding:2px 8px;letter-spacing:.06em;
}

/* Azione: forma e misure del pulsante del sito, riempito con il verde del
   brand. È la cosa da fare in questa pagina e si deve vedere da lontano.
   Anche lo stato non prenotabile è pieno e contrastato: chi non può prenotare
   adesso legge una cosa importante, non un pulsante spento. */
.sg-single .sg-ev2__cta{margin-top:8px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.sg-single .sg-ev2__btn{
  padding:20px 44px;font-size:1.06rem;min-height:64px;justify-content:center;
  letter-spacing:.06em;text-transform:uppercase;font-weight:900;
  border-radius:12px;border:2px solid transparent;
}
.sg-single .sg-ev2__btn--go{
  background:var(--v30-verde-scuro,#1C4A2A);color:#fff;
  box-shadow:0 12px 26px rgba(28,74,42,.28);
}
.sg-single .sg-ev2__btn--go:hover{
  background:var(--v30-verde,#3C7D45);color:#fff;transform:translateY(-2px);
}
.sg-single .sg-ev2__btn--stato{
  background:var(--v30-verde-scuro,#1C4A2A);color:#fff;cursor:default;
  box-shadow:0 12px 26px rgba(28,74,42,.22);
}
.sg-single .sg-ev2__btn--stato:hover{transform:none}
.sg-single .sg-ev2__btn--esauriti{
  background:var(--v30-terra,#B85C38);color:#fff;
  box-shadow:0 12px 26px rgba(184,92,56,.26);
}
/* Senza prenotazione non è un'attesa né un divieto: è un'informazione neutra,
   e non deve chiedere di essere premuta. */
.sg-single .sg-ev2__btn--senza{
  background:#fff;color:var(--v30-verde-scuro,#1C4A2A);
  border:2px dashed var(--v30-linea,#E7E1D4);box-shadow:none;
}

/* Schermo stretto: titolo, locandina, data, orari, descrizione, prezzi,
   azione — che è già l'ordine del documento. */
@media (max-width:900px){
  .sg-single .sg-ev2__grid{
    grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;
    grid-template-areas:"titolo" "poster" "corpo";row-gap:22px;
  }
  .sg-single .sg-ev2__poster{max-width:340px}
  .sg-single .sg-ev2__fig img{max-height:none}
  .sg-single .sg-ev2__btn{width:100%}
}
@media (max-width:480px){
  .sg-single .sg-ev2__poster{max-width:100%}
  .sg-single .sg-ev2__prezzi{max-width:100%}
}

/* =====================================================================
   POSTI ESAURITI — fascia diagonale sulla locandina.
   Terracotta SANMI (--v30-terra), non un rosso qualsiasi. Si vede da lontano
   senza coprire la locandina, e c'è solo quando l'evento è davvero esaurito.
   ===================================================================== */
.sg-poster-ribbon{
  position:absolute;top:0;right:0;width:132px;height:132px;
  overflow:hidden;pointer-events:none;z-index:3;
}
.sg-poster-ribbon__txt{
  position:absolute;top:26px;right:-42px;width:170px;
  transform:rotate(45deg);transform-origin:center;
  background:var(--v30-terra,#B85C38);color:#fff;text-align:center;
  font-family:"Nunito",system-ui,sans-serif;font-size:11.5px;font-weight:900;
  letter-spacing:1.4px;text-transform:uppercase;padding:6px 0;
  box-shadow:0 6px 16px rgba(28,74,42,.22);
}
@media (max-width:480px){
  .sg-poster-ribbon{width:108px;height:108px}
  .sg-poster-ribbon__txt{top:20px;right:-46px;width:152px;font-size:10px;letter-spacing:1px;padding:5px 0}
}

/* =====================================================================
   PRENOTAZIONE EVENTO — quattro passi, tre contatori, un riepilogo.
   Stessi colori e stesse forme del resto del sito: verde e grano SANMI,
   raggio 16, filo --v30-linea. Nessuna variabile nuova.
   ===================================================================== */
.sg-single-booking .sg-booking-h{
  font-family:"Patrick Hand",cursive;font-weight:400;
  font-size:clamp(1.7rem,2.8vw,2.3rem);line-height:1.1;margin:0 0 22px;
  color:var(--v30-verde-scuro,#1C4A2A);
}
.sg-single-booking .sg-booking-h::after{
  content:"";display:block;width:52px;height:3px;margin-top:12px;
  border-radius:3px;background:var(--v30-grano,#E29B2C);
}

/* Passi numerati: il numero è un segno, non un titolo. */
.sg-form--booking .sg-step{
  border:0;border-top:1px solid var(--v30-linea,#E7E1D4);
  margin:0;padding:22px 0 0;
}
.sg-form--booking .sg-step:first-of-type{border-top:0;padding-top:0}
.sg-form--booking .sg-step > legend{
  display:flex;align-items:center;gap:10px;padding:0;margin:0 0 14px;
  font-family:"Nunito",system-ui,sans-serif;font-weight:900;font-size:1.05rem;
  color:var(--v30-verde-scuro,#1C4A2A);letter-spacing:-.01em;
}
.sg-step__n{
  flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;
  border-radius:50%;background:var(--v30-verde-soft,#EAF1E4);
  color:var(--v30-verde,#3C7D45);font-size:.82rem;font-weight:900;
}

/* Contatori: numero grande in mezzo, due tasti larghi ai lati. */
.sg-conta{display:flex;flex-direction:column;gap:10px}
.sg-conta__riga{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:12px 16px;background:#fff;
  border:1px solid var(--v30-linea,#E7E1D4);border-radius:var(--v30-r,16px);
}
.sg-conta__voce{display:flex;flex-direction:column;gap:2px;min-width:0}
.sg-conta__k{font-weight:800;font-size:1rem;color:var(--v30-verde-scuro,#1C4A2A)}
.sg-conta__nota{font-size:.84rem;color:var(--v30-testo-soft,#56655B)}
.sg-conta__cmd{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.sg-conta__btn{
  width:46px;height:46px;flex:0 0 auto;border-radius:12px;cursor:pointer;
  background:var(--v30-verde-soft,#EAF1E4);border:1px solid var(--v30-linea,#E7E1D4);
  color:var(--v30-verde-scuro,#1C4A2A);font-size:1.4rem;font-weight:900;line-height:1;
  display:grid;place-items:center;transition:background .15s ease,border-color .15s ease;
}
.sg-conta__btn:hover{background:var(--v30-verde,#3C7D45);border-color:var(--v30-verde,#3C7D45);color:#fff}
.sg-conta__btn:focus-visible{outline:3px solid var(--v30-verde,#3C7D45);outline-offset:2px}
.sg-conta__n{
  width:62px;height:46px;text-align:center;
  font-family:"Nunito",system-ui,sans-serif;font-weight:900;font-size:1.15rem;
  color:var(--v30-verde-scuro,#1C4A2A);
  border:1px solid var(--v30-linea,#E7E1D4);border-radius:12px;background:#fff;
  -moz-appearance:textfield;
}
.sg-conta__n::-webkit-outer-spin-button,
.sg-conta__n::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* Riepilogo: righe leggere, totale in evidenza. */
.sg-riepilogo{
  margin:24px 0 18px;padding:18px 20px;
  background:var(--v30-verde-soft,#EAF1E4);border-radius:var(--v30-r,16px);
}
.sg-riepilogo[hidden]{display:block}
.sg-riepilogo__h{
  display:flex;align-items:center;gap:10px;margin:0 0 12px;
  font-family:"Nunito",system-ui,sans-serif;font-weight:900;font-size:1.05rem;
  color:var(--v30-verde-scuro,#1C4A2A);
}
.sg-riepilogo__h .sg-step__n{background:#fff}
.sg-riepilogo__righe{
  display:grid;grid-template-columns:1fr auto;gap:6px 16px;margin:0;
  font-size:.95rem;color:var(--v30-testo,#23302A);
}
.sg-riepilogo__righe dt{margin:0;font-weight:600}
.sg-riepilogo__righe dd{margin:0;text-align:right;font-weight:700;white-space:nowrap}
.sg-riepilogo__tot{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  margin:14px 0 0;padding-top:12px;border-top:1px solid rgba(28,74,42,.16);
  font-weight:800;color:var(--v30-verde-scuro,#1C4A2A);
}
.sg-riepilogo__tot strong{font-size:1.4rem;font-weight:900;white-space:nowrap}
.sg-riepilogo__nota{
  margin:10px 0 0;font-size:.86rem;line-height:1.5;color:var(--v30-testo-soft,#56655B);
}

/* Invio: quando non c'è nessun partecipante il pulsante lo dice. */
.sg-form--booking .sg-btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}

@media (max-width:480px){
  .sg-conta__riga{padding:12px 13px;gap:10px}
  .sg-conta__btn{width:44px;height:44px}
  .sg-conta__n{width:54px;height:44px}
}

/* ── EVENTO · documenti scaricabili ───────────────────────────────────────
   Un elenco, non una griglia di riquadri: i PDF di un evento sono uno o due,
   e un riquadro grande per un link solo fa più rumore che servizio. */
.sg-ev-docs .sg-docs{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.sg-ev-docs .sg-doc{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;background:#fff;border:1px solid #e3ece1;border-radius:12px}
.sg-ev-docs .sg-doc__link{font-weight:700;color:#1C4A2A;text-decoration:none;text-underline-offset:3px}
.sg-ev-docs .sg-doc__link:hover,.sg-ev-docs .sg-doc__link:focus-visible{text-decoration:underline}
.sg-ev-docs .sg-doc__link::before{content:"⬇";margin-right:8px;color:#3C7D45}
.sg-ev-docs .sg-doc__meta{font-size:.85rem;color:#56655B}
@media (max-width:640px){
  .sg-ev-docs .sg-doc{align-items:flex-start;flex-direction:column;gap:4px}
}
