:root{
    --ink:#0C2E2B;
    --ink-soft:#153F3A;
    --sea:#1F6E63;
    --brass:#2C9C8A;
    --brass-light:#4BB6A3;
    --paper:#ECF5F1;
    --paper-card:#FBFAF7;
    --rust:#B25A3B;
    --text:#12211D;
    --text-muted:#4C5F5A;
    --text-on-ink:#ECF5F1;
    --text-on-ink-muted:#8FB5AC;
    --line:rgba(20,35,48,0.14);
    --line-on-ink:rgba(236,245,241,0.16);
    --serif:'Libre Caslon Display', Georgia, serif;
    --sans:'IBM Plex Sans', -apple-system, sans-serif;
    --mono:'IBM Plex Mono', 'Courier New', monospace;
    --max:1180px;
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
  }

  body{
    font-family:var(--sans);
    background:var(--paper);
    color:var(--text);
    line-height:1.6;
    font-size:16px;
    -webkit-font-smoothing:antialiased;
  }

  img,svg{display:block; max-width:100%;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  button, input, textarea{font-family:inherit; font-size:inherit; color:inherit;}

  h1,h2,h3{font-family:var(--serif); font-weight:400; line-height:1.12; letter-spacing:-0.01em;}

  .container{max-width:var(--max); margin:0 auto; padding:0 32px;}

  a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
    outline:2px solid var(--brass);
    outline-offset:3px;
  }

  .eyebrow{
    font-family:var(--mono);
    font-size:0.78rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--brass);
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-bottom:18px;
  }
  .eyebrow--on-ink{color:var(--brass-light);}

  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:var(--sans);
    font-weight:600;
    font-size:0.95rem;
    padding:14px 26px;
    border-radius:2px;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform 0.15s ease, background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn--primary{background:var(--brass); color:var(--ink);}
  .btn--primary:hover{background:var(--brass-light);}
  .btn--ghost-ink{background:transparent; border-color:var(--line-on-ink); color:var(--text-on-ink);}
  .btn--ghost-ink:hover{border-color:var(--brass-light); color:var(--brass-light);}
  .btn--ghost{background:transparent; border-color:var(--line); color:var(--text);}
  .btn--ghost:hover{border-color:var(--ink); }

  /* ---------- NAV ---------- */
  .nav{
    position:sticky; top:0; z-index:100;
    background:rgba(236,245,241,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .nav__inner{
    max-width:var(--max); margin:0 auto; padding:18px 32px;
    display:flex; align-items:center; justify-content:space-between;
  }
  .nav__logo{
    font-family:var(--mono); font-weight:600; font-size:1rem;
    letter-spacing:0.14em; color:var(--ink);
  }
  .nav__logo span{color:var(--brass);}
  .nav__links{display:flex; align-items:center; gap:34px;}
  .nav__link{font-size:0.92rem; color:var(--text-muted); transition:color 0.15s ease;}
  .nav__link:hover{color:var(--ink);}
  .nav__cta{display:flex; align-items:center; gap:20px;}
  .nav__toggle{
    display:none; background:none; border:none; cursor:pointer;
    width:32px; height:24px; position:relative;
  }
  .nav__toggle span, .nav__toggle::before, .nav__toggle::after{
    content:''; position:absolute; left:0; right:0; height:2px; background:var(--ink); transition:all 0.2s ease;
  }
  .nav__toggle::before{top:0;}
  .nav__toggle span{top:11px;}
  .nav__toggle::after{top:22px;}
  .nav__toggle.is-open::before{transform:translateY(11px) rotate(45deg);}
  .nav__toggle.is-open::after{transform:translateY(-11px) rotate(-45deg);}
  .nav__toggle.is-open span{opacity:0;}

  .nav__mobile{
    display:none;
    flex-direction:column;
    gap:2px;
    background:var(--paper-card);
    border-bottom:1px solid var(--line);
    padding:8px 32px 20px;
  }
  .nav__mobile.is-open{display:flex;}
  .nav__mobile a{padding:12px 0; font-size:1rem; border-bottom:1px solid var(--line); color:var(--text);}
  .nav__mobile .btn{margin-top:14px; justify-content:center;}

  @media (max-width:860px){
    .nav__links, .nav__cta .btn{display:none;}
    .nav__toggle{display:block;}
  }

  /* ---------- HERO ---------- */
  .hero{
    background:var(--ink);
    color:var(--text-on-ink);
    position:relative;
    overflow:hidden;
    border-bottom:1px solid var(--line-on-ink);
  }
  .hero__inner{
    max-width:var(--max); margin:0 auto; padding:96px 32px 110px;
    display:grid; grid-template-columns:1.05fr 0.95fr; gap:40px; align-items:center;
  }
  .hero__title{
    font-size:clamp(2.5rem, 5vw, 3.6rem);
    color:#fff;
    margin-bottom:24px;
  }
  .hero__subtitle{
    font-size:1.08rem;
    color:var(--text-on-ink-muted);
    max-width:46ch;
    margin-bottom:36px;
  }
  .hero__actions{display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
  .hero__chart{width:100%; height:auto;}
  .hero__chart .route-line{
    stroke-dasharray:900;
    stroke-dashoffset:900;
    animation:draw 2.2s ease forwards 0.3s;
  }
  @keyframes draw{ to{stroke-dashoffset:0;} }
  .hero__chart .waypoint{
    opacity:0;
    animation:fadeIn 0.6s ease forwards;
  }
  .hero__chart .waypoint:nth-of-type(1){animation-delay:0.5s;}
  .hero__chart .waypoint:nth-of-type(2){animation-delay:1.2s;}
  .hero__chart .waypoint:nth-of-type(3){animation-delay:1.9s;}
  .hero__chart .waypoint:nth-of-type(4){animation-delay:2.4s;}
  @keyframes fadeIn{ to{opacity:1;} }

  @media (max-width:860px){
    .hero__inner{grid-template-columns:1fr; padding:64px 24px 56px;}
    .hero__chart{max-width:340px; margin:0 auto;}
  }

  /* ---------- SECTION SHELL ---------- */
  .section{padding:100px 0;}
  .section--warm{background:var(--paper-card);}
  .section--ink{background:var(--ink); color:var(--text-on-ink);}
  .section__head{max-width:640px; margin-bottom:64px;}
  .section__title{font-size:clamp(1.9rem, 3vw, 2.5rem);}
  .section__title--on-ink{color:#fff;}
  .section__lede{color:var(--text-muted); font-size:1.05rem; margin-top:16px;}
  .section__lede--on-ink{color:var(--text-on-ink-muted);}

  @media (max-width:640px){
    .section{padding:64px 0;}
    .section__head{margin-bottom:44px;}
  }

  /* ---------- PERCORSO ---------- */
  .percorso__track{
    position:relative;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:32px;
  }
  .percorso__line{
    position:absolute;
    top:27px; left:56px; right:56px; height:1px;
    background:var(--line);
    z-index:0;
  }
  .percorso__item{position:relative; z-index:1;}
  .percorso__marker{
    width:54px; height:54px; border-radius:50%;
    background:var(--paper-card);
    border:1px solid var(--ink);
    color:var(--ink);
    font-family:var(--mono); font-weight:600; font-size:0.95rem;
    display:flex; align-items:center; justify-content:center;
    margin-bottom:22px;
  }
  .percorso__item-title{font-size:1.15rem; margin-bottom:10px;}
  .percorso__item-text{color:var(--text-muted); font-size:0.92rem;}

  @media (max-width:980px){
    .percorso__track{grid-template-columns:1fr 1fr; gap:40px 28px;}
    .percorso__line{display:none;}
  }
  @media (max-width:560px){
    .percorso__track{grid-template-columns:1fr;}
  }

  /* ---------- SERVIZI ---------- */
  .servizi__grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .servizi__card{
    background:var(--paper-card);
    padding:36px 32px;
  }
  .servizi__card-num{font-family:var(--mono); font-size:0.78rem; color:var(--brass); letter-spacing:0.08em;}
  .servizi__card-title{font-size:1.18rem; font-family:var(--serif); font-weight:400; margin:14px 0 10px;}
  .servizi__card-text{color:var(--text-muted); font-size:0.96rem;}

  /* ---------- SETTORI ---------- */
  .settori__grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1px;
    background:var(--line-on-ink);
    border:1px solid var(--line-on-ink);
    margin-top:8px;
  }
  .settori__item{padding:34px 28px; background:var(--ink);}
  .settori__item-title{font-family:var(--serif); font-size:1.25rem; color:#fff; margin-bottom:10px;}
  .settori__item-text{color:var(--text-on-ink-muted); font-size:0.92rem;}

  @media (max-width:780px){
    .settori__grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:480px){
    .settori__grid{grid-template-columns:1fr;}
  }

  /* ---------- CHI SIAMO ---------- */
  .chi-siamo__grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:64px;
    align-items:start;
  }
  .chi-siamo__text p{color:var(--text-muted); font-size:1.05rem; margin-bottom:20px;}
  .chi-siamo__list{
    border-top:1px solid var(--line);
  }
  .chi-siamo__list-item{
    display:flex; align-items:baseline; gap:16px;
    padding:18px 0;
    border-bottom:1px solid var(--line);
    font-family:var(--mono); font-size:0.92rem;
  }
  .chi-siamo__list-mark{color:var(--brass); flex-shrink:0;}

  @media (max-width:860px){
    .chi-siamo__grid{grid-template-columns:1fr; gap:36px;}
  }

  /* ---------- CONTATTI ---------- */
  .contatti__grid{
    display:grid;
    grid-template-columns:0.9fr 1.1fr;
    gap:64px;
  }
  .contatti__text p{color:var(--text-muted); font-size:1.05rem; margin-top:16px; max-width:42ch;}
  .contatti__meta{margin-top:32px; font-family:var(--mono); font-size:0.88rem; color:var(--text-muted); line-height:2;}
  .contatti__meta a{color:var(--sea); text-decoration:underline; text-underline-offset:3px;}
  .contatti__meta a:hover{color:var(--ink);}

  .form__row{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px;}
  .form__group{display:flex; flex-direction:column; gap:8px; margin-bottom:20px;}
  .form__group--full{grid-column:1 / -1;}
  .form__label{font-family:var(--mono); font-size:0.76rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-muted);}
  .form__input, .form__textarea{
    border:1px solid var(--line);
    background:var(--paper-card);
    padding:13px 14px;
    border-radius:2px;
    font-family:var(--sans);
  }
  .form__input:focus, .form__textarea:focus{border-color:var(--ink);}
  .form__textarea{resize:vertical; min-height:120px;}
  .form__success{
    display:none;
    padding:20px;
    border:1px solid var(--brass);
    background:rgba(184,134,59,0.08);
    font-size:0.95rem;
  }
  .form.is-sent .form__fields{display:none;}
  .form.is-sent .form__success{display:block;}

  @media (max-width:860px){
    .contatti__grid{grid-template-columns:1fr; gap:40px;}
  }
  @media (max-width:560px){
    .form__row{grid-template-columns:1fr;}
  }

  /* ---------- FOOTER ---------- */
  .footer{background:var(--ink); color:var(--text-on-ink-muted); padding:56px 0 32px; border-top:1px solid var(--line-on-ink);}
  .footer__top{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:32px; padding-bottom:36px; border-bottom:1px solid var(--line-on-ink);}
  .footer__brand{font-family:var(--mono); letter-spacing:0.14em; color:#fff; font-size:1rem; margin-bottom:10px;}
  .footer__brand span{color:var(--brass);}
  .footer__tag{font-size:0.92rem; max-width:34ch;}
  .footer__links{display:flex; gap:28px; flex-wrap:wrap;}
  .footer__links a{font-size:0.9rem;}
  .footer__links a:hover{color:var(--brass-light);}
  .footer__bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-top:24px; font-family:var(--mono); font-size:0.78rem;}

  /* ---------- REVEAL ---------- */
  .reveal{opacity:0; transform:translateY(18px); transition:opacity 0.6s ease, transform 0.6s ease;}
  .reveal.is-visible{opacity:1; transform:translateY(0);}

  /* ---------- TRUST STRIP ---------- */
  .trust-strip{
    background:var(--paper-card);
    border-bottom:1px solid var(--line);
  }
  .trust-strip__inner{
    max-width:var(--max); margin:0 auto; padding:22px 32px;
    display:flex; flex-wrap:wrap; gap:14px 40px;
    justify-content:space-between;
  }
  .trust-strip__item{
    display:flex; align-items:center; gap:10px;
    font-size:0.92rem; color:var(--text);
    flex:1 1 240px;
  }
  .trust-strip__item span.mark{color:var(--brass); font-family:var(--mono); flex-shrink:0;}

  /* ---------- FAQ ---------- */
  .faq__list{max-width:840px;}
  .faq__item{border-bottom:1px solid var(--line);}
  .faq__question{
    width:100%; display:flex; justify-content:space-between; align-items:center; gap:20px;
    background:none; border:none; cursor:pointer; text-align:left;
    padding:24px 0; font-family:var(--serif); font-size:1.15rem; color:var(--text);
  }
  .faq__question:hover{color:var(--sea);}
  .faq__icon{
    font-family:var(--sans); font-size:1.5rem; font-weight:300; color:var(--brass);
    transition:transform 0.25s ease; flex-shrink:0; line-height:1;
  }
  .faq__item.is-open .faq__icon{transform:rotate(45deg);}
  .faq__answer{max-height:0; overflow:hidden; transition:max-height 0.35s ease;}
  .faq__answer p{color:var(--text-muted); font-size:0.98rem; line-height:1.65; margin:0 0 24px;}

  /* ---------- WHATSAPP FLOAT ---------- */
  .whatsapp-float{
    position:fixed; right:24px; bottom:24px; z-index:90;
    width:56px; height:56px; border-radius:50%;
    background:var(--brass); display:flex; align-items:center; justify-content:center;
    box-shadow:0 6px 18px rgba(12,46,43,0.28);
    transition:transform 0.15s ease, background 0.15s ease;
  }
  .whatsapp-float:hover{background:var(--brass-light); transform:translateY(-2px);}
  .whatsapp-float svg{width:26px; height:26px;}
  @media (max-width:560px){
    .whatsapp-float{width:50px; height:50px; right:18px; bottom:18px;}
  }


  /* ---------- NAV ACTIVE STATE ---------- */
  .nav__link.is-active{color:var(--ink); font-weight:600;}
  .nav__link.is-active::after{
    content:''; display:block; height:2px; background:var(--brass);
    margin-top:4px;
  }
  .nav__mobile a.is-active{color:var(--ink); font-weight:600;}

  /* ---------- PAGE HEAD (pagine interne) ---------- */
  .page-head{
    background:var(--ink);
    color:var(--text-on-ink);
    border-bottom:1px solid var(--line-on-ink);
  }
  .page-head__inner{
    max-width:var(--max); margin:0 auto; padding:72px 32px 76px;
  }
  .page-head__title{
    font-family:var(--serif); font-weight:400; line-height:1.1;
    font-size:clamp(2rem, 4vw, 2.9rem); color:#fff; margin-bottom:18px;
  }
  .page-head__lede{
    font-size:1.05rem; color:var(--text-on-ink-muted); max-width:56ch;
  }
  @media (max-width:640px){
    .page-head__inner{padding:52px 24px 56px;}
  }

  /* ---------- HOME: GRIGLIA DI ACCESSO ALLE PAGINE ---------- */
  .hub__grid{
    display:grid; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
    gap:1px; background:var(--line); border:1px solid var(--line);
  }
  .hub__card{
    background:var(--paper-card); padding:34px 30px 30px;
    display:block; transition:background 0.15s ease;
  }
  .hub__card:hover{background:#fff;}
  .hub__card-num{font-family:var(--mono); font-size:0.76rem; color:var(--brass); letter-spacing:0.1em;}
  .hub__card-title{font-family:var(--serif); font-size:1.3rem; margin:12px 0 10px; color:var(--text);}
  .hub__card-text{color:var(--text-muted); font-size:0.95rem; margin-bottom:16px;}
  .hub__card-go{font-family:var(--mono); font-size:0.8rem; color:var(--sea); letter-spacing:0.06em;}

  /* ---------- SETTORI SU FONDO CHIARO (pagina dedicata) ---------- */
  .settori__grid{
    grid-template-columns:repeat(4, 1fr);
    background:var(--line);
    border:1px solid var(--line);
    margin-top:0;
  }
  .settori__item{background:var(--paper-card);}
  .settori__item-title{color:var(--text);}
  .settori__item-text{color:var(--text-muted);}
  @media (max-width:980px){ .settori__grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .settori__grid{grid-template-columns:1fr;} }

  /* ---------- CONTATTI: blocco recapiti ---------- */
  .contatti__items{border-top:1px solid var(--line); margin-top:28px;}
  .contatti__item{
    display:flex; align-items:baseline; gap:18px;
    padding:15px 0; border-bottom:1px solid var(--line);
    font-family:var(--sans); color:var(--text);
    transition:color 0.15s ease;
  }
  a.contatti__item:hover{color:var(--sea);}
  .contatti__item-label{
    font-family:var(--mono); font-size:0.72rem; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--text-muted);
    flex:0 0 120px;
  }
  .contatti__item-value{font-size:1.02rem;}
  a.contatti__item .contatti__item-value{text-decoration:underline; text-underline-offset:3px;}
  .btn--wa{
    background:#25D366; color:#0B3E2E; margin-top:26px;
  }
  .btn--wa:hover{background:#3ade7a;}
  .btn--wa svg{width:19px; height:19px; flex-shrink:0;}
  @media (max-width:520px){
    .contatti__item{flex-direction:column; gap:4px;}
    .contatti__item-label{flex:none;}
  }

  /* ---------- CHI SIAMO ---------- */
  .chi__intro{display:grid; grid-template-columns:1.15fr 0.85fr; gap:60px; align-items:start;}
  .chi__lead{font-size:1.25rem; line-height:1.55; color:var(--text); margin-bottom:22px;}
  .chi__body p{color:var(--text-muted); font-size:1.02rem; margin-bottom:18px;}
  .profilo{
    background:var(--ink); color:var(--text-on-ink);
    padding:34px 32px 30px;
  }
  .profilo__label{
    font-family:var(--mono); font-size:0.72rem; letter-spacing:0.14em;
    color:var(--brass-light); margin-bottom:22px;
  }
  .profilo__row{padding:14px 0; border-top:1px solid var(--line-on-ink);}
  .profilo__row:first-of-type{border-top:none; padding-top:0;}
  .profilo__key{
    font-family:var(--mono); font-size:0.7rem; letter-spacing:0.08em;
    text-transform:uppercase; color:var(--text-on-ink-muted); display:block; margin-bottom:5px;
  }
  .profilo__val{font-size:0.97rem; color:#fff; line-height:1.45;}
  @media (max-width:900px){
    .chi__intro{grid-template-columns:1fr; gap:38px;}
  }

  /* ---------- GRIGLIA A 4 SCHEDE ---------- */
  .servizi__grid--quattro{grid-template-columns:repeat(4, 1fr);}
  @media (max-width:980px){ .servizi__grid--quattro{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .servizi__grid--quattro{grid-template-columns:1fr;} }

  /* ---------- BLOCCO APERTURA A NUOVI SETTORI ---------- */
  .apertura{
    border-left:3px solid var(--brass);
    padding:4px 0 4px 34px;
    max-width:840px;
  }
  .apertura__eyebrow{
    font-family:var(--mono); font-size:0.78rem; letter-spacing:0.12em;
    text-transform:uppercase; color:var(--brass); margin-bottom:16px;
  }
  .apertura__title{
    font-family:var(--serif); font-weight:400; line-height:1.15;
    font-size:clamp(1.55rem, 2.6vw, 2.05rem); color:var(--text); margin-bottom:18px;
  }
  .apertura__text{color:var(--text-muted); font-size:1.02rem; line-height:1.7; margin-bottom:26px;}
  @media (max-width:560px){ .apertura{padding-left:22px;} }

  /* ---------- BANDA CTA ---------- */
  .cta-band{background:var(--ink); color:var(--text-on-ink);}
  .cta-band__inner{
    max-width:var(--max); margin:0 auto; padding:64px 32px;
    display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
  }
  .cta-band__title{font-family:var(--serif); font-size:clamp(1.6rem, 2.6vw, 2.1rem); color:#fff; margin-bottom:10px;}
  .cta-band__text{color:var(--text-on-ink-muted); font-size:1rem; max-width:48ch;}
  @media (max-width:640px){ .cta-band__inner{padding:48px 24px;} }
