
:root{
  --navy:#0b2340;
  --navy-2:#163a5d;
  --blue:#2f779d;
  --gold:#c4a15a;
  --cream:#f3f6f8;
  --white:#ffffff;
  --ink:#15263a;
  --muted:#60748a;
  --line:#dce4ea;
  --shadow:0 22px 60px rgba(11,35,64,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.65}
img{max-width:100%;display:block}
a{color:inherit}
.container{width:min(1180px,92%);margin:auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-bottom:1px solid rgba(11,35,64,.08)}
.nav-wrap{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{width:54px;height:54px;object-fit:contain}
.brand strong{display:block;font-family:"Playfair Display",serif;font-size:1.2rem;color:var(--navy)}
.brand small{display:block;font-size:.7rem;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}
.main-nav{display:flex;align-items:center;gap:26px}
.main-nav a{text-decoration:none;font-weight:700;font-size:.88rem;color:var(--navy)}
.main-nav a:hover{color:var(--blue)}
.nav-cta{border:1px solid var(--navy);padding:11px 16px}
.language-switch{display:flex;gap:7px;font-size:.78rem}
.menu-toggle{display:none;background:none;border:0}
.menu-toggle span{display:block;width:26px;height:2px;background:var(--navy);margin:5px}

.hero{position:relative;background:linear-gradient(90deg,#f4f7f9 0%,#f3f6f8 58%,#f7f4ee 100%);overflow:hidden}
.hero:after{content:"";position:absolute;width:460px;height:460px;border:1px solid rgba(47,119,157,.18);border-radius:50%;right:-160px;top:80px;box-shadow:0 0 0 90px rgba(47,119,157,.04)}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:70px;align-items:center;min-height:780px;position:relative;z-index:1}
.eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;font-weight:800;color:var(--blue);margin-bottom:22px}
.hero h1,.page-hero h1{font-family:"Playfair Display",serif;color:var(--navy);line-height:1.02;margin:0}
.hero h1{font-size:clamp(3.6rem,7vw,6.8rem)}
.hero h1 span{color:var(--blue)}
.hero p{font-size:1.12rem;color:var(--muted);max-width:650px;margin:26px 0 0}
.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:800;padding:14px 20px;border:1px solid transparent;transition:.2s}
.button-dark{background:var(--navy);color:#fff}
.button-light{background:#fff;border-color:var(--line);color:var(--navy)}
.button-gold{background:var(--gold);color:var(--navy)}
.button:hover{transform:translateY(-2px)}
.address-line{display:flex;align-items:center;gap:10px;color:var(--muted);margin-top:24px;font-size:.92rem}
.address-line:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold)}
.hero-photo{position:relative}
.hero-photo img{width:100%;aspect-ratio:4/4.5;object-fit:cover;box-shadow:var(--shadow)}
.hero-overlay{position:absolute;left:28px;right:28px;bottom:24px;background:rgba(11,35,64,.93);color:#fff;padding:26px 30px}
.hero-overlay .eyebrow{color:var(--gold);margin-bottom:8px}
.hero-overlay strong{display:block;font-family:"Playfair Display",serif;font-size:2rem}
.hero-overlay span{display:block;color:#dce7ef}

.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:42px}
.metric{text-align:center;padding-top:18px;border-top:1px solid var(--line)}
.metric strong{display:block;color:var(--navy);font-size:1.2rem}
.metric span{display:block;color:var(--muted);font-size:.84rem}

.section{padding:88px 0}
.section-soft{background:var(--cream)}
.section-dark{background:linear-gradient(135deg,var(--navy),#102f50);color:#fff}
.section-heading{max-width:820px;margin-bottom:36px}
.section h2{font-family:"Playfair Display",serif;color:var(--navy);font-size:clamp(2.2rem,4vw,3.7rem);line-height:1.12;margin:0 0 18px}
.section-dark h2{color:#fff}
.section p{color:var(--muted)}
.section-dark p{color:#d9e3eb}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:36px}
.card{background:#fff;border:1px solid var(--line);padding:28px}
.card h3{color:var(--navy);margin:0 0 12px;font-size:1.18rem}
.card p{margin:0}
.card-link{text-decoration:none;transition:.2s}
.card-link:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.service-card{min-height:220px;display:flex;flex-direction:column}
.service-card .number{font-size:.76rem;letter-spacing:.16em;color:var(--gold);font-weight:800}
.service-card .more{margin-top:auto;color:var(--navy);font-weight:800}
.trust-grid{display:grid;grid-template-columns:1.25fr repeat(3,1fr);gap:26px;align-items:start}
.trust-item{padding-left:24px;border-left:1px solid rgba(255,255,255,.18)}
.trust-item strong{display:block;color:#fff;margin-bottom:10px}
.trust-item span{color:#d6e0e8;font-size:.93rem}
.team-grid-home{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.profile{padding:0;border:0;background:transparent}
.profile img,.placeholder{width:100%;aspect-ratio:4/5;object-fit:cover;background:#e8edf1}
.placeholder{display:grid;place-items:center;color:var(--navy);font-size:2rem}
.profile h3{margin:15px 0 3px;font-size:1rem;text-align:center}
.profile p{text-align:center;font-size:.82rem;color:var(--muted)}
.client-strip{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.client-item{padding:24px 14px;text-align:center;border-right:1px solid var(--line);font-weight:700;color:var(--navy)}
.client-item:last-child{border-right:0}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.news-meta{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--gold)}
.contact-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:0;border:1px solid var(--line)}
.contact-panel{padding:38px;background:#fff}
.contact-panel h3{font-family:"Playfair Display",serif;color:var(--navy);font-size:2rem;margin-top:0}
.contact-panel p{margin:.55rem 0}
.map{width:100%;height:100%;min-height:430px;border:0}
.site-footer{background:#081b30;color:#dce4ea;padding:34px 0 18px}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:30px}
.footer-title{color:#fff;font-weight:800;margin-bottom:10px}
.footer-links a{display:block;text-decoration:none;margin:6px 0}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:24px;padding-top:16px;display:flex;justify-content:space-between;font-size:.84rem}
.page-hero{background:linear-gradient(90deg,#f4f7f9,#f7f4ee);padding:70px 0}
.page-hero h1{font-size:clamp(3rem,6vw,5rem)}
.page-hero p{max-width:780px;font-size:1.08rem;color:var(--muted)}
.breadcrumb{font-size:.84rem;color:var(--muted);margin-bottom:18px}
.breadcrumb a{color:var(--navy)}
.content-prose{max-width:820px}
.content-prose h2{font-size:2.25rem;margin-top:40px}
.content-prose h3{color:var(--navy)}
.service-detail-list{list-style:none;padding:0;margin:24px 0;display:grid;gap:12px}
.service-detail-list li{padding:14px 16px 14px 44px;border:1px solid var(--line);position:relative;background:#fff}
.service-detail-list li:before{content:"✓";position:absolute;left:16px;color:var(--gold);font-weight:900}
.notice{border-left:4px solid var(--gold);background:#fff8e8;padding:18px}
@media(max-width:980px){
  .main-nav{display:none;position:absolute;top:78px;left:0;right:0;background:#fff;flex-direction:column;padding:24px;box-shadow:var(--shadow)}
  .main-nav.open{display:flex}.menu-toggle{display:block}
  .hero-grid,.grid-2,.contact-grid{grid-template-columns:1fr}
  .hero-grid{min-height:auto;padding:70px 0}
  .metrics,.grid-3,.news-grid{grid-template-columns:repeat(2,1fr)}
  .trust-grid{grid-template-columns:1fr 1fr}
  .team-grid-home{grid-template-columns:repeat(3,1fr)}
  .client-strip{grid-template-columns:repeat(3,1fr)}
  .map{min-height:380px}
}
@media(max-width:620px){
  .hero h1{font-size:3.5rem}
  .metrics,.grid-3,.news-grid,.trust-grid,.team-grid-home,.client-strip,.footer-grid{grid-template-columns:1fr}
  .client-item{border-right:0;border-bottom:1px solid var(--line)}
  .section{padding:64px 0}
  .brand small{display:none}
  .footer-bottom{flex-direction:column;gap:8px}
}

/* Versione 3.1 — rifiniture grafiche */
.hero-grid{min-height:690px;grid-template-columns:1.08fr .92fr;gap:78px}
.hero h1{font-size:clamp(3.35rem,6vw,5.75rem);line-height:1.08;letter-spacing:-.025em;max-width:720px}
.hero p{font-size:1.04rem;line-height:1.8;max-width:590px;margin-top:24px}
.hero .eyebrow{font-size:.7rem;margin-bottom:18px}
.hero-photo img{aspect-ratio:4/4.2}
.hero-overlay{left:24px;right:24px;bottom:20px;padding:22px 26px}
.hero-overlay strong{font-size:1.72rem}
.metrics{margin-top:36px;gap:14px}
.metric{padding-top:15px}
.metric strong{font-size:1.02rem}
.metric span{font-size:.78rem}
.section-heading{max-width:760px}
.section h2{font-size:clamp(2.05rem,3.7vw,3.25rem);letter-spacing:-.015em}
.card h3{line-height:1.35}
.profile-marta img{object-position:center 18%}
.team-page-grid{display:grid;grid-template-columns:repeat(3,minmax(0,290px));gap:34px;justify-content:center}
.team-page-card{background:#fff;border:1px solid var(--line);padding:16px 16px 24px;box-shadow:0 10px 30px rgba(11,35,64,.06)}
.team-page-card img,.team-page-card .placeholder{width:100%;height:330px;aspect-ratio:auto;object-fit:cover}
.team-page-card h3{font-family:"Playfair Display",serif;font-size:1.22rem;margin:18px 0 5px;text-align:left}
.team-page-card p{text-align:left;margin:.32rem 0;color:var(--muted);font-size:.9rem}
.team-page-card .role{color:var(--navy);font-weight:800}
.team-page-card.marta img{object-position:center 18%}
.map-wrap{position:relative;min-height:430px}
.map-parking-note{position:absolute;left:18px;bottom:18px;max-width:310px;background:rgba(255,255,255,.96);border-left:4px solid var(--gold);padding:15px 17px;box-shadow:var(--shadow);z-index:2;font-size:.88rem}
.map-parking-note strong{display:block;color:var(--navy);margin-bottom:3px}
.map-parking-note a{color:var(--blue);font-weight:800}
.contact-panel .parking-mobile{display:none}
@media(max-width:980px){
  .hero-grid{min-height:auto;gap:44px}
  .team-page-grid{grid-template-columns:repeat(2,minmax(0,290px))}
}
@media(max-width:620px){
  .hero h1{font-size:3rem}
  .hero p{font-size:.98rem}
  .team-page-grid{grid-template-columns:minmax(0,320px)}
  .map-parking-note{position:static;max-width:none;box-shadow:none;border:1px solid var(--line);border-left:4px solid var(--gold)}
}

.language-switch a{font-weight:800}.team-page-card .role{line-height:1.45}
@media(max-width:1100px){.main-nav{gap:18px}.main-nav a{font-size:.82rem}}

/* Versione 5.1: titolo hero più discreto e proporzionato */
.hero h1{
  font-size:clamp(2.15rem,4vw,4.15rem);
  line-height:1.06;
  letter-spacing:-.025em;
  max-width:760px;
}
.contact-label{
  display:block;
  margin-bottom:.25rem;
  color:var(--gold);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.contact-panel a{
  color:inherit;
  text-decoration:none;
}
.contact-panel a:hover{
  text-decoration:underline;
}
@media(max-width:700px){
  .hero h1{
    font-size:clamp(2rem,9.5vw,3rem);
    line-height:1.08;
  }
}


/* Versione 5.2: ottimizzazione hero mobile */
@media (max-width: 980px){
  .hero-grid{
    grid-template-columns:1fr;
    gap:2rem;
    align-items:center;
  }
  .hero-content{
    order:1;
    text-align:center;
  }
  .hero-visual{
    order:2;
    max-width:520px;
    width:100%;
    margin:0 auto;
  }
  .hero-visual img{
    width:100%;
    height:auto;
    display:block;
  }
}
@media (max-width:620px){
  .hero{
    padding-top:1rem;
  }
  .hero-grid{
    gap:1.5rem;
  }
  .hero h1{
    font-size:clamp(1.8rem,8vw,2.6rem);
  }
}
