/* ------------------------------------------------------------------ *
 * VIGENTIA — strato di rifinitura (sopra app.css).
 * Micro-ritocchi eleganti e supporti WordPress. Il design di base resta.
 * ------------------------------------------------------------------ */

/* Sprite SVG icone: nascosto ma referenziabile da <use>. */
.vig-sprite{position:absolute;width:0;height:0;overflow:hidden}

/* Selettore lingua a bandierina (niente bordino). */
.main-nav a.lang{padding:0 0 0 4px;display:inline-flex;align-items:center}
.main-nav a.lang::after{display:none !important}
.lang img{display:block;width:25px;height:17px;border-radius:3px;filter:drop-shadow(0 1px 2px rgba(2,20,60,.20));transition:transform .2s ease,filter .2s ease}
.lang:hover img,.lang:focus-visible img{transform:scale(1.1);filter:drop-shadow(0 2px 4px rgba(2,20,60,.28))}

/* Header: ombra sottile allo scroll (gestita via classe da JS). */
.site-header{transition:box-shadow .25s ease, background .25s ease}
.site-header.is-stuck{box-shadow:0 1px 0 var(--line),0 14px 30px -24px rgba(3,40,99,.35)}

/* Link legali nel footer. */
.footer-legal-links{margin-top:14px}
.footer-legal{margin-top:34px;padding-top:22px;border-top:1px solid #244a86;color:var(--muted-on-dark);font-size:12.5px;line-height:1.6;letter-spacing:.01em}

/* Modulo contatti: esito reale (successo / errore). */
.form-feedback{margin-top:22px;padding:18px 20px;border:1px solid var(--line);background:var(--ice);font-size:15px;line-height:1.55}
.form-feedback.ok{border-color:#1a7f5a;background:#ecfbf4;color:#0d5c40}
.form-feedback.err{border-color:#9a2e2e;background:#fdecec;color:#7a1f1f}
.form-feedback b{display:block;margin-bottom:4px;color:inherit}

/* Conferma invio: prende il posto di tutto il form */
.form-sent{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;min-height:440px;padding:48px 28px;border:1px solid #cdeadd;background:linear-gradient(180deg,#ffffff,#f1f9f4);opacity:0;transform:translateY(12px) scale(.985);transition:opacity .45s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.form-sent.is-in{opacity:1;transform:none}
.form-sent__icon{width:72px;height:72px;border-radius:50%;background:#e6f7ee;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 10px rgba(26,127,90,.07);animation:vig-pop .5s cubic-bezier(.2,.8,.2,1) .1s both}
.form-sent__icon svg{width:34px;height:34px;fill:none;stroke:#1a7f5a;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.form-sent h2{color:var(--navy);font-size:clamp(26px,3vw,32px)}
.form-sent p{color:var(--muted);font-size:17px;line-height:1.6;max-width:34ch}
@keyframes vig-pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.form-sent,.form-sent__icon{transition:none;animation:none}}

/* Pagine legali (Privacy / Cookie). */
.legal .page-hero{padding-block:72px 40px}
.legal-meta{margin-top:18px;font-size:13px;letter-spacing:.04em;color:var(--muted)}
.legal-body{max-width:760px}
.legal-body h2{font-size:clamp(22px,2.4vw,28px);margin-top:46px;padding-top:28px;border-top:1px solid var(--line)}
.legal-body h2:first-child{margin-top:0;padding-top:0;border-top:0}
.legal-body p{margin-top:14px;color:var(--graphite);font-size:17px;line-height:1.7}
.legal-body p b{color:var(--navy)}
.legal-body ul{margin-top:14px;padding-left:20px;color:var(--graphite)}
.legal-body li{margin-top:8px;line-height:1.65}
.legal-body a{color:var(--navy);border-bottom:1px solid #B8C5D6}
.legal-body a:hover{border-color:var(--cyan)}

/* Rifiniture UI */
.contact-form input,.contact-form select,.contact-form textarea{transition:border-color .18s ease,box-shadow .18s ease}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,170,215,.16)}
.footer-links a{transition:color .18s ease}
.footer-links a:hover{color:#fff}
.button:active{transform:translateY(0)}
a.tile:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}
.header-contact{transition:background .2s ease,transform .2s ease}
.header-contact:hover{transform:translateY(-1px)}

/* Il banner cookie ha stili propri nel plugin VIGENTIA Cookie & Consent. */

/* ------------------------------------------------------------------ *
 * Animazioni allo scroll (solo con JS, rispettose di reduce-motion).
 * ------------------------------------------------------------------ */
.vig-js .vig-reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform}
.vig-js .vig-reveal.is-in{opacity:1;transform:none}
/* Leggero effetto a cascata nelle griglie */
.vig-js .tiles>:nth-child(2).vig-reveal,.vig-js .ai3>:nth-child(2).vig-reveal,.vig-js .roles>:nth-child(2).vig-reveal,.vig-js .stats .stat:nth-child(2).vig-reveal{transition-delay:.07s}
.vig-js .tiles>:nth-child(3).vig-reveal,.vig-js .ai3>:nth-child(3).vig-reveal,.vig-js .roles>:nth-child(3).vig-reveal,.vig-js .stats .stat:nth-child(3).vig-reveal{transition-delay:.14s}
.vig-js .tiles>:nth-child(4).vig-reveal,.vig-js .stats .stat:nth-child(4).vig-reveal{transition-delay:.21s}

/* ------------------------------------------------------------------ *
 * Micro-interazioni
 * ------------------------------------------------------------------ */
.vig-js a.tile{transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease,border-color .28s ease}
.vig-js a.tile:hover{transform:translateY(-4px);box-shadow:0 26px 50px -30px rgba(3,40,99,.55)}
.vig-js .gallery .shot,.vig-js .hero-shot .shot{transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease}
.vig-js .gallery > div:hover .shot{transform:translateY(-4px)}
.button,.text-link,.header-contact{transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.button:hover{transform:translateY(-1px)}
.vig-js .float{animation:vig-float 6s ease-in-out infinite}
.vig-js .float.f2{animation-delay:-2s}
.vig-js .float.f3{animation-delay:-4s}
@keyframes vig-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

/* ------------------------------------------------------------------ *
 * Menu mobile full-screen
 * ------------------------------------------------------------------ */
.menu-toggle{position:relative;z-index:90}
.menu-toggle.is-open{background:transparent;border-color:transparent;color:#fff}
@media(max-width:880px){
	.site-header{z-index:80}
	.site-header .wrap.header-inner{position:relative;z-index:85}
	.main-nav{position:fixed;inset:0;height:100dvh;width:100%;max-width:none;margin:0;padding:calc(var(--header) + 24px) var(--gutter) 48px;display:flex;flex-direction:column;justify-content:center;gap:2px;background:radial-gradient(130% 100% at 100% 0,#0a3a7e 0%,#032863 46%,#021a40 100%);box-shadow:none;border:0;z-index:70;transform:translateX(100%);visibility:hidden;transition:transform .5s cubic-bezier(.3,.85,.25,1),visibility .5s;overflow-y:auto;overscroll-behavior:contain}
	.main-nav.open{transform:none;visibility:visible}
	.main-nav a{color:#fff;font-size:clamp(30px,8.6vw,46px);font-weight:300;letter-spacing:-.025em;line-height:1.1;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.12);opacity:0;transform:translateY(16px)}
	.main-nav.open a{opacity:1;transform:none;transition:opacity .45s ease,transform .55s cubic-bezier(.2,.7,.2,1)}
	.main-nav.open a:nth-child(1){transition-delay:.12s}
	.main-nav.open a:nth-child(2){transition-delay:.18s}
	.main-nav.open a:nth-child(3){transition-delay:.24s}
	.main-nav.open a:nth-child(4){transition-delay:.30s}
	.main-nav.open a:nth-child(5){transition-delay:.36s}
	.main-nav.open a:nth-child(6){transition-delay:.42s}
	.main-nav a[aria-current='page']{color:#fff}
	.main-nav a[aria-current='page']::after{content:'';position:static;display:inline-block;width:22px;height:2px;margin-left:14px;vertical-align:middle;background:var(--cyan)}
	.main-nav a.lang{border-bottom:0;padding:22px 0 6px}
	.main-nav a.lang img{width:38px;height:26px;border-radius:4px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
	.main-nav .nav-cta{margin-top:26px;border:0;border-bottom:0;align-self:flex-start;font-size:15px;font-weight:700;letter-spacing:.02em;color:var(--navy);background:#fff;padding:16px 26px;display:inline-flex}
	body.vig-menu-open{overflow:hidden}
	/* Il pulsante Contatti della barra resta visibile; nasconde il doppione nel menu su desktop */
}
.main-nav .nav-cta{display:none}
@media(max-width:880px){.main-nav .nav-cta{display:inline-flex}}

/* ------------------------------------------------------------------ *
 * Rifiniture responsive
 * ------------------------------------------------------------------ */
@media(max-width:620px){
	.vig-js .vig-reveal{transform:translateY(16px)}
	.legal-body{max-width:100%}
	.footer-legal{font-size:12px}
}

@media(prefers-reduced-motion:reduce){
	.site-header{transition:none}
	.vig-js .vig-reveal{opacity:1;transform:none;transition:none}
	.vig-js .float{animation:none}
	.main-nav,.main-nav a{transition:none}
	.vig-js a.tile:hover{transform:none}
}


/* === Selettore lingua: bandiera pulita, nessun bordo/cornice/ombra in alcun viewport (fix bordino). === */
.main-nav a.lang,
.main-nav a.lang:hover,
.main-nav a.lang:focus,
.main-nav a.lang:focus-visible{border:0 !important;background:none !important}
.main-nav a.lang img,
.lang img{border:0 !important;border-radius:0 !important;box-shadow:none !important;filter:none !important}
