/*
Theme Name: globino
Author: AlfaPi - Serena
Description: Un tema WordPress leggero, versatile e poetico, guidato da Globino, lo scoiattolo che gira il mondo. Adatto a qualsiasi sito: blog, portfolio, business,...
Version: 1.0
Text Domain: globino
*/

:root {
    --font-1: 'Outfit';
    --font-2: 'Macondo Swash Caps';
    --font-awesome: 'Font Awesome 7 Free';

    --colore-1: #3E5C68;
    --colore-1-dark: #2F4A54;
    --colore-2: #A25E3C;
    --terra-scuro: #8E4F30;
    --colore-4: #F7F0E4;
    --colore-5: #EAD9BA;
    --colore-6: #C9A56A;
    --colore-7: #f0dcb4;

    --titolo: #4E4035;
    --acqua-light: #D7E5EA;
    --acqua-medium: #7FA9B8;
    --acqua-link: #4D6770;
    --text-color: #4E4035;
    --text-2: #6F5E52;
    --text-muted: #8B786B;
    --linea: #4E403524;
    --linea-forte: #4E403540;
    --bg-footer: #3E5C68;
    --white: #FFFFFF;
    --wrap: 1320px;
    --gutter: 24px;
    --nav-h: 60px;
    --border-radius-card: 28px;
    --border-radius-cta: 999px;
    --border-radius-img: 34px;
    --box-shadow: 0 18px 48px #4E403518;
    --space-section: clamp(72px, 9vw, 116px);
    --grad-acqua: linear-gradient(140deg, #54737E 0%, #3E5C68 48%, #2C444E 100%);
    --grad-terra: linear-gradient(140deg, #A25E3C 0%, #8E4F30 100%);

    --menu-color: var(--titolo);
    --menu-color-hover: var(--terra-scuro);
}


.grad-oro {
    background-image: linear-gradient(115deg, #FFF6E6 0%, #F0DCB4 42%, #C9A56A 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* Un squircle (unione delle parole square + circle) è una forma a metà tra un quadrato e un cerchio con gli angoli smussati in modo continuo e ultra-morbido (il tipico stile delle icone di iOS/Apple).

A differenza del classico border-radius (che crea un semplice arco di cerchio negli angoli con uno "stacco" visibile dove la linea dritta incontra la curva), la proprietà corner-shape applica la curvatura in modo matematicamente fluido.*/
@supports (corner-shape: squircle) {
    .sq {
        corner-shape: squircle;
    }
}

/* ----------------------------------------------------
   RESET & BASE
---------------------------------------------------- */
body {
    padding: 0;
    margin: 0;
    color: var(--text-color);
    overflow-x: hidden;
    font-family: var(--font-1);
    font-size: 1.125rem;
}

html,
body {
    height: 100%;
    width: 100%;
    touch-action: pan-y;
}

a {
    color: var(--colore-2);
    text-decoration: none;
}

strong {
    font-weight: 700;
}

.container-fluid {
    max-width: 1920px;
}

.fixed {
    top: var(--header-top-menu) !important;
    left: 0;
    right: 0;
    position: fixed !important;
    z-index: 2000;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
}

@media (max-width: 991px) {
    .fixed {
        top: var(--header-top-menu-mobile) !important;

    }
}

#main-content {
    background: radial-gradient(90% 60% at 50% 0%, #EAD9BA66 0%, #F7F0E400 70%), var(--colore-4);
}

  .container.thankyou  {
    background: initial;
    padding-block: 2.05em;
}


/* ----------------------------------------------------
   TIPOGRAFIA
---------------------------------------------------- */
h1,
h2,
h3 {
    font-family: var(--font-2);
    font-weight: 400;
    color: var(--titolo);
    line-height: 1.18;
    margin: 12px 0px 0px;
    text-wrap: balance;
}

h1 {
    color: var(--colore-8);
}

h2 {
    color: var(--colore-8);
    font-size: clamp(1.9rem, 3.2vw, 2.7rem);
    margin-block: 60px 20px;
}

h3 {
    font-size: 1.5rem;
    color: var(--colore-3);
}

:focus-visible {
    outline: 3px solid var(--colore-5);
    outline-offset: 3px;
}

/* CTA */
a.cta {
    font-size: 1rem;
    text-align: center;
    padding: 5px 30px;
    border-radius: var(--border-radius-cta);
    border: 2px solid var(--colore-1);
    color: #fff;
}

a.cta:hover {
    filter: opacity(.75);
}

/* ----------------------------------------------------
   LAYOUT GENERALE
---------------------------------------------------- */
.bg-light {
    background: rgba(247, 240, 228, 0.9) !important;
    backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--linea);
}

a:not(.cta) :not(footer a) :not(.nav-link:hover) :not(.cv) :not(.wpcf7-acceptance .wpcf7-list-item-label a):hover {
    text-decoration-color: var(--colore-2);
    text-decoration-line: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 2px;
}

/* -----------------------------------
   1) NAVBAR FISSA (DESKTOP E MOBILE)
----------------------------------- */
#nav-main.fixed-top {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: 0 !important;
    z-index: 1030 !important;
    background-color: var(--colore-4) !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

/* Distanzia il contenuto della pagina per evitare che finisca sotto la navbar fissa */
body {
    padding-top: 68px;
}


img.logo {
    height: 72px !important;
}

@media (max-width: 1199.98px) {
    img.logo {
        height: 50px !important;
    }
}

.navbar-brand span {
    display: inline-block;
    /*margin-left: 8px;*/
}

.navbar-brand span span:first-of-type {
    font-family: var(--font-2);
    font-size: 1.35rem;
    color: var(--titolo);
    line-height: 1.1;
    letter-spacing: 0.01em;
}

.navbar-brand span span:last-of-type {
    font-size: 0.58rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--terra-scuro);
    font-weight: 600;
    line-height: 1;
    margin-top: 2px;
}

/* --- LINK MENU DESKTOP --- */
.navbar-nav {
    gap: 1.5rem;
}

.navbar-nav .nav-link {
    color: var(--menu-color);
    font-weight: 500;
    font-size: 1rem;
    padding: 0.5rem 0;
    transition: color 200ms ease;
}

.navbar-nav .nav-link.active,
.navbar-nav .nav-link:hover {
    color: var(--menu-color-hover);
}

/* Bottone CTA "Richiedi l'iscrizione" */
.navbar-nav>li.nav-item:last-child .nav-link {
    display: inline-flex;
    align-items: center;
    background: var(--grad-acqua);
    color: #fff;
    padding: 11px 22px;
    border-radius: var(--border-radius-cta);
    font-family: var(--font-2);
    font-weight: 400;
    font-size: 1.05rem;
    text-decoration: none;
    box-shadow: rgba(62, 92, 104, 0.15) 0px 8px 20px;
    transition: transform 220ms, box-shadow 220ms;
}

.navbar-nav>li.nav-item:last-child .nav-link:hover {
    opacity: 0.92;
    transform: translateY(-1px);
}

/* -----------------------------------
   2) MOBILE MENU OVERLAY (100% SCHERMO)
----------------------------------- */
@media (max-width: 1199.98px) {
    /* Layout Fullscreen per il Menu aperto */
    #main-menu-collapse.collapsing,
    #main-menu-collapse.show {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        background-color: var(--colore-4) !important;
        z-index: 999999 !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: space-between !important;
        align-items: center !important;
        margin: 0 !important;
        padding: 1rem 1.25rem 3rem 1.25rem !important;
    }

    /* Header Mobile (Logo a SX + Tasto X a DX) */
    .mobile-menu-header {
        width: 100%;
        padding-block: 5px;
    }

    /* Tasto X di chiusura allineato a destra del logo */
    #mobile-menu-close {
        position: static !important;
        font-size: 1.4rem !important;
        cursor: pointer;
    }

    /* Centra perfettamente l'elenco dei link nello spazio rimanente */
    #main-menu-collapse .navbar-nav {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        flex-grow: 1 !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        gap: 0.5rem !important;
    }

    #main-menu-collapse .navbar-nav>li.nav-item {
        width: 100% !important;
        text-align: center !important;
        margin-block: 4px !important;
    }

    #main-menu-collapse .nav-link {
        font-size: 1.35rem !important;
        justify-content: center !important;
        display: flex !important;
        padding-block: 8px !important;
        color: var(--menu-color) !important;
        background-color: transparent !important;
    }

    /* Voci speciali con pulsanti/sfondi custom su Mobile */
    #main-menu-collapse .navbar-nav>li.nav-item:last-child {
        justify-content: center !important;
        display: flex !important;
        margin-top: 15px !important;
    }

    #main-menu-collapse .navbar-nav>li.nav-item:last-child .nav-link {
        background-color: #3b5a66 !important;
        color: #ffffff !important;
        padding: 0.75rem 2rem !important;
        border-radius: 50px !important;
        display: inline-flex !important;
        width: auto !important;
    }

    #main-menu-collapse .navbar-nav>li.nav-item.colore {
        justify-content: center !important;
        display: flex !important;
        background-color: var(--colore-3) !important;
        margin-block: 10px 0 !important;
        padding-block: 10px !important;
    }

    #main-menu-collapse .navbar-nav>li.nav-item.colore a {
        color: #ffffff !important;
    }
}

/* ==========================================================
   HERO SECTION - STRUTTURA E VIDEO
   ========================================================== */
.hero {
    position: relative;
    width: 100%;
}

.hero-inner {
    position: relative;
    overflow: hidden;
    width: 100%;
    min-height: 80vh;
    border-radius: 0px 0px clamp(28px, 4vw, 56px) clamp(28px, 4vw, 56px);
    display: flex;
}

/* Video di sfondo */
.hero-full-video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: 1;
    transform: translate(-50%, -50%);
    object-fit: cover;
    filter: blur(5px) saturate(1.08) brightness(0.92);
}

/* 
   OVERLAY: posizionato ABSOLUTE per coprire per forza il 100% dell'area.
*/
.hero-full-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    padding: 60px 0;
    background: radial-gradient(120% 90% at 12% 78%, rgba(78, 64, 53, 0.85) 0%, rgba(78, 64, 53, 0.5) 38%, rgba(78, 64, 53, 0) 72%), linear-gradient(0deg, rgba(44, 68, 78, 0.95) 0%, rgba(44, 68, 78, 0.5) 32%, rgba(44, 68, 78, 0.1) 62%, rgba(78, 64, 53, 0.35) 100%);
}

/* ==========================================================
   LUNA SVG & COLONNA DESTRA
   ========================================================== */
.hero-moon-col {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.hero-moon-svg,
.hero-moon-col svg {
    max-width: 320px;
    width: 100%;
    height: auto;
    display: block;
}

/* ==========================================================
   TIPOGRAFIA & TESTI
   ========================================================== */

.hero-occhiello {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 9px 20px;
    border-radius: 999px;
    background: rgba(247, 240, 228, 0.12);
    border: 1px solid rgba(240, 220, 180, 0.35);
    color: var(--colore-7);
    font-size: clamp(0.86rem, 1.2vw, 1rem);
    font-weight: 600;
    letter-spacing: 0.04em;
    backdrop-filter: blur(6px);
}

.hero h1 {
    font-size: clamp(2.3rem, 4.9vw, 4rem);
    line-height: 1.02;
    margin: 20px 0 0;
    letter-spacing: 0.005em;
    text-wrap: balance;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}

.hero p em {
    font-size: clamp(1.35rem, 2.4vw, 1.85rem);
    color: var(--colore-5);
    margin: 14px 0 0;
    line-height: 1.35;
    display: block;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.hero p {
    font-size: 1.1rem;
    line-height: 1.75;
    color: rgba(247, 240, 228, 0.88);
    margin: 20px 0 0;
    max-width: 840px;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.3);
}


/* Stile Base comune per entrambe le CTA */
.cta-wrapper .cta-hero {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--colore-4);
    font-weight: 700;
    font-size: 1rem;
    padding: 16px 28px;
    border-radius: 999px;
    border: 1px solid rgba(247, 240, 228, 0.35);
    backdrop-filter: blur(6px);
    transition: background 240ms, color 240ms;
    white-space: nowrap;
    text-align: center;
}

.cta-wrapper .cta-hero.oro {
    background: linear-gradient(100deg, rgb(231, 207, 160), rgb(201, 165, 106) 45%, rgb(231, 207, 160) 100%) 0% 0% / 200% 100%;
    color: var(--colore-1-dark);
    box-shadow: rgba(0, 0, 0, 0.22) 0px 14px 34px;
}

@media (max-width: 575px) {
    .cta-wrapper {
        gap: 8px;
    }

    .cta-wrapper .cta {
        padding: 10px 14px;
        font-size: 0.85rem;
    }

    .cta-wrapper .cta-hero {
        display: block;
        margin-bottom: 20px;
    }
}

/* ==========================================================
   RESPONSIVE
   ========================================================== */
@media (max-width: 991px) {
    .hero-inner {
        min-height: 100vh;
        border-radius: 0 0 25px 25px;
    }

    .hero-full-overlay {
        position: relative;
        background: linear-gradient(180deg,
                rgba(15, 23, 22, 0.85) 0%,
                rgba(15, 23, 22, 0.55) 100%);
    }

    .hero-moon-col {
        justify-content: center;
        margin-top: 2rem;
    }

    .hero-moon-svg,
    .hero-moon-col svg {
        max-width: 220px;
    }
}

/* ----------------------------------------------------
   GUTENBERG BLOCKS — BASE
---------------------------------------------------- */
.content-box {
    margin-block: 68px 68px;
}

@media (max-width: 600px) {
    .content-box {
        margin-block: 36px 36px;
    }
}

.content-box img {
    border-radius: var(--border-radius-img);
}

.content-box .box {
    border-radius: var(--border-radius-card);
    line-height: 1.75;
    width: 100%;
}

.content-box .box.box-shadow {
    box-shadow: var(--box-shadow);
}

.content-box .box span {
    font-size: 0.8rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--terra-scuro);
    font-weight: 600;
    margin: 0px;
}

.content-box .box h2,
.content-box .box h3 {
    font-size: clamp(1.9rem, 3.2vw, 2.7rem);
    color: var(--titolo);
    line-height: 1.18;
    margin: 0 0 24px 0;
    text-wrap: balance;
}

.content-box .box h2 a,
.content-box .box h3 a {
    color: var(--colore-1);
}

.content-box .box h2 a:hover,
.content-box .box h3 a:hover {
    filter: opacity(.75);
}

/* ----------------------------------------------------
                            ACF BLOCKS: TITOLO E TESTO
                            ---------------------------------------------------- */
.box-titolo-testo.center {
    text-align: center;
}

.box-titolo-testo span {
    font-size: 0.8rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--terra-scuro);
    font-weight: 600;
    margin: 0px;
    text-align: center;
}

/* ----------------------------------------------------
                            ACF BLOCKS: PUNTI
                            ---------------------------------------------------- */
.content-box.punti h2 {
    font-size: clamp(1.35rem, 1.9vw, 1.7rem);
    color: var(--titolo);
    margin: 0px;
    line-height: 1.2;
}

.content-box.punti.singolo {
    max-width: 960px;
    margin-inline: auto;
}

.content-box .box.punto {
    padding: 30px 26px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    background: rgba(255, 255, 255, 0.65);
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: var(--border-radius-card);
    box-shadow: rgba(78, 64, 53, 0.08) 0px 12px 30px;
}

.content-box.punti.singolo .box.punto {
    background: linear-gradient(140deg, rgba(255, 255, 255, 0.65), rgba(234, 217, 186, 0.25));
    border: 1px solid rgba(201, 165, 106, 0.19);
}

.content-box .box.punti.singolo h2 {
    font-size: 1.8rem;
    letter-spacing: 0;
    text-transform: initial;
    color: var(--titolo);
    line-height: 1.3;
    font-family: var(--font-2);
    margin-block: 0;
}

.content-box .box .numero {
    font-size: clamp(1.8rem, 3vw, 2.75rem);
    font-weight: 600;
    color: var(--colore-1);
}

/* blocco   fondo colorato */
.content-box .box.punto.tipo-std {
    background: var(--colore-3);
    color: #fff;
}

.content-box .box.punto.tipo-std h2,
.content-box .box.punto.tipo-std h3 {
    color: #fff !important;
}

/* blocco   icona */
.content-box .box .icona {
    background: var(--colore-5);
    width: 70px;
    height: 70px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin: 0 auto;
    position: relative;
}

.content-box .box .icona i {
    position: absolute;
    top: -7px;
    right: -16px;
    font-size: 2.8rem;
    color: var(--colore-2);
}

.content-box .box.punto.tipo-ico h3 {
    font-size: clamp(1.35rem, 1.9vw, 1.7rem);
    color: var(--titolo);
    margin: 0px;
    line-height: 1.2;
}

.content-box .box.punto.tipo-ico p {
    font-size: 1rem;
    color: var(--titolo);
    margin: 0px;
    line-height: 1.55;
    font-weight: 500;
}

/* ----------------------------------------------------
            BOX IMMAGINE + TESTO
            ---------------------------------------------------- */
.content-box.img-testo .box img {
    aspect-ratio: 5 / 4;

    border-radius: var(--border-radius-img);
    overflow: hidden;
    box-shadow: var(--box-shadow);
    height: auto;
}

.content-box.img-testo .box img.verticale {
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center center;
    height: 100%;
}

.content-box.img-testo h3 {
    color: var(--colore-3);
}

.content-box.img-testo a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--acqua-link);
    font-weight: 600;
    font-size: 1rem;
    margin-top: 26px;
    padding: 13px 24px;
    border-radius: var(--border-radius-cta);
    border: 1px solid rgba(77, 103, 112, 0.25);
}

.content-box.img-testo a::after {
    content: '\f061';
    font-family: var(--font-awesome);
    position: relative;
    margin-left: 10px;
}

.content-box.img-testo ul {
    margin: 2em 0;
}

.content-box.img-testo ul li {
    list-style-type: none;
    position: relative;
    margin-block: 0 10px;
}

.content-box.img-testo ul li:before {
    content: '\f111';
    position: absolute;
    left: -2rem;
    top: 9px;
    font-family: var(--font-awesome);
    font-weight: 900;
    color: var(--colore-6);
    font-size: .5rem;
}

/* ----------------------------------------------------
                        ACF BLOCKS: CITAZIONE
                        ---------------------------------------------------- */
.box-citazione {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: 640px;
    position: relative;
    color: #fff;
    margin-block: 68px;
}

@media (max-width: 600px) {
    .box-citazione {
        margin-block: 36px;
    }
}

.box-citazione__overlay {
    min-height: 640px;
    padding: 3em;
    /* SFUMATURA: Trasparente in alto -> Scura in basso per far leggere il testo a sinistra */
    background: linear-gradient(180deg,
            rgba(30, 22, 16, 0) 0%,
            rgba(30, 22, 16, 0.35) 50%,
            rgba(25, 18, 12, 0.88) 100%);
}

.box-citazione__overlay blockquote {
    margin: 0px;
    max-width: 900px;
}

.box-citazione__overlay blockquote p {
    font-family: var(--font-2);
    font-size: clamp(1.4rem, 2.7vw, 2.2rem);
    font-weight: 400;
    line-height: 1.42;
    color: rgb(255, 246, 230);
    text-wrap: pretty;
    text-align: left;
}

.box-citazione__overlay .autore {
    margin: 22px 0px 0px;
    font-size: 0.82rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--colore-7);
    font-weight: 600;
}

/* box citazione semplice  */
.box-citazione.semplice {
    font-size: clamp(1.4rem, calc(1rem + 1.5vw), 2.4rem);
    font-weight: 100;
    padding: 0 20px;
    margin-block: 60px;
    color: var(--colore-3);
    min-height: initial;
}

.box-citazione.semplice::before {
    content: "";
    border-left: 6px solid var(--colore-1-bis);
    position: absolute;
    height: 100%;
}

.box-citazione.semplice p {
    padding-left: 20px;
}

/* box citazione 2frasi  */
.box-citazione.due-frasi {
    max-width: 860px;
    min-height: initial;
}

.box-citazione.due-frasi .testo1 {
    font-family: var(--font-2);
    font-size: clamp(1.7rem, 3vw, 2.4rem);
    line-height: 1.35;
    color: var(--titolo);
    margin: 0px;
    text-wrap: balance;
}

.box-citazione.due-frasi .testo2 {
    font-style: italic;
    font-size: clamp(1.3rem, 2vw, 1.65rem);
    color: var(--colore-2);
    margin: 18px 0px 0px;
    line-height: 1.45;
}

/* box citazione colorata  */
.box-citazione-colorata {
    position: relative;
    z-index: 2;
    font-size: 2.3rem;
    font-weight: 200;
    color: #fff;
    left: -3vw;
}

.citazione-testo {
    position: relative;
    z-index: 2;
    font-size: 2.3rem;
    font-weight: 200;
    color: #fff;
    left: -80px;
}

.quote-icon {
    position: absolute;
    z-index: 1;
    opacity: .1;
}

.quote-top {
    top: 40px;
    left: 40px;
    width: 150px;
    rotate: 180deg;
}

.quote-bottom {
    bottom: 40px;
    right: 40px;
    width: 53px;
}

@media (max-width: 767px) {
    .box-citazione-colorata {
        padding: 40px 30px;
        font-size: 1.6rem;
    }

    .quote-top {
        width: 80px;
        top: 10px;
        left: 10px;
    }

    .quote-bottom {
        width: 40px;
        bottom: 10px;
        right: 10px;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .box-citazione-colorata {
        padding: 80px 60px 80px 120px;
        font-size: 2rem;
    }

    .quote-top {
        width: 100px;
    }
}

/*  ---------------------------------------------------
                         ACF BLOCKS:   IMMAGINE
                    -----------------------------------------------------*/

.wp-block-image {
    margin: clamp(44px, 6vw, 72px) auto 0px;
    border-radius: var(--border-radius-img);
    overflow: hidden;
    position: relative;
    box-shadow: var(--box-shadow);
    max-width: 1320px;
}

.wp-block-image figure {
    overflow: hidden;
    box-shadow: var(--box-shadow);
    width: 100%;
    height: clamp(260px, 34vw, 460px);
    object-fit: cover;
    object-position: center 42%;
    display: block;
}


@media (max-width: 575px) {
.wp-block-image figure {
     
    
    height: auto;
    
}
}

/*  ---------------------------------------------------
                         ACF BLOCKS:   CTA
                    -----------------------------------------------------*/
.box-cta {
    background-color: var(--colore-1);
    color: #fff;
    border-radius: var(--border-radius-card);
    margin: 160px auto;
    font-size: 1.1rem;
    font-weight: 300;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.87);
}

.box-cta h2 {
    font-size: clamp(1.5rem, 2.4vw, 2.1rem);
    line-height: 1.3;
    color: var(--colore-4);
}

.box-cta img {
    border-radius: var(--border-radius-img);
}

.box-cta a {
    background-color: #fff;
    color: var(--text-color);
    border-radius: var(--border-radius-cta);
    font-size: 1.1rem;
    font-weight: 700;
    padding: 2px 10px;
}

.box-cta a:hover {
    filter: opacity(.75);
}

.box-cta a i {
    color: var(--colore-1-bis);
}

/*  ---------------------------------------------------
                         ACF BLOCKS:   IMG TESTO CON CTA
                    -----------------------------------------------------*/
.box-img-testo-cta.pos-sx .content-img-testo-cta {
    flex-direction: row;
}

/* Variante: immagine a destra */
.box-img-testo-cta.pos-dx .content-img-testo-cta {
    flex-direction: row-reverse;
}

.box-img-testo-cta {
    padding-block: 60px 80px;
    position: relative;
}

.box-img-testo-cta::before {
    content: '';
    background: var(--bg-url);
    width: 96%;
    height: 380px;
    display: block;
    position: absolute;
    background-repeat: no-repeat;
    background-size: cover;
    z-index: 0;
    filter: blur(15px);
    border-radius: 11px;
}

.box-img-testo-cta.no-sfumatura::before {
    content: initial;
}

.content-img-testo-cta {
    margin-top: 7.5%;
    display: flex;
    gap: 20px;
}

.box-img-testo-cta-content {
    position: relative !important;
    top: 70px;
    padding-inline: 50px;
}

.box-img-testo-cta .cta-image {
    flex: 0 0 60%
}

.box-img-testo-cta .cta-image img {
    width: 100%;
    height: 260px;
    object-fit: cover;
    display: block;
    border-radius: var(--border-radius-card);
}

.box-img-testo-cta .cta-text-box {
    flex: 0 0 40%;
    position: relative;
    width: 100%;
    height: 260px;
    padding: 0 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #fff;
    box-shadow: var(--box-shadow);
    border-radius: var(--border-radius-card);
    margin-top: -5%;
    margin-left: -5%;
}

/* Variante: immagine a destra, testo a sinistra */
.box-img-testo-cta.pos-dx .cta-text-box {
    margin-left: 0;
    margin-right: -5%;
}

.box-img-testo-cta .cta-text-box .titolo {
    font-family: var(--font-2);
    font-weight: 400;
    font-size: 1.5rem;
    color: var(--titolo);
    margin: 0px 0px 12px;
    line-height: 1.25;
}

.box-img-testo-cta .cta-text-box p {
    font-weight: 300;
    font-size: 1rem;
    line-height: 1.7;
    color: var(--text-color);
    margin: 0px;
}

.box-img-testo-cta .cta-text-box a {
    color: var(--colore-1);
    text-decoration: none;
}

.box-img-testo-cta .cta-text-box a::before {
    font-family: var(--font-awesome);
    content: '\f061';
    font-weight: 900;
    position: relative;
    display: inline-block;
    transform: rotate(-45deg);
    transition: transform .3s ease;
}

@media (max-width:991px) {
    .box-img-testo-cta {
        padding-block: 20px;
    }

    .box-img-testo-cta.pos-dx .content-img-testo-cta,
    .box-img-testo-cta.pos-sx .content-img-testo-cta {
        flex-direction: column-reverse;
    }

    .box-img-testo-cta .cta-image {
        flex: 0 0 90%;
        text-align: center;
        width: 90%;
        margin-inline: auto;
        margin-top: -2em;
    }

    .box-img-testo-cta .cta-text-box {
        flex: 0 0 100%;
        height: auto;
        margin-top: initial;
        margin-left: initial;
        padding-block: 30px;
    }
}

/*  ---------------------------------------------------
                         ACF BLOCKS:   FAQ
                    -----------------------------------------------------*/
.box-faq {
    margin: 0 auto;
    max-width: 840px;
}

.accordion {
    margin-bottom: 30px;
}

.accordion-item {
    margin-bottom: 20px;
    border: none;
    background: transparent;
    border-radius: var(--border-radius-card);
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid rgba(201, 165, 106, 0.19);
    transition: background 240ms;
    padding: 0;
}

/* ----------------------------------------------------
   HEADER & BORDER RADIUS DINAMICI
---------------------------------------------------- */
.accordion-header {
    border-radius: var(--border-radius-card);
    transition: border-radius 0.2s ease;
    font-family: var(--font-1);
    font-size: 1.02rem;
    font-weight: 600;
    color: var(--titolo);
    line-height: 1.45;

}

/* Quando l'accordion è APERTO: togliamo il border-radius in basso all'header */
.accordion-header:has(.accordion-button:not(.collapsed)) {
    border-radius: var(--border-radius-card) var(--border-radius-card) 0 0;
}

.accordion-button {
    background: transparent !important;
    box-shadow: none !important;
    font-size: 1.125rem;
    font-weight: 600;
    padding: 12px 40px 12px 25px;
    color: var(--colore-3) !important;
    position: relative;
}

/* Icona PIÙ (+) quando CHIUSA */
.accordion-button::after {
    background-image: none !important;
    content: "\2b";
    font-family: var(--font-awesome);
    font-weight: 900;
    color: var(--colore-1);
    font-size: 1rem;
    position: absolute;
    right: 25px;
    transform: none !important;
    /* Blocca la rotazione nativa di Bootstrap */
    transition: all 0.2s ease-in-out;
}

/* Icona MENO (-) quando APERTA */
.accordion-button:not(.collapsed)::after {
    content: "\f068";
}

/* ----------------------------------------------------
   BODY (Contenuto risposta)
---------------------------------------------------- */
.accordion-body {
    /* Arrotondato SOLO in basso quando aperto */
    border-radius: 0 0 var(--border-radius-card) var(--border-radius-card);
    font-weight: 300;
    padding-block: 0 20px;
    font-size: 1rem;
    line-height: 1.8;
    color: var(--text-color);
}

/* ----------------------------------------------------
   FOOTER
---------------------------------------------------- */
footer {
    background: var(--grad-acqua);
    color: rgb(214, 226, 231);
    border-radius: clamp(28px, 4vw, 56px) clamp(28px, 4vw, 56px) 0px 0px;
    margin-top: clamp(24px, 4vw, 48px);
    overflow: hidden;
}

footer .logo {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding-bottom: clamp(36px, 4vw, 52px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

footer .logo span span:first-of-type {
    font-family: var(--font-2);
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.01em;
    font-size: 1.8rem;
    line-height: 1.15;
    color: var(--colore-4);
}

footer .logo span span:last-of-type {
    font-style: italic;
    font-size: 1.05rem;
    color: rgb(231, 207, 160);
}

footer span.etichetta {
    font-size: 0.98rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--colore-4);
}

footer span.etichetta i {
    color: var(--colore-1);
}

footer a {
    color: var(--acqua-light);
}

footer i {
    color: var(--colore-7);
}

footer a:hover {
    color: #fff;
}

footer ul.dati {
    display: flex;
    flex-direction: column;
    gap: 20px;
    font-size: 1rem;
    color: var(--acqua-light);
    line-height: 1.6;
}

footer p {
    display: flex;
    flex-direction: column;
    gap: 20px;
    font-size: 1rem;
    color: var(--acqua-light);
    line-height: 2.6;
}

/* POSTFOOTER */
.postfooter-inner {
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 0.92rem;
    color: var(--acqua-light);
}

.postfooter-inner a {
    color: var(--acqua-light);
}

/* ----------------------------------------------------
   MODULO CONTATTI
---------------------------------------------------- */
.modulo {
    width: 100%;
    background: var(--white);
    border-radius: var(--border-radius-card);
    padding: clamp(28px, 4vw, 48px);
    box-shadow: var(--box-shadow);
    box-sizing: border-box;
}

input[type=text],
input[type=email],
input[type=tel],
textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 14px 18px;
    border: 1px solid var(--linea-forte);
    border-radius: 40px;
    font-family: var(--font-1);
    font-size: 1rem;
    background: var(--colore-4);
    color: var(--text-color);
    transition: border-color 200ms, background 200ms;
}

/* Errori CF7 */
.wpcf7-not-valid-tip {
    margin-block: 2px 10px;
}

/* Checkbox */
.wpcf7-acceptance input[type=checkbox] {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    top: 7px;
    left: -20px;
    border: 1px solid var(--acqua-link);
    width: 22px;
    height: 22px;
}

.wpcf7-acceptance input[type=checkbox]:checked {
    background: #fff;
}

.wpcf7-acceptance input[type=checkbox]:checked::after {
    content: "✔";
    font-size: 100%;
    color: #fff;
    position: absolute;
    background-color: var(--acqua-link);
    width: 100%;
    height: 100%;
    text-align: center;
    line-height: 1.25em;
}

/* Label checkbox */
.wpcf7-acceptance .wpcf7-list-item-label {
    position: relative;
    left: -15px;
}

.wpcf7-acceptance .wpcf7-list-item-label a {
    color: #fff;
    text-decoration: underline;
    text-decoration-color: #fff;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

.modulo label:not(.wpcf7-acceptance label) {
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 1.125rem;
    font-weight: 500;
    color: var(--colore-3);
    margin-top: 18px;
}

.modulo p {
    margin-bottom: 0;
}

/* Pulsante invio */
.modulo .wpcf7-submit {
    grid-column: 1 / -1;
    background: var(--grad-acqua);
    color: var(--white);
    border-width: medium;
    border-style: none;
    border-color: currentcolor;
    border-image: none;
    cursor: pointer;
    padding: 18px 30px;
    border-radius: 999px;
    font-family: Outfit, sans-serif;
    font-weight: 600;
    font-size: 1.05rem;
    box-shadow: rgba(62, 92, 104, 0.19) 0px 12px 28px;
    transition: transform 240ms, box-shadow 240ms;
    width: 100%
}

.modulo .wpcf7-submit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Spinner */
.modulo .col-12.text-end {
    position: relative;
}

.modulo .wpcf7-spinner {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    pointer-events: none;
}

/* --- STILE RADIO BUTTON A PILLOLA (Foto 2) --- */
.modulo .wpcf7-radio {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    margin-top: 10px !important;
}

.modulo .wpcf7-radio .wpcf7-list-item {
    margin: 0 !important;
}

/* Sovrascrive la direzione verticale e mette pallino + testo in orizzontale */
.modulo .wpcf7-radio label {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 10px 20px !important;
    background: var(--colore-4) !important;
    border: 1px solid var(--linea-forte) !important;
    border-radius: 20px !important;
    cursor: pointer !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    color: var(--text-color) !important;
    margin-top: 0 !important;
    transition: all 200ms ease !important;
}

.modulo .wpcf7-radio input[type="radio"] {
    width: 18px !important;
    height: 18px !important;
    accent-color: var(--colore-3, #333) !important;
    cursor: pointer !important;
    margin: 0 !important;
}

/* Hover opzionale */
.modulo .wpcf7-radio label:hover {
    border-color: var(--colore-3) !important;
}

@media (max-width: 1199.98px) {
    .modulo {
        padding: 20px;
    }
}

.didascalia {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 1rem;
    color: var(--colore-3);
}

.didascalia::before,
.didascalia::after {
    content: "";
    display: block;
    width: 40px;
    height: 0;
    border-top: 2px solid var(--colore-1-bis);
}

.wpcf7 form .wpcf7-response-output {
    border: unset;
    text-align: center;
    color: #fff;
    background: #ad0919;
    max-width: 1320px;
    margin: 40px auto 0 auto;
}