/**
 * FENICEsito 2.9.144-dev — motore responsive globale pagine CMS.
 * Mobile-first, un solo contenuto con adattamento automatico e override per dispositivo.
 */

:root {
    --fenice-responsive-content-max: 1200px;
    --fenice-responsive-gutter-desktop: clamp(20px, 3vw, 40px);
    --fenice-responsive-gutter-tablet: 24px;
    --fenice-responsive-gutter-mobile: 16px;
    --fenice-responsive-gap: clamp(16px, 2.5vw, 32px);
}

/* Regole strutturali comuni: nessun elemento deve allargare la pagina. */
.cms-page,
.cms-page *,
.cms-visual-editor,
.cms-visual-editor * {
    box-sizing: border-box;
}

.cms-page__inner,
.cms-page__content {
    min-width: 0;
    width: 100%;
}

.cms-page__inner {
    max-width: min(100%, var(--fenice-page-content-width, var(--fenice-responsive-content-max)));
}

.cms-page__content > *,
.cms-builder-section,
.cms-builder-container,
.cms-builder-columns,
.cms-builder-column,
[data-cms-builder-block] {
    min-width: 0;
    max-width: 100%;
}

/* Media nativamente fluidi. */
.cms-page__content img,
.cms-page__content video,
.cms-page__content iframe,
.cms-page__content canvas,
.cms-page__content svg,
.cms-visual-editor img,
.cms-visual-editor video,
.cms-visual-editor iframe,
.cms-visual-editor canvas,
.cms-visual-editor svg {
    max-width: 100%;
}

.cms-page__content img,
.cms-page__content video,
.cms-visual-editor img,
.cms-visual-editor video {
    height: auto;
}

.cms-page__content audio,
.cms-visual-editor audio {
    width: min(100%, 720px);
    max-width: 100%;
}

.cms-builder-map iframe,
.cms-builder-embed iframe,
.cms-page__content iframe[data-provider],
.cms-visual-editor iframe[data-provider] {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    min-height: 260px;
}

/* Tipografia fluida di base. Gli override manuali restano possibili. */
.cms-page__content h2 { font-size: clamp(1.65rem, 3.2vw, 2.35rem); }
.cms-page__content h3 { font-size: clamp(1.4rem, 2.6vw, 1.9rem); }
.cms-page__content h4 { font-size: clamp(1.2rem, 2.1vw, 1.55rem); }
.cms-page__content h5 { font-size: clamp(1.05rem, 1.7vw, 1.3rem); }
.cms-page__content p,
.cms-page__content li,
.cms-page__content blockquote { overflow-wrap: anywhere; word-break: normal; }

/* Sezioni / contenitori del Page Builder. */
.cms-builder-section {
    width: 100%;
    margin-inline: auto;
}

.cms-builder-container {
    width: 100%;
    max-width: var(--fenice-responsive-content-max);
    margin-inline: auto;
}

/* Colonne: desktop usa la struttura scelta; tablet e mobile si adattano automaticamente. */
.cms-builder-columns {
    display: grid;
    width: 100%;
    align-items: start;
    gap: var(--cms-builder-gap, var(--fenice-responsive-gap));
}

.cms-builder-column {
    min-width: 0;
    width: 100%;
}

/* Tabelle: mai oltre il viewport; su schermi stretti scorrimento orizzontale sicuro. */
.cms-page__content table,
.cms-visual-editor table {
    max-width: 100%;
}

.cms-page__content table[data-cms-table-responsive="fit"] {
    table-layout: fixed;
    width: 100%;
}

.cms-page__content table[data-cms-table-responsive="fit"] th,
.cms-page__content table[data-cms-table-responsive="fit"] td {
    overflow-wrap: anywhere;
}

/* Gallerie e caroselli fluidi. */
.cms-builder-gallery {
    width: 100%;
    gap: var(--cms-gallery-gap, 12px);
}
.cms-builder-gallery figure { min-width: 0; margin: 0; }
.cms-builder-gallery img { width: 100%; height: auto; }
.cms-builder-carousel,
.cms-builder-carousel__track,
.cms-builder-carousel__slide { min-width: 0; max-width: 100%; }

/* Pulsanti: non possono uscire dal contenitore. */
.cms-builder-button,
.cms-page-button {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
}

/* Visibilità per dispositivo. */
@media (min-width: 1025px) {
    [data-cms-hide-desktop="1"] { display: none !important; }
}

@media (min-width: 641px) and (max-width: 1024px) {
    .cms-page { padding-inline: min(var(--fenice-page-side-padding, 24px), var(--fenice-responsive-gutter-tablet)); }
    [data-cms-hide-tablet="1"] { display: none !important; }

    .cms-builder-columns[data-cms-responsive-auto="1"],
    .cms-builder-columns:not([data-cms-responsive-auto]) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .cms-builder-columns[data-cms-stack-tablet="1"] {
        grid-template-columns: 1fr !important;
    }
    .cms-builder-columns[data-cms-stack-tablet="0"][data-cms-layout-columns="3"],
    .cms-builder-columns[data-cms-stack-tablet="0"][data-cms-layout-columns="4"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .cms-builder-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cms-builder-gallery[data-cms-gallery-columns="1"] { grid-template-columns: 1fr; }
    .cms-builder-gallery[data-cms-gallery-columns="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .cms-page {
        padding-inline: min(var(--fenice-page-side-padding, 20px), var(--fenice-responsive-gutter-mobile));
        padding-top: clamp(24px, 7vw, 42px);
        padding-bottom: clamp(30px, 8vw, 52px);
    }

    [data-cms-hide-mobile="1"] { display: none !important; }

    .cms-builder-columns,
    .cms-builder-columns[data-cms-responsive-auto="1"],
    .cms-builder-columns:not([data-cms-responsive-auto]),
    .cms-builder-columns[data-cms-stack-mobile="1"] {
        grid-template-columns: 1fr !important;
    }

    .cms-builder-columns[data-cms-stack-mobile="0"][data-cms-layout-columns="2"],
    .cms-builder-columns[data-cms-stack-mobile="0"][data-cms-layout-columns="1-2"],
    .cms-builder-columns[data-cms-stack-mobile="0"][data-cms-layout-columns="2-1"] {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .cms-builder-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cms-builder-gallery[data-cms-gallery-columns="1"] { grid-template-columns: 1fr; }

    .cms-page__content table,
    .cms-page__content table.cms-table {
        display: block;
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
        white-space: normal;
    }

    .cms-page__content table[data-cms-table-responsive="cards"] thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0,0,0,0);
        white-space: nowrap;
        border: 0;
    }
    .cms-page__content table[data-cms-table-responsive="cards"],
    .cms-page__content table[data-cms-table-responsive="cards"] tbody,
    .cms-page__content table[data-cms-table-responsive="cards"] tr,
    .cms-page__content table[data-cms-table-responsive="cards"] td {
        display: block;
        width: 100% !important;
    }
    .cms-page__content table[data-cms-table-responsive="cards"] tr {
        margin-bottom: 14px;
        border: 1px solid #d8e0e2;
        border-radius: 8px;
        overflow: hidden;
    }
    .cms-page__content table[data-cms-table-responsive="cards"] td {
        border-width: 0 0 1px !important;
    }
    .cms-page__content table[data-cms-table-responsive="cards"] td:last-child {
        border-bottom-width: 0 !important;
    }

    .cms-builder-button,
    .cms-page-button {
        min-height: 44px;
    }
}

/* FENICE 2.13 — anteprima editor: viewport coerenti con i breakpoint FASE 24. */
.cms-editor-canvas[data-cms-preview-device="desktop"] { width: 100%; max-width: 1200px; margin-inline: auto; }
.cms-editor-canvas[data-cms-preview-device="tablet"] { width: min(100%, 820px); max-width: 820px; margin-inline: auto; }
.cms-editor-canvas[data-cms-preview-device="mobile"] { width: min(100%, 390px); max-width: 390px; margin-inline: auto; }

.cms-editor-canvas[data-cms-preview-device="tablet"] .cms-builder-columns[data-cms-responsive-auto="1"],
.cms-editor-canvas[data-cms-preview-device="tablet"] .cms-builder-columns:not([data-cms-responsive-auto]) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.cms-editor-canvas[data-cms-preview-device="tablet"] .cms-builder-columns[data-cms-stack-tablet="1"] {
    grid-template-columns: 1fr !important;
}
.cms-editor-canvas[data-cms-preview-device="mobile"] .cms-builder-columns {
    grid-template-columns: 1fr !important;
}
.cms-editor-canvas[data-cms-preview-device="mobile"] .cms-builder-columns[data-cms-stack-mobile="0"][data-cms-layout-columns="2"],
.cms-editor-canvas[data-cms-preview-device="mobile"] .cms-builder-columns[data-cms-stack-mobile="0"][data-cms-layout-columns="1-2"],
.cms-editor-canvas[data-cms-preview-device="mobile"] .cms-builder-columns[data-cms-stack-mobile="0"][data-cms-layout-columns="2-1"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.cms-editor-canvas[data-cms-preview-device="mobile"] table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
}

/* FENICEsito 2.9.205-dev — modello Larghezza piena responsive. */
body:not(.admin-shell-body) .cms-page.cms-page--full-responsive {
    width: 100%;
    max-width: none;
    padding-right: var(--fenice-page-side-padding, 24px);
    padding-left: var(--fenice-page-side-padding, 24px);
}
body:not(.admin-shell-body) .cms-page.cms-page--full-responsive .cms-page__inner,
body:not(.admin-shell-body) .cms-page.cms-page--full-responsive .cms-page__content {
    width: 100%;
    max-width: none;
}
body:not(.admin-shell-body) .cms-page.cms-page--full-responsive .cms-builder-container {
    width: 100%;
    max-width: none;
}
body:not(.admin-shell-body) .cms-page.cms-page--full-responsive :where(img, video, iframe, canvas, svg) {
    max-width: 100%;
}
body:not(.admin-shell-body) .cms-page.cms-page--full-responsive :where(img, video) {
    height: auto;
}
body:not(.admin-shell-body) .cms-page.cms-page--full-responsive :where(table, .cms-table) {
    max-width: 100%;
}

@media (max-width: 1024px) {
    body:not(.admin-shell-body) .cms-page.cms-page--full-responsive {
        padding-right: var(--fenice-page-tablet-padding, 20px) !important;
        padding-left: var(--fenice-page-tablet-padding, 20px) !important;
    }
}

@media (max-width: 640px) {
    body:not(.admin-shell-body) .cms-page.cms-page--full-responsive {
        padding-right: var(--fenice-page-mobile-padding, 12px) !important;
        padding-left: var(--fenice-page-mobile-padding, 12px) !important;
    }

    body:not(.admin-shell-body) .cms-page.cms-page--full-responsive .cms-builder-columns {
        grid-template-columns: 1fr !important;
    }

    body:not(.admin-shell-body) .cms-page.cms-page--full-responsive :where(table, .cms-table) {
        width: 100% !important;
        overflow-x: auto;
    }
}

