/* ── Playfair Display self-hosted (Google Fonts rimosso, GDPR) ── */
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400;font-display:swap;src:url('fonts/playfair-400i-lat.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400;font-display:swap;src:url('fonts/playfair-400i-latext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/playfair-400-lat.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/playfair-400-latext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:600;font-display:swap;src:url('fonts/playfair-600i-lat.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:600;font-display:swap;src:url('fonts/playfair-600i-latext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/playfair-600-lat.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/playfair-600-latext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/playfair-700-lat.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/playfair-700-latext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}

/* ─── RESET & ROOT ──────────────────────────────────────── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-padding-top:var(--nav-h);background:#110D09}
/* ^ sfondo scuro sull'html = stesso colore del footer: evita la riga chiara
   (sfondo body cream) che si intravede sotto il footer su mobile/iOS. */
/* accessibile ai crawler e agli screen reader, ma nascosto visivamente
   (il titolo grafico è lo slider) */
.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}
:root{
  /* Palette – calda, notarile */
  --bx:     #7A2B38;   /* bordeaux principale */
  --bx-lt:  #9B4252;   /* bordeaux chiaro – hover */
  --bx-dk:  #4E1A25;   /* bordeaux scuro – sfondi */
  --gold:   #C8A86B;   /* oro caldo – accenti */
  --gold-lt:#D8BD8E;   /* oro chiaro */

  /* Creme */
  --cream:  #F5EDE0;   /* sfondo principale */
  --cream-d:#EDE1CE;   /* sezione alt */
  --cream-m:#D6C9B5;   /* separatori, bordi */

  /* Ink caldi */
  --ink:    #1A130E;   /* quasi-nero caldo */
  --ink-lt: #2C2018;   /* caldo scuro */

  /* Grigi caldi */
  --w100:#FAF6F0;
  --w200:#EDE5D8;
  --w300:#C8BAA8;
  --w500:#8C7D6A;
  --w700:#4A3D30;
  --w900:#1A130E;

  --sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --serif:"Playfair Display",Georgia,serif;
  --nav-h:66px;
  --rad:2px;
}

body{font-family:var(--sans);background:var(--cream);color:var(--ink);overflow-x:hidden;line-height:1.72}

/* ─── TYPOGRAPHY UTILITIES ──────────────────────────────── */
.eyebrow{
  display:inline-flex;align-items:center;gap:.65rem;
  font-size:.64rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold);margin-bottom:1.25rem
}
.eyebrow::before{content:'';width:22px;height:1px;background:var(--gold);flex-shrink:0}
.eyebrow.center{justify-content:center}.eyebrow.center::before{display:none}
.eyebrow.light{color:rgba(245,237,224,.55)}.eyebrow.light::before{background:rgba(245,237,224,.35)}
.eyebrow.dark{color:var(--bx)}.eyebrow.dark::before{background:var(--bx)}

/* ─── NAVBAR ────────────────────────────────────────────── */
nav{
  position:fixed;inset:0 0 auto 0;z-index:8000;
  height:var(--nav-h);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 3.5rem;
  background:rgba(26,19,14,.97);
  border-bottom:1px solid rgba(200,168,107,.18);
  backdrop-filter:blur(12px);
}
.nav-brand{
  font-family:var(--serif);font-size:.97rem;font-weight:600;
  color:var(--cream);text-decoration:none;letter-spacing:.04em;white-space:nowrap;flex-shrink:0
}
.nav-brand strong{color:var(--gold);font-weight:700}
.nav-links{display:flex;align-items:center;gap:2rem;list-style:none}
.nav-links a{
  font-size:.68rem;font-weight:500;letter-spacing:.17em;text-transform:uppercase;
  color:var(--w300);text-decoration:none;
  display:block;padding:4px 0;position:relative;
  transition:color .22s
}
.nav-links a::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;
  transition:transform .25s cubic-bezier(.4,0,.2,1)
}
.nav-links a:hover{color:var(--cream)}
.nav-links a:hover::after,.nav-links a.nav-active::after{transform:scaleX(1)}
.nav-links a.nav-active{color:var(--cream)}

/* ─── DROPDOWN LINGUE ───────────────────────────────────── */
.nav-lang{position:relative}
.nav-lang-toggle{cursor:pointer}
/* bandierine SVG nel menu lingue */
.flag{width:20px;height:14px;flex:0 0 auto;border-radius:2px;
  box-shadow:0 0 0 1px rgba(255,255,255,.18);display:inline-block;vertical-align:middle;object-fit:cover}
/* stessa specificità di .nav-links a: allinea "Lingue" alle altre voci */
.nav-links .nav-lang-toggle{display:flex;align-items:center;gap:.3rem;line-height:inherit;padding:4px 0}
.nav-links .nav-lang-toggle .flag-cur{display:inline-flex;align-items:center;margin-left:.25rem}
.nav-lang-menu{
  position:absolute;top:calc(100% + 12px);right:0;min-width:160px;
  list-style:none;padding:.4rem 0;margin:0;
  background:rgba(26,19,14,.99);
  border:1px solid rgba(200,168,107,.22);
  border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.45);
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;
  z-index:8500
}
.nav-lang:hover .nav-lang-menu,
.nav-lang:focus-within .nav-lang-menu,
.nav-lang.open .nav-lang-menu{opacity:1;visibility:visible;transform:translateY(0)}
.nav-lang-menu li{display:block}
.nav-lang-menu a{
  display:flex;align-items:center;gap:.55rem;padding:.55rem 1.2rem;letter-spacing:.12em;
  color:var(--w300);white-space:nowrap
}
.nav-lang-menu a::after{display:none}
.nav-lang-menu a:hover{color:var(--cream);background:rgba(200,168,107,.1)}
.nav-lang-menu a.lang-active{color:var(--gold)}
/* drawer mobile: intestazione lingue + sotto-voci */
.mlink-lang-head{opacity:.5;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;pointer-events:none}
.mlink-lang{padding-left:1.7rem}
.mlink-lang span{display:inline-flex;align-items:center;gap:.55rem}
.mlink-lang.lang-active span{color:var(--gold)}

/* ─── HAMBURGER ─────────────────────────────────────────── */
.hamburger{
  display:none;flex-direction:column;align-items:center;
  background:none;border:none;cursor:pointer;
  width:44px;height:44px;position:relative;
  -webkit-tap-highlight-color:transparent;z-index:9001
}
.hamburger span{
  display:block;position:absolute;
  width:20px;height:1.5px;background:var(--cream);border-radius:1px;
  top:50%;left:50%;
  transform-origin:center;
  transition:transform .32s cubic-bezier(.23,1,.32,1),opacity .22s
}
.hamburger span:nth-child(1){transform:translate(-50%,calc(-50% - 6px))}
.hamburger span:nth-child(2){transform:translate(-50%,-50%)}
.hamburger span:nth-child(3){transform:translate(-50%,calc(-50% + 6px))}
.hamburger.active span:nth-child(1){transform:translate(-50%,-50%) rotate(45deg)}
.hamburger.active span:nth-child(2){opacity:0;transform:translate(-50%,-50%) scaleX(0)}
.hamburger.active span:nth-child(3){transform:translate(-50%,-50%) rotate(-45deg)}

/* ─── MOBILE DRAWER ─────────────────────────────────────── */
.mob-drawer{
  display:flex;flex-direction:column;
  position:fixed;top:var(--nav-h);left:0;right:0;bottom:0;
  background:var(--ink);z-index:7999;overflow-y:auto;padding-bottom:3rem;
  transform:translateX(100%);
  transition:transform .36s cubic-bezier(.23,1,.32,1),visibility 0s .36s;
  will-change:transform;visibility:hidden
}
.mob-drawer.open{transform:translateX(0);visibility:visible;transition:transform .36s cubic-bezier(.23,1,.32,1),visibility 0s}
.mlink{
  display:flex;justify-content:space-between;align-items:center;
  padding:1.1rem 2rem;
  font-size:.7rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  color:var(--w300);text-decoration:none;background:none;border:none;
  border-bottom:1px solid rgba(255,255,255,.06);
  width:100%;text-align:left;cursor:pointer;
  transition:color .2s,background .2s
}
.mlink:hover{color:var(--cream);background:rgba(200,168,107,.08)}

/* ─── HERO SLIDER ───────────────────────────────────────── */
.hero{position:relative;height:calc(100vh - var(--nav-h) + 20px);min-height:540px;max-height:880px;overflow:hidden;margin-top:var(--nav-h)}
.slides{position:relative;width:100%;height:100%}
.slide{
  position:absolute;inset:0;
  display:flex;align-items:flex-end;justify-content:flex-start;
  opacity:0;transition:opacity 1.4s cubic-bezier(.4,0,.2,1);
  z-index:0
}
.slide.active{opacity:1;z-index:2;transition:opacity 1.4s cubic-bezier(.4,0,.2,1)}
.slide.leaving{opacity:0;z-index:1;transition:opacity 1.4s cubic-bezier(.4,0,.2,1)}

/* ── PRELOADER / SPINNER ── */
#preloader{position:fixed;inset:0;z-index:9999;background:var(--cream);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .5s ease,visibility .5s ease}
#preloader.hidden{opacity:0;visibility:hidden;pointer-events:none}
.pl-box{position:relative;display:flex;align-items:center;justify-content:center}
.pl-logo{position:absolute;bottom:calc(100% + 1.5rem);left:50%;transform:translateX(-50%);
  height:44px;width:auto;opacity:0;animation:plfade .9s ease forwards}
@keyframes plfade{to{opacity:1}}
.pl-spin{width:42px;height:42px;border-radius:50%;
  border:3px solid var(--cream-m);border-top-color:var(--bx);
  animation:plspin .8s linear infinite}
@keyframes plspin{to{transform:rotate(360deg)}}
.slide-img{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:.55
}
.slide-ov{
  position:absolute;inset:0;
  background:linear-gradient(130deg, rgba(26,19,14,.85) 0%, rgba(26,19,14,.4) 55%, rgba(26,19,14,.15) 100%)
}
.slide-content{
  position:relative;z-index:2;
  padding:0 5rem 5rem;
  max-width:680px;
}
.s-logo{
  display:block;height:52px;width:auto;
  margin-bottom:1.6rem;
  opacity:1;
}
.slide.active .s-logo{animation:none}
.slide.leaving .s-logo{animation:none;opacity:1;transform:none}
.s-eye{
  font-size:.62rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-lt);margin-bottom:1.1rem;
  opacity:0;transform:translateY(14px)
}
.slide.active .s-eye{animation:sUp .7s .25s forwards}
.s-title{
  font-family:var(--serif);
  font-size:clamp(2.2rem,5.5vw,4.2rem);
  font-weight:700;color:var(--cream);line-height:1.12;
  margin-bottom:1.2rem;
  opacity:0;transform:translateY(22px)
}
.slide.active .s-title{animation:sUp .8s .4s forwards}
.s-title em{font-style:italic;color:var(--gold-lt)}
.s-sub{
  font-size:.95rem;font-weight:400;color:var(--w300);
  line-height:1.8;max-width:480px;margin-bottom:2rem;
  opacity:0;transform:translateY(14px)
}
.slide.active .s-sub{animation:sUp .8s .6s forwards}
.s-cta{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.78rem 2rem;
  background:var(--bx);border:1px solid var(--bx);
  color:var(--cream);font-size:.67rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;text-decoration:none;
  transition:background .28s,border-color .28s,transform .22s,box-shadow .28s;
  opacity:0
}
.slide.active .s-cta{animation:sUp .7s .8s forwards}
.s-cta:hover{background:var(--bx-lt);border-color:var(--bx-lt);transform:translateY(-2px);box-shadow:0 8px 28px rgba(122,43,56,.4)}
.slide.leaving .s-eye,
.slide.leaving .s-title,
.slide.leaving .s-sub,
.slide.leaving .s-cta{animation:none;opacity:1;transform:none}
@keyframes sUp{to{opacity:1;transform:translateY(0)}}

/* ── BOTTONE PREVENTIVO ─────────────────────────────────── */
.s-quote{
  display:inline-flex;align-items:center;justify-content:center;
  padding:1rem 2.6rem;
  background:var(--bx);border:1px solid var(--gold);
  color:var(--gold-lt);font-size:.76rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;text-decoration:none;
  white-space:nowrap;
  transition:background .28s,border-color .28s,color .28s,transform .22s,box-shadow .28s
}
.s-quote:hover{
  background:var(--gold);border-color:var(--gold);color:var(--ink);
  transform:translateY(-2px);box-shadow:0 8px 28px rgba(200,168,107,.35)
}
/* desktop: al centro dello slider, fermo durante il crossfade */
.s-quote-hero{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:6}
.s-quote-hero:hover{transform:translate(-50%,-50%) translateY(-2px)}
/* la copia dentro la slide serve solo al mobile (sopra il logo) */
.s-quote-slide{display:none}

/* ── MODAL PREVENTIVO (pianoC) ──────────────────────────── */
.qf-overlay{
  position:fixed;inset:0;z-index:9000;   /* sopra la nav (8000): il backdrop copre anche la barra */
  display:flex;align-items:center;justify-content:center;
  padding:1.5rem;
  background:rgba(26,19,14,.62);backdrop-filter:blur(4px);
  opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease
}
.qf-overlay.open{opacity:1;visibility:visible}
.qf-modal{
  position:relative;width:100%;max-width:640px;max-height:calc(100vh - 3rem);
  overflow-y:auto;background:var(--cream);color:var(--ink);
  border:1px solid var(--cream-m);border-top:3px solid var(--bx);
  box-shadow:0 24px 70px rgba(26,19,14,.4);
  padding:2.6rem 2.4rem 2.2rem;
  transform:translateY(14px) scale(.98);transition:transform .3s cubic-bezier(.4,0,.2,1)
}
.qf-overlay.open .qf-modal{transform:none}
.qf-close{
  position:absolute;top:1rem;right:1rem;
  width:36px;height:36px;border:none;border-radius:50%;
  background:transparent;color:var(--w500);font-size:1.1rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s
}
.qf-close:hover{background:var(--cream-m);color:var(--ink)}
.qf-title{
  font-family:var(--serif);font-size:1.7rem;font-weight:700;color:var(--bx);
  line-height:1.1;margin-bottom:.5rem;padding-right:2rem
}
.qf-intro{font-size:.86rem;color:var(--w700);line-height:1.55;margin-bottom:1.5rem}
.qf-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1rem}
.qf-field{display:flex;flex-direction:column}
.qf-field.qf-full{grid-column:1 / -1}
.qf-field label{
  font-size:.6rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--w700);margin-bottom:.35rem
}
.qf-field input,.qf-field select,.qf-field textarea{
  font-family:var(--sans);font-size:.9rem;color:var(--ink);
  padding:.7rem .85rem;background:var(--w100);
  border:1px solid var(--cream-m);border-radius:var(--rad);
  transition:border-color .2s,box-shadow .2s
}
.qf-field textarea{resize:vertical;min-height:78px;line-height:1.5}
.qf-field input:focus,.qf-field select:focus,.qf-field textarea:focus{
  outline:none;border-color:var(--bx);box-shadow:0 0 0 3px rgba(122,43,56,.12)
}
.qf-field select{cursor:pointer;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%237A2B38' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .9rem center;background-size:10px;padding-right:2.2rem}
.qf-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.qf-msg{font-size:.82rem;line-height:1.5;margin:1rem 0 0;min-height:1px}
.qf-msg.err{color:#a12b2b}
.qf-msg.ok{color:#2f6b3a;font-weight:600}
.qf-submit{
  display:inline-flex;align-items:center;justify-content:center;width:100%;
  margin-top:1.2rem;padding:.95rem 2rem;
  background:var(--bx);border:1px solid var(--bx);color:var(--cream);
  font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  cursor:pointer;transition:background .25s,transform .2s,box-shadow .25s
}
.qf-submit:hover{background:var(--bx-lt);transform:translateY(-1px);box-shadow:0 8px 24px rgba(122,43,56,.3)}
.qf-submit:disabled{opacity:.65;cursor:default;transform:none;box-shadow:none}
@media(max-width:560px){
  .qf-modal{padding:2.2rem 1.4rem 1.8rem}
  .qf-grid{grid-template-columns:1fr}
  .qf-title{font-size:1.45rem}
}

/* slider controls */
.sl-controls{
  position:absolute;bottom:0;left:0;right:0;z-index:10;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 5rem 2.5rem;
}
.sl-dots{display:flex;gap:.5rem}
.dot{
  width:24px;height:2px;background:rgba(245,237,224,.25);
  cursor:pointer;border:none;padding:0;
  transition:all .28s;flex-shrink:0
}
.dot.active{background:var(--gold);width:40px}
.sl-arrows-r{display:flex;gap:.6rem}
.arrow{
  width:42px;height:42px;border:1px solid rgba(245,237,224,.2);
  background:rgba(26,19,14,.45);color:var(--cream);
  font-size:.85rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(4px);transition:all .22s
}
.arrow:hover{border-color:var(--gold);background:rgba(122,43,56,.5)}

/* ─── INTRO / CHI SIAMO ──────────────────────────────────── */
.intro{display:grid;grid-template-columns:1fr 1fr}
.intro-l{
  background:var(--ink);padding:6rem 5rem;
  display:flex;flex-direction:column;justify-content:center
}
.intro-r{
  background:var(--cream-d);padding:6rem 5rem;
  display:flex;flex-direction:column;justify-content:center;
  position:relative;overflow:hidden
}
.intro-r::after{
  content:'§';position:absolute;right:-1rem;bottom:-3rem;
  font-family:var(--serif);font-size:20rem;font-weight:700;
  color:rgba(122,43,56,.06);line-height:1;pointer-events:none
}
.section-title{
  font-family:var(--serif);
  font-size:clamp(1.8rem,3vw,2.7rem);
  font-weight:700;line-height:1.18;margin-bottom:1.3rem
}
.section-title em{font-style:italic}
.intro-l .section-title{color:var(--cream)}
.intro-l .section-title em{color:var(--gold-lt)}
.intro-r .section-title{color:var(--ink)}
.body-text{
  font-size:1rem;font-weight:400;line-height:1.9;margin-bottom:1.1rem
}
.intro-l .body-text{color:var(--w300)}
.intro-r .body-text{color:var(--w700)}
.i-divider{width:32px;height:1px;background:var(--bx);margin:1.5rem 0}

/* stats */
.stats-row{display:flex;gap:2.5rem;flex-wrap:wrap;margin-top:.5rem}
.stat-num{
  display:block;font-family:var(--serif);font-size:2.8rem;
  font-weight:700;color:var(--gold);line-height:1
}
.stat-lbl{
  display:block;font-size:.6rem;font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;color:var(--w500);margin-top:.35rem
}

/* callout quote */
.callout{
  border-left:2px solid var(--bx);
  padding:1.5rem 1.75rem;
  background:rgba(122,43,56,.05);
  margin-bottom:1.75rem;border-radius:0 var(--rad) var(--rad) 0
}
.callout p{
  font-family:var(--serif);font-size:1.12rem;
  font-style:italic;font-weight:400;color:var(--w700);line-height:1.82
}

/* feature list */
.flist{list-style:none;display:flex;flex-direction:column;gap:.9rem}
.flist li{
  display:flex;align-items:flex-start;gap:.9rem;
  font-size:.93rem;font-weight:400;color:var(--w700);line-height:1.65
}
.flist li i{color:var(--bx);font-size:.78rem;margin-top:.28rem;flex-shrink:0}

/* ─── ABRUZZO ────────────────────────────────────────────── */
.abr{
  background:var(--bx-dk);padding:6rem 3rem;
  text-align:center;position:relative;overflow:hidden
}
.abr::before{
  content:'ABRUZZO';position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-family:var(--serif);font-size:14vw;font-weight:700;
  color:rgba(255,255,255,.03);white-space:nowrap;pointer-events:none
}
.abr .section-title{color:var(--cream);max-width:640px;margin:0 auto 1.25rem}
.abr .section-title em{color:var(--gold-lt)}
.abr-text{
  font-size:1rem;font-weight:400;color:rgba(245,237,224,.72);
  line-height:1.9;max-width:640px;margin:0 auto 3.5rem
}
.abr-stats{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:rgba(255,255,255,.1);
  max-width:580px;margin:0 auto;
  border:1px solid rgba(255,255,255,.08)
}
.abu{background:rgba(0,0,0,.2);padding:2rem 1rem}
.abu i{font-size:1rem;color:var(--gold);margin-bottom:.7rem;display:block}
.abu-n{
  font-family:var(--serif);font-size:2.2rem;font-weight:700;
  color:var(--cream);display:block
}
.abu-d{
  font-size:.6rem;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(245,237,224,.42);
  margin-top:.4rem;display:block
}

/* ─── FAQ ────────────────────────────────────────────────── */
.faq-sec{background:var(--w100);padding:7rem 1.5rem}
.faq-hdr{text-align:center;margin-bottom:3.5rem}
.faq-hdr .section-title{color:var(--ink)}
.faq-sub{font-size:.95rem;font-weight:400;color:var(--w500);margin-top:.5rem}
.faq-grid{
  max-width:820px;margin:0 auto;
  border:1px solid rgba(122,43,56,.14);overflow:hidden;
  border-radius:var(--rad)
}

/* macro category header */
.faq-cat-hdr{
  display:flex;align-items:center;justify-content:space-between;gap:.9rem;
  padding:1.3rem 1.4rem;
  font-size:.63rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--cream);background:var(--ink-lt);
  cursor:pointer;border:none;width:100%;text-align:left;
  border-top:1px solid rgba(255,255,255,.06);
  transition:background .25s
}
.faq-cat-hdr:first-child{border-top:none}
.faq-cat-hdr[data-cat="0"]{background:var(--bx-dk)}
.faq-cat-hdr[data-cat="0"]:hover,.faq-cat-hdr[data-cat="0"].cat-open{background:var(--bx)}
.faq-cat-hdr[data-cat="1"]{background:#2A201A}
.faq-cat-hdr[data-cat="1"]:hover,.faq-cat-hdr[data-cat="1"].cat-open{background:var(--ink)}
.faq-cat-hdr[data-cat="2"]{background:#3E3020}
.faq-cat-hdr[data-cat="2"]:hover,.faq-cat-hdr[data-cat="2"].cat-open{background:#52402A}
.faq-cat-hdr .cat-left{display:flex;align-items:center;gap:.85rem}
.faq-cat-hdr .cat-left i{font-size:.85rem;color:var(--gold)}
.cat-arrow{font-size:.6rem;color:rgba(245,237,224,.45);transition:transform .3s cubic-bezier(.23,1,.32,1);flex-shrink:0}
.faq-cat-hdr.cat-open .cat-arrow{transform:rotate(180deg)}

.faq-cat-body{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.23,1,.32,1);background:var(--w100)}
.faq-item{border-bottom:1px solid var(--w200)}
.faq-item:last-child{border-bottom:none}
.faq-q{
  display:flex;align-items:center;justify-content:space-between;
  padding:1.6rem 1.4rem;cursor:pointer;gap:1rem;
  background:none;border:none;width:100%;text-align:left
}
.faq-ql{display:flex;align-items:center;gap:1.3rem;flex:1;min-width:0}
.faq-num{
  font-family:var(--serif);font-size:.8rem;
  color:var(--bx);min-width:24px;flex-shrink:0
}
.faq-qt{font-size:.93rem;font-weight:500;color:var(--w700);line-height:1.5;transition:color .22s}
.faq-item:hover .faq-qt,.faq-item.open .faq-qt{color:var(--bx)}
.faq-ico{
  width:26px;height:26px;border:1px solid var(--w300);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--w500);flex-shrink:0;transition:all .25s;
  align-self:flex-start;margin-top:.18rem
}
.faq-ico i{
  font-size:.62rem;
  display:flex;align-items:center;justify-content:center;
  width:100%;height:100%;
  transition:transform .25s
}
.faq-item.open .faq-ico{background:var(--bx);border-color:var(--bx);color:#fff}
.faq-item.open .faq-ico i{transform:rotate(45deg)}
.faq-ans{max-height:0;overflow:hidden;transition:max-height .42s ease}
.faq-ans-in{
  padding:.5rem 1.4rem 2rem 4rem;
  font-size:.96rem;font-weight:400;color:var(--w700);line-height:1.9
}
.faq-ans-in ul{margin:.6rem 0 .6rem 1.2rem}
.faq-ans-in li{margin-bottom:.35rem}
.faq-ans-in strong{font-size:.92rem;font-weight:600;color:var(--ink)}
.faq-ans-in p{margin-bottom:.7rem}

/* ─── GALLERY ────────────────────────────────────────────── */
.gallery-sec{background:var(--ink);padding:5rem 0 0}
.gallery-hdr{text-align:center;margin-bottom:2.5rem;padding:0 3.5rem}
.gallery-hdr .section-title{color:var(--cream)}
.gallery-hdr .section-title em{color:var(--gold-lt)}

/* Masonry JS — posizionamento assoluto */
.gallery-grid{
  position:relative;
  width:100%;
}

.gal-item{
  position:absolute;
  overflow:hidden;cursor:pointer;
  background:var(--ink-lt);
}
.gal-item img{
  width:100%;height:auto;display:block;
  transform:scale(1);filter: brightness(.78) saturate(.85) blur(0px);
  transition:transform 1s cubic-bezier(.25,.46,.45,.94),filter .5s ease;
  will-change:transform,filter
}
.gal-item:hover img{transform:scale(1.02);filter: brightness(.95) saturate(.9) blur(3.2px) grayscale(1)}

/* overlay sfumato dal basso — sempre visibile ma si intensifica */
.gal-item::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top, rgba(10,7,5,.7) 0%, transparent 55%);
  opacity:.5;transition:opacity .5s ease;z-index:1
}
.gal-item:hover::before{opacity:1}

/* linea oro che sale dal basso */
.gal-item::after{
  content:'';position:absolute;bottom:0;left:0;right:0;
  height:2px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;
  transition:transform .55s cubic-bezier(.4,0,.2,1);z-index:4
}
.gal-item:hover::after{transform:scaleX(1)}

/* caption */
.gal-caption{
  position:absolute;bottom:.85rem;left:1rem;right:1rem;z-index:3;
  font-size:.67rem;font-weight:500;letter-spacing:.07em;color:var(--cream);
  opacity:0;transform:translateY(5px);
  transition:opacity .4s ease .1s, transform .4s ease .1s
}
.gal-item:hover .gal-caption{opacity:1;transform:translateY(0)}

/* zoom icon rimosso */
.gal-zoom{ display:none }

/* ─── LIGHTBOX ───────────────────────────────────────────── */
.lb-ov{
  display:none;position:fixed;inset:0;z-index:11000;
  background:rgba(10,7,5,.94);
  align-items:center;justify-content:center;
  backdrop-filter:blur(10px)
}
.lb-ov.open{display:flex;animation:lbIn .28s ease}
@keyframes lbIn{from{opacity:0}to{opacity:1}}
.lb-stage{
  position:relative;display:flex;flex-direction:column;
  align-items:center;max-width:92vw;max-height:90vh
}
.lb-img{
  max-width:88vw;max-height:82vh;object-fit:contain;display:block;
  border:1px solid rgba(200,168,107,.2);
  box-shadow:0 40px 80px rgba(0,0,0,.65);
  animation:lbImgIn .3s ease
}
@keyframes lbImgIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
.lb-caption{
  margin-top:.85rem;font-size:.68rem;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;
  color:rgba(245,237,224,.45);text-align:center
}
.lb-close{
  position:fixed;top:1.4rem;right:1.6rem;
  width:38px;height:38px;
  border:1px solid rgba(245,237,224,.2);
  background:rgba(78,26,37,.5);color:var(--cream);
  font-size:.95rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .22s;z-index:2;backdrop-filter:blur(4px)
}
.lb-close:hover{background:var(--bx);border-color:var(--bx)}
.lb-arr{
  position:fixed;top:50%;transform:translateY(-50%);
  width:44px;height:44px;
  border:1px solid rgba(245,237,224,.18);
  background:rgba(78,26,37,.4);color:var(--cream);
  font-size:.9rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .22s;z-index:2;backdrop-filter:blur(4px)
}
.lb-arr:hover{background:var(--bx);border-color:var(--bx)}
.lb-prev{left:1rem}.lb-next{right:1rem}
.lb-dots{
  position:fixed;bottom:1.4rem;left:50%;transform:translateX(-50%);
  display:flex;gap:.45rem;z-index:2
}
.lb-dot{
  width:5px;height:5px;border-radius:50%;
  background:rgba(245,237,224,.25);border:none;padding:0;cursor:pointer;
  transition:background .28s,transform .28s
}
.lb-dot.active{background:var(--gold);transform:scale(1.4)}

/* ══════════════════════════════════════════════════════════
   CONTACT + MAP — nuovo layout split a schermo intero
══════════════════════════════════════════════════════════ */

/* Wrapper che unisce mappa e modulo in un'unica sezione */
.contact-map-wrap{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:700px;
}

/* ── Colonna sinistra: mappa ── */
.col-map{
  position:relative;
  overflow:hidden;
}
.col-map iframe{
  width:100%;height:100%;
  min-height:700px;
  border:0;display:block;
  filter:sepia(20%) brightness(.95);
}
/* Placeholder privacy: la mappa Google si carica solo al click.
   Desktop: z-index 2 → il badge indirizzo (3) resta sopra.
   Mobile (vedi media query): z-index 4 → il placeholder copre il badge
   così il pulsante "Carica la mappa" non finisce coperto. */
.map-consent{
  position:absolute;inset:0;z-index:2;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1.1rem;padding:2rem;text-align:center;
  background:var(--cream-d);
}
.map-consent.loaded{display:none}
.map-consent-ico{font-size:2.2rem;color:var(--bx)}
.map-consent-txt{font-size:.85rem;line-height:1.55;color:var(--w700);max-width:360px;margin:0}
.map-consent-txt strong{color:var(--ink);font-weight:600}
.map-consent-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.78rem 1.8rem;
  background:var(--bx);border:1px solid var(--bx);color:var(--cream);
  font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  cursor:pointer;transition:background .25s,transform .2s,box-shadow .25s
}
.map-consent-btn:hover{background:var(--bx-lt);transform:translateY(-1px);box-shadow:0 8px 24px rgba(122,43,56,.3)}
/* Badge indirizzo sovrapposto */
.map-badge{
  z-index:3;
  position:absolute;bottom:2rem;left:2rem;right:2rem;
  background:rgba(26,19,14,.92);
  backdrop-filter:blur(8px);
  border:1px solid rgba(200,168,107,.22);
  padding:1.4rem 1.6rem;
  display:flex;gap:1.2rem;align-items:flex-start;
}
.map-badge-ico{
  color:var(--gold);font-size:1rem;margin-top:.1rem;flex-shrink:0
}
.map-badge-title{
  font-size:.58rem;font-weight:700;letter-spacing:.24em;
  text-transform:uppercase;color:var(--gold);margin-bottom:.4rem
}
.map-badge-addr{
  font-size:.88rem;font-weight:400;color:var(--w300);line-height:1.65;font-style:normal
}
.map-badge-dir{
  display:inline-flex;align-items:center;gap:.45rem;
  margin-top:.7rem;font-size:.62rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);text-decoration:none;
  transition:color .2s
}
.map-badge-dir:hover{color:var(--gold-lt)}
.map-badge-dir i{font-size:.55rem}

/* ── Colonna destra: form + info ── */
.col-form{
  background:var(--bx-dk);
  display:flex;flex-direction:column;
  overflow-y:auto;
}

/* Header sopra lo split — allineato alle altre sezioni */
.contact-hdr{
  background:var(--bx-dk);
  padding:5.5rem 3.5rem 4rem;
  text-align:center;
  border-bottom:1px solid rgba(200,168,107,.12)
}
.contact-hdr .section-title{color:var(--cream);margin-bottom:.75rem}
.contact-hdr .section-title em{color:var(--gold-lt)}
.c-text{font-size:.95rem;font-weight:400;color:var(--w500);line-height:1.82;max-width:560px;margin:0 auto}

/* Schede info orizzontali */
.cf-cards{
  display:grid;grid-template-columns:1fr 1fr;
  border-bottom:1px solid rgba(200,168,107,.12)
}
.cf-card{
  padding:1.6rem 2rem;
  border-right:1px solid rgba(200,168,107,.12)
}
.cf-card:nth-child(even){border-right:none}
.cf-card-ico{
  width:34px;height:34px;
  border:1px solid rgba(200,168,107,.28);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);font-size:.78rem;
  margin-bottom:1rem
}
.cf-card-lbl{
  font-size:.57rem;font-weight:700;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold);margin-bottom:.5rem
}
.cf-card-val{font-size:.92rem;font-weight:400;color:var(--w300);line-height:1.65}
.cf-card-val a{color:var(--w300);text-decoration:none;transition:color .2s}
.cf-card-val a:hover{color:var(--gold)}
.cf-card-val strong{font-weight:500;color:var(--cream)}

/* Form area */
.cf-form-wrap{padding:2.5rem 4rem 4rem;flex:1}

/* Form */
.cform{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.cform .full{grid-column:1/-1}
.fg{display:flex;flex-direction:column;gap:.42rem}
.flbl{
  font-size:.58rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--w500)
}
.finp,.ftxt{
  font-family:var(--sans);font-size:.87rem;color:var(--cream);
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.09);
  border-radius:var(--rad);padding:.82rem .95rem;
  outline:none;transition:border-color .22s,background .22s;width:100%
}
.finp::placeholder,.ftxt::placeholder{color:var(--w500)}
.finp:focus,.ftxt:focus{border-color:var(--gold);background:rgba(200,168,107,.05)}
.ftxt{resize:vertical;min-height:120px}
.fbtn{
  grid-column:1/-1;
  display:inline-flex;align-items:center;justify-content:center;gap:.65rem;
  padding:.88rem 2rem;
  background:var(--bx);border:1px solid var(--bx);
  color:var(--cream);font-family:var(--sans);
  font-size:.67rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  cursor:pointer;transition:background .25s,border-color .25s,transform .2s,box-shadow .25s;
  width:100%
}
.fbtn:hover{background:var(--bx-lt);border-color:var(--bx-lt);transform:translateY(-2px);box-shadow:0 8px 28px rgba(122,43,56,.45)}

/* ─── BOTTONE SCARICA FAQ (PDF) ─── */
.faq-pdf{text-align:center;margin-top:2.6rem}
.faq-pdf[hidden]{display:none}
.faq-pdf-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:.85rem 2.1rem;
  background:var(--bx);border:1px solid var(--bx);
  color:var(--cream);text-decoration:none;
  font-size:.67rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  transition:background .25s,border-color .25s,transform .2s,box-shadow .25s
}
.faq-pdf-btn:hover{background:var(--bx-lt);border-color:var(--bx-lt);transform:translateY(-1px);box-shadow:0 3px 10px rgba(122,43,56,.16)}
.faq-pdf-btn svg{width:16px;height:16px;fill:var(--gold-lt);flex-shrink:0}
.fmsg{
  grid-column:1/-1;display:none;
  padding:.82rem 1rem;font-size:.8rem;font-weight:500;
  letter-spacing:.04em;border-radius:var(--rad)
}
.fmsg.ok{display:block;background:rgba(40,120,60,.15);border:1px solid rgba(40,120,60,.35);color:#7ddba0}
.fmsg.err{display:block;background:rgba(180,40,40,.13);border:1px solid rgba(180,40,40,.3);color:#f5a0a0}

/* ─── FOOTER ─────────────────────────────────────────────── */
footer{
  background:#110D09;padding:2rem 3.5rem;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.75rem;
  border-top:1px solid rgba(200,168,107,.15)
}
.fbrand{font-family:var(--serif);font-size:.92rem;color:var(--cream-m)}
footer p{font-size:.67rem;font-weight:400;color:var(--w500);letter-spacing:.04em}

/* ─── MODAL ──────────────────────────────────────────────── */
.modal-ov{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,.72);
  z-index:10000;align-items:center;justify-content:center;
  padding:1.5rem;backdrop-filter:blur(5px)
}
.modal-ov.open{display:flex}
.modal{
  background:var(--cream);max-width:740px;width:100%;max-height:88vh;
  overflow-y:auto;position:relative;
  border-top:3px solid var(--bx);
  box-shadow:0 40px 80px rgba(0,0,0,.5);
  animation:mIn .32s ease;border-radius:0 0 var(--rad) var(--rad)
}
@keyframes mIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.modal-hdr{
  padding:2.25rem 2.75rem;border-bottom:1px solid var(--cream-m);
  position:sticky;top:0;background:var(--cream);z-index:1
}
.modal-num{font-size:.62rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--bx);margin-bottom:.55rem}
.modal-title{font-family:var(--serif);font-size:1.35rem;font-weight:700;color:var(--ink);line-height:1.3;padding-right:2.5rem}
.modal-x{
  position:absolute;top:1.75rem;right:1.75rem;
  width:32px;height:32px;border:1px solid var(--w300);
  background:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  color:var(--w500);font-size:.82rem;transition:all .2s
}
.modal-x:hover{background:var(--bx);border-color:var(--bx);color:#fff}
.modal-body{
  padding:2.25rem 2.75rem;
  font-size:.96rem;font-weight:400;color:var(--w700);line-height:1.9
}
.modal-body p{margin-bottom:.9rem}
.modal-body ul{margin:.5rem 0 .7rem 1.4rem}
.modal-body li{margin-bottom:.4rem}
.modal-body strong{font-size:.88rem;font-weight:600;color:var(--ink)}

/* ─── RESPONSIVE ─────────────────────────────────────────── */

/* ── 1100px ── */
@media(max-width:1100px){
  nav{padding:0 2rem}
  /* preventivo: sotto i 1100px il bottone centrale dell'hero cadrebbe sopra il
     titolo → si nasconde e al suo posto, in fondo alla slide, compare il
     bottone preventivo che rimpiazza la CTA "Scopri lo studio" */
  .s-quote-hero{display:none}
  .s-cta{display:none}
  .s-quote-slide{display:inline-flex;margin-bottom:0}
  .intro-l,.intro-r{padding:5rem 3.5rem}
  .contact-hdr{padding:4rem 3rem 3rem}
  .cf-form-wrap{padding:2rem 3rem 3.5rem}
  .cf-card{padding:1.4rem 1.6rem}
}

/* ── 860px: tablet portrait ── */
@media(max-width:860px){
  nav{padding:0 1.5rem}
  .nav-links{display:none}
  .hamburger{display:flex}

  /* Chi siamo */
  .intro{grid-template-columns:1fr}
  .intro-l,.intro-r{padding:4rem 2.5rem}
  .intro-r::after{font-size:12rem}

  /* Abruzzo */
  .abr{padding:4.5rem 2rem}
  .abr-stats{grid-template-columns:repeat(3,1fr);max-width:100%}

  /* FAQ */
  .faq-sec{padding:5rem 1rem}
  .faq-ans-in{padding-left:2rem}

  /* Gallery masonry: 2 colonne */
  .gallery-sec{padding:4rem 0 0}
  .gallery-hdr{padding:0 1.5rem;margin-bottom:2rem}

  /* Contact split → colonna singola, form sopra, mappa sotto */
  .contact-map-wrap{grid-template-columns:1fr}
  .col-form{order:1}
  .col-map{order:2}
  .col-map iframe{min-height:380px;height:380px}
  .contact-hdr{padding:3rem 2.5rem 2.5rem}
  .cf-form-wrap{padding:1.5rem 2.5rem 3rem}
  .cf-cards{grid-template-columns:1fr 1fr}
  .map-badge{bottom:1.5rem;left:1.5rem;right:1.5rem}
  /* mobile: placeholder sopra il badge, così il pulsante non viene coperto */
  .map-consent{z-index:4}

  /* Slider */
  .sl-controls{padding:0 2rem 2rem}
  .slide-content{padding:0 2.5rem 6rem}

  footer{padding:2rem 1.5rem;flex-direction:column;align-items:flex-start;gap:.6rem}
  .modal-hdr,.modal-body{padding:1.75rem 1.5rem}
}

/* ── 640px: large phone ── */
@media(max-width:640px){
  .stats-row{gap:2rem}
  .abr-stats{grid-template-columns:1fr;max-width:260px;margin:0 auto}
  .cf-cards{grid-template-columns:1fr 1fr}
  .cform{grid-template-columns:1fr}
  .contact-hdr{padding:2.5rem 1.75rem 2rem}
  .cf-form-wrap{padding:1.5rem 1.75rem 2.5rem}
  .cf-card{padding:1.2rem 1.4rem}
}

/* ── 480px: phone ── */
@media(max-width:480px){
  :root{--nav-h:58px}
  .hero{min-height:420px;max-height:620px}
  .s-title{font-size:clamp(1.75rem,7.5vw,2.6rem)}
  .slide-content{padding:0 1.25rem 5rem}
  .sl-controls{padding:0 1.25rem 1.75rem}

  .intro-l,.intro-r{padding:3.5rem 1.5rem}
  .intro-r::after{display:none}
  .stats-row{gap:1.5rem}
  .stat-num{font-size:2.2rem}

  .abr{padding:3.5rem 1.25rem}
  .faq-sec{padding:3.5rem .75rem}
  .faq-q{padding:1.3rem 1rem}
  .faq-ans-in{padding:.5rem 1rem 1.5rem 1rem}

  .gallery-sec{padding:3rem 0 0}
  .gallery-hdr{padding:0 1.25rem;margin-bottom:1.75rem}

  .cf-cards{grid-template-columns:1fr}
  .contact-hdr{padding:2.5rem 1.25rem 2rem}
  .cf-card{border-right:none !important;border-bottom:1px solid rgba(255,255,255,.06)}
  .cf-card:last-child{border-bottom:none}
  .col-map iframe{min-height:320px;height:320px}
  .map-badge{padding:1.1rem 1.25rem;gap:.9rem}
  .map-badge-addr{font-size:.8rem}

  footer{padding:1.75rem 1.25rem}
  .modal-hdr,.modal-body{padding:1.5rem 1.25rem}
  .lb-prev{left:.4rem}.lb-next{right:.4rem}
}

/* ── PAGINE LEGALI (informativa privacy) ─────────────────── */
.legal-top{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;
  height:var(--nav-h);padding:0 clamp(1.2rem,4vw,3.5rem);background:rgba(26,19,14,.97);
  border-bottom:1px solid rgba(200,168,107,.18);backdrop-filter:blur(12px)}
.legal-top .legal-logo img{height:40px;width:auto;display:block}
.legal-top-r{display:flex;align-items:center;gap:1.4rem}
.legal-lang{display:flex;gap:.55rem;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}
.legal-lang a{color:var(--w300);text-decoration:none}
.legal-lang a.on{color:var(--gold)}
.legal-lang a.on::after{content:"";display:inline-block;width:7px;height:7px;margin-left:.4rem;border-radius:50%;background:#33cc66;box-shadow:0 0 6px rgba(51,204,102,.7);vertical-align:middle}
.legal-back{color:var(--w300);text-decoration:none;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;transition:color .2s;white-space:nowrap}
.legal-back:hover{color:var(--cream)}
.legal{max-width:820px;margin:0 auto;padding:clamp(2.5rem,6vw,4.5rem) 1.5rem 5rem}
.legal h1{font-family:var(--serif);font-size:clamp(1.8rem,4vw,2.6rem);color:var(--bx);line-height:1.15;margin-bottom:.6rem}
.legal .legal-updated{font-size:.8rem;color:var(--w500);margin-bottom:2.5rem}
.legal h2{font-family:var(--serif);font-size:1.25rem;color:var(--ink);margin:2.4rem 0 .8rem}
.legal p,.legal li{font-size:.95rem;line-height:1.7;color:var(--w700)}
.legal p{margin-bottom:.9rem}
.legal ul{margin:.4rem 0 1rem 1.4rem}
.legal li{margin-bottom:.45rem}
.legal a{color:var(--bx);text-decoration:underline}
.legal a:hover{color:var(--bx-lt)}
.legal address{font-style:normal;line-height:1.7}
.legal .todo{background:#fff3cd;border:1px solid #e0c15a;padding:.05rem .45rem;border-radius:3px;color:#7a5b00;font-weight:600;font-size:.9em}
.legal-foot{text-align:center;padding:2.5rem 1.5rem;background:var(--ink);color:var(--w300);font-size:.8rem}
.legal-foot a{color:var(--gold);text-decoration:none}

/* ── Checkbox consenso privacy (contatti + preventivo) ───── */
.fg-consent{margin-top:.2rem}
.fconsent{display:flex;gap:.6rem;align-items:flex-start;font-size:.82rem;line-height:1.5;color:var(--w700);cursor:pointer}
.fconsent input{margin-top:.15rem;flex-shrink:0;width:16px;height:16px;accent-color:var(--bx);cursor:pointer}
.fconsent a{color:var(--bx);text-decoration:underline}
.fconsent a:hover{color:var(--bx-lt)}

.footer-privacy{margin-top:.7rem}
.footer-privacy a{color:var(--gold);text-decoration:none;font-size:.8rem;letter-spacing:.04em}
.footer-privacy a:hover{text-decoration:underline}

/* Form contatti su sfondo scuro: testo consenso chiaro e leggibile */
.cform .fconsent{color:var(--w300)}
.cform .fconsent a{color:var(--gold-lt)}
.cform .fconsent a:hover{color:var(--cream)}
.cform .fconsent input{accent-color:var(--gold)}

.legal-lang a{display:inline-flex;align-items:center;gap:.32rem}
.legal-lang .flag{width:18px;height:12px}

/* Placeholder mappa: su mobile l'area è più bassa → compatta contenuto */
@media(max-width:560px){
  .map-consent{padding:1.3rem;gap:.7rem}
  .map-consent-ico{font-size:1.7rem}
  .map-consent-txt{font-size:.8rem;line-height:1.45}
}
