.sito-pubblico {
    --sito-colore-bg: #fbf8f2;
    --sito-colore-bg-soft: #f6ede1;
    --sito-colore-surface: #ffffff;
    --sito-colore-surface-high: #fffaf2;
    --sito-colore-surface-lowest: #efe4d5;
    --sito-colore-testo: #2b2418;
    --sito-colore-testo-soft: #6b6356;
    --sito-colore-outline: #c6b89c;
    --sito-colore-outline-soft: #eadfcd;
    --sito-colore-oro: #c89b3c;
    --sito-colore-oro-forte: #a97817;
    --sito-colore-oro-ombra: rgba(200, 155, 60, 0.22);
    --sito-colore-nero-oro: #281b07;
    --sito-radius-xs: 4px;
    --sito-radius-sm: 6px;
    --sito-radius-md: 8px;
    --sito-radius-lg: 12px;
    --sito-radius-xl: 18px;
    --sito-space-1: 8px;
    --sito-space-2: 16px;
    --sito-space-3: 24px;
    --sito-space-4: 32px;
    --sito-space-5: 48px;
    --sito-space-6: 64px;
    --sito-space-7: 80px;
    --sito-space-8: 104px;
    --sito-container-max: 1200px;
    --sito-gutter: 24px;
    --sito-gutter-mobile: 20px;
    --sito-header-z: 60;
    --sito-grain-z: 5;
    --sito-content-z: 10;
    color: var(--sito-colore-testo);
    background:
        radial-gradient(circle at top left, rgba(200, 155, 60, 0.12), transparent 30%),
        linear-gradient(180deg, #fffdf9 0%, var(--sito-colore-bg-soft) 48%, var(--sito-colore-surface-lowest) 100%);
    position: relative;
    isolation: isolate;
    overflow-x: clip;
}

.sito-pubblico .contenitore {
    width: min(var(--sito-container-max), calc(100% - (var(--sito-gutter) * 2)));
}

.sito-pubblico a {
    text-decoration: none;
}

.sito-pubblico p,
.sito-pubblico li {
    color: var(--sito-colore-testo-soft);
}

.sito-pubblico h1,
.sito-pubblico h2,
.sito-pubblico h3 {
    margin: 0;
    color: var(--sito-colore-testo);
}

.grain-overlay {
    z-index: var(--sito-grain-z);
}

.sito-pubblico.layout-pubblico .grain-overlay {
    opacity: 0.04;
    mix-blend-mode: soft-light;
}

.sfondo-sito-dinamico {
    position: fixed;
    inset: -10%;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

.sfondo-sito-dinamico-livello {
    position: absolute;
    display: block;
    border-radius: 999px;
    transform: translate3d(0, 0, 0);
    will-change: transform, opacity;
}

.sfondo-sito-dinamico-livello-a {
    top: -4%;
    right: -8%;
    width: min(52vw, 760px);
    height: min(52vw, 760px);
    opacity: 0.78;
    filter: blur(14px);
    background:
        radial-gradient(circle at 30% 34%, rgba(212, 170, 82, 0.44) 0%, rgba(212, 170, 82, 0.18) 26%, transparent 62%),
        radial-gradient(circle at 64% 60%, rgba(255, 251, 240, 0.8) 0%, rgba(255, 251, 240, 0.22) 24%, transparent 58%),
        conic-gradient(from 220deg at 50% 50%, rgba(255, 255, 255, 0) 0deg, rgba(214, 177, 100, 0.18) 72deg, rgba(255, 255, 255, 0) 180deg, rgba(255, 243, 214, 0.12) 280deg, rgba(255, 255, 255, 0) 360deg);
    animation: sfondoSitoDerivaA 24s cubic-bezier(0.16, 1, 0.3, 1) infinite alternate;
}

.sfondo-sito-dinamico-livello-b {
    left: -12%;
    top: 30%;
    width: min(44vw, 620px);
    height: min(44vw, 620px);
    opacity: 0.62;
    filter: blur(18px);
    background:
        radial-gradient(circle at 46% 44%, rgba(255, 255, 255, 0.72) 0%, rgba(255, 255, 255, 0.18) 24%, transparent 56%),
        radial-gradient(circle at 58% 58%, rgba(224, 193, 123, 0.26) 0%, rgba(224, 193, 123, 0.12) 28%, transparent 62%);
    animation: sfondoSitoDerivaB 28s cubic-bezier(0.16, 1, 0.3, 1) infinite alternate;
}

.sfondo-sito-dinamico-livello-c {
    left: 14%;
    top: 18%;
    width: 72vw;
    height: 72vh;
    opacity: 0.28;
    filter: blur(10px);
    background:
        radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.48) 0%, rgba(255, 255, 255, 0) 52%),
        linear-gradient(120deg, rgba(255, 255, 255, 0) 0%, rgba(215, 184, 115, 0.08) 34%, rgba(255, 255, 255, 0.22) 50%, rgba(215, 184, 115, 0.08) 66%, rgba(255, 255, 255, 0) 100%);
    mask-image: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.94) 22%, rgba(0, 0, 0, 0.94) 78%, transparent 100%);
    animation: sfondoSitoVelo 18s cubic-bezier(0.16, 1, 0.3, 1) infinite alternate;
}

.testata-sito,
.contenuto-sito,
.footer-sito {
    position: relative;
    z-index: var(--sito-content-z);
}

.testata-sito {
    position: sticky;
    top: 0;
    z-index: var(--sito-header-z);
    padding: 14px 0;
    background: linear-gradient(180deg, rgba(255, 251, 245, 0.96), rgba(255, 251, 245, 0.84));
    border-bottom: 1px solid rgba(198, 184, 156, 0.44);
    backdrop-filter: blur(16px);
}

.barra-sito {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--sito-space-3);
    min-height: 72px;
    padding: 10px var(--sito-space-3);
    border: 1px solid rgba(198, 184, 156, 0.34);
    border-radius: var(--sito-radius-lg);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(251, 246, 238, 0.94));
    box-shadow: 0 12px 36px rgba(92, 72, 27, 0.12);
}

.marchio-sito {
    display: inline-flex;
    align-items: center;
}

.marchio-sito img {
    width: 80px;
}

.bottone-menu-mobile {
    display: none;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border-radius: var(--sito-radius-sm);
    border: 1px solid rgba(198, 184, 156, 0.42);
    background: rgba(255, 255, 255, 0.92);
    color: var(--sito-colore-testo);
    cursor: pointer;
}

.bottone-menu-mobile i {
    font-size: 1.15rem;
}

.navigazione-sito-wrap {
    min-width: 0;
}

.navigazione-sito {
    justify-content: center;
    align-items: center;
    gap: 8px;
}

.navigazione-sito a {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 999px;
    font-size: 0.8rem;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--sito-colore-testo-soft);
    border: 1px solid transparent;
    transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.navigazione-sito a:hover,
.navigazione-sito a.is-attiva {
    color: var(--sito-colore-oro-forte);
    border-color: rgba(200, 155, 60, 0.22);
    background: rgba(200, 155, 60, 0.09);
}

.azioni-testata-sito {
    align-items: center;
    gap: 10px;
}

.bottone-sito {
    min-height: 40px;
    padding: 0 16px;
    border-radius: var(--sito-radius-sm);
    font-size: 0.76rem;
    line-height: 1;
    letter-spacing: 0.12em;
}

.bottone-sito-principale {
    box-shadow: 0 10px 24px var(--sito-colore-oro-ombra);
}

.bottone-sito-secondario {
    border-color: rgba(200, 155, 60, 0.36);
    color: var(--sito-colore-oro-forte);
    background: rgba(255, 255, 255, 0.84);
}

.bottone-sito-ghost {
    color: var(--sito-colore-testo);
    background: rgba(255, 255, 255, 0.86);
}

.contenuto-sito {
    padding-top: 50px;
}

.contenuto-sito > section:not(.hero-sito):not(.hero-pagina-interna):not(.fascia-scura):not(.testata-sezione-prenota) {
    padding-top: var(--sito-space-7);
    padding-bottom: var(--sito-space-7);
}

.hero-sito {
    min-height: min(900px, calc(100svh - 10px));
    padding-top: 0;
    isolation: isolate;
    margin-top: -50px;
}

.hero-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.8s ease;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.hero-slide.attivo {
    opacity: 1;
}

.hero-slide-track,
.hero-overlay,
.hero-gradiente,
.hero-indicatori {
    z-index: 0;
}

.hero-contenuto,
.hero-testo {
    position: relative;
    z-index: 1;
}

.hero-testo {
    max-width: 680px;
    padding: clamp(152px, 18vw, 212px) 0 clamp(112px, 14vw, 160px);
}

.hero-testo .eyebrow-sito {
    margin-bottom: 18px;
}

.hero-testo h1,
.hero-pagina-interna h1 {
    font-size: clamp(3.25rem, 7vw, 5.4rem);
    line-height: 0.94;
    max-width: 9ch;
}

.hero-testo,
.hero-testo h1,
.hero-testo p,
.hero-pagina-interna h1,
.hero-pagina-interna p {
    color: #fff8ef;
}

.hero-testo .eyebrow-sito {
    color: #f1cf7a;
}

.hero-testo p {
    max-width: 52ch;
    margin-top: 20px;
    font-size: 1.05rem;
}

.hero-azioni {
    gap: 12px;
    margin-top: 30px;
}

.hero-indicatori {
    bottom: 34px;
}

.callout-marmo-wrapper {
    margin-top: clamp(-38px, -5vw, -64px);
    margin-bottom: 0;
    z-index: 15;
}

.callout-marmo {
    padding: 26px 28px;
    gap: 18px;
    border-radius: var(--sito-radius-md);
    border: 1px solid rgba(198, 184, 156, 0.38);
    box-shadow: 0 22px 48px rgba(92, 72, 27, 0.14);
}

.callout-marmo h2 {
    font-size: clamp(1.7rem, 3vw, 2.35rem);
}

.callout-marmo-icona,
.callout-freccia,
.firma-icona {
    width: 52px;
    height: 52px;
}

.callout-marmo-icona i,
.callout-freccia i,
.firma-icona i,
.card-servizio-icona i {
    font-size: 1.25rem;
}

.sezione-editoriale,
.sezione-doppia-finale,
.griglia-storytelling,
.griglia-contatti-pagina,
.sezione-galleria-home {
    padding-block: 0;
}

.sezione-editoriale,
.griglia-storytelling,
.griglia-team-home,
.sezione-doppia-finale,
.griglia-contatti-pagina {
    align-items: start;
}

.sezione-editoriale {
    gap: clamp(28px, 4vw, 56px);
}

.colonna-firma {
    max-width: 420px;
}

.colonna-firma h2,
.titolo-sezione-laterale h2,
.titolo-sezione-centro h2,
.box-orari h2,
.box-contatto-luce h2,
.scheda-contatto-sito h2,
.storytelling-testo h2 {
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.04;
}

.colonna-testo p,
.storytelling-testo p,
.box-contatto-luce p,
.scheda-contatto-sito p,
.footer-marchio p {
    margin: 0;
    line-height: 1.72;
}

.fascia-scura {
    padding: var(--sito-space-7) 0;
    background: linear-gradient(180deg, rgba(248, 241, 230, 0.92), rgba(243, 232, 214, 0.92));
    border-top: 1px solid rgba(198, 184, 156, 0.32);
    border-bottom: 1px solid rgba(198, 184, 156, 0.32);
}

.titolo-sezione-centro,
.titolo-sezione-laterale {
    margin-bottom: 28px;
}

.griglia-servizi-sito {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.card-servizio-sito,
.card-team,
.box-orari,
.scheda-contatto-sito,
.box-contatto-luce,
.blocco-form,
.scheda {
    border-radius: var(--sito-radius-md);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(252, 246, 238, 0.96));
    border: 1px solid rgba(198, 184, 156, 0.38);
    box-shadow: 0 18px 44px rgba(92, 72, 27, 0.1);
}

.card-servizio-sito {
    min-height: 100%;
    padding: 28px 22px 24px;
}

.card-servizio-icona {
    width: 42px;
    height: 42px;
    margin: 0 auto 20px;
    border: 1px solid rgba(200, 155, 60, 0.5);
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--sito-colore-oro);
    background: rgba(200, 155, 60, 0.08);
}

.card-servizio-sito h3 {
    font-family: "Hanken Grotesk", sans-serif;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.card-servizio-sito p {
    font-size: 0.95rem;
}

.sezione-galleria-home .titolo-sezione-centro {
    margin-bottom: 26px;
}

.griglia-galleria-home {
    gap: 16px;
    align-items: stretch;
}

.card-galleria-home,
.storytelling-immagine {
    border-radius: var(--sito-radius-md);
}

.card-galleria-home {
    min-height: 360px;
    border: 1px solid rgba(198, 184, 156, 0.32);
    background: rgba(255, 255, 255, 0.92);
}

.card-galleria-home.verticale {
    min-height: 436px;
}

.griglia-team-home {
    gap: clamp(24px, 4vw, 48px);
}

.griglia-team-card {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.card-team {
    display: flex;
    flex-direction: column;
}

.card-team img {
    aspect-ratio: 0.82;
}

.card-team-testo {
    padding: 16px 16px 18px;
}

.card-team-testo p {
    font-size: 0.92rem;
}

.box-orari,
.box-contatto-luce,
.scheda-contatto-sito,
.blocco-form,
.scheda {
    padding: clamp(24px, 3vw, 34px);
}

.sezione-doppia-finale > * {
    min-width: 0;
}

.tabella-orari-sito {
    margin-top: 18px;
}

.riga-orari-sito span:last-child {
    text-align: right;
}

.placeholder-mappa {
    overflow: hidden;
}

.placeholder-mappa iframe {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 450px;
}

.hero-pagina-interna {
    margin-top: -50px;
    padding: clamp(132px, 16vw, 170px) 0 clamp(56px, 7vw, 84px);
    background-image:
        linear-gradient(180deg, rgba(32, 23, 8, 0.72), rgba(32, 23, 8, 0.6)),
        radial-gradient(circle at top left, rgba(200, 155, 60, 0.14), transparent 36%),
        var(--hero-interno-bg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.hero-pagina-interna p {
    margin-top: 18px;
    max-width: 58ch;
}

.storytelling-immagine {
    min-height: 500px;
}

.lista-valori-sito {
    margin-top: 24px;
}

.footer-sito {
    margin-top: var(--sito-space-7);
    padding: var(--sito-space-6) 0 var(--sito-space-3);
    background: linear-gradient(180deg, rgba(255, 251, 245, 0.96), rgba(243, 232, 214, 0.96));
    border-top: 1px solid rgba(198, 184, 156, 0.38);
}

.footer-sito-griglia {
    gap: 24px;
}

.footer-link-lista,
.stack-link-contatto {
    gap: 10px;
    margin-top: 30px;
}

.footer-sotto {
    margin-top: 24px;
    padding-top: 24px;
}

.sito-pubblico .blocco-form,
.sito-pubblico .scheda {
    max-width: min(760px, 100%);
    margin-inline: auto;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(252, 246, 238, 0.96));
    border: 1px solid rgba(198, 184, 156, 0.38);
    box-shadow: 0 18px 44px rgba(92, 72, 27, 0.12);
}

.sito-pubblico .testata-sezione {
    width: min(760px, calc(100% - (var(--sito-gutter) * 2)));
    margin: 0 auto 20px;
}

.sito-pubblico .contenuto-sito > .testata-sezione-prenota {
    padding: 0px;
}

.sito-pubblico .scheda > h2,
.sito-pubblico .blocco-form > h1,
.sito-pubblico .testata-sezione h1 {
    margin-bottom: 10px;
}

.sito-pubblico .griglia-form {
    gap: 16px;
}

.sito-pubblico label {
    font-size: 0.88rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--sito-colore-testo-soft);
}

.sito-pubblico input,
.sito-pubblico select,
.sito-pubblico textarea {
    border-radius: var(--sito-radius-sm);
    padding: 14px 16px;
    border: 1px solid rgba(198, 184, 156, 0.42);
    background: rgba(255, 255, 255, 0.96);
    color: var(--sito-colore-testo);
}

.sito-pubblico input:focus,
.sito-pubblico select:focus,
.sito-pubblico textarea:focus {
    outline: 2px solid rgba(200, 155, 60, 0.18);
    outline-offset: 1px;
    border-color: rgba(200, 155, 60, 0.42);
    background: #ffffff;
}

.sito-pubblico .bottone {
    border-radius: var(--sito-radius-sm);
    min-height: 44px;
    padding: 0 18px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.78rem;
    align-content: center;
}

.sito-pubblico .bottone-principale {
    background: linear-gradient(135deg, var(--sito-colore-oro) 0%, var(--sito-colore-oro-forte) 100%);
    color: var(--sito-colore-nero-oro);
}

.sito-pubblico .bottone-secondario {
    background: rgba(255, 255, 255, 0.82);
    color: var(--sito-colore-oro-forte);
    border: 1px solid rgba(200, 155, 60, 0.3);
}

.sito-pubblico .riga-check {
    grid-template-columns: 20px 1fr;
    align-items: center;
    gap: 12px;
}

.sito-pubblico .riga-check input {
    padding: 0;
    border: 1px solid rgba(198, 184, 156, 0.48);
    width: 18px;
    height: 18px;
    border-radius: 4px;
    background: transparent;
}

.sito-pubblico .griglia-operatori {
    gap: 14px;
}

.sito-pubblico .card-operatore,
.sito-pubblico .slot-disponibile {
    padding: 18px 16px;
    border-radius: var(--sito-radius-md);
    color: var(--sito-colore-testo);
}

.sito-pubblico .slot-non-disponibile {
    padding: 18px 16px;
    border-radius: var(--sito-radius-md);
    color: rgba(43, 36, 24, 0.46);
}

.sito-pubblico .card-operatore strong {
    font-size: 0.98rem;
}

.sito-pubblico .card-operatore-foto {
    width: 58px;
    height: 58px;
    border-color: rgba(212, 170, 82, 0.28);
}

.sito-pubblico .lista-prenotazioni {
    gap: 14px;
}

.sito-pubblico .card-prenotazione {
    border-radius: var(--sito-radius-md);
    padding: 18px;
    align-items: flex-start;
}

.sito-pubblico .messaggio {
    width: min(760px, calc(100% - (var(--sito-gutter) * 2)));
    margin-inline: auto;
}

.sito-pubblico .dark {
    color: var(--sito-colore-bg);
}

.footer-marchio img {
    width: 174px;
    display: block;
    margin-bottom: 14px;
}

.footer-marchio p,
.footer-sotto,
.footer-link-lista span {
    color: var(--sito-colore-testo-soft);
}

.footer-titolo {
    color: var(--sito-colore-oro-forte);
}

.footer-sotto {
    border-top: 1px solid rgba(198, 184, 156, 0.32);
}

@media (max-width: 1120px) {
    .barra-sito {
        grid-template-columns: auto 1fr;
        grid-template-areas:
            "logo azioni"
            "nav nav";
        gap: 16px;
        padding: 16px 18px;
    }

    .marchio-sito {
        grid-area: logo;
    }

    .navigazione-sito-wrap {
        grid-area: nav;
    }

    .azioni-testata-sito {
        grid-area: azioni;
        justify-content: flex-end;
        flex-wrap: wrap;
    }

    .griglia-servizi-sito,
    .griglia-team-card,
    .team-card-larga {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .griglia-team-home,
    .sezione-editoriale,
    .griglia-storytelling,
    .griglia-contatti-pagina,
    .sezione-doppia-finale,
    .footer-sito-griglia {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 820px) {
    .sito-pubblico .contenitore {
        width: min(var(--sito-container-max), calc(100% - (var(--sito-gutter-mobile) * 2)));
    }

    .testata-sito {
        padding: 8px 0;
    }

    .barra-sito {
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-areas: "logo azioni";
        justify-items: stretch;
        gap: 12px;
        min-height: auto;
        padding: 10px 12px;
    }

    .marchio-sito {
        justify-content: flex-start;
    }

    .marchio-sito img {
        width: 62px;
    }

    .azioni-testata-sito {
        justify-content: flex-end;
        flex-direction: row;
        flex-wrap: nowrap;
        min-width: 0;
    }

    .azione-desktop,
    .navigazione-sito-wrap {
        display: none;
    }

    .azioni-testata-sito .bottone-sito {
        width: auto;
        padding-inline: 12px;
        font-size: 0.72rem;
    }

    .bottone-menu-mobile {
        display: inline-flex;
        flex: 0 0 auto;
    }

    .menu-mobile-sito {
        position: fixed;
        inset: 132px 0 auto;
        z-index: calc(var(--sito-header-z) - 1);
        padding: 0 0 16px;
        background: linear-gradient(180deg, rgba(255, 250, 244, 0.94), rgba(255, 250, 244, 0));
        opacity: 0;
        pointer-events: none;
        transform: translateY(-8px);
        transition: opacity 0.2s ease, transform 0.2s ease;
    }

    .menu-mobile-sito.is-aperto {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

    .menu-mobile-sito-pannello {
        padding: 16px;
        border-radius: var(--sito-radius-lg);
        border: 1px solid rgba(198, 184, 156, 0.3);
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(250, 243, 232, 0.96));
        box-shadow: 0 18px 40px rgba(92, 72, 27, 0.14);
    }

    .menu-mobile-sito-nav {
        display: grid;
        gap: 8px;
    }

    .menu-mobile-sito-nav a {
        display: flex;
        align-items: center;
        min-height: 44px;
        padding: 0 14px;
        border-radius: var(--sito-radius-sm);
        color: var(--sito-colore-testo-soft);
        text-transform: uppercase;
        letter-spacing: 0.1em;
        font-size: 0.78rem;
        border: 1px solid rgba(198, 184, 156, 0.26);
        background: rgba(255, 255, 255, 0.88);
    }

    .menu-mobile-sito-nav a.is-attiva {
        color: var(--sito-colore-oro-forte);
        border-color: rgba(200, 155, 60, 0.3);
        background: rgba(200, 155, 60, 0.1);
    }

    .contenuto-sito > section:not(.hero-sito):not(.hero-pagina-interna):not(.fascia-scura):not(.testata-sezione-prenota) {
        padding-top: var(--sito-space-6);
        padding-bottom: var(--sito-space-6);
    }

    .hero-sito {
        min-height: auto;
    }

    .hero-gradiente {
        background: linear-gradient(180deg, rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.4) 48%, rgba(0, 0, 0, 0.72) 100%);
    }

    .hero-testo {
        padding: 128px 0 104px;
        max-width: none;
    }

    .hero-testo h1,
    .hero-pagina-interna h1 {
        max-width: none;
        font-size: clamp(2.4rem, 12vw, 3.5rem);
    }

    .callout-marmo {
        grid-template-columns: 1fr;
        text-align: left;
    }

    .callout-freccia {
        justify-self: start;
    }

    .griglia-servizi-sito,
    .griglia-galleria-home,
    .griglia-team-card,
    .team-card-larga {
        grid-template-columns: 1fr;
    }

    .card-galleria-home,
    .card-galleria-home.verticale,
    .storytelling-immagine {
        min-height: 320px;
    }

    .box-orari,
    .scheda-contatto-sito {
        padding: 20px;
    }

    .tabella-orari-sito {
        font-size: 0.88rem;
    }

    .placeholder-mappa iframe {
        height: 200px;
    }

    .riga-orari-sito {
        flex-direction: column;
        gap: 6px;
    }

    .riga-orari-sito span {
        line-height: 1.4;
    }

    .riga-orari-sito span:last-child {
        text-align: left;
    }

    .footer-sotto {
        flex-direction: column;
    }

    .sito-pubblico .testata-sezione,
    .sito-pubblico .card-prenotazione {
        flex-direction: column;
        align-items: flex-start;
    }
}

html[data-theme="dark"] .sito-pubblico {
    --sito-colore-bg: #131313;
    --sito-colore-bg-soft: #1c1b1b;
    --sito-colore-surface: #201f1f;
    --sito-colore-surface-high: #2a2a2a;
    --sito-colore-surface-lowest: #0e0e0e;
    --sito-colore-testo: #ffffff;
    --sito-colore-testo-soft: #d0c5af;
    --sito-colore-outline: #99907c;
    --sito-colore-outline-soft: #4d4635;
    --sito-colore-oro: #f2ca50;
    --sito-colore-oro-forte: #d4af37;
    --sito-colore-oro-ombra: rgba(233, 195, 73, 0.18);
    --sito-colore-nero-oro: #3c2f00;
    background:
        radial-gradient(circle at top left, rgba(242, 202, 80, 0.09), transparent 28%),
        linear-gradient(180deg, var(--sito-colore-bg) 0%, var(--sito-colore-bg-soft) 46%, var(--sito-colore-surface-lowest) 100%);
}

html[data-theme="dark"] .sfondo-sito-dinamico-livello-a {
    opacity: 0.66;
    background:
        radial-gradient(circle at 30% 34%, rgba(242, 202, 80, 0.22) 0%, rgba(242, 202, 80, 0.08) 26%, transparent 62%),
        radial-gradient(circle at 64% 60%, rgba(255, 230, 173, 0.16) 0%, rgba(255, 230, 173, 0.05) 24%, transparent 58%),
        conic-gradient(from 220deg at 50% 50%, rgba(255, 255, 255, 0) 0deg, rgba(242, 202, 80, 0.12) 72deg, rgba(255, 255, 255, 0) 180deg, rgba(242, 202, 80, 0.08) 280deg, rgba(255, 255, 255, 0) 360deg);
}

html[data-theme="dark"] .sfondo-sito-dinamico-livello-b {
    opacity: 0.5;
    background:
        radial-gradient(circle at 46% 44%, rgba(255, 240, 199, 0.12) 0%, rgba(255, 240, 199, 0.02) 24%, transparent 56%),
        radial-gradient(circle at 58% 58%, rgba(186, 140, 44, 0.22) 0%, rgba(186, 140, 44, 0.08) 28%, transparent 62%);
}

html[data-theme="dark"] .sfondo-sito-dinamico-livello-c {
    opacity: 0.2;
    background:
        radial-gradient(circle at 50% 50%, rgba(255, 237, 194, 0.16) 0%, rgba(255, 237, 194, 0) 52%),
        linear-gradient(120deg, rgba(255, 255, 255, 0) 0%, rgba(242, 202, 80, 0.06) 34%, rgba(255, 240, 199, 0.12) 50%, rgba(242, 202, 80, 0.06) 66%, rgba(255, 255, 255, 0) 100%);
}

html[data-theme="dark"] .sito-pubblico p,
html[data-theme="dark"] .sito-pubblico li {
    color: var(--sito-colore-testo-soft);
}

html[data-theme="dark"] .sito-pubblico h1,
html[data-theme="dark"] .sito-pubblico h2,
html[data-theme="dark"] .sito-pubblico h3 {
    color: var(--sito-colore-testo);
}

html[data-theme="dark"] .testata-sito {
    background: linear-gradient(180deg, rgba(19, 19, 19, 0.94), rgba(19, 19, 19, 0.76));
    border-bottom: 1px solid rgba(153, 144, 124, 0.18);
}

html[data-theme="dark"] .barra-sito {
    border: 1px solid rgba(153, 144, 124, 0.16);
    background: linear-gradient(180deg, rgba(28, 27, 27, 0.92), rgba(14, 14, 14, 0.9));
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.22);
}

html[data-theme="dark"] .marchio-sito,
html[data-theme="dark"] .footer-marchio img {
    padding: 10px 14px;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(53, 41, 13, 0.96), rgba(27, 21, 9, 0.94));
    box-shadow: 0 10px 28px rgba(50, 36, 7, 0.18);
}

html[data-theme="dark"] .footer-marchio img {
    padding: 12px 16px;
    border-radius: 16px;
}

html[data-theme="dark"] .bottone-menu-mobile {
    border: 1px solid rgba(153, 144, 124, 0.2);
    background: rgba(255, 255, 255, 0.04);
    color: var(--sito-colore-testo);
}

html[data-theme="dark"] .navigazione-sito a:hover,
html[data-theme="dark"] .navigazione-sito a.is-attiva {
    color: var(--sito-colore-oro);
    border-color: rgba(242, 202, 80, 0.22);
    background: rgba(242, 202, 80, 0.06);
}

html[data-theme="dark"] .bottone-sito-secondario {
    border-color: rgba(242, 202, 80, 0.46);
    color: var(--sito-colore-oro);
    background: transparent;
}

html[data-theme="dark"] .bottone-sito-ghost {
    color: var(--sito-colore-testo);
    background: rgba(255, 255, 255, 0.05);
}

html[data-theme="dark"] .hero-testo,
html[data-theme="dark"] .hero-testo h1,
html[data-theme="dark"] .hero-testo p,
html[data-theme="dark"] .hero-pagina-interna h1,
html[data-theme="dark"] .hero-pagina-interna p {
    color: #fff8ef;
}

html[data-theme="dark"] .hero-testo .eyebrow-sito {
    color: #f1cf7a;
}

html[data-theme="dark"] .fascia-scura {
    background: linear-gradient(180deg, rgba(28, 27, 27, 0.98), rgba(14, 14, 14, 0.98));
    border-top: 1px solid rgba(153, 144, 124, 0.14);
    border-bottom: 1px solid rgba(153, 144, 124, 0.14);
}

html[data-theme="dark"] .card-servizio-sito,
html[data-theme="dark"] .card-team,
html[data-theme="dark"] .box-orari,
html[data-theme="dark"] .scheda-contatto-sito,
html[data-theme="dark"] .box-contatto-luce,
html[data-theme="dark"] .blocco-form,
html[data-theme="dark"] .scheda {
    background: linear-gradient(180deg, rgba(32, 31, 31, 0.98), rgba(14, 14, 14, 0.98));
    border: 1px solid rgba(77, 70, 53, 0.78);
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.18);
}

html[data-theme="dark"] .card-servizio-icona {
    border: 1px solid rgba(242, 202, 80, 0.58);
    background: rgba(242, 202, 80, 0.04);
}

html[data-theme="dark"] .card-galleria-home {
    border: 1px solid rgba(77, 70, 53, 0.78);
    background: var(--sito-colore-surface-lowest);
}

html[data-theme="dark"] .hero-pagina-interna {
    background-image:
        linear-gradient(180deg, rgba(8, 8, 8, 0.74), rgba(8, 8, 8, 0.66)),
        radial-gradient(circle at top left, rgba(242, 202, 80, 0.1), transparent 36%),
        var(--hero-interno-bg);
}

html[data-theme="dark"] .footer-sito {
    background: rgba(10, 10, 10, 0.96);
    border-top: 1px solid rgba(153, 144, 124, 0.14);
}

html[data-theme="dark"] .footer-marchio p,
html[data-theme="dark"] .footer-sotto,
html[data-theme="dark"] .footer-link-lista span {
    color: #99907c;
}

html[data-theme="dark"] .footer-titolo {
    color: var(--sito-colore-oro);
}

html[data-theme="dark"] .footer-sotto {
    border-top: 1px solid rgba(153, 144, 124, 0.14);
}

html[data-theme="dark"] .sito-pubblico input,
html[data-theme="dark"] .sito-pubblico select,
html[data-theme="dark"] .sito-pubblico textarea {
    border: 1px solid rgba(153, 144, 124, 0.24);
    background: rgba(255, 255, 255, 0.04);
    color: var(--sito-colore-testo);
}

html[data-theme="dark"] .sito-pubblico input:focus,
html[data-theme="dark"] .sito-pubblico select:focus,
html[data-theme="dark"] .sito-pubblico textarea:focus {
    outline: 2px solid rgba(242, 202, 80, 0.22);
    border-color: rgba(242, 202, 80, 0.46);
    background: rgba(255, 255, 255, 0.06);
}

html[data-theme="dark"] .sito-pubblico .bottone-secondario {
    background: transparent;
    color: var(--sito-colore-oro);
    border: 1px solid rgba(242, 202, 80, 0.28);
}

html[data-theme="dark"] .sito-pubblico .riga-check input {
    border: 1px solid rgba(153, 144, 124, 0.28);
}

html[data-theme="dark"] .sito-pubblico .slot-non-disponibile {
    color: #ffffff75;
}

html[data-theme="dark"] .menu-mobile-sito {
    background: linear-gradient(180deg, rgba(19, 19, 19, 0.82), rgba(19, 19, 19, 0));
}

html[data-theme="dark"] .menu-mobile-sito-pannello {
    border: 1px solid rgba(153, 144, 124, 0.18);
    background: linear-gradient(180deg, rgba(28, 27, 27, 0.98), rgba(14, 14, 14, 0.96));
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.24);
}

html[data-theme="dark"] .menu-mobile-sito-nav a {
    color: var(--sito-colore-testo-soft);
    border: 1px solid rgba(153, 144, 124, 0.12);
    background: rgba(255, 255, 255, 0.02);
}

html[data-theme="dark"] .menu-mobile-sito-nav a.is-attiva {
    color: var(--sito-colore-oro);
    border-color: rgba(242, 202, 80, 0.24);
    background: rgba(242, 202, 80, 0.06);
}

@keyframes sfondoSitoDerivaA {
    0% {
        transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
    }
    100% {
        transform: translate3d(-52px, 34px, 0) rotate(10deg) scale(1.08);
    }
}

@keyframes sfondoSitoDerivaB {
    0% {
        transform: translate3d(0, 0, 0) scale(1);
    }
    100% {
        transform: translate3d(44px, -30px, 0) scale(1.1);
    }
}

@keyframes sfondoSitoVelo {
    0% {
        transform: translate3d(0, 0, 0) scale(1);
        opacity: 0.18;
    }
    100% {
        transform: translate3d(0, 18px, 0) scale(1.04);
        opacity: 0.34;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sfondo-sito-dinamico-livello,
    .sito-pubblico.layout-pubblico .grain-overlay {
        animation: none;
    }
}

/* Privacy Policy */
.privacy-policy-scheda {
    max-width: min(1040px, 100%);
}

.privacy-policy-contenuto {
    display: grid;
    gap: 18px;
}

.privacy-policy-contenuto h2,
.privacy-policy-contenuto h3,
.privacy-policy-contenuto h4 {
    margin: 0;
}

.privacy-policy-contenuto h2 {
    font-size: clamp(1.9rem, 3vw, 2.7rem);
    line-height: 1.08;
}

.privacy-policy-contenuto h3 {
    margin-top: 10px;
    font-size: clamp(1.25rem, 2.2vw, 1.6rem);
}

.privacy-policy-contenuto h4 {
    font-family: "Hanken Grotesk", sans-serif;
    font-size: 1rem;
    letter-spacing: 0.02em;
}

.privacy-policy-contenuto p,
.privacy-policy-contenuto li {
    margin: 0;
    line-height: 1.72;
}

.privacy-policy-contenuto ul {
    margin: -4px 0 0;
    padding-left: 20px;
    display: grid;
    gap: 10px;
}

.privacy-policy-contenuto a {
    word-break: break-word;
}

html[data-theme="dark"] .privacy-policy-contenuto a {
    color: var(--sito-colore-oro);
}
