:root{
  --navy:#13203a;
  --navy-deep:#0b1322;
  --bronze:#b08d57;
  --bronze-dark:#7d6238;
  --paper:#f8f7f3;
  --white:#ffffff;
  --ink:#1d2330;
  --muted:#5c6470;
  --line:#e4e0d7;
  --line-dark:rgba(255,255,255,.14);
  --sans:"Schibsted Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  line-height:1.65;
  font-size:16.5px;
}
a{color:var(--navy)}
a:hover{color:var(--bronze-dark)}
.skip{
  position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:.6rem 1rem;z-index:100;
}
.skip:focus{left:0}
section{scroll-margin-top:84px}

/* ---------- Header ---------- */
header.site{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(8px);
}
.bar{
  max-width:1240px;margin:0 auto;padding:.9rem 1.5rem;
  display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;
}
.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--navy)}
.brand:hover{color:var(--navy)}
.brand-mark{
  flex:none;width:42px;height:42px;
  background:var(--navy);color:var(--bronze);
  font-weight:700;font-size:.9rem;letter-spacing:.05em;
  display:flex;align-items:center;justify-content:center;
}
.brand-name{
  font-weight:600;font-size:1rem;line-height:1.22;letter-spacing:-.01em;
}
.brand-name small{
  display:block;font-weight:500;font-size:.68rem;
  color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin-top:.15rem;
}
nav.main{margin-left:auto;display:flex;gap:1.6rem;flex-wrap:wrap}
nav.main a{
  color:var(--ink);text-decoration:none;font-weight:500;font-size:.92rem;
  padding:.25rem 0;border-bottom:2px solid transparent;transition:color .15s ease;
}
nav.main a:hover{color:var(--navy);border-bottom-color:var(--line)}
nav.main a[aria-current="page"]{
  color:var(--navy);border-bottom-color:var(--navy);
}
.bar-tel{
  font-weight:600;font-size:.92rem;color:var(--navy);
  text-decoration:none;white-space:nowrap;
  border:1px solid var(--line);padding:.45rem .9rem;
  transition:border-color .15s ease;
}
.bar-tel:hover{border-color:var(--navy);color:var(--navy)}

/* ---------- Hero ---------- */
.hero{background:var(--navy-deep);color:#f2f0ea;position:relative}
.hero-inner{
  position:relative;max-width:1240px;margin:0 auto;
  padding:7.5rem 1.5rem 6.5rem;
}
.hero h1{
  font-weight:600;letter-spacing:-.025em;
  font-size:clamp(2.4rem,5.5vw,4.3rem);line-height:1.06;
  max-width:16em;text-wrap:balance;
}
.hero h1 span{color:var(--bronze)}
.hero p.claim{
  margin-top:1.6rem;font-size:clamp(1.05rem,2vw,1.3rem);
  color:#aeb8c9;max-width:32em;line-height:1.55;text-wrap:pretty;
}
.hero .kicker{
  font-size:.75rem;letter-spacing:.24em;text-transform:uppercase;
  color:#8e99ad;font-weight:600;margin-bottom:1.6rem;
  display:flex;align-items:center;gap:.9rem;
}
.hero .kicker::before{content:"";width:2rem;height:1px;background:var(--bronze)}
.cta-row{margin-top:2.6rem;display:flex;gap:1rem;flex-wrap:wrap}
.btn{
  display:inline-block;padding:.85rem 1.9rem;white-space:nowrap;
  font-weight:600;font-size:.95rem;text-decoration:none;letter-spacing:.01em;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.btn-gold{background:var(--bronze);color:var(--navy-deep)}
.btn-gold:hover{background:#c39e69;color:var(--navy-deep)}
.btn-ghost{border:1px solid rgba(242,240,234,.4);color:#f2f0ea}
.btn-ghost:hover{border-color:#f2f0ea;color:#ffffff}

/* Hero compatto pagine interne */
.hero.small .hero-inner{padding:4.6rem 1.5rem 4.2rem}
.hero.small h1{font-size:clamp(2rem,4vw,3.1rem)}
.hero.small p.claim{font-size:1.08rem;max-width:36em}

/* ---------- Sezioni ---------- */
.section{padding:5.5rem 1.5rem}
.section.alt{background:var(--white)}
.wrap{max-width:1240px;margin:0 auto}
h2.title{
  font-weight:600;color:var(--navy);letter-spacing:-.02em;
  font-size:clamp(1.7rem,3.2vw,2.5rem);line-height:1.12;text-wrap:balance;
}
.rule{
  width:100%;height:1px;background:var(--line);
  border:none;margin:1.6rem 0 2.6rem;
}
.lead{color:var(--muted);max-width:44em;font-size:1.05rem;text-wrap:pretty}

/* -------- Home: notizie del giorno in evidenza -------- */
.news-strip{background:var(--white);border-bottom:1px solid var(--line)}
.news-strip .wrap{padding:3rem 1.5rem}
.news-strip .headbar{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.news-strip h2.title{font-size:clamp(1.35rem,2.6vw,1.8rem)}
.news-strip .all-link{color:var(--navy);font-weight:600;text-decoration:none;font-size:.9rem;white-space:nowrap;border-bottom:1px solid var(--line)}
.news-strip .all-link:hover{border-bottom-color:var(--navy);color:var(--navy)}
.news{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 3rem;margin-top:1.8rem}
.news article{border-top:1px solid var(--line);padding:1.5rem 0 1.6rem}
.news time{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.news h3{color:var(--navy);font-size:1.08rem;line-height:1.35;margin:.5rem 0 .5rem;letter-spacing:-.01em}
.news p{font-size:.93rem;color:var(--muted)}
.news a{color:var(--navy);font-weight:600;text-decoration:none;font-size:.9rem}
.news a:hover{color:var(--bronze-dark)}
.news-empty{padding:1.6rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:.95rem}

/* -------- Home: anteprime sezioni -------- */
.teasers{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 3rem;margin-top:2rem}
.teaser{
  border-top:2px solid var(--navy);
  padding:1.8rem 0 1.6rem;text-decoration:none;color:var(--ink);
  display:block;transition:border-color .15s ease;
}
.teaser:hover{border-top-color:var(--bronze)}
.teaser .k{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:600}
.teaser h3{color:var(--navy);font-size:1.25rem;line-height:1.25;margin:.7rem 0 .6rem;letter-spacing:-.015em}
.teaser p{font-size:.94rem;color:var(--muted)}
.teaser .go{display:inline-block;margin-top:1rem;color:var(--navy);font-weight:600;font-size:.9rem;transition:transform .15s ease}
.teaser:hover .go{transform:translateX(4px)}

/* -------- Home: banda di fiducia -------- */
.trust{background:var(--white);border-bottom:1px solid var(--line)}
.trust .wrap{
  padding:1.1rem 1.5rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap;
  justify-content:center;font-size:.9rem;color:var(--muted);letter-spacing:.01em;
}
.trust strong{color:var(--navy);font-weight:600}
.trust .dot{color:var(--bronze);font-weight:700}

/* -------- Home: scenari cliente -------- */
.scenarios{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 3rem;margin-top:2rem}
.scenario{
  border-top:1px solid var(--line);
  padding:1.5rem 0 1.5rem;text-decoration:none;color:var(--ink);display:block;
}
.scenario h3{color:var(--navy);font-size:1.12rem;line-height:1.3;margin-bottom:.35rem;letter-spacing:-.01em;transition:color .15s ease}
.scenario:hover h3{color:var(--bronze-dark)}
.scenario p{font-size:.92rem;color:var(--muted)}
.scenario .go{display:inline-block;margin-top:.7rem;color:var(--navy);font-weight:600;font-size:.88rem;transition:transform .15s ease}
.scenario:hover .go{transform:translateX(4px)}

/* -------- FAQ -------- */
.faq{max-width:52em}
.faq details{
  border-bottom:1px solid var(--line);
  padding:1.2rem .2rem;
}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{
  cursor:pointer;font-weight:600;color:var(--navy);
  font-size:1.05rem;line-height:1.4;list-style:none;position:relative;padding-right:2rem;letter-spacing:-.01em;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:.2rem;top:0;color:var(--muted);
  font-weight:500;font-size:1.3rem;line-height:1.25;
}
.faq details[open] summary::after{content:"–";color:var(--bronze-dark)}
.faq details p{margin-top:.8rem;font-size:.95rem;color:var(--muted);max-width:46em}

/* -------- Form contatti -------- */
.form-note{font-size:.88rem;color:var(--muted);margin:.4rem 0 1.4rem;max-width:40em}
.contact-form{display:grid;gap:1.2rem;max-width:36em}
.contact-form label{
  display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);font-weight:600;margin-bottom:.35rem;
}
.contact-form input,.contact-form select,.contact-form textarea{
  width:100%;padding:.75rem .85rem;border:1px solid var(--line);border-radius:0;
  font-family:var(--sans);font-size:.95rem;color:var(--ink);background:var(--white);
}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{
  outline:2px solid var(--navy);outline-offset:1px;border-color:var(--navy);
}
.contact-form textarea{min-height:120px;resize:vertical}
.contact-form .row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
@media (max-width:640px){.contact-form .row{grid-template-columns:1fr}}
.form-ok{display:none;padding:.9rem 1.1rem;border:1px solid var(--bronze);background:var(--paper);color:var(--navy);font-size:.92rem}

/* Firma notizie */
.news .byline{display:block;margin-top:.6rem;font-size:.78rem;color:var(--muted)}
.news .byline strong{color:var(--navy);font-weight:600}

/* Chi siamo */
.about-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:4rem;align-items:start}
.about-text p{max-width:38em;text-wrap:pretty}
.about-text p+p{margin-top:1.1rem}
.facts{
  border-top:2px solid var(--navy);
  padding:1.6rem 0 0;
}
.facts dt{
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);font-weight:600;margin-top:1.2rem;
}
.facts dt:first-child{margin-top:0}
.facts dd{color:var(--navy);font-weight:500}

/* Professionisti */
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 3rem;margin-top:.5rem}
.person{
  border-top:2px solid var(--navy);
  padding:1.8rem 0 1.6rem;
}
.avatar{
  width:56px;height:56px;
  background:var(--navy);color:var(--bronze);
  font-weight:700;font-size:1.1rem;letter-spacing:.04em;
  display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem;
}
.person h3{color:var(--navy);font-size:1.3rem;line-height:1.25;letter-spacing:-.015em}
.role{
  font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--bronze-dark);font-weight:600;margin:.4rem 0 .9rem;
}
.person p{font-size:.94rem;color:var(--muted);text-wrap:pretty}

/* Servizi */
.services{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 3rem;margin-top:.2rem}
.service{
  border-top:1px solid var(--line);
  padding:1.5rem 0 1.5rem;
}
.service svg{width:26px;height:26px;color:var(--navy);margin-bottom:.9rem}
.service h3{color:var(--navy);font-size:1.1rem;margin-bottom:.4rem;letter-spacing:-.01em}
.service p{font-size:.93rem;color:var(--muted)}
.service-group{margin-top:3rem}
.service-group:first-of-type{margin-top:0}
.subtitle{
  font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--bronze-dark);font-weight:600;margin-bottom:.6rem;
}

/* Perché noi */
.why{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 3rem;margin-top:.5rem}
.why-item{border-top:1px solid var(--line);padding:1.5rem 0}
.why-item .num{
  font-size:.85rem;font-weight:600;color:var(--bronze-dark);
  letter-spacing:.1em;line-height:1;margin-bottom:.9rem;
}
.why-item h3{color:var(--navy);font-size:1.08rem;margin-bottom:.35rem;letter-spacing:-.01em}
.why-item p{font-size:.92rem;color:var(--muted)}

/* Contatti */
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:3.5rem;align-items:start}
ul.contact{list-style:none}
ul.contact li{display:flex;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--line)}
ul.contact li:first-child{border-top:1px solid var(--line)}
ul.contact svg{flex:none;width:20px;height:20px;color:var(--navy);margin-top:.2rem}
ul.contact a{color:var(--navy);text-decoration:none;font-weight:500}
ul.contact a:hover{text-decoration:underline}
ul.contact .lbl{
  display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);font-weight:600;
}
.hours{
  margin-top:1.8rem;border-top:2px solid var(--navy);
  padding:1.2rem 0 0;
}
.hours h3{color:var(--navy);font-size:1.02rem;margin-bottom:.3rem;letter-spacing:-.01em}
.hours p{font-size:.93rem;color:var(--muted)}
.map-frame{
  border:1px solid var(--line);overflow:hidden;line-height:0;
}
.map-frame iframe{width:100%;height:360px;border:0;filter:grayscale(1) contrast(.95)}

/* Footer */
footer.site{
  background:var(--navy-deep);color:#9aa5b7;
  padding:3.6rem 1.5rem 2.6rem;font-size:.88rem;
}
footer.site .wrap{display:flex;justify-content:space-between;gap:2.5rem;flex-wrap:wrap}
footer.site strong{color:#eef0f4;font-weight:600;display:block;margin-bottom:.4rem}
footer.site a{color:#c5cedd;text-decoration:none}
footer.site a:hover{text-decoration:underline;color:#ffffff}
footer.site .wrap.legal-note{display:block;margin-top:2.2rem;padding-top:1.4rem;border-top:1px solid var(--line-dark);color:#76839b;font-size:.8rem}

/* Responsive */
@media (max-width:1000px){
  nav.main{margin-left:0;order:3;width:100%;gap:1.1rem}
  .bar-tel{margin-left:auto}
}
@media (max-width:860px){
  .about-grid,.contact-grid{grid-template-columns:1fr}
  .hero-inner{padding:5rem 1.5rem 4.4rem}
  .hero.small .hero-inner{padding:3.4rem 1.5rem 3rem}
  .section{padding:4rem 1.5rem}
}
