  :root{
    --primary:#151513;
    --accent:#C81E3A;
    --accent-dark:#a4172f;
    --bg:#FAF7F2;
    --surface:#EAE4DA;
    --cream:#FAF7F2;
    --on-primary:#FAF7F2;
    --border: rgba(21,21,19,0.12);
    --shadow: 0 20px 50px -25px rgba(21,21,19,0.35);
    --serif: "Fraunces", Georgia, serif;
    --sans: "Poppins", -apple-system, sans-serif;
    --ease-enter: cubic-bezier(0.23, 1, 0.32, 1);
    --ease-weight: cubic-bezier(0.65, 0.01, 0.05, 0.99);
  }

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

  body{
    margin:0;
    background:var(--bg);
    color:var(--primary);
    font-family:var(--sans);
    font-size:19px;
    line-height:1.75;
    -webkit-font-smoothing:antialiased;
  }

  img{max-width:100%; display:block;}

  h1,h2,h3{
    font-family:var(--serif);
    font-weight:800;
    line-height:1.08;
    margin:0 0 0.5em 0;
    color:var(--primary);
  }

  p{margin:0 0 1.3em 0;}
  a{color:inherit;}

  .container{
    max-width:1120px;
    margin:0 auto;
    padding:0 24px;
  }

  .measure{
    max-width:740px;
  }

  .center{margin-left:auto; margin-right:auto;}

  section{
    padding:88px 0;
  }
  @media (max-width:640px){
    section{padding:56px 0;}
    body{font-size:18px;}
  }

  .eyebrow{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:var(--sans);
    font-weight:600;
    font-size:14px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--accent);
    margin-bottom:18px;
  }
  .eyebrow::before{
    content:"";
    width:28px;
    height:2px;
    background:var(--accent);
    display:inline-block;
  }

  /* ---------- HEADER ---------- */
  header{
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(250,247,242,0.92);
    backdrop-filter:saturate(140%) blur(6px);
    border-bottom:1px solid var(--border);
  }
  .header-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
    padding:14px 24px;
    max-width:1120px;
    margin:0 auto;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
  }
  .brand img{height:56px; width:auto;}
  .brand-tag{
    font-family:var(--sans);
    font-size:12px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--accent);
    font-weight:600;
  }
  .header-cta{
    display:flex;
    align-items:center;
    gap:14px;
    flex-shrink:0;
    margin-left:auto;
  }
  .header-cta .btn{ display:none; }
  @media (min-width:640px){ .header-cta .btn{ display:inline-flex; } }
  .tel-link{
    display:none;
    align-items:center;
    gap:8px;
    font-weight:600;
    font-size:16px;
    text-decoration:none;
    color:var(--primary);
  }
  @media (min-width:760px){ .tel-link{display:flex;} }
  .brand-tag{ white-space:nowrap; }
  @media (max-width:400px){
    .brand-tag{ font-size:10px; }
    .brand img{ height:46px; }
  }

  /* ---------- BUTTONS ---------- */
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    font-family:var(--sans);
    font-weight:600;
    font-size:17px;
    text-decoration:none;
    padding:16px 28px;
    border-radius:999px;
    border:2px solid transparent;
    cursor:pointer;
    transition:transform 320ms var(--ease-enter), box-shadow 320ms var(--ease-enter), background 200ms ease;
    line-height:1.2;
  }
  .btn:hover{ transform:translateY(-2px); }
  .btn-primary{
    background:var(--accent);
    color:#fff;
    box-shadow:0 14px 30px -12px rgba(200,30,58,0.55);
  }
  .btn-primary:hover{ background:var(--accent-dark); }
  .btn-ghost{
    background:transparent;
    color:var(--primary);
    border-color:var(--primary);
  }
  .btn-ghost:hover{ background:var(--primary); color:var(--on-primary); }
  .btn-on-dark{
    background:var(--accent);
    color:#fff;
  }
  .btn svg{ width:20px; height:20px; flex-shrink:0; }

  /* ---------- HERO ---------- */
  .hero{
    padding:72px 0 0 0;
  }
  .hero-inner{
    display:grid;
    gap:40px;
  }
  .hero h1{
    font-size:clamp(2.2rem, 5.4vw, 3.6rem);
    letter-spacing:-0.01em;
  }
  .hero .sub{
    font-size:20px;
    max-width:640px;
    color:#37352f;
  }
  .hero-ctas{
    display:flex;
    flex-wrap:wrap;
    gap:16px;
    margin-top:8px;
    align-items:center;
  }
  .hero-secondary-note{
    font-size:15px;
    color:#5c584f;
  }

  .hero-photo{
    position:relative;
    margin-top:56px;
  }
  .hero-photo img{
    width:100%;
    height:auto;
    border-radius:18px;
    box-shadow:var(--shadow);
  }
  .hero-photo figcaption{
    margin-top:14px;
    font-size:15px;
    color:#5c584f;
  }
  .hero-photo{ margin: 56px 0 0 0; padding:0; }

  /* stamp badge */
  .stamp{
    position:absolute;
    right:-14px;
    top:-14px;
    background:var(--accent);
    color:#fff;
    width:104px;
    height:104px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    font-family:var(--serif);
    font-weight:700;
    font-size:13px;
    line-height:1.2;
    transform:rotate(8deg);
    box-shadow:0 10px 24px -8px rgba(200,30,58,0.6);
    border:3px solid var(--bg);
  }
  @media (max-width:640px){
    .stamp{ width:84px; height:84px; font-size:11px; right:8px; top:-12px; }
  }

  /* ---------- APERTURA ---------- */
  .apertura p{ font-size:20px; }
  .apertura strong{ color:var(--accent); }

  /* ---------- PROBLEMA (two col) ---------- */
  .grid-2{
    display:grid;
    grid-template-columns:1fr;
    gap:32px;
  }
  @media (min-width:860px){
    .grid-2{ grid-template-columns:1fr 1fr; gap:40px; }
  }
  .card{
    background:var(--surface);
    border-radius:20px;
    padding:36px 32px;
  }
  .card .icon-wrap{
    width:52px; height:52px;
    border-radius:14px;
    background:var(--bg);
    display:flex; align-items:center; justify-content:center;
    margin-bottom:20px;
  }
  .card .icon-wrap svg{ width:28px; height:28px; stroke:var(--accent); }
  .card h3{ font-size:24px; margin-bottom:14px; }
  .card p:last-child{ margin-bottom:0; }

  /* ---------- MECCANISMO comparativo ---------- */
  .mech-compare{
    display:grid;
    grid-template-columns:1fr;
    gap:20px;
    margin:36px 0;
  }
  @media (min-width:760px){
    .mech-compare{ grid-template-columns:1fr auto 1fr; align-items:center; }
  }
  .mech-box{
    border:1px solid var(--border);
    border-radius:16px;
    padding:26px 24px;
    background:#fff;
  }
  .mech-box h4{
    font-family:var(--sans);
    font-weight:700;
    font-size:15px;
    text-transform:uppercase;
    letter-spacing:0.06em;
    color:var(--accent);
    margin:0 0 10px 0;
  }
  .mech-box p{ margin:0; font-size:17px; }
  .mech-arrow{
    display:flex; align-items:center; justify-content:center;
    color:var(--accent);
    font-family:var(--serif);
    font-size:26px;
  }

  /* ---------- AGITAZIONE dark ---------- */
  .dark-section{
    background:var(--primary);
    color:var(--on-primary);
  }
  .dark-section .eyebrow{ color:#e8899a; }
  .dark-section .eyebrow::before{ background:#e8899a; }
  .dark-section h2{ color:var(--on-primary); }
  .dark-section p{ color:rgba(250,247,242,0.86); font-size:19px; }
  .dark-section strong{ color:#fff; }

  /* ---------- STAT band ---------- */
  .stat-band{
    display:grid;
    grid-template-columns:1fr;
    gap:32px;
    margin:44px 0 8px 0;
    padding:36px 0;
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
  }
  @media (min-width:760px){
    .stat-band{ grid-template-columns:1fr 1fr; }
  }
  .stat{
    display:flex;
    flex-direction:column;
  }
  .stat .num{
    font-family:var(--serif);
    font-weight:800;
    font-size:clamp(2.6rem, 6vw, 4rem);
    line-height:1;
    color:var(--accent);
  }
  .stat .label{
    margin-top:8px;
    font-size:17px;
    color:#37352f;
  }

  /* ---------- Laser demo diagram ---------- */
  .laser-demo{
    display:grid;
    grid-template-columns:1fr;
    gap:18px;
    margin:32px 0;
  }
  @media (min-width:760px){ .laser-demo{ grid-template-columns:1fr 1fr; } }
  .laser-box{
    border-radius:16px;
    padding:26px;
    background:#fff;
    border:1px solid var(--border);
    text-align:left;
  }
  .laser-box .beam{
    display:flex; align-items:center; gap:10px;
    margin:14px 0 16px 0;
  }
  .laser-line{
    height:3px; flex:1; border-radius:2px;
  }
  .laser-box.pass .laser-line{ background:var(--accent); }
  .laser-box.block .laser-line{
    background:linear-gradient(to right, var(--accent) 0%, var(--accent) 25%, transparent 25%, transparent 100%);
  }
  .laser-box h4{ font-family:var(--sans); font-weight:700; font-size:16px; margin:0 0 4px 0;}
  .laser-box p{ margin:0; font-size:16px; color:#37352f; }

  /* ---------- BENEFICI list ---------- */
  .benefit-list{
    list-style:none;
    margin:0; padding:0;
    display:grid;
    gap:18px;
  }
  .benefit-list li{
    display:flex;
    align-items:flex-start;
    gap:16px;
    font-size:19px;
  }
  .benefit-list svg{
    flex-shrink:0;
    width:26px; height:26px;
    stroke:var(--accent);
    margin-top:3px;
  }

  /* ---------- CHI SIAMO with photo ---------- */
  .split{
    display:grid;
    grid-template-columns:1fr;
    gap:44px;
    align-items:center;
  }
  @media (min-width:860px){
    .split{ grid-template-columns:1.1fr 0.9fr; }
    .split.reverse{ grid-template-columns:0.9fr 1.1fr; }
    .split.reverse .split-media{ order:2; }
  }
  .split-media img{
    border-radius:18px;
    box-shadow:var(--shadow);
  }
  .split-media figcaption{
    margin-top:12px;
    font-size:15px;
    color:#5c584f;
  }
  .quote-block{
    border-left:4px solid var(--accent);
    padding-left:22px;
    margin:28px 0;
    font-family:var(--serif);
    font-style:italic;
    font-weight:500;
    font-size:22px;
    color:var(--primary);
  }

  /* ---------- ELEMENTI DI PROVA asym grid ---------- */
  .proof-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:24px;
  }
  @media (min-width:860px){
    .proof-grid{ grid-template-columns:1.2fr 1fr; align-items:start; }
  }
  .proof-feature{
    background:var(--primary);
    color:var(--on-primary);
    border-radius:20px;
    padding:40px 36px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    position:relative;
    overflow:hidden;
  }
  .proof-feature::after{
    content:"";
    position:absolute;
    right:-40px; bottom:-40px;
    width:180px; height:180px;
    border-radius:50%;
    border:2px solid rgba(250,247,242,0.12);
  }
  .proof-feature::before{
    content:"";
    position:absolute;
    right:20px; bottom:20px;
    width:90px; height:90px;
    border-radius:50%;
    border:2px solid rgba(200,30,58,0.5);
  }
  .proof-feature .num{
    font-family:var(--serif);
    font-weight:800;
    font-size:clamp(2.2rem,5vw,3.2rem);
    color:#fff;
    line-height:1.05;
  }
  .proof-feature p{ color:rgba(250,247,242,0.85); margin-top:10px; font-size:17px;}
  .proof-list{
    display:grid;
    gap:16px;
  }
  .proof-item{
    background:#fff;
    border:1px solid var(--border);
    border-radius:16px;
    padding:22px 24px;
    display:flex;
    gap:16px;
    align-items:flex-start;
  }
  .proof-item svg{ width:24px; height:24px; stroke:var(--accent); flex-shrink:0; margin-top:2px;}
  .proof-item h4{ margin:0 0 4px 0; font-family:var(--sans); font-weight:700; font-size:17px;}
  .proof-item p{ margin:0; font-size:16px; color:#37352f;}
  .proof-note{
    margin-top:28px;
    font-size:16px;
    font-style:italic;
    color:#5c584f;
    max-width:760px;
  }

  /* ---------- FAQ accordion ---------- */
  .faq-item{
    border-bottom:1px solid var(--border);
  }
  .faq-item:first-child{ border-top:1px solid var(--border); }
  .faq-q{
    width:100%;
    text-align:left;
    background:none;
    border:none;
    padding:24px 4px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    font-family:var(--sans);
    font-weight:600;
    font-size:19px;
    color:var(--primary);
    cursor:pointer;
  }
  .faq-q .plus{
    flex-shrink:0;
    width:28px; height:28px;
    border-radius:50%;
    border:2px solid var(--accent);
    color:var(--accent);
    display:flex; align-items:center; justify-content:center;
    font-size:18px;
    transition:transform 260ms var(--ease-enter);
  }
  .faq-item[data-open="true"] .plus{ transform:rotate(45deg); }
  .faq-a{
    max-height:0;
    overflow:hidden;
    transition:max-height 340ms var(--ease-weight);
  }
  .faq-a-inner{
    padding:0 4px 24px 4px;
    font-size:18px;
    color:#37352f;
  }

  /* ---------- Offerta ---------- */
  .offer-box{
    background:var(--surface);
    border-radius:24px;
    padding:48px 40px;
  }

  /* ---------- CTA finale ---------- */
  .cta-final{
    background:var(--accent);
    color:#fff;
    text-align:center;
  }
  .cta-final h2{ color:#fff; }
  .cta-final p{ color:rgba(255,255,255,0.9); font-size:20px; }
  .cta-final .btn-ghost{
    border-color:#fff;
    color:#fff;
  }
  .cta-final .btn-ghost:hover{ background:#fff; color:var(--accent); }
  .cta-final .contact-lines{
    margin-top:28px;
    font-size:16px;
    color:rgba(255,255,255,0.85);
  }
  .cta-final .contact-lines a{ text-decoration:underline; }

  /* ---------- PS ---------- */
  .ps-box{
    background:#fff;
    border:1px solid var(--border);
    border-radius:20px;
    padding:36px 34px;
    font-family:var(--serif);
    font-size:19px;
    font-style:italic;
    color:#37352f;
  }
  .ps-box strong{ color:var(--accent); font-style:normal; }

  /* ---------- FOOTER ---------- */
  footer{
    background:var(--primary);
    color:rgba(250,247,242,0.8);
    padding:56px 0 120px 0;
    font-size:15px;
  }
  @media (min-width:760px){ footer{ padding-bottom:56px; } }
  .footer-grid{
    display:grid;
    gap:32px;
    grid-template-columns:1fr;
  }
  @media (min-width:760px){
    .footer-grid{ grid-template-columns:1.1fr 0.8fr 0.8fr 0.8fr; }
  }
  .footer-brand{
    display:flex; align-items:center; gap:12px; margin-bottom:14px;
  }
  .footer-brand img{ height:52px; }
  footer h5{
    font-family:var(--sans); font-weight:700; font-size:13px;
    text-transform:uppercase; letter-spacing:0.08em;
    color:#e8899a; margin:0 0 14px 0;
  }
  footer a{ color:rgba(250,247,242,0.85); text-decoration:none; }
  footer a:hover{ text-decoration:underline; }
  footer p{ margin:0 0 8px 0; }
  .footer-bottom{
    margin-top:44px;
    padding-top:24px;
    border-top:1px solid rgba(250,247,242,0.15);
    font-size:13px;
    color:rgba(250,247,242,0.55);
  }

  /* ---------- Sticky mobile CTA bar ---------- */
  .mobile-cta-bar{
    position:fixed;
    left:0; right:0; bottom:0;
    z-index:60;
    display:flex;
    gap:10px;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    background:rgba(250,247,242,0.97);
    border-top:1px solid var(--border);
    backdrop-filter:blur(6px);
  }
  @media (min-width:900px){ .mobile-cta-bar{ display:none; } }
  .mobile-cta-bar .btn{ flex:1; padding:14px 16px; font-size:16px; }

  /* ---------- Reveal: contenuto sempre visibile, nessuna animazione a rischio leggibilità ---------- */
  .reveal{ opacity:1; transform:none; }

  .sr-only{
    position:absolute; width:1px; height:1px;
    padding:0; margin:-1px; overflow:hidden;
    clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }

/* ---------- Site nav (shared across pages) ---------- */
.nav-links{
  display:none;
  align-items:center;
  gap:28px;
  font-family:var(--sans);
  font-weight:600;
  font-size:15px;
}
@media (min-width:900px){ .nav-links{ display:flex; } }
.nav-links a{
  text-decoration:none;
  color:var(--primary);
  position:relative;
  padding:4px 0;
}
.nav-links a:hover{ color:var(--accent); }
.nav-links a.active{ color:var(--accent); }
.header-flex{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex:1;
}
.nav-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px; height:44px;
  border-radius:50%;
  border:none;
  background:var(--accent);
  margin-left:12px;
  cursor:pointer;
  flex-shrink:0;
  transition:background 200ms ease, transform 200ms ease;
}
.nav-toggle:hover{ background:var(--accent-dark); }
.nav-toggle:active{ transform:scale(0.94); }
@media (min-width:900px){ .nav-toggle{ display:none; } }
.nav-toggle .bar-stack{
  position:relative;
  width:20px; height:14px;
}
.nav-toggle .bar{
  position:absolute;
  left:0;
  width:100%;
  height:2px;
  border-radius:2px;
  background:#fff;
  transition:transform 280ms var(--ease-enter), width 280ms var(--ease-enter), top 280ms var(--ease-enter), opacity 200ms ease;
}
.nav-toggle .bar:nth-child(1){ top:0; }
.nav-toggle .bar:nth-child(2){ top:6px; width:70%; }
.nav-toggle .bar:nth-child(3){ top:12px; }
.nav-toggle[aria-expanded="true"] .bar:nth-child(1){ top:6px; transform:rotate(45deg); }
.nav-toggle[aria-expanded="true"] .bar:nth-child(2){ opacity:0; width:0; }
.nav-toggle[aria-expanded="true"] .bar:nth-child(3){ top:6px; transform:rotate(-45deg); }
.mobile-nav{
  display:none;
  flex-direction:column;
  gap:2px;
  padding:8px 24px 18px 24px;
  border-top:1px solid var(--border);
  background:var(--bg);
}
.mobile-nav.open{ display:flex; }
@media (min-width:900px){ .mobile-nav{ display:none !important; } }
.mobile-nav a{
  padding:12px 4px;
  font-family:var(--sans);
  font-weight:600;
  font-size:17px;
  color:var(--primary);
  text-decoration:none;
  border-bottom:1px solid var(--border);
}

/* ---------- Interior page hero ---------- */
.page-hero{
  padding:64px 0 48px 0;
}
.page-hero h1{
  font-size:clamp(2rem, 4.6vw, 3rem);
}
.page-hero .sub{
  font-size:19px;
  color:#37352f;
  max-width:680px;
}
.breadcrumb{
  font-family:var(--sans);
  font-size:14px;
  color:#5c584f;
  margin-bottom:20px;
}
.breadcrumb a{ color:#5c584f; text-decoration:underline; }

/* ---------- Service cards ---------- */
.service-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
}
@media (min-width:700px){
  .service-grid{ grid-template-columns:1fr 1fr; }
}
.service-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:18px;
  padding:30px 28px;
}
.service-card h3{
  font-size:21px;
  margin-bottom:10px;
}
.service-card p{
  font-size:17px;
  margin-bottom:0;
  color:#37352f;
}
.service-card.featured{
  background:var(--primary);
  color:var(--on-primary);
  grid-column:1 / -1;
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  align-items:center;
  justify-content:space-between;
}
.service-card.featured h3{ color:#fff; }
.service-card.featured p{ color:rgba(250,247,242,0.85); }

/* ---------- Contact page ---------- */
.contact-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
}
@media (min-width:860px){
  .contact-grid{ grid-template-columns:1fr 1fr; }
}
.contact-card{
  background:var(--surface);
  border-radius:20px;
  padding:32px 30px;
}
.contact-row{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin-bottom:20px;
}
.contact-row:last-child{ margin-bottom:0; }
.contact-row svg{ width:22px; height:22px; stroke:var(--accent); flex-shrink:0; margin-top:3px;}
.contact-row a{ text-decoration:none; font-weight:600; }
.contact-row a:hover{ text-decoration:underline; }
.map-wrap{
  border-radius:20px;
  overflow:hidden;
  border:1px solid var(--border);
  min-height:320px;
}
.map-wrap iframe{ width:100%; height:100%; min-height:320px; border:0; display:block; }
