/* =====================================================================
   Aura Glamping - foglio di stile del sito pubblico
   Base: il foglio di Locanda Pezzolla (classi lp-*, usate anche dalla
   richiesta di disponibilita'), con i colori di Aura. In fondo le classi
   ag-* delle pagine e dei contenuti importati dal vecchio sito WordPress.
   I nomi delle variabili restano quelli di Locanda (--lp-terracotta...)
   perche' le pagine condivise li usano: cambia solo il valore.
   ===================================================================== */

:root {
    /* Verde Aura (#B3D335 nel vecchio sito) in tre toni: quello pieno per i
       fondi con testo scuro, i due scuri per testi e pulsanti su bianco
       (il verde chiaro su bianco non si legge). */
    --lp-terracotta:       #5f7a12;
    --lp-terracotta-dark:  #46590c;
    --lp-terracotta-light: #B3D335;
    --lp-teal:             #2f3b2a;
    --lp-teal-dark:        #232d1f;
    --lp-teal-light:       #4a5c40;
    --ag-verde:            #B3D335;
    --ag-notte:            #141712;
    --ag-bosco:            #1f261c;

    /* Neutri */
    --lp-ivory:            #f8f9f4;
    --lp-cream:            #f3f5ec;
    --lp-sand:             #e6eadb;
    --lp-stone:            #cfd5c0;

    /* Testi */
    --lp-text:             #22261f;
    --lp-text-muted:       #5d6357;
    --lp-text-light:       #8d9386;

    /* UI */
    --lp-border:           #e3e7d9;
    --lp-bg:               #ffffff;
    --lp-bg-alt:           #f8f9f4;

    /* Layout */
    --lp-header-h:         84px;
    --lp-radius:           4px;
    --lp-radius-lg:        12px;

    /* Tipografia */
    --lp-font:             'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* ===== RESET LIGHT ===== */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    font-family: var(--lp-font);
    color: var(--lp-text);
    background: var(--lp-bg);
    margin: 0;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a { color: var(--lp-terracotta); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--lp-terracotta-dark); }

p { margin: 0 0 1rem 0; }
ul { padding-left: 1.25rem; }

h1, h2, h3, h4, h5, h6 {
    font-weight: 600;
    line-height: 1.2;
    color: var(--lp-text);
    letter-spacing: -0.01em;
    margin: 0 0 0.75rem 0;
}
h1 { font-size: 3rem; font-weight: 700; }
h2 { font-size: 2.25rem; }
h3 { font-size: 1.5rem; }

/* ===== Container proprietario (alternativa a Bootstrap container-xl) ===== */
.container-xl {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
@media (max-width: 575px) {
    .container-xl { padding-left: 1rem; padding-right: 1rem; }
}

/* ===== Grid proprietario (alternativa a Bootstrap row/col) ===== */
.lp-row {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    align-items: center;
}
.lp-col {
    flex: 1 1 0;
    min-width: 280px;
}
.lp-col-half {
    flex: 1 1 calc(50% - 1rem);
    min-width: 280px;
}
.lp-col-third {
    flex: 1 1 calc(33.333% - 1.5rem);
    min-width: 240px;
}
.lp-col-quarter {
    flex: 1 1 calc(25% - 1.5rem);
    min-width: 200px;
}

/* Flex utility */
.lp-d-flex { display: flex !important; }
.lp-justify-between { justify-content: space-between !important; }
.lp-justify-center { justify-content: center !important; }
.lp-align-center { align-items: center !important; }
.lp-flex-wrap { flex-wrap: wrap !important; }
.lp-text-center { text-align: center; }
.lp-mt-3 { margin-top: 1rem; }
.lp-mt-4 { margin-top: 1.5rem; }
.lp-mt-5 { margin-top: 3rem; }
.lp-mb-0 { margin-bottom: 0 !important; }

/* ===== HEADER ===== */
.lp-header {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--lp-border);
    position: sticky;
    top: 0;
    z-index: 1000;
    transition: box-shadow 0.3s;
}
.lp-header.lp-scrolled {
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.lp-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--lp-header-h);
    gap: 1.5rem;
}

.lp-logo {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}
.lp-logo img {
    height: 56px;
    width: auto;
    object-fit: contain;
}

/* Nav desktop */
.lp-nav {
    display: flex;
    gap: 2rem;
    align-items: center;
}
.lp-nav-link {
    color: var(--lp-text);
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: 500;
    position: relative;
    padding: 0.5rem 0;
    transition: color 0.2s;
}
.lp-nav-link:hover {
    color: var(--lp-terracotta);
}
.lp-nav-link::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 2px;
    background: var(--lp-terracotta);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease;
}
.lp-nav-link:hover::after,
.lp-nav-link.lp-active::after {
    transform: scaleX(1);
}

/* Azioni a destra */
.lp-actions {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-shrink: 0;
}

.lp-lang {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
}
.lp-lang-btn {
    color: var(--lp-text-muted);
    text-decoration: none;
    font-weight: 500;
    padding: 0.2rem 0.4rem;
    border-radius: var(--lp-radius);
    transition: all 0.2s;
}
.lp-lang-btn:hover { color: var(--lp-terracotta); }
.lp-lang-btn.lp-active { color: var(--lp-terracotta); font-weight: 700; }
.lp-lang-sep { color: var(--lp-text-light); }

/* CTA Prenota */
.lp-cta {
    display: inline-flex;
    align-items: center;
    background: var(--lp-terracotta);
    color: white;
    padding: 0.65rem 1.5rem;
    border-radius: var(--lp-radius);
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    transition: all 0.2s;
}
.lp-cta:hover {
    background: var(--lp-terracotta-dark);
    color: white;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(95, 122, 18, 0.25);
}

/* Hamburger mobile */
.lp-hamburger {
    background: transparent;
    border: 0;
    width: 36px;
    height: 36px;
    padding: 8px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
}
.lp-hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--lp-text);
    border-radius: 2px;
    transition: all 0.25s;
}
.lp-hamburger.lp-open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.lp-hamburger.lp-open span:nth-child(2) { opacity: 0; }
.lp-hamburger.lp-open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* Drawer mobile */
.lp-mobile-menu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    background: white;
    border-top: 1px solid var(--lp-border);
}
.lp-mobile-menu.lp-open {
    max-height: 600px;
}
.lp-mobile-menu-inner {
    padding: 1rem 1.5rem 1.5rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.lp-mobile-link {
    color: var(--lp-text);
    text-decoration: none;
    font-size: 1.05rem;
    font-weight: 500;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--lp-sand);
}
.lp-mobile-link:hover { color: var(--lp-terracotta); }

/* ===== MAIN ===== */
.lp-main {
    min-height: calc(100vh - var(--lp-header-h) - 300px);
}

/* ===== SEZIONI ===== */
.lp-section {
    padding: 5rem 0;
}
.lp-section-alt {
    background: var(--lp-bg-alt);
}
.lp-section-title {
    text-align: center;
    margin-bottom: 3rem;
}
.lp-section-title h2 {
    margin-bottom: 0.75rem;
}
.lp-section-title p {
    color: var(--lp-text-muted);
    max-width: 640px;
    margin: 0 auto;
}

/* Etichetta sopra titolo */
.lp-eyebrow {
    display: inline-block;
    color: var(--lp-terracotta);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

/* ===== BOTTONI ===== */
.lp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.75rem;
    border-radius: var(--lp-radius);
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
    transition: all 0.2s;
    border: 0;
    cursor: pointer;
}
.lp-btn-primary {
    background: var(--lp-terracotta);
    color: white;
}
.lp-btn-primary:hover {
    background: var(--lp-terracotta-dark);
    color: white;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(95, 122, 18, 0.25);
}
.lp-btn-secondary {
    background: var(--lp-teal);
    color: white;
}
.lp-btn-secondary:hover {
    background: var(--lp-teal-dark);
    color: white;
}
.lp-btn-outline {
    background: transparent;
    color: var(--lp-text);
    border: 1px solid var(--lp-stone);
}
.lp-btn-outline:hover {
    border-color: var(--lp-terracotta);
    color: var(--lp-terracotta);
}

/* ===== FORM ===== */
.lp-form-control {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid var(--lp-border);
    border-radius: var(--lp-radius);
    font-family: var(--lp-font);
    font-size: 0.95rem;
    color: var(--lp-text);
    background: white;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.lp-form-control:focus {
    outline: 0;
    border-color: var(--lp-terracotta);
    box-shadow: 0 0 0 3px rgba(95, 122, 18, 0.1);
}
.lp-form-label {
    display: block;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--lp-text-muted);
    margin-bottom: 0.4rem;
}

/* ===== FOOTER ===== */
.lp-footer {
    background: #1a1a1a;
    color: #cfccc6;
    padding: 4rem 0 1.5rem 0;
    margin-top: 5rem;
}
.lp-footer-logo {
    height: 70px;
    width: auto;
    margin-bottom: 1rem;
}
.lp-footer-text {
    color: #9b9a96;
    font-size: 0.92rem;
    line-height: 1.7;
    margin-bottom: 0;
}
.lp-footer-title {
    color: white;
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 1.25rem;
}
.lp-footer-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.lp-footer-list li {
    font-size: 0.92rem;
    margin-bottom: 0.6rem;
    color: #9b9a96;
}
.lp-footer-list li a {
    color: #cfccc6;
    text-decoration: none;
    transition: color 0.2s;
}
.lp-footer-list li a:hover {
    color: var(--lp-terracotta-light);
}
.lp-footer-list li i {
    color: var(--lp-terracotta-light);
    width: 18px;
    margin-right: 0.5rem;
}
.lp-footer-list li .lp-ico-svg {
    width: 18px;
    height: 1em;
    margin-right: 0.5rem;
    vertical-align: -0.125em;
    fill: var(--lp-terracotta-light);
}
.lp-footer-hr {
    border: 0;
    border-top: 1px solid #2c2c2c;
    margin: 3rem 0 1.5rem 0;
}
.lp-footer-bottom {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    font-size: 0.82rem;
    color: #6b6a66;
}
.lp-footer-credits {
    color: #6b6a66;
}
/* Finanziamento PNRR: fascia bianca con emblema UE (ed eventuale logo MiC) e dicitura.
   L'emblema ufficiale a colori va su fondo chiaro; la dicitura va letta, non solo esserci. */
.lp-footer-pnrr {
    margin: 1.5rem 0 0 0;
    padding: 1.25rem 1.5rem 1rem 1.5rem;
    background: #ffffff;
    border-radius: 10px;
    font-size: 0.82rem;
    line-height: 1.6;
    color: #4a4844;
    text-align: center;
}
.lp-pnrr-loghi {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem 2rem;               /* spazio di rispetto attorno a ciascun logo */
    margin-bottom: 0.85rem;
}
.lp-pnrr-loghi img {
    height: 48px;
    width: auto;
    max-width: 100%;
}
/* L'emblema UE deve avere almeno lo stesso risalto degli altri loghi:
   il logo del Ministero non puo' essere ne' piu' alto ne' piu' largo. */
.lp-pnrr-loghi img.lp-logo-mic {
    max-width: 200px;
}
.lp-footer-pnrr p { margin: 0; }
@media (max-width: 575px) {
    .lp-footer-pnrr { padding: 1rem; }
    .lp-pnrr-loghi img { height: 36px; }
    .lp-pnrr-loghi img.lp-logo-mic { max-width: 150px; }
}

/* ===== RESPONSIVE ===== */
/* Visibilità nav: desktop >= 992px mostra menu, < 992px mostra hamburger.
   Indipendente da Bootstrap (così funziona anche se BS fallisce a caricare). */
.lp-show-desktop { display: flex !important; }
.lp-show-mobile { display: none !important; }
@media (max-width: 991px) {
    .lp-show-desktop { display: none !important; }
    .lp-show-mobile { display: flex !important; }
}

@media (max-width: 991px) {
    h1 { font-size: 2.25rem; }
    h2 { font-size: 1.85rem; }
    h3 { font-size: 1.3rem; }
    .lp-section { padding: 3.5rem 0; }
    .lp-footer { margin-top: 3rem; padding: 3rem 0 1.5rem 0; }
}
@media (max-width: 575px) {
    .lp-header-row { gap: 0.5rem; }
    .lp-logo img { height: 44px; }
    h1 { font-size: 1.85rem; }
    h2 { font-size: 1.5rem; }
}

/* ===== UTILITY ===== */
.lp-mt-section { margin-top: 5rem; }
.lp-mb-section { margin-bottom: 5rem; }
.text-terracotta { color: var(--lp-terracotta) !important; }
.text-teal { color: var(--lp-teal) !important; }
.bg-cream { background-color: var(--lp-cream) !important; }
.bg-ivory { background-color: var(--lp-ivory) !important; }

/* ===== PAGINE INFORMATIVE (privacy, cookie, condizioni) =====
   Niente foto: sono pagine che si leggono. Colonna stretta, righe alte,
   titoli che si distinguono senza gridare. */
.lp-legale-testata {
    background: var(--lp-bg-alt);
    border-bottom: 1px solid var(--lp-border);
    padding: 3rem 0 2.25rem;
}
.lp-legale-testata h1 { margin: 0.35rem 0 0.5rem; }
.lp-legale-aggiornamento {
    margin: 0;
    font-size: 0.875rem;
    color: var(--lp-text-muted, #6b6b6b);
}
.lp-legale {
    max-width: 760px;          /* la riga lunga stanca: qui si sta sotto i 90 caratteri */
    margin: 0 auto;
}
.lp-legale-sezione { margin-bottom: 2.25rem; }
.lp-legale-sezione:last-of-type { margin-bottom: 0; }
.lp-legale-sezione h2 {
    font-size: 1.35rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--lp-border);
}
.lp-legale p { line-height: 1.75; margin-bottom: 1rem; }
.lp-legale ul { line-height: 1.75; margin-bottom: 1rem; padding-left: 1.35rem; }
.lp-legale a { color: var(--lp-terracotta); }
.lp-legale-riferimenti {
    margin-top: 3rem;
    padding: 1.5rem;
    background: var(--lp-bg-alt);
    border: 1px solid var(--lp-border);
    border-radius: var(--lp-radius);
}
.lp-legale-riferimenti h3 { font-size: 1.1rem; margin-top: 0; margin-bottom: 0.75rem; }
.lp-legale-riferimenti p { margin-bottom: 0; }


/* =====================================================================
   AURA GLAMPING
   ===================================================================== */

/* ----- Utilita' (prima arrivavano da Bootstrap, che qui non si carica) ----- */
.d-none { display: none !important; }
@media (min-width: 768px) { .d-md-inline-flex { display: inline-flex !important; } }
.mt-3 { margin-top: 1rem !important; }
.ag-nascosto { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ag-civetta { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ag-salta { position: absolute; left: -9999px; top: 0; z-index: 2000; background: var(--ag-verde); color: var(--ag-notte); padding: .6rem 1rem; }
.ag-salta:focus { left: 1rem; top: 1rem; }
:focus-visible { outline: 2px solid var(--ag-verde); outline-offset: 2px; }

h1, h2, h3 { letter-spacing: -0.015em; }

/* ----- Header scuro, logo bianco ----- */
.lp-header {
    background: rgba(20, 23, 18, 0.96);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.lp-header.lp-scrolled { box-shadow: 0 2px 16px rgba(0, 0, 0, 0.35); }
.lp-logo img { height: 56px; width: 56px; }
.lp-nav { gap: 1.75rem; }
.lp-nav-link { color: rgba(255, 255, 255, 0.92); letter-spacing: .02em; }
.lp-nav-link:hover, .lp-nav-link.lp-active { color: var(--ag-verde); }
.lp-nav-link::after { background: var(--ag-verde); }
.lp-nav-link .fa-chevron-down { font-size: .65em; margin-left: .25rem; opacity: .7; }
.lp-cta { background: var(--ag-verde); color: var(--ag-notte); text-transform: uppercase; letter-spacing: .06em; font-size: .82rem; }
.lp-cta:hover { background: #c6e34f; color: var(--ag-notte); box-shadow: 0 4px 14px rgba(179, 211, 53, 0.3); }
.lp-hamburger span { background: #fff; }
.lp-mobile-menu { background: var(--ag-notte); border-top-color: rgba(255, 255, 255, 0.08); }
.lp-mobile-menu.lp-open { max-height: 900px; }
.lp-mobile-link { color: #fff; border-bottom-color: rgba(255, 255, 255, 0.08); }
.lp-mobile-link:hover { color: var(--ag-verde); }
.lp-mobile-sub { padding-left: 1rem; font-size: .95rem; color: rgba(255, 255, 255, 0.75); }

/* Tendine del menu: si aprono al passaggio o con la tastiera */
.ag-tendina { position: relative; }
.ag-tendina-menu {
    position: absolute; top: 100%; left: -1rem; min-width: 230px;
    background: var(--ag-notte); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 0 0 8px 8px;
    padding: .5rem 0; opacity: 0; visibility: hidden; transform: translateY(6px);
    transition: opacity .2s, transform .2s, visibility .2s; box-shadow: 0 12px 30px rgba(0, 0, 0, .35);
}
.ag-tendina:hover .ag-tendina-menu, .ag-tendina:focus-within .ag-tendina-menu { opacity: 1; visibility: visible; transform: none; }
.ag-tendina-menu a { display: block; padding: .55rem 1.25rem; color: rgba(255, 255, 255, 0.88); font-size: .92rem; }
.ag-tendina-menu a:hover { color: var(--ag-verde); background: rgba(255, 255, 255, 0.04); }

/* In home l'header sta sopra la foto, trasparente finche' non si scorre */
body.ag-home .lp-header { position: fixed; left: 0; right: 0; background: linear-gradient(rgba(0,0,0,.55), rgba(0,0,0,0)); border-bottom-color: transparent; }
body.ag-home .lp-header.lp-scrolled, body.ag-home .lp-header.ag-menu-aperto { background: rgba(20, 23, 18, 0.96); }

/* ----- Apertura della home ----- */
.ag-hero { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: flex-end; color: #fff; overflow: hidden; background: var(--ag-notte); }
.ag-hero-foto, .ag-hero-foto picture { position: absolute; inset: 0; }
.ag-hero-foto picture { opacity: 0; transition: opacity 1.6s ease; }
.ag-hero-foto picture.ag-attiva { opacity: 1; }
.ag-hero-foto img { width: 100%; height: 100%; object-fit: cover; }
.ag-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.15) 30%, rgba(0,0,0,.7) 100%); }
.ag-hero-testo { position: relative; z-index: 2; padding-bottom: 6rem; padding-top: 8rem; }
.ag-hero-parole { margin: 0 0 1rem; font-size: clamp(2.6rem, 8vw, 6rem); font-weight: 700; line-height: 1; text-transform: uppercase; letter-spacing: .04em; }
.ag-hero-parole span { display: inline-block; }
.ag-hero-parole span:nth-child(2) { color: var(--ag-verde); }
.ag-hero h1 { color: #fff; font-size: clamp(1.4rem, 3vw, 2.2rem); font-weight: 600; margin-bottom: .75rem; max-width: 760px; }
.ag-hero-sotto { max-width: 640px; font-size: 1.05rem; color: rgba(255,255,255,.9); }
.ag-hero-azioni { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.ag-hero-punti { position: absolute; z-index: 2; right: 1.5rem; bottom: 2rem; display: flex; gap: .5rem; }
.ag-hero-punti span { width: 28px; height: 3px; background: rgba(255,255,255,.4); transition: background .3s; }
.ag-hero-punti span.ag-attiva { background: var(--ag-verde); }
.ag-btn-chiaro { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.7); }
.ag-btn-chiaro:hover { background: #fff; color: var(--ag-notte); }

.ag-banda { background: var(--ag-bosco); color: #e9eddf; padding: 1.5rem 0; }
.ag-banda-riga { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.ag-banda p { margin: 0; font-size: 1.05rem; text-transform: uppercase; letter-spacing: .05em; }
.ag-banda a:not(.lp-btn) { color: var(--ag-verde); font-weight: 600; }
.ag-banda .lp-btn-outline { color: #fff; border-color: rgba(255,255,255,.5); }
.ag-banda .lp-btn-outline:hover { background: var(--ag-verde); border-color: var(--ag-verde); color: var(--ag-notte); }

/* ----- Testata delle pagine (foto con titolo) ----- */
.ag-testata {
    position: relative; min-height: 46vh; display: flex; align-items: flex-end; color: #fff;
    background: var(--ag-bosco) center / cover no-repeat; padding: 6rem 0 3rem;
    background-image: var(--testata, none);
}
/* Sui telefoni la copia da 800 px: la foto grande pesa 4-5 volte tanto. */
@media (max-width: 800px) {
    .ag-testata { background-image: var(--testata-m, var(--testata, none)); }
}
.ag-testata::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.2), rgba(0,0,0,.65)); }
.ag-testata .container-xl { position: relative; }
.ag-testata h1 { color: #fff; max-width: 900px; margin-bottom: .5rem; }
.ag-testata-sotto { max-width: 720px; font-size: 1.1rem; color: rgba(255,255,255,.9); margin: 0; }
.ag-occhiello { margin: 0 0 .5rem; text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; }
.ag-occhiello a { color: var(--ag-verde); }
.ag-articolo-meta { color: rgba(255,255,255,.85); margin: 0; }
.ag-testata--articolo { min-height: 56vh; }

/* ----- Contenuti importati (pagine) ----- */
.ag-corpo { padding-top: 3.5rem; padding-bottom: 1rem; }
.ag-corpo--stretto { max-width: 820px; }
.ag-sez { margin: 0 auto 3.5rem; max-width: 1100px; }
.ag-sez > h2, .ag-sez > .ag-testo, .ag-sez > p, .ag-sez > h3 { max-width: 820px; margin-left: auto; margin-right: auto; }
.ag-sez > h2 { text-align: center; margin-bottom: 1.25rem; }
.ag-testo { font-size: 1.04rem; line-height: 1.8; color: var(--lp-text); }
.ag-testo h2 { font-size: 1.75rem; margin-top: 1.5rem; }
.ag-testo h3 { font-size: 1.3rem; margin-top: 1.25rem; }
.ag-testo img { max-width: 100%; height: auto; border-radius: 8px; }
.ag-testo a, .ag-articolo a { text-decoration: underline; text-underline-offset: 2px; }
.ag-img { margin: 0 0 1.5rem; }
.ag-img img, .ag-split-media img { width: 100%; height: auto; display: block; border-radius: 10px; }
.ag-sez > .ag-img { display: inline-block; width: calc(33.333% - 1rem); margin-right: 1rem; vertical-align: top; }
.ag-sez > .ag-img:only-of-type { display: block; width: 100%; margin-right: 0; }
.ag-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; align-items: center; }
.ag-split-media figure { margin: 0; }
.ag-split-testo > h2 { font-size: 2rem; }
.ag-sez:nth-of-type(even) .ag-split-media { order: 2; }
.ag-azioni { margin: 1.25rem 0 0; }
.ag-sez > .ag-azioni { text-align: center; }
.ag-btn {
    display: inline-flex; align-items: center; padding: .75rem 1.75rem; border-radius: var(--lp-radius);
    background: var(--ag-verde); color: var(--ag-notte) !important; font-weight: 600; text-decoration: none !important;
    text-transform: uppercase; letter-spacing: .05em; font-size: .85rem; transition: transform .2s, box-shadow .2s;
}
.ag-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(95, 122, 18, .25); }

/* Gallerie: miniature che si aprono a schermo intero */
.ag-galleria { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .75rem; }
.ag-galleria a { display: block; overflow: hidden; border-radius: 8px; aspect-ratio: 4 / 3; }
.ag-galleria img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.ag-galleria a:hover img { transform: scale(1.04); }
.ag-loghi { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2rem 3rem; }
.ag-loghi a { pointer-events: none; }
.ag-loghi img { max-height: 90px; width: auto; }

/* Schede con foto (valori del progetto) e riquadri */
.ag-schede { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.5rem; margin-bottom: 2rem; }
.ag-scheda { background: var(--lp-bg-alt); border-radius: 12px; overflow: hidden; padding-bottom: 1.25rem; }
.ag-scheda img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin-bottom: 1rem; }
.ag-scheda h3, .ag-scheda p { padding: 0 1.25rem; }
.ag-scheda-sotto { color: var(--lp-terracotta); font-weight: 600; margin-bottom: .5rem; }
.ag-riquadro { position: relative; border-radius: 12px; overflow: hidden; margin: 1.5rem 0; min-height: 320px; display: flex; align-items: flex-end; color: #fff; }
.ag-riquadro img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ag-riquadro::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,.75)); z-index: 1; }
.ag-riquadro-testo { position: relative; z-index: 2; padding: 1.75rem; }
.ag-riquadro-testo h3 { color: #fff; }
.ag-riquadro-testo p { margin: 0; color: rgba(255,255,255,.9); }

/* Caroselli (al posto degli slider del vecchio sito) */
.ag-carosello { position: relative; overflow: hidden; border-radius: 14px; background: var(--ag-notte); }
.ag-carosello-binario { display: flex; transition: transform .6s ease; }
.ag-slide { position: relative; flex: 0 0 100%; min-height: 460px; display: flex; align-items: flex-end; color: #fff; }
.ag-slide > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ag-slide::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05) 25%, rgba(0,0,0,.75)); z-index: 1; }
.ag-slide-testo { position: relative; z-index: 2; padding: 2rem 2.25rem; max-width: 780px; }
.ag-slide-testo p, .ag-slide-testo h2, .ag-slide-testo h3 { color: #fff; }
.ag-slide-titolo { font-size: 1.9rem; font-weight: 700; line-height: 1.2; }
.ag-slide-etichetta { position: absolute; z-index: 2; top: 1.25rem; left: 1.5rem; background: var(--ag-verde); color: var(--ag-notte); font-weight: 600; font-size: .8rem; padding: .3rem .8rem; border-radius: 20px; text-transform: uppercase; letter-spacing: .05em; }
.ag-carosello-freccia {
    position: absolute; top: 50%; z-index: 3; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%;
    border: 0; background: rgba(0,0,0,.45); color: #fff; cursor: pointer; font-size: 1rem;
}
.ag-carosello-freccia:hover { background: var(--ag-verde); color: var(--ag-notte); }
.ag-carosello-freccia.ag-prec { left: 1rem; }
.ag-carosello-freccia.ag-succ { right: 1rem; }
.ag-carosello-punti { position: absolute; z-index: 3; bottom: 1rem; right: 1.5rem; display: flex; gap: .4rem; }
.ag-carosello-punti button { width: 10px; height: 10px; border-radius: 50%; border: 0; padding: 0; background: rgba(255,255,255,.5); cursor: pointer; }
.ag-carosello-punti button.ag-attiva { background: var(--ag-verde); }
.ag-slide-statico { max-width: 820px; margin: 1.5rem auto 0; text-align: center; font-size: 1.05rem; }
.ag-slide-statico p:first-child { font-size: 1.6rem; font-weight: 700; }

.ag-invito { background: var(--ag-bosco) url('/img/home-territorio.webp') center / cover; position: relative; color: #fff; text-align: center; padding: 5rem 0; }
.ag-invito::before { content: ''; position: absolute; inset: 0; background: rgba(20,23,18,.72); }
.ag-invito .container-xl { position: relative; }
.ag-invito h2 { color: #fff; }
.ag-invito p { color: rgba(255,255,255,.88); max-width: 560px; margin: 0 auto 1.5rem; }

/* ----- Blog ----- */
.ag-titolo-sezione { text-align: center; margin-bottom: 2rem; }
.ag-filtri { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-bottom: 2.5rem; }
.ag-filtri a { padding: .4rem 1rem; border: 1px solid var(--lp-border); border-radius: 20px; color: var(--lp-text); font-size: .9rem; }
.ag-filtri a:hover, .ag-filtri a.ag-attivo { background: var(--lp-terracotta); border-color: var(--lp-terracotta); color: #fff; }
.ag-blog-griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 2rem; }
.ag-blog-card { display: flex; flex-direction: column; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 18px rgba(0,0,0,.06); color: var(--lp-text); transition: transform .25s, box-shadow .25s; }
.ag-blog-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(0,0,0,.1); color: var(--lp-text); }
.ag-blog-card img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.ag-blog-card-testo { display: flex; flex-direction: column; gap: .4rem; padding: 1.25rem 1.4rem 1.5rem; }
.ag-blog-data { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--lp-terracotta); font-weight: 600; }
.ag-blog-titolo { font-size: 1.2rem; font-weight: 600; line-height: 1.3; margin: 0; }
.ag-blog-titolo a { color: var(--lp-text); }
.ag-blog-card p { color: var(--lp-text-muted); font-size: .95rem; margin: 0; }
.ag-leggi { font-weight: 600; font-size: .9rem; margin-top: .25rem; }
.ag-paginazione { display: flex; justify-content: center; gap: .4rem; margin-top: 3rem; }
.ag-paginazione a, .ag-paginazione span { min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; border: 1px solid var(--lp-border); }
.ag-paginazione span { background: var(--lp-terracotta); color: #fff; border-color: var(--lp-terracotta); }
.ag-articolo { max-width: 760px; padding-top: 3rem; padding-bottom: 3rem; font-size: 1.1rem; line-height: 1.85; }
.ag-articolo img { max-width: 100%; height: auto; border-radius: 10px; margin: 1rem 0; }
.ag-articolo blockquote { border-left: 3px solid var(--ag-verde); margin: 1.5rem 0; padding: .25rem 0 .25rem 1.25rem; font-style: italic; color: var(--lp-text-muted); }
.ag-categorie { margin-top: 2.5rem; font-size: .9rem; color: var(--lp-text-muted); }
.ag-categorie a { display: inline-block; margin-left: .35rem; padding: .2rem .7rem; border-radius: 14px; background: var(--lp-cream); text-decoration: none; }

/* ----- Cupole e recensioni in home ----- */
.ag-cupole { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; max-width: 1000px; margin: 0 auto; }
.ag-cupola { position: relative; display: block; border-radius: 14px; overflow: hidden; min-height: 380px; color: #fff; }
.ag-cupola img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.ag-cupola:hover img { transform: scale(1.04); }
.ag-cupola::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(0,0,0,.78)); z-index: 1; }
.ag-cupola-testo { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: 1.5rem; display: flex; flex-direction: column; gap: .35rem; }
.ag-cupola-testo strong { font-size: 1.5rem; }
.ag-cupola-ospiti { color: var(--ag-verde); font-size: .9rem; }
.ag-recensioni { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; }
.ag-recensione { margin: 0; background: var(--lp-bg-alt); border-radius: 12px; padding: 1.75rem; font-style: italic; }
.ag-recensione footer { font-style: normal; font-weight: 600; margin-top: .75rem; color: var(--lp-terracotta); }

/* ----- Newsletter ----- */
.ag-newsletter { background: var(--ag-bosco); color: #e9eddf; padding: 3.5rem 0; margin-top: 5rem; }
.ag-newsletter + .lp-footer { margin-top: 0; }
.ag-newsletter h2 { color: #fff; font-size: 1.6rem; margin-bottom: .4rem; }
.ag-newsletter p { color: rgba(233,237,223,.85); margin: 0; }
.ag-newsletter-riga { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 2rem; align-items: center; }
.ag-newsletter-form { display: grid; grid-template-columns: 1fr auto; gap: .6rem; }
.ag-newsletter-form .lp-form-control { border-color: transparent; }
.ag-newsletter-form .lp-btn-primary { background: var(--ag-verde); color: var(--ag-notte); }
.ag-newsletter-esterna .lp-btn-primary { background: var(--ag-verde); color: var(--ag-notte); }
.ag-newsletter-esterna { justify-self: start; }
.ag-consenso { grid-column: 1 / -1; font-size: .82rem; color: rgba(233,237,223,.8); display: flex; gap: .5rem; align-items: flex-start; }
.ag-consenso a { color: var(--ag-verde); text-decoration: underline; }
.ag-newsletter-esito { padding: 1rem 1.25rem; border-radius: 6px; }
.ag-newsletter-esito.lp-success { background: rgba(179,211,53,.15); color: #e9f5bd; border: 1px solid rgba(179,211,53,.5); }
.ag-newsletter-esito.lp-error { background: rgba(240,120,120,.12); color: #ffd0d0; border: 1px solid rgba(240,120,120,.5); grid-column: 2; }

/* ----- Footer ----- */
.lp-footer { background: var(--ag-notte); }
.lp-footer-logo { height: 90px; width: 90px; }
.lp-footer-title { font-size: .9rem; }
.lp-footer-list li a:hover, .lp-footer-list li i { color: var(--ag-verde); }
.lp-footer-list li .lp-ico-svg { fill: var(--ag-verde); }
.ag-social { display: flex; gap: .6rem; margin-top: 1rem; }
.ag-social a { width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.2); color: #fff; }
.ag-social a:hover { background: var(--ag-verde); border-color: var(--ag-verde); color: var(--ag-notte); }
.ag-footer-sostegno { font-size: .85rem; color: #9da394; margin: 0 0 1rem; }
.lp-footer-bottom { color: #8d9386; }

/* ----- Banner cookie ----- */
.ag-cookie {
    position: fixed; z-index: 1500; left: 1rem; right: 1rem; bottom: 1rem; max-width: 760px; margin: 0 auto;
    background: #fff; color: var(--lp-text); border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,.25);
    padding: 1.25rem 1.5rem; display: flex; flex-wrap: wrap; gap: 1rem; align-items: center;
}
.ag-cookie[hidden] { display: none; }
.ag-cookie p { margin: 0; flex: 1 1 320px; font-size: .92rem; }
.ag-cookie-azioni { display: flex; gap: .5rem; }

/* ----- Foto a schermo intero (gallerie) ----- */
.ag-lightbox { position: fixed; inset: 0; z-index: 3000; background: rgba(0,0,0,.92); display: flex; align-items: center; justify-content: center; }
.ag-lightbox img { max-width: 94vw; max-height: 88vh; border-radius: 6px; }
.ag-lightbox button { position: absolute; background: transparent; border: 0; color: #fff; font-size: 2rem; cursor: pointer; padding: 1rem; }
.ag-lightbox .ag-chiudi { top: .5rem; right: 1rem; }
.ag-lightbox .ag-prec { left: .5rem; top: 50%; transform: translateY(-50%); }
.ag-lightbox .ag-succ { right: .5rem; top: 50%; transform: translateY(-50%); }

.ag-testo-libero h2 { font-size: 1.35rem; }
.ag-testo-libero ul { padding-left: 1.1rem; }

/* ----- Schermi piccoli ----- */
@media (max-width: 991px) {
    .ag-split { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
    .ag-sez:nth-of-type(even) .ag-split-media { order: 0; }
    .ag-newsletter-riga { grid-template-columns: minmax(0, 1fr); }
    .ag-newsletter-esito.lp-error { grid-column: auto; }
    .ag-slide { min-height: 380px; }
}
@media (max-width: 575px) {
    .ag-sez > .ag-img { width: 100%; margin-right: 0; }
    .ag-newsletter-form { grid-template-columns: minmax(0, 1fr); }
    .ag-hero-testo { padding-bottom: 4.5rem; }
    .ag-slide-testo { padding: 1.5rem; }
    .ag-slide-titolo { font-size: 1.4rem; }
    .ag-carosello-freccia { display: none; }
    .ag-testata { min-height: 38vh; padding-top: 5rem; }
    .lp-logo img { height: 46px; width: 46px; }
}
@media (prefers-reduced-motion: reduce) {
    .ag-hero-foto picture, .ag-carosello-binario { transition: none; }
}
