/*
 * main.css — PRISMA ADVISORY SRL v1.3
 * Font: Montserrat | Palette: brand ufficiale PDF
 */

/* ══════════════════════════════════════════════════════
   1. VARIABILI
   ══════════════════════════════════════════════════════ */
:root {
	/* Navy palette */
	--navy-900:   #070E1F;
	--navy-800:   #0B1933;
	--navy-700:   #0F2147;
	--navy-600:   #122B6E;
	--navy-500:   #1A3D8F;
	--navy-400:   #1A56A5;
	--navy-300:   #1E6AB4;

	/* Accenti logo */
	--cyan:       #17C8CC;
	--cyan-lt:    #4DD8DB;
	--cyan-glow:  rgba(23,200,204,.18);
	--violet:     #9B5FC0;
	--violet-lt:  #B980DE;
	--blue-mid:   #1A56A5;
	--blue-lt:    #4B8FD4;

	/* Gradiente logo */
	--grad-logo:  linear-gradient(135deg,#17C8CC 0%,#4B7FCC 40%,#9B5FC0 75%,#C060C0 100%);
	--grad-h:     linear-gradient(90deg,  #17C8CC 0%,#4B7FCC 40%,#9B5FC0 75%,#C060C0 100%);

	/* Testo e sfondi */
	--white:      #FFFFFF;
	--off-white:  #F2F4FA;
	--text-dark:  #0B1933;
	--text-mid:   #1A3D8F;
	--text-body:  #3A4E7A;
	--text-muted: rgba(255,255,255,.55);
	--text-faint: rgba(255,255,255,.30);
	--border-dk:  rgba(255,255,255,.08);
	--border-lt:  rgba(26,86,165,.15);

	/* Font */
	--font:       'Montserrat', sans-serif;

	/* Layout */
	--section-py: 110px;
	--container:  1160px;
	--gap-lg:     80px;
	--radius:     4px;
	--radius-lg:  10px;
	--navbar-h:   72px;

	/* Ombre */
	--sh-sm:  0 4px 16px rgba(11,25,51,.10);
	--sh-md:  0 8px 32px rgba(11,25,51,.16);
	--sh-lg:  0 20px 56px rgba(11,25,51,.22);

	--ease:   cubic-bezier(.4,0,.2,1);
	--trans:  .35s var(--ease);
}


/* ══════════════════════════════════════════════════════
   2. RESET & BASE
   ══════════════════════════════════════════════════════ */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0 }
html { font-size:16px; scroll-behavior:smooth; scroll-padding-top:var(--navbar-h) }
body { font-family:var(--font); font-size:1rem; line-height:1.7; color:var(--text-dark); background:var(--off-white); -webkit-font-smoothing:antialiased; overflow-x:hidden }
img  { max-width:100%; height:auto; display:block }
a    { color:inherit; text-decoration:none; transition:color var(--trans) }
ul,ol { list-style:none }
button { cursor:pointer; border:none; background:none; font:inherit }
address { font-style:normal }
.skip-link { position:absolute; top:-100px; left:0; padding:8px 16px; background:var(--cyan); color:var(--navy-800); font-weight:700; z-index:9999; transition:top .2s }
.skip-link:focus { top:0 }


/* ══════════════════════════════════════════════════════
   3. TIPOGRAFIA
   ══════════════════════════════════════════════════════ */
h1,h2,h3,h4,h5,h6 { font-family:var(--font); font-weight:600; line-height:1.2; color:var(--navy-800) }

.section-eyebrow {
	display:flex; align-items:center; gap:10px;
	font-family:var(--font); font-size:.72rem; font-weight:600;
	letter-spacing:.26em; text-transform:uppercase;
	color:var(--cyan); margin-bottom:14px;
}
.section-eyebrow::before { content:''; display:inline-block; width:28px; height:1.5px; background:currentColor; flex-shrink:0 }
.section-eyebrow.light { color:var(--cyan-lt) }

.section-title { font-size:clamp(1.75rem,3.5vw,2.6rem); font-weight:700; letter-spacing:-.02em; line-height:1.15; color:var(--navy-800) }
.section-title.light { color:var(--white) }

.title-em, .hero-title-em {
	font-style:normal; font-weight:800;
	background:var(--grad-logo);
	-webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}

.section-divider { width:44px; height:2px; background:var(--cyan); margin:28px 0 }


/* ══════════════════════════════════════════════════════
   4. LAYOUT & BOTTONI
   ══════════════════════════════════════════════════════ */
.container { max-width:var(--container); margin:0 auto; padding:0 24px }
.section { padding:var(--section-py) 0 }

.btn {
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	padding:13px 32px; font-family:var(--font); font-size:.78rem;
	font-weight:600; letter-spacing:.08em; text-transform:uppercase;
	border-radius:var(--radius); transition:all var(--trans); white-space:nowrap; cursor:pointer; border:none;
}
.btn-primary      { background:var(--navy-600); color:var(--white) }
.btn-primary:hover { background:var(--navy-500); transform:translateY(-2px); box-shadow:var(--sh-md); color:var(--white) }
.btn-outline-hero { background:transparent; color:var(--white); border:1.5px solid rgba(255,255,255,.45) }
.btn-outline-hero:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.80) }
.btn-cta          { background:var(--cyan); color:var(--navy-800); padding:10px 22px; font-size:.74rem; font-weight:700 }
.btn-cta:hover    { background:var(--cyan-lt); color:var(--navy-800); transform:translateY(-1px) }


/* ══════════════════════════════════════════════════════
   5. REVEAL ANIMATION
   ══════════════════════════════════════════════════════ */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease),transform .7s var(--ease) }
.reveal.is-visible { opacity:1; transform:translateY(0) }


/* ══════════════════════════════════════════════════════
   6. NAVBAR
   ══════════════════════════════════════════════════════ */
.site-header {
	position:fixed; top:0; left:0; right:0; height:var(--navbar-h); z-index:1000;
	background:transparent;
	transition:background var(--trans),box-shadow var(--trans),backdrop-filter var(--trans);
}
.site-header.is-scrolled {
	background:rgba(11,25,51,.97);
	backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
	box-shadow:0 2px 24px rgba(0,0,0,.28);
}
.nav-container { max-width:var(--container); margin:0 auto; padding:0 24px; height:100%; display:flex; align-items:center; justify-content:space-between; gap:24px }
.nav-brand { display:flex; align-items:center; flex-shrink:0 }
.nav-logo-img { height:40px; width:auto; object-fit:contain }
.nav-menu { display:flex }
.nav-list { display:flex; align-items:center; gap:30px }
.nav-link { font-size:.74rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.78); position:relative; padding-bottom:3px }
.nav-link::after { content:''; position:absolute; bottom:0; left:0; width:0; height:1.5px; background:var(--cyan-lt); transition:width var(--trans) }
.nav-link:hover,.nav-link.is-active { color:var(--white) }
.nav-link:hover::after,.nav-link.is-active::after { width:100% }
.nav-link:focus-visible { outline:2px solid var(--cyan-lt); outline-offset:4px; border-radius:2px }
.hamburger { display:none; flex-direction:column; gap:5px; padding:6px; border-radius:var(--radius) }
.hamburger-bar { display:block; width:24px; height:2px; background:var(--white); border-radius:2px; transition:all var(--trans) }
.hamburger.is-open .hamburger-bar:nth-child(1) { transform:translateY(7px) rotate(45deg) }
.hamburger.is-open .hamburger-bar:nth-child(2) { opacity:0 }
.hamburger.is-open .hamburger-bar:nth-child(3) { transform:translateY(-7px) rotate(-45deg) }
.mobile-nav { background:var(--navy-800); border-top:1px solid var(--border-dk); padding:16px 24px 28px }
.mobile-nav[hidden] { display:none }
.mobile-nav-list { display:flex; flex-direction:column }
.mobile-nav-link { display:block; padding:13px 0; font-size:.86rem; font-weight:500; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.78); border-bottom:1px solid var(--border-dk); transition:color var(--trans) }
.mobile-nav-link:hover { color:var(--cyan-lt) }
.mobile-nav-cta { margin-top:20px; width:100%; justify-content:center }


/* ══════════════════════════════════════════════════════
   7. HERO
   ══════════════════════════════════════════════════════ */
.section-hero {
	min-height:100vh;
	background:linear-gradient(135deg, var(--navy-800) 0%, var(--navy-700) 50%, #0E2558 100%);
	/* flex-start invece di center: evita che su mobile
	   il contenuto overflow sopra la navbar */
	display:flex; align-items:flex-start;
	position:relative; overflow:hidden; padding:0;
}

/* Geometria SOLO nella metà destra — non tocca mai il testo */
.hero-bg-geo {
	position:absolute; left:50%; right:0; top:0; bottom:0;
	pointer-events:none; overflow:hidden; z-index:0;
}
.hero-bg-tri-1 { position:absolute; right:-80px; top:50%; transform:translateY(-50%); width:580px; height:560px; opacity:.22 }
.hero-bg-tri-2 { position:absolute; right:0; top:0; width:160px; height:180px; opacity:.55 }
.hero-bg-glow  { position:absolute; right:5%; top:15%; width:340px; height:340px; background:radial-gradient(ellipse,rgba(23,200,204,.06) 0%,transparent 70%); pointer-events:none }

.hero-container {
	position:relative; z-index:2;
	display:grid; grid-template-columns:1fr 1fr; gap:var(--gap-lg);
	/* Su desktop: centra verticalmente nel viewport via margin auto */
	align-items:center;
	width:100%;
	/* Navbar 72px + 48px respiro sopra, 80px sotto */
	padding-top:calc(var(--navbar-h) + 48px);
	padding-bottom:80px;
	/* Centratura verticale su desktop quando il contenuto è più corto dello schermo */
	margin-top:auto; margin-bottom:auto;
	min-height:100vh;
	box-sizing:border-box;
}

.hero-eyebrow { display:flex; align-items:center; gap:14px; font-family:var(--font); font-size:.72rem; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:var(--cyan-lt); margin-bottom:22px }
.hero-eyebrow-line { display:inline-block; width:32px; height:1.5px; background:currentColor; flex-shrink:0 }

.hero-title {
	font-size:clamp(2.2rem,5vw,4rem); font-weight:700; letter-spacing:-.025em;
	color:var(--white); line-height:1.08; margin-bottom:24px;
	text-shadow:0 2px 16px rgba(7,14,31,.45);
}
.hero-sub {
	font-size:1rem; color:var(--text-muted); font-weight:400; max-width:460px; line-height:1.8; margin-bottom:44px;
	text-shadow:0 1px 8px rgba(7,14,31,.40);
}
.hero-cta-group { display:flex; flex-wrap:wrap; gap:14px }

.hero-pillars { display:flex; flex-direction:column }
.hero-pillar {
	display:flex; align-items:center; gap:20px; padding:24px 28px;
	background:rgba(26,86,165,.18); border:1px solid var(--border-dk);
	border-left:3px solid transparent; margin-bottom:2px; transition:all var(--trans); position:relative; overflow:hidden;
}
.hero-pillar::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--grad-logo); opacity:0; transition:opacity var(--trans) }
.hero-pillar:hover { background:rgba(26,86,165,.32); border-color:rgba(255,255,255,.14) }
.hero-pillar:hover::before { opacity:1 }
.hero-pillar-num {
	font-family:var(--font); font-size:1.5rem; font-weight:700;
	background:var(--grad-logo); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
	line-height:1; min-width:44px;
}
.hero-pillar-name { font-size:.80rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:rgba(255,255,255,.78); margin-bottom:3px }
.hero-pillar-desc { font-size:.74rem; color:var(--text-faint); font-weight:400 }

.hero-scroll-indicator {
	position:absolute; bottom:36px; left:50%; transform:translateX(-50%);
	display:flex; flex-direction:column; align-items:center; gap:8px;
	color:rgba(255,255,255,.28); font-size:.64rem; letter-spacing:.22em; text-transform:uppercase; transition:color var(--trans); z-index:3;
}
.hero-scroll-indicator:hover { color:rgba(255,255,255,.65) }
.hero-scroll-line { width:1px; height:44px; background:linear-gradient(to bottom,rgba(255,255,255,.35),transparent); animation:scrollLine 1.9s ease-in-out infinite }
.hero-scroll-label { order:-1 }
@keyframes scrollLine { 0%,100%{transform:scaleY(1);opacity:.9} 50%{transform:scaleY(.5);opacity:.3} }


/* ══════════════════════════════════════════════════════
   8. CHI SIAMO
   ══════════════════════════════════════════════════════ */
.section-chi-siamo { background:var(--off-white) }
.chi-siamo-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--gap-lg); align-items:start }
.chi-siamo-text { margin:24px 0 36px }
.chi-siamo-text p { font-size:.97rem; color:var(--text-body); font-weight:400; line-height:1.85; margin-bottom:16px }
.chi-siamo-pillars { display:flex; flex-direction:column }
.chi-pillar-item { display:flex; align-items:center; gap:14px; padding:15px 0; border-bottom:1px solid var(--border-lt) }
.chi-pillar-item:first-child { border-top:1px solid var(--border-lt) }
.chi-pillar-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0 }
chi-pillar-dot--teal   { background:var(--cyan) }
.chi-pillar-dot--violet { background:#9B5FC0 }
.chi-pillar-dot--navy   { background:var(--navy-600) }
.chi-pillar-label { font-size:.79rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--navy-600) }

.chi-siamo-right { display:flex; flex-direction:column; gap:20px; padding-top:52px }
.stat-card { padding:32px; background:var(--white); border:1px solid var(--border-lt); border-radius:var(--radius); box-shadow:var(--sh-sm); border-left:4px solid; transition:transform var(--trans),box-shadow var(--trans) }
.stat-card--teal   { border-left-color:var(--cyan) }
.stat-card--violet { border-left-color:var(--violet); margin-left:28px }
.stat-card--blue   { border-left-color:var(--blue-mid) }
.stat-card:hover   { transform:translateY(-4px); box-shadow:var(--sh-lg) }
.stat-num   { font-family:var(--font); font-size:2.2rem; font-weight:700; letter-spacing:-.03em; color:var(--navy-700); line-height:1; margin-bottom:6px }
.stat-label { font-size:.74rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--text-body) }


/* ══════════════════════════════════════════════════════
   9. SERVIZI
   ══════════════════════════════════════════════════════ */
.section-dark { background:var(--navy-800); position:relative }
.section-dark::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--grad-h) }
.servizi-header { display:flex; justify-content:space-between; align-items:flex-end; gap:48px; margin-bottom:60px }
.servizi-intro { max-width:340px; font-size:.88rem; color:var(--text-muted); font-weight:400; line-height:1.8; flex-shrink:0 }
.servizi-grid {
	display:grid; grid-template-columns:repeat(3,1fr); gap:16px;
	align-items:stretch;   /* tutte le card stessa altezza */
}

/* ── Card: altezza uguale grazie a flex column ── */
.service-card {
	background:var(--navy-400); border:1px solid rgba(255,255,255,.10);
	border-radius:var(--radius-lg); padding:44px 32px;
	transition:all var(--trans); position:relative; overflow:hidden;
	/* Flex column: fa sì che le 3 card abbiano altezza uguale
	   e il contenuto sia distribuito verticalmente in modo coerente */
	display:flex; flex-direction:column;
}
.service-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; transform:scaleX(0); transform-origin:left; transition:transform var(--trans) }
.service-card--teal::before   { background:var(--cyan) }
.service-card--violet::before { background:var(--grad-logo) }
.service-card--blue::before   { background:var(--blue-lt) }
.service-card:hover { background:var(--navy-300); border-color:rgba(255,255,255,.18); transform:translateY(-4px); box-shadow:var(--sh-lg) }
.service-card:hover::before { transform:scaleX(1) }

.service-card-icon { margin-bottom:24px }
.service-card-icon i { font-size:1.7rem }
.service-card--teal   .service-card-icon i { color:var(--cyan-lt) }
.service-card--violet .service-card-icon i { color:var(--violet-lt) }
.service-card--blue   .service-card-icon i { color:#7EC8F0 }

.service-card-title { font-size:1.1rem; font-weight:700; letter-spacing:-.01em; color:var(--white); margin-bottom:6px }
.service-card-tag { display:block; font-family:var(--font); font-size:.63rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; margin-bottom:18px }
.service-card--teal   .service-card-tag { color:var(--cyan-lt) }
.service-card--violet .service-card-tag { color:var(--violet-lt) }
.service-card--blue   .service-card-tag { color:#7EC8F0 }
/* La descrizione si espande per occupare lo spazio disponibile
   → le liste dei 3 box si allineano alla stessa altezza */
.service-card-desc { font-size:.86rem; color:rgba(255,255,255,.72); font-weight:400; line-height:1.8; margin-bottom:28px; flex:1 }
.service-card-list { display:flex; flex-direction:column; gap:9px }
.service-card-list li {
	display:flex; align-items:center; gap:10px;
	font-size:.79rem; font-weight:500; color:rgba(255,255,255,.82);
}
/* Trattino: display:block obbligatorio per width/height in tutti i browser */
.service-card-list li::before {
	content:'';
	display:block;            /* ← fix: senza questo, width/height ignorati */
	width:16px; height:1.5px;
	flex-shrink:0;
}
.service-card--teal   .service-card-list li::before { background:var(--cyan) }
.service-card--violet .service-card-list li::before { background:var(--violet-lt) }
.service-card--blue   .service-card-list li::before { background:var(--blue-lt) }


/* ══════════════════════════════════════════════════════
   10. I PARTNER
   ══════════════════════════════════════════════════════ */
.section-team { background:var(--white) }
.team-header { text-align:center; max-width:600px; margin:0 auto 60px }
.team-subtitle { font-size:.92rem; color:var(--text-body); font-weight:400; line-height:1.8; margin-top:20px }
.team-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; max-width:840px; margin:0 auto }
.team-card { background:var(--off-white); border:1px solid var(--border-lt); border-radius:var(--radius-lg); overflow:hidden; transition:transform var(--trans),box-shadow var(--trans); box-shadow:var(--sh-sm) }
.team-card:hover { transform:translateY(-6px); box-shadow:var(--sh-lg) }
.team-photo { width:100%; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden }
.team-photo--p1 { background:linear-gradient(135deg,var(--navy-600) 0%,var(--navy-800) 100%) }
.team-photo--p2 { background:linear-gradient(135deg,#0F2A6E 0%,var(--navy-800) 100%) }
.team-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(to bottom,transparent 40%,rgba(11,25,51,.50)) }
.team-photo-initials { font-family:var(--font); font-size:3.5rem; font-weight:600; color:rgba(255,255,255,.14); letter-spacing:.06em; z-index:1 }
.team-photo-accent { position:absolute; bottom:16px; right:16px; width:40px; height:40px; border-radius:50%; z-index:2 }
.team-photo-accent--teal   { background:var(--cyan) }
.team-photo-accent--violet { background:var(--violet) }
.team-photo-accent::after { content:'\f007'; font-family:'Font Awesome 6 Free'; font-weight:900; font-size:.8rem; color:var(--white); position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) }
.team-card-body { padding:28px }
.team-name { font-size:1.25rem; font-weight:700; letter-spacing:-.01em; color:var(--navy-700); margin-bottom:4px }
.team-role { display:block; font-size:.69rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--cyan); margin-bottom:16px }
.team-bio { font-size:.86rem; color:var(--text-body); font-weight:400; line-height:1.8 }


/* ══════════════════════════════════════════════════════
   11. CONTATTI & FORM
   ══════════════════════════════════════════════════════ */
.section-contatti { background:var(--off-white) }
.contatti-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--gap-lg); align-items:start }
.contatti-intro { font-size:.94rem; color:var(--text-body); font-weight:400; line-height:1.85; margin:20px 0 40px }
.contatti-info-list { display:flex; flex-direction:column; gap:20px }
.contatti-info-item { display:flex; align-items:flex-start; gap:16px }
.contatti-info-icon { width:42px; height:42px; background:var(--navy-700); border-radius:var(--radius); display:flex; align-items:center; justify-content:center; flex-shrink:0 }
.contatti-info-icon i { font-size:.88rem; color:var(--cyan-lt) }
.contatti-info-label { font-size:.66rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--cyan); margin-bottom:3px }
.contatti-info-value { font-size:.9rem; font-weight:500; color:var(--navy-700) }
.contatti-info-value a:hover { color:var(--cyan) }
.contatti-fiscal { margin-top:36px; padding:20px 24px; background:var(--white); border:1px solid var(--border-lt); border-radius:var(--radius); display:grid; grid-template-columns:1fr 1fr; gap:12px 32px }
.fiscal-label { font-size:.64rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--text-body); margin-bottom:2px }
.fiscal-value { font-size:.82rem; font-weight:600; color:var(--navy-700); font-family:monospace }
.map-embed { margin-top:32px; border-radius:var(--radius); overflow:hidden; border:1px solid var(--border-lt); height:220px }
.map-embed iframe { width:100%; height:100%; display:block }

.contact-form-wrapper { background:var(--white); border:1px solid var(--border-lt); border-radius:var(--radius-lg); padding:44px 40px; box-shadow:var(--sh-md) }
.form-title { font-size:1.35rem; font-weight:700; color:var(--navy-700); margin-bottom:28px }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px }
.form-group { margin-bottom:20px }
.form-label { display:block; font-size:.67rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--text-body); margin-bottom:8px }
.form-input {
	width:100%; padding:13px 16px; background:var(--off-white);
	border:1.5px solid var(--border-lt); border-radius:var(--radius);
	font-family:var(--font); font-size:.87rem; color:var(--navy-700); line-height:1.5;
	transition:border-color var(--trans),box-shadow var(--trans); outline:none; -webkit-appearance:none; appearance:none;
}
.form-input:focus { border-color:var(--cyan); box-shadow:0 0 0 3px var(--cyan-glow) }
.form-textarea { height:120px; resize:vertical }
.form-select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%233A4E7A' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:40px; cursor:pointer }
.form-submit { width:100%; padding:15px; background:var(--navy-700); color:var(--white); font-family:var(--font); font-size:.78rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; border-radius:var(--radius); transition:all var(--trans); margin-top:4px; border:none; cursor:pointer }
.form-submit:hover { background:var(--navy-600); transform:translateY(-2px); box-shadow:var(--sh-md) }
.form-submit:focus-visible { outline:3px solid var(--cyan); outline-offset:2px }
.form-success-msg { padding:16px 20px; background:rgba(23,200,204,.08); border:1px solid rgba(23,200,204,.30); border-radius:var(--radius); color:#0a7f82; font-size:.9rem; font-weight:500; line-height:1.6 }
.form-success-msg i { margin-right:8px }
.form-error-msg { padding:14px 18px; background:rgba(220,38,38,.06); border:1px solid rgba(220,38,38,.20); border-radius:var(--radius); color:#b91c1c; font-size:.87rem; margin-bottom:20px }
.form-field-error { display:block; font-size:.72rem; color:#b91c1c; margin-top:4px; font-weight:500 }


/* ══════════════════════════════════════════════════════
   12. FOOTER
   ══════════════════════════════════════════════════════ */
.site-footer { background:var(--navy-800); padding:56px 0 32px; color:var(--text-faint); border-top:1px solid var(--border-dk) }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.5fr; gap:52px; padding-bottom:40px; border-bottom:1px solid var(--border-dk) }
.footer-logo-img { height:34px; width:auto; object-fit:contain; margin-bottom:14px; opacity:.88 }
.footer-brand-tagline { font-size:.79rem; color:var(--text-faint); font-weight:400; line-height:1.7; margin-bottom:16px }
.footer-address { display:flex; flex-direction:column; font-size:.77rem; color:var(--text-faint); line-height:1.6 }
.footer-col-title { font-family:var(--font); font-size:.64rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.45); margin-bottom:16px }
.footer-nav-list { display:flex; flex-direction:column; gap:9px }
.footer-nav-list a { font-size:.81rem; color:var(--text-faint); transition:color var(--trans) }
.footer-nav-list a:hover { color:rgba(255,255,255,.80) }
.footer-contact-list { display:flex; flex-direction:column; gap:12px }
.footer-contact-list li { display:flex; align-items:flex-start; gap:10px; font-size:.79rem; color:var(--text-faint) }
.footer-contact-list i { color:var(--cyan); font-size:.75rem; margin-top:2px; flex-shrink:0 }
.footer-contact-list a { color:var(--text-faint); word-break:break-all }
.footer-contact-list a:hover { color:rgba(255,255,255,.70) }
.footer-bottom { margin-top:28px; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap }
.footer-legal { font-size:.73rem; display:flex; flex-wrap:wrap; gap:8px; align-items:center }
.footer-sep { opacity:.3 }
.footer-wp-credit { font-size:.71rem }


/* ══════════════════════════════════════════════════════
   13. RESPONSIVE
   ══════════════════════════════════════════════════════ */

/* ≤1100px — tablet landscape */
@media(max-width:1100px) {
	:root { --gap-lg:60px }
	.hero-container { grid-template-columns:1fr; gap:48px }
	.hero-bg-tri-1  { opacity:.15 }
	.hero-sub       { max-width:100% }
	.servizi-grid   { grid-template-columns:1fr 1fr; gap:14px }
	.servizi-header { flex-direction:column; align-items:flex-start }
	.servizi-intro  { max-width:100% }
	.footer-grid    { grid-template-columns:1fr 1fr; gap:36px }
}

/* ≤900px — tablet portrait */
@media(max-width:900px) {
	:root { --section-py:80px }
	.chi-siamo-grid { grid-template-columns:1fr; gap:48px }
	.chi-siamo-right { padding-top:0 }
	.stat-card--violet { margin-left:0 }
	.contatti-grid  { grid-template-columns:1fr; gap:48px }
	.team-grid      { max-width:560px; margin:0 auto }
	.servizi-grid   { grid-template-columns:1fr }
}

/* ≤768px — mobile large */
@media(max-width:768px) {
	:root { --section-py:68px }
	.nav-menu,.nav-cta { display:none }
	.hamburger { display:flex }

	/* ── NAVBAR: sempre solida su mobile, mai trasparente ── */
	/* Evita che il testo hero finisca DIETRO la navbar */
	.site-header {
		background:rgba(11,25,51,.98) !important;
		backdrop-filter:blur(16px);
		-webkit-backdrop-filter:blur(16px);
		box-shadow:0 2px 20px rgba(0,0,0,.30);
	}

	/* Geometria decorativa nascosta su mobile */
	.hero-bg-geo { display:none }

	/* ── HERO: contenuto sempre SOTTO la navbar ── */
	/* Usiamo padding-top fisso 88px (= navbar 72px + 16px respiro)
	   Non usiamo calc() con variabili CSS: su alcuni browser Android
	   le custom properties non si aggiornano correttamente nelle media query */
	.section-hero {
		min-height:100vh;
		height:auto;
		display:block;        /* no flex: evita centering verticale che sposta il contenuto sopra */
		padding-top:0;
		padding-bottom:0;
	}
	.hero-container {
		display:block;        /* no grid su mobile: semplice block flow */
		padding-top:88px;     /* navbar (72px) + 16px respiro */
		padding-bottom:52px;
		/* nessun min-height, nessun margin auto */
	}

	/* Hero content: tutto in flow normale */
	.hero-content  { margin-bottom:36px }
	.hero-pillars  { display:flex; flex-direction:column; gap:2px }

	/* Font */
	.hero-eyebrow  { font-size:.65rem; letter-spacing:.2em; margin-bottom:16px }
	.hero-title    { font-size:clamp(1.75rem,7vw,2.5rem); margin-bottom:18px }
	.hero-sub      { font-size:.92rem; margin-bottom:28px; max-width:100% }

	/* CTA in colonna */
	.hero-cta-group { flex-direction:column }
	.hero-cta-group .btn { text-align:center; justify-content:center; width:100% }

	/* Pillars compatti */
	.hero-pillar      { padding:13px 18px; gap:14px }
	.hero-pillar-num  { font-size:1.15rem; min-width:30px }
	.hero-pillar-name { font-size:.74rem }
	.hero-pillar-desc { font-size:.68rem }

	.hero-scroll-indicator { display:none }

	/* Resto layout */
	.team-grid  { grid-template-columns:1fr; max-width:440px }
	.form-row   { grid-template-columns:1fr }
	.contact-form-wrapper { padding:32px 24px }
	.footer-grid { grid-template-columns:1fr; gap:32px }
	.footer-bottom { flex-direction:column; text-align:center; gap:10px }
}

/* ≤480px — mobile standard */
@media(max-width:480px) {
	:root { --section-py:56px }
	.container { padding:0 16px }
	.nav-logo-img { height:34px }
	.hero-container  { padding-top:84px; padding-bottom:40px }
	.hero-title      { font-size:1.6rem }
	.hero-eyebrow    { font-size:.62rem }
	.hero-pillar     { padding:11px 15px }
	.hero-pillar-num { font-size:1rem; min-width:26px }
	.contatti-fiscal { grid-template-columns:1fr }
	.contact-form-wrapper { padding:24px 16px }
	.service-card    { padding:28px 18px }
}

/* ≤390px — mobile small (iPhone SE ecc.) */
@media(max-width:390px) {
	.nav-container   { padding:0 14px }
	.nav-logo-img    { height:30px }
	.hero-container  { padding-top:80px }
	.hero-title      { font-size:1.5rem }
	.hero-sub        { font-size:.86rem }
	.btn             { padding:11px 20px; font-size:.74rem }
	.section-title   { font-size:1.5rem }
}

/* Print */
@media print {
	.site-header,.hero-scroll-indicator,.contact-form-wrapper { display:none!important }
	body { color:#000; background:#fff }
	a { color:#000 }
}
