/* ==========================================================================
   1. PALETTE & VARIABILI ESSENZIALI (TRICOLORE ITALIA)
   ========================================================================== */
:root {
	--font-main: 'Raleway', sans-serif;
	--font-title: 'Podkova', serif;
	--verde-italia: rgba(18, 77, 49, 1);
	--verde-italia-hover: rgba(12, 54, 34, 1);
	--verde-italia-light: rgba(18, 77, 49, 0.05);
	--verde-italia-demi: rgba(18, 77, 49, 0.5);
	--verde-italia-hero-overlay: rgba(12, 54, 34, 0.15);
	--verde-italia-trans-90: rgba(18, 77, 49, 0.80);
	--rosso-italia: rgba(200, 16, 46, 1);
	--rosso-italia-hover: rgba(160, 10, 35, 1);
	--rosso-italia-light: rgba(200, 16, 46, 0.15);
	--rosso-italia-shadow: rgba(200, 16, 46, 0.35);
	--rosso-italia-error: rgba(200, 16, 46, 1);
	--oro-italia: rgba(183, 237, 0, 1);
	--oro-italia-hover: rgba(145, 190, 0, 1);
	--oro-italia-shadow: rgba(183, 237, 0, 0.4);
	--oro-italia-shadow-strong: rgba(183, 237, 0, 0.85);
	--white: rgba(255, 255, 255, 1);
	--white-trans-96: rgba(255, 255, 255, 0.96);
	--white-trans-85: rgba(255, 255, 255, 0.85);
	--white-trans-40: rgba(255, 255, 255, 0.4);
	--white-trans-08: rgba(255, 255, 255, 0.08);
	--gray-bg: rgba(248, 250, 252, 1);
	--gray-border: rgba(226, 232, 240, 1);
	--gray-border-light: rgba(0, 0, 0, 0.08);
	--gray-border-soft: rgba(0, 0, 0, 0.05);
	--gray-tag-bg: rgba(148, 163, 184, 1);
	--gray-text-main: rgba(51, 65, 85, 1);
	--gray-half: rgba(51, 65, 85, 0.50);
	--gray-text-dark: rgba(30, 41, 59, 1);
	--gray-text-muted: rgba(100, 116, 139, 1);
	--shadow-light: rgba(0, 0, 0, 0.04);
	--shadow-card: rgba(0, 0, 0, 0.05);
	--shadow-medium: rgba(0, 0, 0, 0.12);
	--shadow-heavy: rgba(0, 0, 0, 0.25);
	--shadow-header: rgba(0, 0, 0, 0.3);
}

/* ==========================================================================
   2. STILI GLOBALI & STRUTTURA BASE
   ========================================================================== */
html { scroll-behavior: smooth; }
body { display: block; width: 100%; margin: 0; padding: 0; font-family: var(--font-main); font-weight: 400; background-color: var(--white); color: var(--gray-text-main); }
.container { display: block; width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 15px; box-sizing: border-box; }
h1, h2, h3, h4, h5, h6 { display: block; margin: 0 0 1rem 0; font-family: var(--font-title); font-weight: 700; -webkit-text-stroke: 0 transparent; }
h2, .container h2 { display: block; margin-bottom: 1.5rem; font-weight: 700; font-size: 1.5rem; line-height: 1.3; text-align: center; color: var(--verde-italia) !important; -webkit-text-stroke: 0 transparent; }
p { display: block; margin: 0 0 1rem 0; font-size: 1.2rem; line-height: 1.6rem; text-align: left; color: var(--gray-text-main); }
p:last-child { margin-bottom: 0; }
strong { font-weight: 700; }
a { color: #005a9c; text-decoration: none; font-weight: 600;}
a:hover { color: var(--verde-italia);text-decoration: underline;  }

.sottolineato { position: relative !important; display: inline-block !important; margin-bottom: 8px !important; white-space: nowrap !important; }
.sottolineato::after { position: absolute !important; left: 0 !important; bottom: -6px !important; display: block !important; width: 100% !important; height: 16px !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'%3E%3Cpath d='M 2,12 Q 50,8 98,11 Q 50,18 2,14 Z' fill='rgba(183, 237, 0, 1)' /%3E%3C/svg%3E") !important; background-size: 100% 100% !important; background-repeat: no-repeat !important; content: '' !important; opacity: 0.95 !important; clip-path: inset(0 100% 0 0) !important; transition: clip-path 1s cubic-bezier(0.25, 1, 0.5, 1) 0.5s !important; z-index: 1 !important; }
.sottolineato.in-view::after { clip-path: inset(0 0 0 0) !important; }


/* ==========================================================================
   3. HEADER LANDING PAGE & SITO (.site-header, .dc-header)
   ========================================================================== */
.site-header, .dc-header { position: fixed; top: 0; left: 0; display: block; width: 100%; height: 60px; background-color: var(--verde-italia-trans-90); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid var(--oro-italia); box-shadow: 0 4px 15px var(--shadow-header); z-index: 1020; transition: transform 0.35s ease-in-out, background-color 0.3s ease !important; }
.site-header.is-hidden, .dc-header.is-hidden { transform: translateY(-59px) !important; }
.site-header .site-navbar, .dc-header .dc-navbar { display: flex; align-items: center; justify-content: space-between; width: 100%; max-width: 1440px; height: 60px; margin: 0 auto; padding: 0 15px; background: transparent; box-sizing: border-box; }
.site-header .dc-navbar-brand, .dc-header .dc-navbar-brand { position: relative; overflow: visible; display: flex; align-items: center; height: 100%; padding: 0; font-size: 1.25rem; letter-spacing: 0.8px; text-decoration: none; color: var(--oro-italia) !important; white-space: nowrap; z-index: 1030; }
.site-header .dc-navbar-brand img, .dc-header .dc-navbar-brand img { display: block; width: auto; max-width: 240px; height: auto; max-height: 60px; object-fit: contain; transform: translateY(6px); filter: drop-shadow(0 2px 4px var(--shadow-heavy)); }
.site-header .dc-navbar-brand .badge-sub, .dc-header .dc-navbar-brand .badge-sub { font-weight: 600; font-size: 0.75rem; padding: 0.2rem 0.5rem; margin-left: 0.5rem; background-color: var(--verde-italia-hover); color: var(--white); border-radius: 4px; vertical-align: middle; }
/* HAMBURGER BUTTON PIÙ VISIBILE E MARCATO */
.site-header .navbar-toggler, .dc-header .navbar-toggler { padding: 0.35rem 0.65rem; background-color: var(--verde-italia-hover); border: 2px solid var(--oro-italia); border-radius: 6px; box-shadow: 0 2px 6px var(--shadow-medium); cursor: pointer; transition: all 0.2s ease; }
.site-header .navbar-toggler:focus, .dc-header .navbar-toggler:focus { background-color: var(--oro-italia); outline: none; }
.site-header .navbar-toggler-icon, .dc-header .navbar-toggler-icon { width: 1.4em; height: 1.4em; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(183, 237, 0, 1)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='3' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
.site-header .navbar-toggler:focus .navbar-toggler-icon, .dc-header .navbar-toggler:focus .navbar-toggler-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(12, 54, 34, 1)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='3' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
.site-header .navbar-collapse, .dc-header .navbar-collapse { display: block; width: auto; flex-grow: 0; }
.site-header .navbar-nav, .dc-header .navbar-nav { display: flex; flex-direction: row; align-items: center; height: 60px; margin: 0; padding: 0; list-style: none; }
.site-header .nav-item, .dc-header .nav-item { position: relative; display: flex; align-items: center; height: 60px; margin-left: 0.2rem; white-space: nowrap; }
.site-header .nav-link, .dc-header .nav-link { position: relative; display: flex; align-items: center; height: 100%; padding: 0 0.5rem !important; font-weight: 700; font-size: 0.78rem; letter-spacing: 0.5px; text-transform: uppercase; text-decoration: none; color: var(--white-trans-96) !important; cursor: pointer; transition: color 0.2s ease; }
.site-header .nav-link:hover, .dc-header .nav-link:hover { color: var(--oro-italia) !important; }
/* STATO ATTIVO MAIN MENU (SFONDO VERDE ACIDO + TESTO E LINEA SCURI) */
.site-header .nav-item.active, .dc-header .nav-item.active { background-color: var(--oro-italia) !important; }
.site-header .nav-item.active > .nav-link, .site-header .nav-link.active,
.dc-header .nav-item.active > .nav-link, .dc-header .nav-link.active { background-color: var(--oro-italia) !important; color: var(--verde-italia-hover) !important; }
.site-header .nav-item.active > .nav-link::after, .site-header .nav-link.active::after,
.dc-header .nav-item.active > .nav-link::after, .dc-header .nav-link.active::after { position: absolute; left: 0.5rem; bottom: 8px; display: block !important; width: calc(100% - 1rem) !important; height: 3px; content: ''; background-color: var(--verde-italia-hover) !important; border-radius: 2px; }
/* DROPDOWN MENU DESKTOP HOVER & FOCUS */
.site-header .dropdown-menu, .dc-header .dropdown-menu { position: absolute; top: 100%; left: 0; overflow: hidden; display: block !important; width: auto; min-width: 180px; max-height: 0; margin: 0; padding: 0; background-color: var(--verde-italia-hover) !important; border: 0px solid var(--oro-italia); border-radius: 0 0 6px 6px; opacity: 0; pointer-events: none; box-shadow: 0 8px 20px var(--shadow-header); transition: max-height 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease, padding 0.25s ease, border-width 0.1s ease; z-index: 1030; }
.site-header .nav-item.dropdown:hover .dropdown-menu, .dc-header .nav-item.dropdown:hover .dropdown-menu { overflow: visible !important; max-height: 400px !important; padding: 0.5rem 0 !important; border-width: 1px !important; opacity: 1 !important; pointer-events: auto !important; background-color: var(--verde-italia-hover) !important; }
.site-header .dropdown-item, .dc-header .dropdown-item, .site-header .dropdown-item:visited, .dc-header .dropdown-item:visited, .site-header .dropdown-item:active, .dc-header .dropdown-item:active, .site-header .dropdown-item:focus, .dc-header .dropdown-item:focus { position: relative; display: block; width: 100%; padding: 0.5rem 1.2rem; font-weight: 600; font-size: 0.8rem; letter-spacing: 0.5px; text-transform: uppercase; text-decoration: none; white-space: nowrap; background-color: transparent !important; color: var(--white-trans-85) !important; transition: all 0.2s ease; }
.site-header .dropdown-item:hover, .dc-header .dropdown-item:hover { font-weight: 700 !important; background-color: var(--verde-italia) !important; color: var(--oro-italia) !important; }
.site-header .dropdown-item.active, .dc-header .dropdown-item.active { font-weight: 800 !important; background-color: var(--oro-italia) !important; color: var(--verde-italia-hover) !important; }



/* ==========================================================================
   4. SEZIONE HERO (.hero-section)
   ========================================================================== */
section[id] { scroll-margin-top: 60px; }
.hero-section { position: relative; overflow: hidden; display: flex; align-items: flex-end; width: auto; min-height: 100vh; margin: 0; padding: 60px 6px 1.6rem; background-color: var(--verde-italia); color: var(--white); box-sizing: border-box; }
.hero-section::before { position: absolute; top: 0; left: 0; display: block; width: 100%; height: 100%; content: ''; background: linear-gradient(135deg, var(--verde-italia-light) 0%, var(--verde-italia-hero-overlay) 100%); pointer-events: none; z-index: 2; }
.hero-video { position: absolute; top: 0; left: 0; display: block; width: 100%; height: 100%; padding: 0; object-fit: cover; object-position: center top; background: transparent; transform: translate3d(0, 0, 0); -webkit-transform: translate3d(0, 0, 0); backface-visibility: hidden; -webkit-backface-visibility: hidden; z-index: 1; }
.hero-image { position: absolute; top: 0; left: 0; display: block; width: 100%; height: 100%; padding: 0; object-fit: cover; object-position: center top; background: transparent; backface-visibility: hidden; -webkit-backface-visibility: hidden; z-index: 1; animation: heroSlowZoom 10s infinite alternate ease-in-out; will-change: transform; }
.hero-image.pos-left   { object-position: left center !important; }
.hero-image.pos-right  { object-position: right center !important; }
.hero-image.pos-center { object-position: center center !important; }



.hero-section .container { position: relative; display: block; margin-top: auto !important; margin-bottom: 0 !important; padding: 1.25rem 1.75rem; background-color: var(--verde-italia-demi); border: 1px solid var(--oro-italia); border-radius: 12px; opacity: 0; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); box-shadow: 0 0 25px var(--oro-italia-shadow); animation: dcContainerFadeIn 0.8s ease-out 0.3s forwards; z-index: 3; }
.hero-section h1 { display: block; margin-bottom: 0.6rem !important; font-size: 2.2rem; line-height: 1.10; color: var(--white); }
.hero-section h1 strong { font-size: 4.8rem; color: var(--oro-italia); }
.hero-section p.subtitle { display: block; margin-bottom: 1rem; font-style: italic; font-weight: 300; font-size: 1.2rem; line-height: 1.6rem; letter-spacing: 0.01em; color: var(--white); }
.hero-section p.subtitle strong { font-weight: 700; color: var(--white); }
.hero-section .highlight-box { display: block; padding: 0.85rem 1.1rem; background: var(--verde-italia-demi); border: 1px solid var(--oro-italia); border-left: 8px solid var(--oro-italia); border-radius: 0 6px 6px 0; }
.hero-section .highlight-box p { display: block; margin: 0; font-size: 1.15rem; line-height: 1.5; color: var(--white); }




/* ==========================================================================
   5. COMPONENTE FORM (.form-container)
   ========================================================================== */
.form-container { display: block; width: 100%; margin: 0; padding: 1.5rem 1.25rem 1.25rem; font-size: 1rem; background-color: var(--white-trans-96); color: var(--gray-text-dark); border: 1px solid var(--white-trans-40); border-radius: 10px; box-shadow: 0 10px 30px var(--shadow-heavy); box-sizing: border-box; }
.form-container h2 { margin: 0 0 18px 0; font-size: 1.3rem; line-height: 1.2; text-align: center; color: var(--rosso-italia) !important; }
#form_info { display: block; width: 100%; margin: 0; padding: 0; }
#form_info fieldset.dc-form-grid { display: flex; flex-wrap: wrap; width: calc(100% + 12px); margin: 0 -6px; padding: 0; border: none; }
.dc-form-group { position: relative; display: block; flex: 0 0 50%; width: 50%; max-width: 50%; margin: 0 0 0.8rem 0; padding: 0 6px; box-sizing: border-box; }
.dc-form-group.prefisso { flex: 0 0 24%; width: 24%; max-width: 24%; }
.dc-form-group.numero { flex: 0 0 76%; width: 76%; max-width: 76%; }
#form_info .full-width { display: block; flex: 0 0 100%; width: 100%; max-width: 100%; margin: 0; padding: 0 6px; box-sizing: border-box; }
#form_info input[type="text"], #form_info select { display: block; width: 100%; height: 38px; margin: 0; padding: 0.375rem 0.5rem; font-weight: 400; font-size: 0.85rem; line-height: 1.5; background-color: var(--white); color: var(--gray-text-main); border: 1px solid var(--gray-border); border-radius: 4px; box-sizing: border-box; }
#form_info input[type="text"]:focus, #form_info select:focus { background-color: var(--white); color: var(--gray-text-main); border-color: var(--verde-italia); outline: none; box-shadow: 0 0 0 0.2rem var(--verde-italia-light); }
#form_info span.error { position: absolute; left: 12px; bottom: -7px; display: none; margin: 0; padding: 2px 6px; font-weight: 700; font-size: 10px; line-height: 10px; background-color: var(--rosso-italia-error); color: var(--white); border-radius: 3px; pointer-events: none; box-shadow: 0 2px 4px var(--shadow-heavy); z-index: 10; }
#campi-obbligatori { display: flex; align-items: center; margin: 0 0 0.4rem 0; }
#campi-obbligatori label { display: block; margin: 0; font-size: 0.7rem; color: var(--gray-text-muted); }
#privacy_box { display: block; margin: 0 0 0.75rem 0; font-size: 0.75rem; line-height: 1.3; color: var(--gray-text-main); }
#privacy_box a.iframe { font-weight: 400; text-decoration: underline; color: var(--verde-italia); }
#privacy_box input[type="checkbox"] { margin: 0 4px 0 0; }
#invia { display: block; margin: 0; text-align: center; }
#invia #invia2 { display: block; width: 100%; max-width: 300px; margin: 0 auto; padding: 0.65rem 1rem; font-weight: 800; font-size: 1rem; line-height: 1.2; letter-spacing: 0.04em; text-transform: uppercase; text-decoration: none; background-color: var(--rosso-italia); color: var(--white); border: 1px solid var(--rosso-italia); border-radius: 8px; cursor: pointer; transition: all 0.2s ease; box-shadow: none; box-sizing: border-box; }
#invia #invia2:hover { background-color: var(--oro-italia-hover); color: var(--gray-text-dark); border-color: var(--oro-italia-hover); }

/* ==========================================================================
   6. SEZIONE TESTO / VALORE (.content-section)
   ========================================================================== */
.content-section { display: block; width: 100%; margin: 0; padding: 3rem 0; background-color: var(--white); }
.content-section .col-md-6 h2 { text-align: left; }
.content-section h2 { margin-bottom: 1rem; font-size: 1.6rem; line-height: 1.3; }
.content-section p { font-size: 1.2rem; line-height: 1.6rem; color: var(--gray-text-main); }
.btn-primary-site { display: inline-block; width: 100%; max-width: 300px; margin: 0 auto; padding: 0.65rem 1rem; font-weight: 800; font-size: 1rem; line-height: 1.2; letter-spacing: 0.04em; text-transform: uppercase; text-decoration: none; text-align: center; background-color: var(--oro-italia); color: var(--gray-text-dark); border: 1px solid var(--oro-italia); border-radius: 8px; cursor: pointer; box-shadow: none; transition: all 0.2s ease; box-sizing: border-box; }
.btn-primary-site:hover, .btn-primary-site:focus { background-color: var(--oro-italia-hover); color: var(--gray-text-dark); border-color: var(--oro-italia-hover); }
.cta-wrapper { display: block; width: 100%; margin: 2rem 0 0 0; text-align: center; }

/* ==========================================================================
   7. DIVIDER SEZIONI (.section-divider)
   ========================================================================== */
.section-divider { display: block; width: 100%; max-width: 1200px; height: 1px; margin: 0 auto; background: linear-gradient(90deg, transparent 0%, var(--gray-half) 20%, var(--gray-half) 80%, transparent 100%); border: none; }

/* ==========================================================================
   8. CARDS CON BADGE (.cards-section)
   ========================================================================== */
.cards-section { display: block; width: 100%; margin: 0; padding: 3rem 0; background-color: var(--white); }
.cards-section.bg-alt { background-color: var(--gray-bg); }
.cards-section .header-block { display: block; text-align: center; }
.cards-section .card-body { padding: 0.70rem; }
.cards-section .feature-card { position: relative; display: block; height: 100%; margin: 0 0 1.5rem 0; padding: 1.7rem 1rem 0rem 1rem; text-align: center; background-color: var(--gray-bg); border: 1px solid var(--verde-italia-demi); border-radius: 8px; box-shadow: 0 0.125rem 0.25rem var(--shadow-card); box-sizing: border-box; }
.cards-section.bg-alt .feature-card { background-color: var(--white); }
.cards-section .card-badge { position: absolute; top: -16px; left: 50%; display: inline-block; padding: 0.55rem 1.2rem 0.40rem; font-weight: 800; font-size: 1.00rem; line-height: 1; letter-spacing: 0.06em; text-transform: uppercase; white-space: nowrap; background-color: var(--verde-italia); color: var(--white); border: 3px solid var(--gray-bg); border-radius: 50px; transform: translateX(-50%); box-shadow: 0 2px 6px var(--shadow-medium); z-index: 2; }
.cards-section.bg-alt .card-badge { border-color: var(--white); }
.cards-section .feature-card h3 { margin-bottom: 0.25rem; font-size: 1.5rem; line-height: 1.5rem; font-weight: 700 !important; color: var(--verde-italia); -webkit-text-stroke: 0 transparent; }

/* ==========================================================================
   9. GRIGLIA CARDS COMPATTA (.grid-section)
   ========================================================================== */
.grid-section { display: block; width: 100%; margin: 0; padding: 3rem 0; background-color: var(--gray-bg); }
.grid-section .header-block { display: block; max-width: 800px; margin: 0 auto 2rem auto; text-align: center; }
.grid-section .header-block h2 { margin-bottom: 0.5rem; font-size: 1.5rem; line-height: 1.3; }
.grid-section .header-block p.subtitle-section { font-size: 1.1rem; line-height: 1.5; text-align: center; color: var(--gray-text-main); margin: 0; }

.grid-section .row > [class*="col-"] { display: flex; flex-direction: column; }

.grid-section .grid-box { position: relative; display: flex; flex-direction: column; justify-content: flex-start; width: 100%; height: 100%; margin-bottom: 1rem; padding: 0.85rem 1.25rem; background-color: var(--white); border: 1px solid var(--gray-border); border-left: 5px solid var(--verde-italia); border-radius: 6px; box-shadow: 0 2px 5px var(--shadow-light); transition: all 0.2s ease; box-sizing: border-box; }
.grid-section .grid-box:hover { transform: translateY(-2px); border-color: var(--verde-italia-demi); border-left-color: var(--oro-italia); box-shadow: 0 4px 10px var(--shadow-medium); }

.grid-section .grid-box h3 { /*margin: 0;  font-weight: 700 !important; */margin: 0 0 0.5rem 0;font-size: 1.5rem;color: var(--verde-italia); line-height: 1.1; -webkit-text-stroke: 0 transparent; }
.grid-section .grid-sub { margin-top: 0.35rem; font-size: 0.82rem; line-height: 1.35; color: var(--gray-text-muted); font-weight: 600; text-align: left; margin-bottom: 0; }

/* ==========================================================================
   10. ACCORDION FAQ (.faq-section)
   ========================================================================== */
.faq-section { display: block; width: 100%; margin: 0; padding: 3rem 0; background-color: var(--white); }
.faq-section h2 { margin-bottom: 1.5rem; font-size: 1.5rem; line-height: 1.3; text-align: center; }
.faq-section .faq-box { position: relative; overflow: hidden; display: block; margin-bottom: 1.25rem; background-color: var(--gray-bg); border: 1px solid var(--gray-border); border-radius: 8px; box-shadow: 0 2px 6px var(--shadow-card); transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease; box-sizing: border-box; }
.faq-section .faq-box:hover { border-color: var(--verde-italia-demi); box-shadow: 0 4px 12px var(--shadow-medium); transform: translateY(-2px); }
.faq-section .faq-header .accordion-button { position: relative; display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 1.25rem 1.5rem; font-weight: 700; font-size: 1.05rem; line-height: 1.4; text-align: left; text-decoration: none; white-space: normal; background: var(--gray-bg); color: var(--gray-text-dark); border: none; outline: none !important; cursor: pointer; transition: color 0.2s ease, background-color 0.2s ease; box-shadow: none !important; }
.faq-section .faq-header .accordion-button:hover, .faq-section .faq-header .accordion-button:focus { text-decoration: none; color: var(--verde-italia); }
.faq-section .faq-header .accordion-button:not(.collapsed) { background-color: var(--verde-italia-light); color: var(--verde-italia); }
.faq-section .faq-header .accordion-button::after { display: inline-block; width: 12px; height: 12px; margin-left: 10px; content: ''; border-right: 2px solid var(--verde-italia); border-bottom: 2px solid var(--verde-italia); transform: rotate(45deg); transition: transform 0.3s ease; }
.faq-section .faq-header .accordion-button:not(.collapsed)::after { transform: rotate(-135deg); }
.faq-section .faq-body { display: block; padding: 1.25rem 1.5rem; background-color: var(--white); border-top: 1px solid var(--gray-border); }
.faq-section .faq-body p { font-size: 0.95rem; line-height: 1.45; color: var(--gray-text-main); }
.btn-faq { color: blue; font-weight: bold; cursor: pointer; }

/* ==========================================================================
   11. FOOTER (.site-footer, .dc-footer)
   ========================================================================== */
.site-footer, .dc-footer { display: block; width: 100%; margin-top: auto; padding: 1.5rem 0; text-align: center; background-color: var(--verde-italia); border-top: 1px solid var(--oro-italia); box-sizing: border-box; }
.site-footer .container, .dc-footer .container { display: block; width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 15px; box-sizing: border-box; }
.site-footer-copy, .dc-footer-copy { display: block; margin: 0; font-weight: 400; font-size: 0.85rem; line-height: 1.5; text-align: center; color: var(--white-trans-85); }
.site-footer-copy strong, .dc-footer-copy strong { font-weight: 700; color: var(--white); }
.site-footer-copy a, .dc-footer-copy a { color: var(--oro-italia) !important; font-weight: 600; text-decoration: underline; transition: color 0.2s ease; }
.site-footer-copy a:hover, .dc-footer-copy a:hover { color: var(--white) !important; text-decoration: none; }

/* ==========================================================================
   11.B. FOOTER INTEGRALE (.site-footer)
   ========================================================================== */
.site-footer { display: block; width: 100%; margin-top: auto; padding: 3.5rem 0 1.5rem; background-color: var(--verde-italia); border-top: 1px solid var(--oro-italia); color: var(--white); box-sizing: border-box; text-align: left; }
.site-footer .container { display: block; width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 15px; box-sizing: border-box; }
/* GRIGLIA PRINCIPALE (4 COLONNE MENU) */
.site-footer .footer-top-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; margin-bottom: 2rem; text-align: left; }
.site-footer .footer-col { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; text-align: left; }
/* LOGO IN TESTATA PRIMA COLONNA */
.site-footer .footer-logo { display: block; margin-bottom: 1rem; text-align: left; }
.site-footer .footer-logo img { display: block; width: auto; max-width: 180px; height: auto; margin: 0; }
/* TITOLI SEZIONI (GRIGIO BASE) */
.site-footer .footer-title { display: block; margin-bottom: 1rem; font-family: var(--font-title); font-size: 1.05rem; letter-spacing: 0.5px; text-transform: uppercase; color: var(--white-trans-85); transition: color 0.2s ease; text-align: left; }
/* ACCENSIONE ORO DEL TITOLO SE LA COLONNA CONTIENE VOCE ATTIVA */
.site-footer .footer-col:has(li.active) .footer-title { color: var(--oro-italia); }
.site-footer .footer-col:has(a.active) .footer-title { color: var(--oro-italia); }
/* LISTE LINK - ALLINEAMENTO RIGIDO A SINISTRA */
.site-footer .footer-links { list-style: none; padding: 0; margin: 0; width: 100%; text-align: left; }
.site-footer .footer-links li { margin-bottom: 0.45rem; font-size: 0.88rem; line-height: 1.4; color: var(--white-trans-85); text-align: left; }
.site-footer .footer-links a { display: inline-block; color: var(--white-trans-85); text-decoration: none; transition: color 0.2s ease; text-align: left; }
.site-footer .footer-links a:hover { color: var(--oro-italia); }
.site-footer .footer-links li.active > a, .site-footer .footer-links a.active { color: var(--oro-italia) !important; font-weight: 700; }
/* DIVIDER E FASCIA UNICA SOTTOSTANTE */
.site-footer .footer-divider { display: block; width: 100%; height: 1px; margin: 0 0 1.2rem 0; background: var(--white-trans-08); border: none; }
.site-footer .footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; text-align: left; }
.site-footer .site-footer-copy { margin: 0; font-size: 0.82rem; color: var(--white-trans-85); text-align: left; }
.site-footer .site-footer-copy strong { color: var(--white); }
.site-footer .site-footer-copy a { color: var(--white-trans-85); text-decoration: none; transition: color 0.2s ease; }
.site-footer .site-footer-copy a:hover { color: var(--oro-italia); }
.site-footer .footer-legal-links { display: flex; gap: 1rem; white-space: nowrap; }
.site-footer .footer-legal-links a { font-size: 0.82rem; color: var(--oro-italia); text-decoration: underline; transition: color 0.2s ease; }
.site-footer .footer-legal-links a:hover { color: var(--white); text-decoration: none; }

/* ==========================================================================
   CENTRATURA ASSOLUTA (.pos-center-all)
   ========================================================================== */
.hero-section.pos-center-all { position: relative; display: flex; align-items: center !important; justify-content: center !important; min-height: 100vh; padding: 60px 15px !important; }
.pos-center-all .container { position: relative; display: block; width: 100%; margin: auto !important; padding: 0 !important; background: transparent !important; border: none !important; box-shadow: none !important; z-index: 3; }
.pos-center-all .hero-content-box { display: block; width: 100%; max-width: 520px; margin: 0 auto; padding: 2.2rem 1.8rem; background-color: var(--verde-italia-demi); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border: 1px solid var(--oro-italia); border-radius: 12px; box-shadow: 0 0 30px var(--oro-italia-shadow); }
.pos-center-all h1 { display: block; margin: 0 0 1rem 0 !important; font-size: 2.2rem; line-height: 1.15; }
.pos-center-all .subtitle { display: block; margin: 0 0 1.25rem 0; font-size: 1.1rem; line-height: 1.5; }
.pos-center-all #countdown { font-weight: 700; color: var(--oro-italia); }


/* ==========================================================================
   12. ANIMAZIONI KEYFRAMES
   ========================================================================== */
@keyframes dcContainerFadeIn { 0% { opacity: 0; transform: translateY(20px); } 100% { opacity: 1; transform: translateY(0); } }
@keyframes dcSnapDraw { to { clip-path: inset(0 0 0 0); } }
@keyframes heroSlowZoom { 0% { transform: scale(1) translate3d(0, 0, 0); }	100% { transform: scale(1.12) translate3d(0, 0, 0); }}








/* ==========================================================================
   13. BREAKPOINTS (DESKTOP-FIRST)
   ========================================================================== */
@media (max-width: 991.98px) {
	.site-header .site-navbar, .dc-header .dc-navbar { padding: 0 15px; }
	.site-header .navbar-collapse, .dc-header .navbar-collapse { position: absolute; top: 60px; left: 0; width: 100%; padding: 0.75rem 1rem; background-color: var(--verde-italia-trans-90); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid var(--oro-italia); box-shadow: 0 4px 10px var(--shadow-header); }
	.site-header .navbar-collapse:not(.show), .dc-header .navbar-collapse:not(.show) { display: none !important; }
	.site-header .navbar-nav, .dc-header .navbar-nav { display: flex; flex-direction: column !important; align-items: flex-start !important; height: auto !important; }
	.site-header .nav-item, .dc-header .nav-item { display: block !important; width: 100% !important; height: auto !important; margin: 0.2rem 0 !important; }
	.site-header .nav-link, .dc-header .nav-link { display: block !important; width: 100% !important; padding: 0.5rem 0 !important; font-size: 0.85rem; }
	.site-header .nav-item.active > .nav-link::after, .dc-header .nav-item.active > .nav-link::after { display: none !important; }
	.site-header .dropdown-menu, .dc-header .dropdown-menu { position: static; width: 100%; background-color: var(--verde-italia-hover); border: none; box-shadow: none; opacity: 1; clip-path: none; transform: none; }
	
	/* HERO MOBILE & TABLET (UNIFORMATA VIDEO + IMMAGINE) */
	.hero-section { display: flex; flex-direction: column; justify-content: flex-start; min-height: auto; padding: 3.8rem 0 2.5rem; }
	.hero-section::before { display: none; }
	.hero-video, .hero-image { position: relative; width: 100%; height: auto; object-fit: contain; animation: none !important; }
	.hero-section .container { margin-top: -0.5rem !important; }
	.hero-section h1 { font-size: 2.2rem; }
	.hero-section h1 strong { font-size: 4.8rem; }
	.hero-section .highlight-box { margin-bottom: 30px; }
	.site-footer .footer-top-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
}

@media (max-width: 767.98px) {
	.hero-section h1 { font-size: 2.0rem; }
	.hero-section h1 strong { font-size: 4.0rem; }
	.site-footer * { text-align: center !important; }
	.site-footer .footer-top-grid { grid-template-columns: 1fr; gap: 1.8rem; }
	.site-footer .footer-col { align-items: center; }
	.site-footer .footer-bottom { flex-direction: column; gap: 0.8rem; }
	.site-footer .footer-legal-links { justify-content: center; }
}

@media (max-width: 576px) {
	.hero-section { padding: 3.6rem 6px 2.5rem; }
	.hero-video, .hero-image { height: 320px; object-fit: cover; }
	.hero-section .container { margin-top: -0.5rem !important; padding: 16px; }
	.hero-section h1 { font-size: 1.8rem; }
	.hero-section h1 strong { font-size: 3.2rem; }
	.dc-form-group:not(.prefisso):not(.numero) { flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important; }
		.pos-center-all .hero-content-box { padding: 1.6rem 1.2rem; }
	.pos-center-all h1 { font-size: 1.75rem; }

}



















/* ==========================================================================
   FIX ISOLATO MOBILE/TABLET SITO (ZERO IMPATTO SU LANDING E DESKTOP)
   ========================================================================== */
@media (max-width: 991.98px) {
	/* 1. Sottomenu Day College chiuso di default nel drawer mobile */
	.site-header .dropdown-menu { position: static !important; float: none !important; display: none !important; width: 100% !important; max-height: none !important; opacity: 1 !important; padding-left: 1rem !important; background-color: var(--verde-italia-hover) !important; border: none !important; box-shadow: none !important; pointer-events: auto !important; }
	/* 2. Si apre solo quando si fa tap sul padre (Bootstrap aggiunge .show) */
	.site-header .nav-item.dropdown.show .dropdown-menu { display: block !important; }
	/* 3. Mostra la voce Panoramica solo su schermi piccoli */
	.site-header .dc-only-mobile { display: block !important; }
}










