/*
Theme Name: Hello Elementor Child – Scoppa
Theme URI: https://alfonsoscoppasindaco.it
Description: Child theme di Hello Elementor per la campagna di Alfonso Scoppa. Header e footer globali ispirati ai wireframe.
Author: Campagna Scoppa
Template: hello-elementor
Version: 2.0.7
Text Domain: hello-elementor-child
*/

:root {
	--scoppa-blu: #283c57;
	--scoppa-blu-deep: #283c57;
	--scoppa-yellow: #d4a017;
	--scoppa-yellow-bright: #fecf38;
}

body { font-family: 'Inter', sans-serif; background:#f8faf9; color:#191c1c; }
h1, h2, h3, h4, h5 { font-family: 'Epilogue', sans-serif; }

.material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; vertical-align: middle; }

/* Header Elementor Theme Builder è in flusso normale, nessun padding extra */
.site-main, main { padding-top: 0; }

/* Header */
.scoppa-header { position: fixed; top:0; left:0; right:0; width:100%; z-index:50; background:rgba(248,250,249,.85); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); box-shadow:0 1px 0 rgba(40,60,87,.05); }
.scoppa-header-inner { max-width:1280px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; padding:1rem 1.5rem; gap:1rem; }
.scoppa-brand { font-family:'Epilogue',sans-serif; font-weight:900; font-size:1.5rem; letter-spacing:-.02em; color:var(--scoppa-blu-deep); text-transform:uppercase; text-decoration:none; display:flex; align-items:center; gap:.75rem; }
.scoppa-brand img { height:44px; width:auto; display:block; }
.scoppa-menu { display:none; gap:2rem; align-items:center; list-style:none; margin:0; padding:0; }
@media (min-width:768px){ .scoppa-menu { display:flex; } }
.scoppa-menu a { font-family:'Epilogue',sans-serif; font-weight:700; text-transform:uppercase; font-size:.8rem; letter-spacing:-.01em; color:#475569; text-decoration:none; padding-bottom:.25rem; border-bottom:2px solid transparent; transition:color .3s, border-color .3s; }
.scoppa-menu a:hover, .scoppa-menu .current-menu-item > a, .scoppa-menu .current_page_item > a { color:var(--scoppa-blu-deep); border-bottom-color:var(--scoppa-yellow-bright); }
.scoppa-cta { background:var(--scoppa-blu-deep); color:#fff !important; padding:.5rem 1.5rem; border-radius:.375rem; font-family:'Epilogue',sans-serif; font-weight:700; font-size:.8rem; text-transform:uppercase; text-decoration:none; transition:background .2s, transform .1s; display:inline-block; }
.scoppa-cta:hover { background:var(--scoppa-blu); }
.scoppa-cta:active { transform:scale(.96); }

/* Mobile toggle */
.scoppa-burger { display:inline-flex; background:none; border:0; color:var(--scoppa-blu-deep); cursor:pointer; padding:.25rem; }
@media (min-width:768px){ .scoppa-burger { display:none; } }
.scoppa-mobile-menu { display:none; padding:1rem 1.5rem; background:rgba(248,250,249,.98); border-top:1px solid #e1e3e2; }
.scoppa-mobile-menu.open { display:block; }
.scoppa-mobile-menu ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.75rem; }
.scoppa-mobile-menu a { font-family:'Epilogue',sans-serif; font-weight:700; text-transform:uppercase; font-size:.9rem; color:var(--scoppa-blu-deep); text-decoration:none; }

/* Footer */
.scoppa-footer { background:#283c57; color:#fff; border-top:1px solid rgba(40,60,87,.4); margin-top:0; }
.scoppa-footer-top { max-width:1280px; margin:0 auto; padding:3rem 2rem; display:flex; flex-direction:column; gap:3rem; justify-content:space-between; align-items:flex-start; }
@media (min-width:768px){ .scoppa-footer-top { flex-direction:row; align-items:center; } }
.scoppa-footer-brand { max-width:380px; display:flex; flex-direction:column; gap:1.25rem; }
.scoppa-footer-brand a.scoppa-footer-logo { font-family:'Epilogue',sans-serif; font-weight:800; text-transform:uppercase; font-size:1.25rem; color:var(--scoppa-yellow-bright); text-decoration:none; letter-spacing:-.02em; }
.scoppa-footer-brand p { color:rgba(220,230,245,.7); font-family:'Inter',sans-serif; font-size:.875rem; line-height:1.6; margin:0; }
.scoppa-social { display:flex; gap:1rem; }
.scoppa-social a { width:40px; height:40px; border-radius:50%; background:#283c57; color:var(--scoppa-yellow-bright); display:inline-flex; align-items:center; justify-content:center; transition:background .2s, color .2s; text-decoration:none; }
.scoppa-social a:hover { background:var(--scoppa-yellow-bright); color:#715900; }
.scoppa-footer-cols { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3rem; }
@media (min-width:768px){ .scoppa-footer-cols { gap:5rem; } }
.scoppa-footer-cols h5 { color:#fff; font-family:'Epilogue',sans-serif; font-weight:700; text-transform:uppercase; font-size:.75rem; letter-spacing:.12em; margin:0 0 1rem 0; }
.scoppa-footer-cols ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.scoppa-footer-cols a, .scoppa-footer-cols li { color:rgba(220,230,245,.7); font-family:'Inter',sans-serif; font-size:.875rem; text-decoration:none; transition:color .2s; }
.scoppa-footer-cols a:hover { color:var(--scoppa-yellow-bright); }
.scoppa-footer-bottom { max-width:1280px; margin:0 auto; padding:1.5rem 2rem; border-top:1px solid rgba(40,60,87,.3); display:flex; flex-direction:column; gap:1rem; align-items:center; justify-content:space-between; }
@media (min-width:768px){ .scoppa-footer-bottom { flex-direction:row; } }
.scoppa-footer-bottom p { color:#283c57; font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; margin:0; font-family:'Inter',sans-serif; }
.scoppa-footer-tag { display:inline-flex; align-items:center; gap:.5rem; color:#fff; font-size:.65rem; font-weight:700; text-transform:uppercase; }
.scoppa-footer-tag::before { content:""; width:.5rem; height:.5rem; border-radius:50%; background:var(--scoppa-yellow-bright); display:inline-block; }

/* Reset Hello Elementor container constraints */
.site-header.site-header { display:none; }

/* Header Elementor fixed (desktop + mobile)
   NOTA: niente backdrop-filter/transform/filter/will-change su questo wrapper:
   creerebbero un containing block che rompe il popup mobile (position:fixed). */
html, body { margin: 0; padding: 0; }
.elementor-location-header {
	position: -webkit-sticky !important;
	position: sticky !important;
	top: -1px !important;
	margin-top: 0 !important;
	z-index: 100;
	background: #f8faf9;
	box-shadow: 0 1px 0 rgba(40,60,87,.05);
}
.elementor-location-header::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: -40px;
	height: 40px;
	background: #f8faf9;
}

/* ================================================================
 * RESPONSIVE OVERRIDE — tipografia e padding mobile/tablet
 * ================================================================ */
@media (max-width: 1024px) {
	.elementor-widget-heading .elementor-heading-title[class*="elementor-size"],
	.elementor-widget-heading .elementor-heading-title { line-height: 1.1 !important; }

	/* H1: 88-112px → 44-56px */
	.elementor-widget-heading h1.elementor-heading-title,
	.elementor-widget-heading .elementor-heading-title[style*="font-size:88px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size: 88px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size:112px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size: 112px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size:80px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size: 80px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size:72px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size: 72px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size:64px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size: 64px"] {
		font-size: clamp(40px, 10vw, 56px) !important;
		letter-spacing: -1.5px !important;
	}

	/* H2: 40-48px → 28-34px */
	.elementor-widget-heading h2.elementor-heading-title,
	.elementor-widget-heading .elementor-heading-title[style*="font-size:48px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size: 48px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size:44px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size: 44px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size:40px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size: 40px"] {
		font-size: clamp(26px, 7vw, 34px) !important;
		letter-spacing: -.5px !important;
	}

	/* H3/H4: 24-32px → 20-24px */
	.elementor-widget-heading h3.elementor-heading-title,
	.elementor-widget-heading h4.elementor-heading-title,
	.elementor-widget-heading .elementor-heading-title[style*="font-size:32px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size: 32px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size:30px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size: 30px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size:24px"],
	.elementor-widget-heading .elementor-heading-title[style*="font-size: 24px"] {
		font-size: clamp(20px, 5vw, 24px) !important;
	}

	/* Numeri stat card (48px) → 34px */
	.scoppa-stat-card .elementor-heading-title[style*="font-size:48px"],
	.scoppa-stat-card .elementor-heading-title[style*="font-size: 48px"] {
		font-size: 34px !important;
	}

	/* Numeri pilastri 72px → 44px */
	.scoppa-pillar-card .elementor-heading-title[style*="font-size:72px"],
	.scoppa-pillar-card .elementor-heading-title[style*="font-size: 72px"] {
		font-size: 44px !important;
	}

	/* Body text: 18-20px → 16px */
	.elementor-widget-text-editor[style*="font-size:20px"],
	.elementor-widget-text-editor .elementor-widget-container[style*="font-size:20px"],
	.elementor-widget-text-editor[style*="font-size:18px"],
	.elementor-widget-text-editor p[style*="font-size:20px"],
	.elementor-widget-text-editor p[style*="font-size:18px"] { font-size: 16px !important; }

	/* Padding sezioni via CSS variables Elementor (riduci da 96-128 a 48-64) */
	.e-con.e-parent { --padding-left: 20px !important; --padding-right: 20px !important; --padding-top: 10px !important; --padding-bottom: 10px !important; }
	/* Hero dark con min-height 100vh mantiene padding verticali azzerati (gestiti dall'hero interno) */
	.scoppa-home-hero.e-con.e-parent { --padding-top: 0px !important; --padding-bottom: 0px !important; }

	/* Card con padding enorme (bio, form, cta-block) */
	.scoppa-bio-span-2.e-con,
	.scoppa-bio-grid .scoppa-grid-col.e-con { --padding-top:32px !important; --padding-right:32px !important; --padding-bottom:32px !important; --padding-left:32px !important; }
	.scoppa-content-grid .scoppa-grid-col.e-con { --padding-top:28px !important; --padding-right:28px !important; --padding-bottom:28px !important; --padding-left:28px !important; }
	.scoppa-cta-block.e-con { --padding-top:40px !important; --padding-right:28px !important; --padding-bottom:40px !important; --padding-left:28px !important; }
	.scoppa-doc-card.e-con { --padding-top:32px !important; --padding-right:20px !important; --padding-bottom:32px !important; --padding-left:20px !important; }
	.scoppa-pillar-card.e-con { --padding-top:28px !important; --padding-right:28px !important; --padding-bottom:28px !important; --padding-left:28px !important; }
	.scoppa-events-box.e-con { --padding-top:28px !important; --padding-right:28px !important; --padding-bottom:28px !important; --padding-left:28px !important; }
	.scoppa-focus-title { font-size: 32px !important; }
	.scoppa-lista-card { padding: 24px !important; }

	/* Candidati card: foto più piccola, layout ok */
	.scoppa-cand-photo { flex-basis: 80px !important; width: 80px; height: 80px; }

	/* Form contatti: riduci padding extra */
	.scoppa-content-grid .scoppa-grid-col.e-con[style*="padding"] { padding: 32px !important; }

	/* Hero con padding verticale snellito sul mobile — override CSS vars Elementor */
	.scoppa-alfonso-hero.e-con.e-parent,
	.scoppa-hero-grid.e-con.e-parent,
	.scoppa-prog-hero-grid.e-con.e-parent { --padding-top: 10px !important; --padding-bottom: 10px !important; }

	/* Header più compatto su mobile */
	.scoppa-sticky-header.e-con.e-parent { --padding-top: 4px !important; --padding-bottom: 4px !important; --padding-left: 14px !important; --padding-right: 14px !important; }
	#scoppa-site-header .elementor-widget-image { width: auto !important; }
	#scoppa-site-header .elementor-widget-image img { width: 90px !important; max-height: 44px !important; height: auto !important; object-fit: contain; }
	#scoppa-site-header .elementor-menu-toggle { width: 40px !important; height: 40px !important; border-radius: 10px !important; padding: 0 !important; box-shadow: 0 4px 12px rgba(40,60,87,.25) !important; }
	#scoppa-site-header .elementor-menu-toggle svg,
	#scoppa-site-header .elementor-menu-toggle i { font-size: 18px !important; width: 20px !important; height: 20px !important; }

	/* Buttons: riduci size */
	.elementor-button.elementor-size-lg { font-size: 13px !important; padding: 16px 26px !important; }
}

@media (max-width: 640px) {
	/* Ulteriore riduzione */
	.elementor-widget-heading h1.elementor-heading-title {
		font-size: clamp(34px, 9vw, 44px) !important;
	}
	.elementor-widget-heading h2.elementor-heading-title { font-size: clamp(24px, 6.5vw, 28px) !important; }
	.e-con.e-parent { --padding-left: 16px !important; --padding-right: 16px !important; }
	.scoppa-bio-span-2.e-con,
	.scoppa-bio-grid .scoppa-grid-col.e-con { --padding-top:24px !important; --padding-right:24px !important; --padding-bottom:24px !important; --padding-left:24px !important; }
	.scoppa-cta-block.e-con { --padding-top:32px !important; --padding-right:22px !important; --padding-bottom:32px !important; --padding-left:22px !important; }
}

/* Griglia loghi liste (shortcode [scoppa_liste_loghi]) responsive */
@media (max-width: 1024px) {
	.scoppa-liste-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 24px !important; }
	.scoppa-liste-grid .scoppa-lista-item > div:first-child { width: 120px !important; height: 120px !important; }
}
@media (max-width: 420px) {
	.scoppa-liste-grid { gap: 16px !important; }
	.scoppa-liste-grid .scoppa-lista-item > div:first-child { width: 96px !important; height: 96px !important; }
	.scoppa-liste-grid .scoppa-lista-item > div:last-child { font-size: 13px !important; margin-top:10px !important; }
}

/* Override colori globali Elementor (default → brand Scoppa) */
:root {
	--e-global-color-primary: #283C57;
	--e-global-color-secondary: #FECF38;
	--e-global-color-text: #191C1C;
	--e-global-color-accent: #D4A017;
}

/* Bottoni Elementor: transizione senza colore di default */
.elementor-button,
.elementor-button-link,
.elementor-widget-button .elementor-button { transition: background-color .25s ease, color .25s ease, transform .1s ease, box-shadow .25s ease !important; }

/* Header CTA — verifica nessun hover color residuo */
#scoppa-site-header .elementor-button { background-color: #283C57 !important; color: #fff !important; }
#scoppa-site-header .elementor-button:hover,
#scoppa-site-header .elementor-button:focus { background-color: #283C57 !important; color: #fff !important; }

/* ===== Header mobile: hamburger stilizzato + popup fullscreen ===== */
@media (max-width: 1024px) {
	/* Nascondi il bottone "Unisciti a noi" su mobile/tablet */
	#scoppa-site-header .elementor-widget-button { display: none !important; }

	/* Hamburger toggle styling */
	#scoppa-site-header .elementor-menu-toggle {
		width: 52px; height: 52px;
		border-radius: 14px !important;
		background: #283C57 !important;
		color: #FECF38 !important;
		display: flex !important; align-items: center; justify-content: center;
		border: none !important;
		box-shadow: 0 6px 18px rgba(40,60,87,.25);
		transition: transform .25s ease, background-color .25s ease;
	}
	#scoppa-site-header .elementor-menu-toggle:hover { transform: scale(1.05); background: #283C57 !important; }
	#scoppa-site-header .elementor-menu-toggle svg { width: 28px; height: 28px; fill: #FECF38 !important; }
	#scoppa-site-header .elementor-menu-toggle i { font-size: 24px; color: #FECF38 !important; }
	#scoppa-site-header .elementor-menu-toggle[aria-expanded="true"] { background: #FECF38 !important; }
	#scoppa-site-header .elementor-menu-toggle[aria-expanded="true"] svg,
	#scoppa-site-header .elementor-menu-toggle[aria-expanded="true"] i { color: #283C57 !important; fill: #283C57 !important; }

	/* Trasforma il dropdown nav-menu in popup fullscreen */
	#scoppa-site-header .elementor-nav-menu--dropdown {
		position: fixed !important;
		top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
		width: 100vw !important; height: 100vh !important;
		max-height: 100vh !important;
		margin: 0 !important;
		background: linear-gradient(160deg, #283C57 0%, #283C57 100%) !important;
		z-index: 9999 !important;
		display: flex !important;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding: 80px 24px 40px !important;
		border: none !important;
		overflow-y: auto;
		opacity: 0;
		transform: scale(.98);
		pointer-events: none;
		transition: opacity .3s ease, transform .3s ease;
	}
	#scoppa-site-header .elementor-menu-toggle[aria-expanded="true"] + .elementor-nav-menu--dropdown,
	#scoppa-site-header .elementor-nav-menu--dropdown.elementor-nav-menu--dropdown-open {
		opacity: 1 !important;
		transform: scale(1) !important;
		pointer-events: auto !important;
	}

	/* Link nel popup */
	#scoppa-site-header .elementor-nav-menu--dropdown .elementor-nav-menu {
		display: flex !important;
		flex-direction: column;
		align-items: center;
		gap: 12px;
		width: 100%;
		max-width: 400px;
	}
	#scoppa-site-header .elementor-nav-menu--dropdown .elementor-nav-menu li { width: 100%; text-align: center; }
	#scoppa-site-header .elementor-nav-menu--dropdown .elementor-item {
		color: #FFFFFF !important;
		font-family: 'Epilogue', sans-serif !important;
		font-weight: 800 !important;
		font-size: 28px !important;
		line-height:30px!important;
		text-transform: uppercase;
		letter-spacing: -.5px;
		padding: 18px 24px !important;
		border-radius: 12px;
		transition: background-color .2s, color .2s;
		display: inline-block;
	}
	#scoppa-site-header .elementor-nav-menu--dropdown .elementor-item:hover,
	#scoppa-site-header .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
	#scoppa-site-header .elementor-nav-menu--dropdown li.current-menu-item > .elementor-item {
		color: #FECF38 !important;
		background: rgba(255,255,255,.06) !important;
	}
	#scoppa-site-header .elementor-nav-menu--dropdown .elementor-item:before,
	#scoppa-site-header .elementor-nav-menu--dropdown .elementor-item:after { display: none !important; }

	/* Keep the hamburger above the popup (so it toggles to X) */
	#scoppa-site-header .elementor-menu-toggle { position: relative; z-index: 10000; }

	/* Blocca scroll body quando popup aperto */
	body:has(#scoppa-site-header .elementor-menu-toggle[aria-expanded="true"]) { overflow: hidden; }
}

/* Nav menu Elementor — override colore active */
.elementor-widget-nav-menu .elementor-item,
.elementor-widget-nav-menu .elementor-item:link,
.elementor-widget-nav-menu .elementor-item:visited { color:#475569 !important; }

.elementor-widget-nav-menu .elementor-item:hover,
.elementor-widget-nav-menu .elementor-item:focus { color:#283c57 !important; }

.elementor-widget-nav-menu .elementor-item.elementor-item-active,
.elementor-widget-nav-menu li.current-menu-item > .elementor-item,
.elementor-widget-nav-menu li.current_page_item > .elementor-item,
.elementor-widget-nav-menu li.current-menu-ancestor > .elementor-item { color:#283c57 !important; }

.elementor-widget-nav-menu .e--pointer-underline .elementor-item.elementor-item-active:before,
.elementor-widget-nav-menu .e--pointer-underline .elementor-item.elementor-item-active:after,
.elementor-widget-nav-menu .e--pointer-underline .elementor-item:hover:before,
.elementor-widget-nav-menu .e--pointer-underline .elementor-item:hover:after,
.elementor-widget-nav-menu .e--pointer-underline li.current-menu-item > .elementor-item:before,
.elementor-widget-nav-menu .e--pointer-underline li.current-menu-item > .elementor-item:after,
.elementor-widget-nav-menu .e--pointer-underline li.current_page_item > .elementor-item:before,
.elementor-widget-nav-menu .e--pointer-underline li.current_page_item > .elementor-item:after { background-color:#d4a017 !important; }

/* ===== Pagina Contatti — layout grid robusti =====
   Elementor container boxed avvolge i figli in .e-con-inner,
   quindi applico il grid sia al wrapper esterno (container full)
   sia all'inner (container boxed). */
.scoppa-hero-grid.e-con > .e-con-inner,
.scoppa-hero-grid.e-con:not(.e-con-boxed) { display:grid !important; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 64px; align-items:start; }

.scoppa-content-grid.e-con > .e-con-inner,
.scoppa-content-grid.e-con:not(.e-con-boxed) { display:grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 48px; align-items:stretch; }
.scoppa-content-grid .scoppa-grid-col.e-con { height: 100%; }

.scoppa-contacts-grid.e-con > .e-con-inner,
.scoppa-contacts-grid.e-con:not(.e-con-boxed) { display:grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px; }

.scoppa-hero-grid.e-con > .e-con-inner > .scoppa-grid-col,
.scoppa-content-grid.e-con > .e-con-inner > .scoppa-grid-col,
.scoppa-contacts-grid.e-con > .scoppa-grid-col,
.scoppa-contacts-grid.e-con > .e-con-inner > .scoppa-grid-col { width: 100% !important; max-width: 100% !important; min-width: 0 !important; }

.scoppa-hero-right.e-con { position: relative !important; }

@media (max-width: 1024px) {
	.scoppa-hero-grid.e-con > .e-con-inner,
	.scoppa-hero-grid.e-con:not(.e-con-boxed),
	.scoppa-content-grid.e-con > .e-con-inner,
	.scoppa-content-grid.e-con:not(.e-con-boxed) { grid-template-columns: 1fr !important; gap: 40px !important; }
}
@media (max-width: 640px) {
	.scoppa-contacts-grid.e-con > .e-con-inner,
	.scoppa-contacts-grid.e-con:not(.e-con-boxed) { grid-template-columns: 1fr !important; }
}

/* ===== Form contatti — stile moderno ===== */
.scoppa-contact-form .elementor-form { display:flex; flex-direction:column; gap:18px; }
.scoppa-contact-form .elementor-field-group label.elementor-field-label { font-family:'Inter',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:2px; font-size:10px; color:#283C57; margin-bottom:6px; }
.scoppa-contact-form .elementor-field-textual { background:#ffffff !important; border:1px solid #E1E3E2 !important; border-radius:10px !important; padding:14px 16px !important; color:#191C1C; transition: border-color .2s, box-shadow .2s; box-shadow: 0 1px 2px rgba(40,60,87,0.04); }
.scoppa-contact-form .elementor-field-textual:focus { border-color:#283C57 !important; box-shadow: 0 0 0 3px rgba(40,60,87,0.12) !important; outline:none; }
.scoppa-contact-form .elementor-field-textual::placeholder { color:#9BA3A3; }
.scoppa-contact-form select.elementor-field-textual { background-image: linear-gradient(45deg, transparent 50%, #283C57 50%), linear-gradient(135deg, #283C57 50%, transparent 50%); background-position: calc(100% - 22px) 50%, calc(100% - 16px) 50%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 42px !important; appearance: none; }

/* Checkbox privacy (acceptance) */
.scoppa-contact-form .elementor-field-type-acceptance .elementor-field-subgroup { align-items:flex-start; gap:10px; }
.scoppa-contact-form .elementor-field-type-acceptance input[type="checkbox"] { width:20px; height:20px; accent-color:#283C57; margin-top:2px; cursor:pointer; }
.scoppa-contact-form .elementor-field-type-acceptance label,
.scoppa-contact-form .elementor-field-type-acceptance .elementor-acceptance-label { font-family:'Inter',sans-serif; font-size:13px; line-height:1.5; color:#3F4849; font-weight:400; text-transform:none; letter-spacing:normal; }
.scoppa-contact-form .elementor-field-type-acceptance a { color:#283C57; font-weight:700; text-decoration:underline; }
.scoppa-contact-form .elementor-field-type-acceptance a:hover { color:#D4A017; }

.scoppa-contact-form .elementor-button { transition: background-color .2s, color .2s, transform .1s, box-shadow .2s !important; }
.scoppa-contact-form .elementor-button:hover { transform: translateY(-1px); }

/* ===== Pagina Programma ===== */
.scoppa-prog-hero-grid.e-con > .e-con-inner,
.scoppa-prog-hero-grid.e-con:not(.e-con-boxed) { display:grid !important; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 48px; align-items:end; }

.scoppa-pillars-grid.e-con > .e-con-inner,
.scoppa-pillars-grid.e-con:not(.e-con-boxed) { display:grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }

.scoppa-pillar-span-2.e-con { grid-column: span 2; }
.scoppa-pillar-card.e-con { border-radius: 0; }
.scoppa-pillar-card.scoppa-pillar-small.e-con { border-radius: 0; }
.scoppa-pillar-footer.e-con > .e-con-inner { display:flex !important; align-items:center; gap: 16px; }

@media (max-width: 1024px) {
	.scoppa-prog-hero-grid.e-con > .e-con-inner,
	.scoppa-prog-hero-grid.e-con:not(.e-con-boxed) { grid-template-columns: 1fr !important; }
	.scoppa-pillars-grid.e-con > .e-con-inner,
	.scoppa-pillars-grid.e-con:not(.e-con-boxed) { grid-template-columns: 1fr !important; }
	.scoppa-pillar-span-2.e-con { grid-column: auto !important; }
}

/* PDF document card */
.scoppa-doc-card.e-con { overflow: hidden; position: relative; }
.scoppa-pdf-icon-wrap.e-con { aspect-ratio: 1 / 1; width: 120px !important; max-width: 120px !important; }
.scoppa-pdf-icon-wrap.e-con > .e-con-inner { display:flex !important; align-items:center; justify-content:center; height:100%; }

/* Quote */
.scoppa-quote-block.e-con > .e-con-inner { display:flex !important; flex-direction:column !important; align-items:center !important; text-align:center; }
.scoppa-quote-block .elementor-heading-title { font-style: italic; }

/* ===== Pagina Le Liste ===== */
.scoppa-badge-inline.elementor-widget-heading { display: inline-block; }
.scoppa-badge-inline .elementor-heading-title { display: inline-block; background:#fecf38; color:#715900; padding:6px 12px; border-radius:2px; }

.scoppa-liste-cards { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
@media (max-width: 1024px) { .scoppa-liste-cards { grid-template-columns: 1fr; } }

.scoppa-lista-card { display:block; text-decoration:none; background:#f2f4f4; padding:32px; border-radius:16px; transition: all .3s; color:inherit; border-bottom: 4px solid transparent; }
.scoppa-lista-card:hover { background:#ffffff; box-shadow: 0 12px 32px rgba(40,60,87,0.08); }
.scoppa-lista-card.is-active { background:#ffffff; border-bottom-color:#fecf38; box-shadow: 0 4px 16px rgba(40,60,87,0.08); }
.scoppa-lista-card .scoppa-lista-logo { width:96px; height:96px; border-radius:50%; overflow:hidden; display:flex; align-items:center; justify-content:center; margin-bottom:24px; background:#e7e8e8; }
.scoppa-lista-card .scoppa-lista-logo img { max-width:80%; max-height:80%; object-fit:contain; }
.scoppa-lista-card .scoppa-lista-name { font-family:'Epilogue',sans-serif; font-weight:800; font-size:24px; color:#283c57; margin:0 0 10px; }
.scoppa-lista-card .scoppa-lista-slogan { font-family:'Inter',sans-serif; font-size:14px; color:#3f4849; line-height:1.55; margin:0 0 24px; }
.scoppa-lista-card .scoppa-lista-cta { display:inline-flex; align-items:center; gap:8px; font-family:'Inter',sans-serif; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:1.5px; }
.scoppa-lista-card .scoppa-lista-cta.is-active { color:#745b00; }
.scoppa-lista-card .scoppa-lista-cta.is-lock { color: rgba(40,60,87,0.5); }

/* Focus section */
.scoppa-focus-head { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; margin-bottom:48px; flex-wrap:wrap; }
.scoppa-focus-head-text { max-width:720px; }
.scoppa-focus-eyebrow { font-family:'Inter',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:3px; font-size:12px; color:#283c57; }
.scoppa-focus-title { font-family:'Epilogue',sans-serif; font-weight:900; font-size:48px; color:#283c57; margin:8px 0 0; letter-spacing:-1.5px; line-height:1.05; }
.scoppa-focus-title .hl { color:#745b00; }
.scoppa-focus-divider { width:96px; height:4px; background:#fecf38; margin-top:20px; border-radius:2px; }
.scoppa-focus-btn { display:inline-flex; align-items:center; gap:8px; padding:14px 24px; background:#283c57; color:#fff; font-family:'Epilogue',sans-serif; font-weight:700; font-size:14px; text-transform:uppercase; letter-spacing:1px; border-radius:10px; text-decoration:none; transition:background .2s; }
.scoppa-focus-btn:hover { background:#283c57; color:#fff; }

/* Candidati grid */
.scoppa-candidati-grid { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:24px; }
@media (max-width:1024px) { .scoppa-candidati-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width:640px)  { .scoppa-candidati-grid { grid-template-columns: 1fr; } }

.scoppa-cand-card { display:flex; gap:20px; align-items:center; background:#fff; padding:16px; border-radius:14px; box-shadow: 0 2px 8px rgba(40,60,87,0.05); transition: box-shadow .2s; }
.scoppa-cand-card:hover { box-shadow: 0 8px 24px rgba(40,60,87,0.1); }
.scoppa-cand-photo { flex:0 0 96px; width:96px; height:96px; border-radius:10px; overflow:hidden; background:#e7e8e8; display:flex; align-items:center; justify-content:center; }
.scoppa-cand-photo img { width:100%; height:100%; object-fit:cover; filter: grayscale(1); transition: filter .4s; }
.scoppa-cand-card:hover .scoppa-cand-photo img { filter: none; }
.scoppa-cand-placeholder { font-size:40px !important; width:40px; height:40px; color:#6f7979; }
.scoppa-cand-body { flex:1; min-width:0; }
.scoppa-cand-name { font-family:'Epilogue',sans-serif; font-weight:700; font-size:18px; color:#283c57; margin:0 0 4px; }
.scoppa-cand-role { font-family:'Inter',sans-serif; font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:1.2px; color:#3f4849; margin:0 0 10px; }
.scoppa-cand-cas,
.scoppa-cand-cas-int,
.scoppa-cand-cv { display:inline-flex; align-items:center; gap:4px; font-family:'Inter',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.5px; font-size:10px; padding:4px 10px; border-radius:4px; background: rgba(254,207,56,.1); color:#745b00; border:1px solid rgba(254,207,56,.2); text-decoration:none; transition: background .2s; }
.scoppa-cand-cas:hover,
.scoppa-cand-cas-int:hover,
.scoppa-cand-cv:hover { background: rgba(254,207,56,.2); color:#715900; }
.scoppa-cand-cas.is-muted,
.scoppa-cand-cv.is-muted { background: rgba(191,200,201,.2); color:#6f7979; border-color: rgba(191,200,201,.3); cursor:default; }
.scoppa-cand-cas .dashicons,
.scoppa-cand-cas-int .dashicons,
.scoppa-cand-cv .dashicons { font-size:13px; width:13px; height:13px; }

.scoppa-cand-docs { display:flex; flex-wrap:wrap; gap:6px; }

/* Trasparenza 2-col */
.scoppa-trasparenza-grid.e-con > .e-con-inner,
.scoppa-trasparenza-grid.e-con:not(.e-con-boxed) { display:grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 48px; align-items:center; }
@media (max-width:1024px) {
	.scoppa-trasparenza-grid.e-con > .e-con-inner,
	.scoppa-trasparenza-grid.e-con:not(.e-con-boxed) { grid-template-columns: 1fr !important; gap:32px !important; }
}

/* ===== Pagina Alfonso Scoppa ===== */
.scoppa-pill-eyebrow .elementor-heading-title { display:inline-block; background:#fecf38; color:#715900; padding:6px 16px; border-radius:999px; }

.scoppa-alfonso-hero.e-con > .e-con-inner,
.scoppa-alfonso-hero.e-con:not(.e-con-boxed) { display:grid !important; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap:64px; align-items:center; }
.scoppa-alfonso-portrait .elementor-widget-image img { aspect-ratio: 4 / 5; object-fit: cover; width:100%; height:auto; }

.scoppa-bio-grid.e-con > .e-con-inner,
.scoppa-bio-grid.e-con:not(.e-con-boxed) { display:grid !important; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap:24px; align-items:stretch; }
.scoppa-bio-span-2.e-con { min-height: 100%; }

.scoppa-vision-grid.e-con > .e-con-inner,
.scoppa-vision-grid.e-con:not(.e-con-boxed) { display:grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 48px; align-items:center; }
.scoppa-vision-card.e-con { position: relative; overflow: hidden; }
.scoppa-vision-card.e-con::after { content:''; position:absolute; top:0; right:0; width:40px; height:40px; background:#fecf38; clip-path: polygon(100% 0, 0 0, 100% 100%); }

.scoppa-stats-grid.e-con > .e-con-inner,
.scoppa-stats-grid.e-con:not(.e-con-boxed) { display:grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:20px; margin-top: 32px; }
.scoppa-stat-card.e-con { text-align:center; }

.scoppa-cta-bar.e-con > .e-con-inner { display:flex !important; flex-wrap:wrap !important; align-items:center !important; justify-content:space-between !important; gap:32px; }

/* ===== Home ===== */
.scoppa-pill-eyebrow.scoppa-pill-on-dark .elementor-heading-title { background:#fecf38; color:#715900; padding:4px 12px; border-radius:2px; }
.scoppa-home-hero.e-con { color:#fff; }

/* News + Eventi 7/5 */
.scoppa-news-events.e-con > .e-con-inner,
.scoppa-news-events.e-con:not(.e-con-boxed) { display:grid !important; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 64px; align-items:start; }

.scoppa-news-item.e-con > .e-con-inner { display:grid !important; grid-template-columns: 200px 1fr; gap: 24px; align-items:start; }
.scoppa-news-item .scoppa-news-img { overflow:hidden; }
.scoppa-news-item .scoppa-news-img img { width:100%; height:160px; object-fit:cover; border-radius:10px; transition: transform .5s; }
.scoppa-news-item:hover .scoppa-news-img img { transform: scale(1.05); }

.scoppa-events-box.e-con { position: relative; overflow: hidden; }
.scoppa-events-box.e-con::before { content:''; position:absolute; top:-40px; right:-40px; width:140px; height:140px; background:#fecf38; opacity:.1; border-radius:50%; pointer-events:none; }
.scoppa-event-date-box.e-con > .e-con-inner { display:flex !important; flex-direction:column !important; align-items:center !important; justify-content:center !important; gap:2px; }

.scoppa-events-cta .elementor-button { width:100%; }

/* CTA finale */
.scoppa-cta-inner-grid.e-con > .e-con-inner,
.scoppa-cta-inner-grid.e-con:not(.e-con-boxed) { display:grid !important; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 48px; align-items:center; }
.scoppa-cta-block.e-con { position:relative; overflow:hidden; }
.scoppa-cta-block.e-con::after { content:''; position:absolute; top:0; right:0; width:140px; height:140px; background:#fecf38; border-bottom-left-radius:140px; z-index:0; }
.scoppa-cta-block.e-con > .e-con-inner,
.scoppa-cta-block.e-con > * { position:relative; z-index:1; }

@media (max-width: 1024px) {
	.scoppa-news-events.e-con > .e-con-inner,
	.scoppa-news-events.e-con:not(.e-con-boxed) { grid-template-columns: 1fr !important; gap:48px !important; }
	.scoppa-news-item.e-con > .e-con-inner { grid-template-columns: 140px 1fr !important; }
	.scoppa-cta-inner-grid.e-con > .e-con-inner,
	.scoppa-cta-inner-grid.e-con:not(.e-con-boxed) { grid-template-columns: 1fr !important; gap:32px !important; }
}
@media (max-width: 640px) {
	.scoppa-news-item.e-con > .e-con-inner { grid-template-columns: 1fr !important; }
}

@media (max-width: 1024px) {
	.scoppa-alfonso-hero.e-con > .e-con-inner,
	.scoppa-alfonso-hero.e-con:not(.e-con-boxed) { grid-template-columns: 1fr !important; }
	.scoppa-bio-grid.e-con > .e-con-inner,
	.scoppa-bio-grid.e-con:not(.e-con-boxed) { grid-template-columns: 1fr !important; }
	.scoppa-vision-grid.e-con > .e-con-inner,
	.scoppa-vision-grid.e-con:not(.e-con-boxed) { grid-template-columns: 1fr !important; gap:32px !important; }
	.scoppa-stats-grid.e-con > .e-con-inner,
	.scoppa-stats-grid.e-con:not(.e-con-boxed) { grid-template-columns: 1fr !important; }
}

/* ========================================================================
   Template singola pagina: News & Eventi
   ======================================================================== */
.scoppa-single { background:#f8faf9; padding-bottom:80px; }
.scoppa-single-hero {
	background:linear-gradient(135deg,#283c57 0%,#1a2a3e 100%);
	color:#fff; padding:80px 24px 96px; text-align:center; position:relative; overflow:hidden;
}
.scoppa-single-hero::after {
	content:''; position:absolute; top:0; right:0; width:200px; height:200px;
	background:#fecf38; border-bottom-left-radius:200px; opacity:.15; z-index:0;
}
.scoppa-single-hero > * { position:relative; z-index:1; }
.scoppa-single-hero__back {
	display:inline-block; margin-bottom:28px; color:#fecf38; text-decoration:none;
	font-family:'Epilogue',sans-serif; font-weight:700; font-size:12px; letter-spacing:2px; text-transform:uppercase;
	transition:color .2s;
}
.scoppa-single-hero__back:hover { color:#fff; }
.scoppa-single-hero__eyebrow {
	font-family:'Inter',sans-serif; font-weight:700; font-size:12px; letter-spacing:4px;
	text-transform:uppercase; color:#fecf38;
}
.scoppa-single-hero__title {
	font-family:'Epilogue',sans-serif; font-weight:900;
	font-size:clamp(32px,5vw,56px); line-height:1.08; letter-spacing:-1px;
	margin:18px auto 16px; max-width:880px; color:#fff;
}
.scoppa-single-hero__meta {
	font-family:'Inter',sans-serif; font-size:14px; color:rgba(255,255,255,.78);
	display:flex; gap:18px 24px; justify-content:center; flex-wrap:wrap; margin-top:8px;
}
.scoppa-single-hero__meta span { display:inline-flex; align-items:center; gap:6px; }

.scoppa-single-content {
	max-width:780px; margin:-56px auto 0; background:#fff; border-radius:20px;
	padding:0 0 48px; box-shadow:0 20px 60px rgba(40,60,87,.12);
	position:relative; overflow:hidden;
}
.scoppa-single-content__featured { width:100%; aspect-ratio:16/9; overflow:hidden; background:#e1e3e2; }
.scoppa-single-content__featured img { width:100%; height:100%; object-fit:cover; display:block; }
.scoppa-single-content__inner { padding:40px 48px 0; }
.scoppa-single-content__lead {
	font-family:'Epilogue',sans-serif; font-weight:600; font-size:20px; line-height:1.5;
	color:#283c57; margin:0 0 28px; padding-left:16px; border-left:4px solid #fecf38;
}
.scoppa-single-content__body { font-family:'Inter',sans-serif; font-size:17px; line-height:1.7; color:#3f4849; }
.scoppa-single-content__body > *:first-child { margin-top:0; }
.scoppa-single-content__body p { margin:0 0 18px; }
.scoppa-single-content__body h2,
.scoppa-single-content__body h3 { font-family:'Epilogue',sans-serif; color:#191c1c; margin:32px 0 14px; }
.scoppa-single-content__body h2 { font-size:26px; }
.scoppa-single-content__body h3 { font-size:21px; }
.scoppa-single-content__body a { color:#283c57; font-weight:700; text-decoration:underline; text-decoration-color:#fecf38; text-underline-offset:3px; }
.scoppa-single-content__body img { max-width:100%; height:auto; border-radius:12px; margin:16px 0; }
.scoppa-single-content__body blockquote { border-left:4px solid #283c57; margin:24px 0; padding:8px 0 8px 22px; color:#283c57; font-style:italic; }

.scoppa-single-cta {
	display:inline-block; margin-top:24px; padding:14px 28px;
	background:#fecf38; color:#283c57 !important; text-decoration:none !important;
	font-family:'Epilogue',sans-serif; font-weight:800; font-size:13px;
	letter-spacing:1.5px; text-transform:uppercase; border-radius:10px;
	transition:transform .2s, box-shadow .2s;
}
.scoppa-single-cta:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(254,207,56,.45); }

.scoppa-single-share {
	margin-top:40px; padding-top:24px; border-top:1px solid #e1e3e2;
	display:flex; align-items:center; gap:14px; flex-wrap:wrap;
	font-family:'Inter',sans-serif; font-size:13px; color:#6f7979;
}
.scoppa-single-share a {
	display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px;
	border-radius:50%; background:#f2f4f4; color:#283c57; text-decoration:none;
	transition:background .2s, color .2s;
}
.scoppa-single-share a:hover { background:#283c57; color:#fff; }

@media (max-width: 720px) {
	.scoppa-single-hero { padding:64px 20px 80px; }
	.scoppa-single-content { margin:-48px 16px 0; border-radius:16px; }
	.scoppa-single-content__inner { padding:28px 24px 0; }
	.scoppa-single-content__lead { font-size:17px; }
	.scoppa-single-content__body { font-size:16px; }
}

/* Auto-hide colonne/box vuote: news, eventi e tappa.
   Lo shortcode emette <div class="scoppa-empty" hidden> quando non ha contenuti. */
.elementor-element.scoppa-grid-col:has(.scoppa-empty),
.elementor-element.scoppa-events-box:has(.scoppa-empty),
.elementor-element.scoppa-cta-card:has(.scoppa-empty) { display:none !important; }
