/**
 * SANMI — sito pubblico mobile-first (rework completo).
 * Caricato per ultimo. Desktop invariato oltre i breakpoint.
 */

/* ============================================================
   BASE ANTI-ROTTURA
   ============================================================ */
html {
    max-width: 100%;
    overflow-x: hidden;
}

body.sanmi-public-shell {
    max-width: 100%;
    overflow-x: hidden;
}

body.sanmi-public-shell *,
body.sanmi-public-shell *::before,
body.sanmi-public-shell *::after {
    box-sizing: border-box;
}

body.sanmi-public-shell img,
body.sanmi-public-shell svg,
body.sanmi-public-shell video,
body.sanmi-public-shell canvas,
body.sanmi-public-shell iframe {
    max-width: 100%;
    height: auto;
}

/* ============================================================
   FIX STRUTTURALE — padding annidato WP (has-global-padding)
   Causa: main + group + entry-content = 3×30px → .sb-wrap ~210px su 390px
   ============================================================ */
@media (max-width: 782px) {
    body.sanmi-public-shell {
        --wp--style--root--padding-left: 0px !important;
        --wp--style--root--padding-right: 0px !important;
        --wp--style--global--content-size: 100% !important;
        --wp--style--global--wide-size: 100% !important;
    }

    body.sanmi-public-shell .wp-site-blocks,
    body.sanmi-public-shell main,
    body.sanmi-public-shell main.wp-block-group,
    body.sanmi-public-shell .wp-block-group,
    body.sanmi-public-shell .wp-block-group.alignfull,
    body.sanmi-public-shell .entry-content,
    body.sanmi-public-shell .wp-block-post-content,
    body.sanmi-public-shell .has-global-padding,
    body.sanmi-public-shell .is-layout-constrained,
    body.sanmi-public-shell .is-layout-flow,
    body.sanmi-public-shell .is-layout-flex {
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: 100% !important;
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    body.sanmi-public-shell .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    body.sanmi-public-shell .sb-wrap,
    body.sanmi-public-shell .sg-wrap,
    body.sanmi-public-shell .sb-wrap .sg-wrap {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* sg-page-theme usa 100vw — neutralizza ovunque */
    body.sanmi-public-shell .sg-wrap.sg-page-theme,
    body.sanmi-theme-green .sg-wrap.sg-page-theme {
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* ============================================================
   CONTAINER FULL WIDTH — mobile / tablet
   ============================================================ */
@media (max-width: 782px) {
    body.sanmi-public-shell .wp-site-blocks,
    body.sanmi-public-shell .wp-block-group,
    body.sanmi-public-shell .wp-block-post-content,
    body.sanmi-public-shell .entry-content,
    body.sanmi-public-shell .site-main,
    body.sanmi-public-shell main,
    body.sanmi-public-shell .alignwide,
    body.sanmi-public-shell .alignfull,
    .sb-wrap,
    .sb-main,
    .sb-container,
    .sb-section,
    .sg-wrap,
    .sg-public,
    .sg-container,
    .sg-section,
    .sanmi-public {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        margin-left: auto;
        margin-right: auto;
        box-sizing: border-box;
    }

    body.sanmi-public-shell .entry-content > *,
    body.sanmi-public-shell .wp-block-post-content > * {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }

    .sb-wrap,
    .sg-wrap {
        overflow-x: hidden;
    }

    .sb-container,
    .sg-container {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    .sb-section {
        padding-left: 14px !important;
        padding-right: 14px !important;
        padding-top: 22px !important;
        padding-bottom: 26px !important;
    }

    .sb-section--compact {
        padding-top: 14px !important;
        padding-bottom: 18px !important;
    }

    body.sanmi-demo-public .sb-wrap .sb-section {
        padding-top: 22px !important;
        padding-bottom: 26px !important;
    }

    body.sanmi-demo-public .sb-wrap .sb-section--compact {
        padding-top: 14px !important;
        padding-bottom: 18px !important;
    }

    body.sanmi-demo-public .sb-wrap .sb-hero {
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: none !important;
        border-radius: 0 0 20px 20px !important;
    }

    .sb-desktop-only,
    .sb-mobile-hide {
        display: none !important;
    }
}

@media (max-width: 900px) {
    .sb-desktop-only,
    .sb-mobile-hide {
        display: none !important;
    }
}

@media (min-width: 901px) {
    .sb-mobile-only {
        display: none !important;
    }

    .sb-home-quick-nav {
        display: none !important;
    }

    .sb-home-about-mobile {
        display: none !important;
    }
}

/* ============================================================
   HEADER PUBBLICO
   ============================================================ */
@media (max-width: 782px) {
    .sb-site-header {
        width: 100%;
        max-width: 100%;
        left: 0;
        right: 0;
    }

    .sb-header-inner {
        width: 100%;
        max-width: 100%;
        padding: 10px 14px !important;
        margin: 0 !important;
    }

    .sb-brand img {
        max-height: 52px !important;
    }

    .sb-brand-title {
        font-size: 18px !important;
    }

    .sb-brand-sub {
        font-size: 11px !important;
    }
}

/* ============================================================
   HERO COMPATTE (tutte le pagine)
   ============================================================ */
@media (max-width: 782px) {
    .sb-hero,
    .sb-page-hero,
    .sb-page-hero--compact,
    .sg-hero,
    .sg-single-hero {
        min-height: 0 !important;
        height: auto !important;
        padding: 16px 14px 14px !important;
        margin: 0 0 8px !important;
        border-radius: 0 0 16px 16px !important;
    }

    .sb-wrap--home > .sb-hero--home,
    .sb-wrap--home .sb-hero--home {
        margin: 0 0 0 !important;
        padding: 0 !important;
        border-radius: 0 0 22px 22px !important;
    }

    body.sanmi-public-shell .entry-content > .sb-wrap--home,
    body.sanmi-public-shell .wp-block-post-content > .sb-wrap--home {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    body.sanmi-public-shell main,
    body.sanmi-public-shell .entry-content,
    body.sanmi-public-shell .wp-block-post-content,
    body.sanmi-public-shell .wp-site-blocks {
        padding-top: 0 !important;
        margin-top: 0 !important;
        gap: 0 !important;
        row-gap: 0 !important;
    }

    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;
    }

    .sb-hero-inner,
    .sb-hero-inner--home {
        padding: 18px 14px 16px !important;
        max-width: none !important;
    }

    .sb-wrap--home .sb-hero-inner--home {
        padding: 22px 16px 20px !important;
    }

    .sb-page-hero .sb-title,
    .sb-hero .sb-hero-title {
        font-size: clamp(22px, 6vw, 30px) !important;
        margin-bottom: 4px !important;
        line-height: 1.1 !important;
    }

    .sb-page-hero .sb-lead,
    .sb-hero .sb-hero-text,
    .sb-lead--tight {
        font-size: 14px !important;
        line-height: 1.35 !important;
        max-width: none !important;
        margin-bottom: 0 !important;
    }

    .sb-wrap--fattoria .sb-page-hero .sb-lead {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
}

/* ============================================================
   HOME MOBILE
   ============================================================ */
@media (max-width: 900px) {
    .sb-wrap--home .sb-hero--home {
        border-radius: 0 0 22px 22px !important;
        margin-bottom: 0 !important;
        overflow: hidden !important;
    }

    .sb-wrap--home .sb-hero--has-mascot::after,
    .sb-wrap--home .sb-hero--featured::after {
        display: none !important;
    }

    .sb-wrap--home .sb-hero-inner--home {
        position: relative !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
        padding: 22px 16px 20px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        min-height: 0 !important;
    }

    .sb-wrap--home .sb-hero-content {
        position: relative !important;
        z-index: 2 !important;
        width: 100% !important;
        min-width: 0 !important;
        padding-right: clamp(104px, 41vw, 168px) !important;
    }

    .sb-wrap--home .sb-hero--home .sb-eyebrow {
        display: inline-block !important;
        margin-bottom: 10px !important;
        padding: 5px 10px !important;
        font-size: 11px !important;
    }

    .sb-wrap--home .sb-hero--home .sb-hero-title {
        font-size: clamp(26px, 7.2vw, 32px) !important;
        line-height: 1.12 !important;
        margin: 0 0 8px !important;
        letter-spacing: -0.02em !important;
    }

    .sb-wrap--home .sb-hero--home .sb-hero-text {
        font-size: 15px !important;
        line-height: 1.5 !important;
        margin: 0 0 14px !important;
        max-width: none !important;
        color: rgba(255, 255, 255, 0.92) !important;
    }

    .sb-wrap--home .sanmi-hero-mascot-deco {
        position: absolute !important;
        right: 0 !important;
        bottom: 52px !important;
        z-index: 1 !important;
        display: flex !important;
        align-items: flex-end !important;
        justify-content: flex-end !important;
        width: clamp(156px, 48vw, 208px) !important;
        margin: 0 !important;
        padding: 0 !important;
        background: none !important;
        border: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        overflow: visible !important;
        pointer-events: none !important;
        transform: translateX(-5px) !important;
    }

    .sb-wrap--home .sanmi-hero-mascot-deco__img {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        max-height: 236px !important;
        height: auto !important;
        object-fit: contain !important;
        object-position: bottom right !important;
        background: transparent !important;
        border: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        mix-blend-mode: multiply !important;
        filter: drop-shadow(0 8px 12px rgba(15, 46, 31, 0.22)) !important;
    }

    .sb-wrap--home .sb-home-quick-nav {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        position: relative !important;
        z-index: 3 !important;
        visibility: visible !important;
        height: auto !important;
        overflow: visible !important;
        clip: auto !important;
        pointer-events: auto !important;
    }

    .sb-wrap--home .sb-home-quick-nav__item {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 42px !important;
        padding: 10px 14px !important;
        border-radius: 11px !important;
        font-weight: 700 !important;
        font-size: 14px !important;
        text-decoration: none !important;
        text-align: center !important;
        border: 2px solid rgba(255, 255, 255, 0.32) !important;
        color: #fff !important;
        background: rgba(255, 255, 255, 0.1) !important;
    }

    .sb-wrap--home .sb-home-quick-nav__item--primary {
        background: linear-gradient(135deg, #e88922, #f4a742) !important;
        border-color: transparent !important;
        color: #fff !important;
        box-shadow: 0 8px 18px rgba(232, 137, 34, 0.28) !important;
    }

    /* Percorsi mobile */
    .sb-wrap--home .sb-home-paths-mobile {
        padding: 20px 0 18px !important;
    }

    .sb-wrap--home .sb-home-paths-mobile__title {
        margin: 0 0 4px !important;
        font-size: clamp(20px, 5.2vw, 24px) !important;
        color: var(--sb-green, #1f3d2b) !important;
    }

    .sb-wrap--home .sb-home-paths-mobile__lead {
        margin: 0 0 12px !important;
        font-size: 14px !important;
        line-height: 1.45 !important;
        color: var(--sb-muted, #5a6d5c) !important;
    }

    .sb-wrap--home .sb-home-paths-mobile__grid {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
        width: 100%;
    }

    .sb-wrap--home .sb-home-path-tile {
        display: flex !important;
        flex-direction: column !important;
        gap: 4px !important;
        min-height: 88px !important;
        padding: 12px 12px 11px !important;
        border-radius: 14px !important;
        border: 1px solid rgba(33, 77, 48, 0.12) !important;
        background: linear-gradient(180deg, #fffdf8 0%, #f6fbf5 100%) !important;
        box-shadow: 0 2px 10px rgba(33, 77, 48, 0.06) !important;
        text-decoration: none !important;
        color: inherit !important;
    }

    .sb-wrap--home .sb-home-path-tile__title {
        display: block !important;
        font-size: 14px !important;
        line-height: 1.25 !important;
        color: var(--sb-green, #1f3d2b) !important;
    }

    .sb-wrap--home .sb-home-path-tile__text {
        display: block !important;
        font-size: 12px !important;
        line-height: 1.35 !important;
        color: var(--sb-muted, #5a6d5c) !important;
    }

    /* Prossime attività */
    .sb-wrap--home .sb-home-upcoming {
        padding: 22px 0 20px !important;
    }

    .sb-wrap--home .sb-home-upcoming .sb-title {
        font-size: clamp(22px, 5.6vw, 28px) !important;
        margin-bottom: 6px !important;
    }

    .sb-wrap--home .sb-home-upcoming .sb-lead--tight {
        font-size: 14px !important;
        line-height: 1.45 !important;
        margin-bottom: 14px !important;
    }

    .sb-wrap--home .sb-home-activities__label {
        margin: 0 0 8px !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        letter-spacing: 0.06em !important;
        text-transform: uppercase !important;
        color: rgba(31, 61, 43, 0.72) !important;
    }

    .sb-wrap--home .sb-home-activities__more {
        margin: 10px 0 0 !important;
        font-size: 14px !important;
        font-weight: 700 !important;
    }

    .sb-wrap--home .sb-home-activities__more a {
        color: var(--sb-green, #1f3d2b) !important;
        text-decoration: none !important;
    }

    .sb-wrap--home .sb-home-upcoming .sb-activities-grid {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }

    .sb-wrap--home .sb-home-upcoming .sb-activities-col {
        padding: 0 !important;
        border-radius: 0 !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .sb-wrap--home .sanmi-rows {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
        width: 100%;
    }

    .sb-wrap--home .sanmi-row {
        display: grid !important;
        grid-template-columns: 76px minmax(0, 1fr) auto !important;
        grid-template-rows: auto auto !important;
        gap: 4px 10px !important;
        align-items: center !important;
        padding: 10px 12px !important;
        border-radius: 14px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        background: #fff !important;
        border: 1px solid rgba(33, 77, 48, 0.1) !important;
        box-shadow: 0 2px 10px rgba(33, 77, 48, 0.06) !important;
    }

    .sb-wrap--home .sanmi-row__media {
        grid-column: 1 !important;
        grid-row: 1 / span 2 !important;
        width: 76px !important;
        height: 76px !important;
        aspect-ratio: 1 !important;
        border-radius: 10px !important;
    }

    .sb-wrap--home .sanmi-row__body {
        grid-column: 2 !important;
        grid-row: 1 / span 2 !important;
        display: contents !important;
        min-width: 0;
    }

    .sb-wrap--home .sanmi-row__top {
        grid-column: 2 !important;
        grid-row: 1 !important;
        display: block !important;
        min-width: 0;
    }

    .sb-wrap--home .sanmi-row__badge {
        display: inline-block !important;
        padding: 2px 7px !important;
        font-size: 11px !important;
        margin-bottom: 3px !important;
    }

    .sb-wrap--home .sanmi-row__title {
        font-size: 15px !important;
        line-height: 1.3 !important;
        margin: 0 !important;
        overflow-wrap: anywhere;
    }

    .sb-wrap--home .sanmi-row__mobile-line {
        grid-column: 2 !important;
        grid-row: 2 !important;
        margin: 0 !important;
        font-size: 13px !important;
        line-height: 1.35 !important;
        color: var(--sg-muted, #5a6d5c) !important;
    }

    .sb-wrap--home .sanmi-row__meta {
        display: none !important;
    }

    .sb-wrap--home .sanmi-row__cta {
        grid-column: 3 !important;
        grid-row: 1 / span 2 !important;
        align-self: center !important;
        margin: 0 !important;
    }

    .sb-wrap--home .sanmi-row__link {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 38px !important;
        padding: 7px 10px !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        text-decoration: none !important;
        color: var(--sg-green-700, #1f5c38) !important;
        background: var(--sg-green-50, #eef6ef) !important;
        border: 1px solid rgba(33, 77, 48, 0.14) !important;
        border-radius: 9px !important;
        white-space: nowrap !important;
    }
}

@media (min-width: 901px) {
    .sb-hero-inner--home {
        display: grid;
        grid-template-columns: 1.1fr minmax(260px, 0.85fr);
        gap: 28px;
        align-items: end;
    }

    .sb-hero-inner--home .sb-hero-content {
        grid-column: 1;
        grid-row: 1;
    }

    .sb-hero-inner--home .sanmi-hero-mascot-deco {
        grid-column: 2;
        grid-row: 1;
        position: static;
        align-self: end;
        justify-self: center;
        width: 100%;
    }

    .sb-hero--has-mascot::after {
        opacity: 0.35;
    }

    .sanmi-row__mobile-line {
        display: none;
    }

    .sanmi-hero-mascot-deco {
        margin: 0;
        display: flex;
        align-items: flex-end;
        justify-content: center;
        background: none;
        border: none;
        box-shadow: none;
    }

    .sanmi-hero-mascot-deco__img {
        width: min(100%, 320px);
        max-height: 340px;
        object-fit: contain;
        background: transparent;
        filter: drop-shadow(0 20px 14px rgba(15, 46, 31, 0.18));
    }
}

/* ============================================================
   EVENTI — lista compatta
   ============================================================ */
@media (max-width: 900px) {
    .sb-wrap--eventi-archive .sb-page-hero--eventi-list {
        padding: 16px 14px 14px !important;
        margin: 0 0 8px !important;
    }

    .sb-wrap--eventi-archive .sg-wrap .sg-section.sg-section--tight {
        padding-top: 8px !important;
        padding-bottom: 24px !important;
    }

    .sb-wrap--eventi-archive .sg-toolbar {
        padding: 6px 8px !important;
        margin-bottom: 8px !important;
        border-radius: 12px !important;
    }

    .sb-wrap--eventi-archive .sg-filters .sg-filter {
        min-height: 36px !important;
        padding: 6px 12px !important;
        font-size: 12px !important;
    }

    .sb-wrap--eventi-archive .sg-events,
    .sg-archive .sg-events {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
    }

    .sb-wrap--eventi-archive .sg-card.sg-card--list,
    .sg-archive .sg-card.sg-card--list {
        display: grid !important;
        grid-template-columns: 72px minmax(0, 1fr) auto !important;
        grid-template-rows: auto auto !important;
        align-items: center !important;
        gap: 2px 10px !important;
        padding: 10px 12px 10px 10px !important;
        min-height: 0 !important;
        max-height: 160px !important;
        border-radius: 14px !important;
        box-shadow: 0 4px 14px rgba(33, 77, 48, 0.08) !important;
        transform: none !important;
        width: 100%;
        max-width: 100%;
    }

    .sb-wrap--eventi-archive .sg-card.sg-card--list:hover,
    .sg-archive .sg-card.sg-card--list:hover {
        transform: none !important;
    }

    .sb-wrap--eventi-archive .sg-card--list .sg-poster-link,
    .sg-archive .sg-card--list .sg-poster-link {
        grid-column: 1 !important;
        grid-row: 1 / span 2 !important;
        align-self: stretch !important;
    }

    .sb-wrap--eventi-archive .sg-card--list .sg-poster,
    .sg-archive .sg-card--list .sg-poster {
        aspect-ratio: 1 !important;
        height: 72px !important;
        min-height: 72px !important;
        max-height: 72px !important;
        width: 72px !important;
        border-radius: 10px !important;
    }

    .sb-wrap--eventi-archive .sg-card--list .sg-date,
    .sg-archive .sg-card--list .sg-date {
        top: 4px !important;
        left: 4px !important;
        padding: 3px 6px !important;
        font-size: 10px !important;
    }

    .sb-wrap--eventi-archive .sg-card--list .sg-poster-badge,
    .sg-archive .sg-card--list .sg-poster-badge {
        display: none !important;
    }

    .sb-wrap--eventi-archive .sg-card--list .sg-content,
    .sg-archive .sg-card--list .sg-content {
        grid-column: 2 / span 2 !important;
        padding: 0 !important;
        display: contents !important;
    }

    .sb-wrap--eventi-archive .sg-card--list .sg-card__badges,
    .sb-wrap--eventi-archive .sg-card--list .sg-desc,
    .sb-wrap--eventi-archive .sg-card--list .sg-card__meta,
    .sg-archive .sg-card--list .sg-card__badges,
    .sg-archive .sg-card--list .sg-desc,
    .sg-archive .sg-card--list .sg-card__meta {
        display: none !important;
    }

    .sb-wrap--eventi-archive .sg-card--list h3,
    .sg-archive .sg-card--list h3 {
        grid-column: 2 !important;
        grid-row: 1 !important;
        margin: 0 !important;
        font-size: 15px !important;
        line-height: 1.25 !important;
        overflow-wrap: anywhere;
    }

    .sb-wrap--eventi-archive .sg-card--list .sg-card__mobile-line,
    .sg-archive .sg-card--list .sg-card__mobile-line {
        grid-column: 2 !important;
        grid-row: 2 !important;
        margin: 0 !important;
        font-size: 13px !important;
        color: var(--sg-muted, #5a6d5c) !important;
    }

    .sb-wrap--eventi-archive .sg-card--list .sg-card__footer,
    .sg-archive .sg-card--list .sg-card__footer {
        grid-column: 3 !important;
        grid-row: 1 / span 2 !important;
        align-self: center !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .sb-wrap--eventi-archive .sg-card--list .sg-card__link-details,
    .sg-archive .sg-card--list .sg-card__link-details {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 40px !important;
        padding: 8px 12px !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        border-radius: 10px !important;
        white-space: nowrap !important;
        box-shadow: none !important;
        width: auto !important;
    }
}

/* ============================================================
   DETTAGLIO EVENTO
   ============================================================ */
@media (max-width: 782px) {
    .sg-single-hero-grid {
        gap: 10px !important;
    }

    .sg-single-hero-media,
    .sg-single-figure,
    .sg-poster,
    .sg-poster--empty {
        max-height: 140px !important;
        min-height: 0 !important;
        aspect-ratio: 16 / 9 !important;
        overflow: hidden;
    }

    .sg-single-title {
        font-size: clamp(22px, 6vw, 30px) !important;
        margin-bottom: 6px !important;
    }

    .sg-single-hero-meta {
        font-size: 13px !important;
        margin-bottom: 6px !important;
        line-height: 1.4 !important;
    }

    .sg-single-lead {
        font-size: 14px !important;
        margin-bottom: 8px !important;
    }

    .sg-quick-info-grid {
        gap: 8px !important;
        margin-bottom: 12px !important;
        grid-template-columns: 1fr 1fr !important;
    }

    .sg-quick-info-card {
        padding: 10px !important;
    }

    .sg-quick-info-card__label {
        font-size: 9px !important;
    }

    .sg-quick-info-card__value {
        font-size: 13px !important;
    }

    .sg-form,
    .sg-form--booking {
        padding: 14px 12px !important;
        border-radius: 14px !important;
    }

    .sg-field input,
    .sg-field select,
    .sg-field textarea,
    .sb-field input,
    .sb-field select,
    .sb-field textarea {
        width: 100% !important;
        min-height: 44px !important;
        font-size: 16px !important;
    }

    .sg-booking-lead--compact,
    .sg-form-intro--compact {
        font-size: 14px !important;
        line-height: 1.45 !important;
        margin: 0 0 12px !important;
        color: var(--sg-muted, #5a6d5c) !important;
    }

    .sg-single-hero-cta .sg-btn-lg {
        min-height: 44px !important;
        padding: 10px 14px !important;
        font-size: 14px !important;
    }

    .sg-single-booking {
        margin-top: 20px !important;
        padding-top: 16px !important;
    }

    .sg-booking-panel--card {
        padding: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
    }

    .sg-booking-panel .sg-subtitle {
        font-size: 1.15rem !important;
        margin-bottom: 6px !important;
    }

    .sg-form-fieldset {
        margin-bottom: 16px !important;
    }

    .sg-form-fieldset legend {
        font-size: 15px !important;
        margin-bottom: 8px !important;
    }

    .sg-fieldset-note,
    .sg-field-hint--short {
        font-size: 13px !important;
        line-height: 1.4 !important;
        margin: 0 0 8px !important;
        color: var(--sg-muted, #5a6d5c) !important;
    }

    .sg-alert--caparra {
        padding: 10px 12px !important;
        font-size: 13px !important;
        margin-bottom: 12px !important;
    }

    .sg-fascia-options {
        gap: 8px !important;
    }

    .sg-fascia-option {
        padding: 10px 12px !important;
        min-height: 0 !important;
        font-size: 14px !important;
    }

    .sg-fascia-option input {
        width: 18px !important;
        height: 18px !important;
        min-height: 0 !important;
        margin-top: 2px !important;
    }

    .sg-form-actions--stack .sg-btn {
        min-height: 44px !important;
        padding: 10px 14px !important;
        font-size: 15px !important;
    }

    .sg-form-actions--stack [data-sanmi-booking-preview] {
        display: none !important;
    }

    .sg-field-check--privacy {
        max-width: 100% !important;
        overflow: hidden !important;
    }

    .sg-check-label--privacy {
        display: flex !important;
        align-items: flex-start !important;
        gap: 10px !important;
        max-width: 100% !important;
        font-size: 14px !important;
        line-height: 1.45 !important;
        font-weight: 600 !important;
        word-break: break-word !important;
        overflow-wrap: anywhere !important;
    }

    .sg-check-label--privacy input {
        flex-shrink: 0 !important;
        width: 18px !important;
        height: 18px !important;
        min-height: 0 !important;
        margin-top: 2px !important;
    }

    .sg-check-label__text {
        min-width: 0 !important;
        flex: 1 1 auto !important;
    }

    .sg-check-label--privacy a {
        word-break: break-word !important;
    }
}

/* ============================================================
   SETTIMANE VERDI + DETTAGLIO CAMPO
   ============================================================ */
@media (max-width: 782px) {
    .sb-wrap--settimane #programmi-settimane-verdi {
        padding-top: 12px !important;
        padding-bottom: 20px !important;
    }

    .sb-wrap--settimane #programmi-settimane-verdi .sb-section-head {
        margin-bottom: 12px !important;
    }

    .sb-wrap--settimane #programmi-settimane-verdi .sb-section-head .sb-title {
        font-size: clamp(20px, 5vw, 26px) !important;
    }

    .sb-wrap--settimane .sg-camps-grid,
    .sb-wrap--settimane .sg-events.sg-camps-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
    }

    .sb-wrap--settimane .sg-card,
    .sb-wrap--camp-detail .sg-card {
        border-radius: 14px !important;
        width: 100%;
        max-width: 100%;
    }

    .sb-wrap--settimane .sg-card .sg-content,
    .sb-wrap--camp-detail .sg-card .sg-content {
        padding: 12px 14px 14px !important;
    }

    .sb-wrap--settimane .sg-card h3,
    .sb-wrap--camp-detail .sg-card h3 {
        font-size: 1rem !important;
        margin-bottom: 4px !important;
    }

    .sb-wrap--settimane .sg-card .sg-desc {
        font-size: 13px !important;
        margin-bottom: 8px !important;
    }

    .sb-wrap--settimane .sg-card .sg-btn,
    .sb-wrap--camp-detail .sg-card .sg-btn {
        width: 100%;
        justify-content: center;
        min-height: 44px;
    }

    .sb-wrap--settimane .sb-accordion__item {
        border-radius: 12px !important;
    }

    .sb-wrap--settimane .sb-accordion__summary {
        padding: 12px 14px !important;
        font-size: 14px !important;
    }

    .sb-wrap--camp-detail .sg-camp-single .sg-section {
        padding-top: 16px !important;
        padding-bottom: 20px !important;
    }

    .sb-wrap--camp-detail .sg-weeks-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        max-width: 100%;
    }

    .sb-wrap--camp-detail .sg-form--camp-enrollment {
        padding: 14px 12px !important;
    }

    .sb-wrap--camp-detail .sg-period-cards,
    .sb-wrap--settimane .sg-period-cards {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .sb-wrap--camp-detail .sg-period-card__body,
    .sb-wrap--settimane .sg-period-card__body {
        padding: 12px 14px 14px !important;
    }

    .sb-wrap--camp-detail .sg-period-card__title {
        font-size: 15px !important;
    }

    .sb-wrap--camp-detail .sg-period-card__input {
        width: 18px !important;
        height: 18px !important;
    }

    .sb-wrap--settimane .sb-settimane-cta__links {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .sb-wrap--settimane .sb-settimane-cta__links .sb-btn {
        width: 100% !important;
        min-height: 44px !important;
    }

    .sb-wrap--settimane #settimane-come-funziona .sb-steps-grid {
        gap: 10px !important;
    }
}

/* ============================================================
   FATTORIA DIDATTICA
   ============================================================ */
@media (max-width: 782px) {
    .sb-wrap--fattoria .sb-audience-grid {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }

    .sb-wrap--fattoria .sb-audience-card {
        padding: 12px 14px !important;
        text-align: left !important;
    }

    .sb-wrap--fattoria .sb-grid-2 {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .sb-wrap--fattoria .sb-media-wrap {
        min-height: 180px !important;
        border-radius: 14px !important;
    }

    .sb-wrap--fattoria .sb-info-block .sb-lead {
        font-size: 14px !important;
    }

    .sb-wrap--fattoria .sb-info-list li {
        padding: 10px 12px !important;
        font-size: 14px !important;
    }

    .sb-wrap--fattoria .sb-linked-actions {
        flex-direction: column;
        gap: 8px;
    }

    .sb-wrap--fattoria .sb-linked-actions .sb-btn {
        width: 100%;
        justify-content: center;
        min-height: 44px;
    }
}

/* ============================================================
   CONTATTI + PRENOTA
   ============================================================ */
@media (max-width: 782px) {
    .sb-wrap--contatti .sb-recapiti-grid,
    .sb-wrap--contatti .sb-contact-two-col,
    .sb-wrap--contatti .sb-grid-2 {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .sb-wrap--contatti .sb-recapito-card {
        padding: 12px 14px !important;
    }

    .sb-wrap--contatti .sb-map iframe {
        width: 100% !important;
        min-height: 220px;
        border-radius: 14px;
    }

    .sb-wrap--contatti .sb-contact-form-wrap {
        max-width: none !important;
    }

    .sb-wrap--contatti .sb-form-grid {
        grid-template-columns: 1fr !important;
    }

    .sb-wrap--contatti .sb-contact-form .sb-btn {
        width: 100%;
        min-height: 44px;
        padding: 10px 14px;
        font-size: 15px;
    }

    .sb-wrap--prenota-hub .sb-booking-hub-grid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .sb-wrap--prenota-hub .sb-booking-hub-card {
        padding: 16px !important;
        border-radius: 14px !important;
    }

    .sb-wrap--prenota-hub .sb-booking-hub-card .sb-btn {
        width: 100%;
        min-height: 44px;
    }
}

/* ============================================================
   FOOTER MOBILE
   ============================================================ */
@media (max-width: 782px) {
    .sb-site-footer {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
        padding-left: 0 !important;
        padding-right: 0 !important;
        padding-top: 20px !important;
        padding-bottom: 20px !important;
        margin-top: 0 !important;
    }

    .sb-wrap .sb-section:last-of-type,
    .sb-wrap .sb-page-block:last-of-type {
        padding-bottom: 24px !important;
    }

    .sb-site-footer .sb-footer-grid,
    .sb-footer-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0 !important;
        max-width: 100% !important;
        width: 100% !important;
        padding: 0 14px 12px !important;
        margin: 0 auto 12px !important;
        box-sizing: border-box !important;
    }

    .sb-site-footer .sb-footer-brand,
    .sb-footer-brand {
        grid-template-columns: 72px minmax(0, 1fr) !important;
        column-gap: 12px !important;
        max-width: 100% !important;
        padding-bottom: 10px !important;
        margin-bottom: 0 !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
    }

    .sb-site-footer .sb-footer-text,
    .sb-footer-text {
        font-size: 14px !important;
        max-width: none !important;
        margin-bottom: 0 !important;
        line-height: 1.45 !important;
    }

    .sb-site-footer .sb-footer-brand-title,
    .sb-footer-brand-title {
        font-size: 18px !important;
        margin-bottom: 6px !important;
    }

    .sb-site-footer .sb-footer-logos--brand {
        margin-top: 8px !important;
    }

    .sb-site-footer .sb-footer-logos--brand .sb-footer-logos-inner {
        display: grid !important;
        grid-template-columns: 1fr auto 1fr !important;
        align-items: center !important;
        gap: 6px 8px !important;
        flex-wrap: nowrap !important;
        width: 100% !important;
    }

    .sb-site-footer .sb-footer-logos--brand .sb-footer-logo-item {
        max-width: none !important;
        padding: 3px 5px !important;
    }

    .sb-site-footer .sb-footer-logos--brand .sb-footer-logo-item--fattorie-didattiche {
        justify-self: start !important;
    }

    .sb-site-footer .sb-footer-logos--brand .sb-footer-logo-item--bio-ue {
        justify-self: center !important;
    }

    .sb-site-footer .sb-footer-logos--brand .sb-footer-logo-item--veneto-land {
        justify-self: end !important;
    }

    .sb-site-footer .sb-footer-logos--brand .sb-footer-logo-item--fattorie-didattiche .sb-footer-logo-img {
        max-height: 40px !important;
        max-width: min(120px, 100%) !important;
    }

    .sb-site-footer .sb-footer-logos--brand .sb-footer-logo-item--bio-ue .sb-footer-logo-img {
        max-height: 34px !important;
        max-width: min(72px, 100%) !important;
    }

    .sb-site-footer .sb-footer-logos--brand .sb-footer-logo-item--veneto-land .sb-footer-logo-img {
        max-height: 36px !important;
        max-width: min(110px, 100%) !important;
    }

    .sb-site-footer .sb-footer-col,
    .sb-footer-col {
        padding: 12px 0 !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    }

    .sb-site-footer .sb-footer-col--contacts {
        padding-top: 10px !important;
    }

    .sb-site-footer .sb-footer-col--explore {
        border-bottom: 0 !important;
        padding-bottom: 8px !important;
    }

    .sb-site-footer .sb-footer-title,
    .sb-footer-title {
        font-size: 15px !important;
        margin-bottom: 8px !important;
        letter-spacing: 0.02em !important;
    }

    .sb-site-footer .sb-footer-list,
    .sb-footer-list {
        display: flex !important;
        flex-direction: column !important;
        gap: 6px !important;
    }

    .sb-site-footer .sb-footer-list a,
    .sb-footer-list a {
        font-size: 14px !important;
        line-height: 1.4 !important;
        display: inline-block !important;
        padding: 2px 0 !important;
    }

    .sb-site-footer .sb-footer-sanmi-logo,
    .sb-footer-sanmi-logo {
        width: 72px !important;
        height: 72px !important;
        padding: 4px !important;
    }

    .sb-site-footer .sb-footer-bottom,
    .sb-footer-bottom {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 8px !important;
        padding: 12px 14px 0 !important;
        font-size: 13px !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}

/* ============================================================
   PULSANTI MOBILE GLOBALI
   ============================================================ */
@media (max-width: 782px) {
    .sb-wrap .sb-btn:not(.sb-home-quick-nav__item),
    .sb-wrap .sg-btn:not(.sg-card__link-details):not(.sanmi-row__link) {
        min-height: 40px;
        padding: 10px 14px;
        font-size: 14px;
        border-radius: 10px;
    }

    .sb-wrap .sg-btn-lg,
    .sb-wrap .sb-btn-lg {
        min-height: 44px;
        padding: 10px 16px;
        font-size: 15px;
    }
}
