/* BASE CINQO */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{
  scroll-behavior:smooth;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;max-width:100%;
  /* Prevent elastic overscroll revealing white gap on iOS */
  overscroll-behavior-y:none;
}
body{
  font-family:'DM Sans',sans-serif;
  background:#f5f0e8;color:#111;
  font-weight:300;overflow-x:hidden;
  line-height:1.6;max-width:100%;
  overscroll-behavior-y:none;
}
img{max-width:100%;height:auto}

/* COLORS + iOS safe area vars */
:root{
  --beige:#f5f0e8;--beige2:#ede7d9;--red:#cc0000;--dark:#111;--border:#ccc7bb;--gray:#4a4a4a;
  /* iOS safe areas — fallback 0 for non-notch devices */
  --sat:env(safe-area-inset-top,0px);
  --sar:env(safe-area-inset-right,0px);
  --sab:env(safe-area-inset-bottom,0px);
  --sal:env(safe-area-inset-left,0px);
}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;flex-direction:column;align-items:center;background:#f5f0e8;border-bottom:1px solid #ccc7bb}
.nav-top{width:100%;display:flex;justify-content:flex-end;align-items:center;gap:1.5rem;padding:.3rem 3rem;border-bottom:1px solid #ccc7bb}
.logo{display:block;padding:0;overflow:hidden}
.logo img{height:320px;width:auto;display:block;mix-blend-mode:multiply;margin-top:-65px;margin-bottom:-65px}
.nav-links{display:flex;gap:3rem;list-style:none;padding:0;line-height:1}
.nav-links a{color:#111;text-decoration:none;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;transition:color .2s;white-space:nowrap;font-weight:500}
.nav-links a:hover{color:#cc0000}
.lang-sw{display:flex;gap:.3rem}
.lang-sw button{background:none;border:1px solid transparent;color:#aaa;font-family:'DM Sans',sans-serif;font-size:.65rem;letter-spacing:.12em;cursor:pointer;text-transform:uppercase;padding:.3rem .5rem;transition:all .2s}
.lang-sw button.on{color:#cc0000;border-color:#cc0000}
.btn-nav{background:#cc0000;color:#fff;padding:.45rem 1.2rem;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;font-weight:500;transition:background .2s}
.btn-nav:hover{background:#a80000}

/* HERO */
.page-top{margin-top:200px}

/* ─── BEAUTY RIMOSSA ──────────────────────────────────────────── */
a[href="style.html"],
li:has(a[href="style.html"]){display:none!important}

/* ─── MOBILE SHOW/HIDE ─────────────────────────────────────── */
.mob-only{display:none}
.desk-only{display:contents}

@media(max-width:768px){
  .mob-only{display:block!important}
  .desk-only{display:none!important}
  /* Nav sempre visibile */
  nav{display:flex!important}
}

/* ─── MOBILE APP STYLES ────────────────────────────────────── */
@media(max-width:768px){

  /* Reset */
  html,body{overflow-x:hidden!important;width:100%!important}
  *{box-sizing:border-box!important;-webkit-tap-highlight-color:rgba(204,0,0,.08)}

  /* Nav */
  .nav-links{display:none!important}
  .hamburger{display:flex!important}
  .logo{overflow:hidden!important}
  .logo img,nav .logo img{height:160px!important;margin-top:-35px!important;margin-bottom:-35px!important}
  .nav-top{padding:.5rem 1.2rem!important}
  .page-top,.mob-page{margin-top:135px}
  .btn-nav{font-size:.56rem!important;padding:.35rem .8rem!important}

  /* Mobile layout sistema */
  .mob-section{padding:2.2rem 1.4rem;border-bottom:1px solid #ccc7bb}
  .mob-section-dark{padding:2.2rem 1.4rem;border-bottom:1px solid rgba(255,255,255,.08);background:#111}
  .mob-section-beige2{padding:2.2rem 1.4rem;border-bottom:1px solid #ccc7bb;background:#ede7d9}

  /* Hero mobile */
  .mob-hero{padding:3rem 1.4rem 2.5rem;border-bottom:1px solid #ccc7bb}
  .mob-hero-dark{padding:3rem 1.4rem 2.5rem;border-bottom:1px solid rgba(255,255,255,.1);background:#111}

  /* Tag */
  .mob-tag{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}
  .mob-tag-bar{width:1.5rem;height:1px;background:#cc0000;flex-shrink:0}
  .mob-tag-text{font-size:.55rem;letter-spacing:.25em;text-transform:uppercase;color:#cc0000}

  /* Titoli */
  .mob-h1{font-family:'Cormorant Garamond',serif;font-size:2.2rem;font-weight:300;line-height:1.06;color:#111;margin-bottom:1.2rem}
  .mob-h1-white{font-family:'Cormorant Garamond',serif;font-size:2.2rem;font-weight:300;line-height:1.06;color:#fff;margin-bottom:1.2rem}
  .mob-h1 em,.mob-h1-white em{font-style:italic;color:#cc0000}
  .mob-h2{font-family:'Cormorant Garamond',serif;font-size:1.7rem;font-weight:300;line-height:1.1;color:#111;margin-bottom:1rem}
  .mob-h2-white{font-family:'Cormorant Garamond',serif;font-size:1.7rem;font-weight:300;line-height:1.1;color:#fff;margin-bottom:1rem}
  .mob-h2 em,.mob-h2-white em{font-style:italic;color:#cc0000}
  .mob-h3{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:400;line-height:1.15;color:#111;margin-bottom:.75rem}

  /* Testi */
  .mob-p{font-size:.9rem;line-height:1.8;color:#444;margin-bottom:1.5rem}
  .mob-p-white{font-size:.9rem;line-height:1.8;color:rgba(255,255,255,.7);margin-bottom:1.5rem}
  .mob-p-sm{font-size:.82rem;line-height:1.75;color:#555;margin-bottom:1rem}
  .mob-label{font-size:.55rem;letter-spacing:.22em;text-transform:uppercase;color:#cc0000;margin-bottom:.6rem}

  /* Bottoni */
  .mob-btn-red{display:block;width:100%;text-align:center;background:#cc0000;color:#fff;padding:1rem;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;font-weight:500;min-height:50px;margin-bottom:.6rem}
  .mob-btn-outline{display:block;width:100%;text-align:center;border:1px solid #ccc7bb;color:#111;padding:1rem;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;min-height:50px;margin-bottom:.6rem}
  .mob-btn-outline-white{display:block;width:100%;text-align:center;border:1px solid rgba(255,255,255,.4);color:#fff;padding:1rem;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;min-height:50px;margin-bottom:.6rem}
  .mob-btn-dark{display:block;width:100%;text-align:center;background:#111;color:#fff;padding:1rem;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;min-height:50px;margin-bottom:.6rem}
  .mob-btns{display:flex;flex-direction:column;gap:.5rem}

  /* Card servizio */
  .mob-card{padding:1.8rem 1.4rem;border-bottom:1px solid #ccc7bb;background:#f5f0e8}
  .mob-card-alt{padding:1.8rem 1.4rem;border-bottom:1px solid #ccc7bb;background:#ede7d9}
  .mob-card-dark{padding:1.8rem 1.4rem;border-bottom:1px solid rgba(255,255,255,.08);background:#111}
  .mob-num{font-family:'Cormorant Garamond',serif;font-size:2.5rem;font-weight:300;color:rgba(17,17,17,.12);line-height:1;margin-bottom:.8rem}
  .mob-num-red{font-family:'Cormorant Garamond',serif;font-size:2.5rem;font-weight:300;color:#cc0000;line-height:1;margin-bottom:.8rem}
  .mob-cat{font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:#cc0000;margin-bottom:.5rem}
  .mob-cta{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:#cc0000;margin-top:1rem;display:inline-block}

  /* Stats */
  .mob-stats{display:grid;grid-template-columns:1fr 1fr;border:1px solid #ccc7bb;margin-bottom:1.5rem}
  .mob-stat{padding:1.2rem;text-align:center;border-right:1px solid #ccc7bb;border-bottom:1px solid #ccc7bb}
  .mob-stat:nth-child(2n){border-right:none}
  .mob-stat:nth-last-child(-n+2){border-bottom:none}
  .mob-stat-num{font-family:'Cormorant Garamond',serif;font-size:1.8rem;color:#cc0000;line-height:1}
  .mob-stat-lbl{font-size:.52rem;letter-spacing:.13em;text-transform:uppercase;color:#888;margin-top:.3rem}

  /* Quote */
  .mob-quote{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-style:italic;font-weight:300;color:#111;line-height:1.5;padding:1.5rem;border-left:3px solid #cc0000;background:#ede7d9;margin-bottom:1.5rem}

  /* Separatore */
  .mob-divider{height:1px;background:#ccc7bb;margin:0}

  /* Immagine hero */
  .mob-img-hero{width:100%;height:240px;object-fit:cover;display:block}
  .mob-img-hero-tall{width:100%;height:280px;object-fit:cover;display:block}

  /* CTA band mobile */
  .mob-cta-band{padding:2.5rem 1.4rem;background:#cc0000;text-align:center}
  .mob-cta-band h2{font-family:'Cormorant Garamond',serif;font-size:1.8rem;font-weight:300;color:#fff;line-height:1.1;margin-bottom:.75rem}
  .mob-cta-band h2 em{font-style:italic}
  .mob-cta-band p{font-size:.85rem;color:rgba(255,255,255,.75);margin-bottom:1.5rem}

  /* Footer */
  footer{padding:2rem 1.4rem!important;flex-direction:column!important;gap:1.2rem!important;text-align:center!important}
  .footer-links{flex-wrap:wrap!important;justify-content:center!important;gap:.6rem 1rem!important}
}

/* ─── LAYOUT CLASSES (desktop + mobile) ─────────────────────── */
.m-2col{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.m-2col-end{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:end}
.m-5col{display:grid;grid-template-columns:repeat(5,1fr)}
.m-3col{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#ccc7bb;border:1px solid #ccc7bb}
.m-4col{display:grid;grid-template-columns:repeat(4,1fr)}
.m-hero-pad{padding:8rem 5rem 6rem}
.m-section-pad{padding:5rem}
.m-section-pad-sm{padding:3.5rem}
.m-section-pad-xs{padding:2.5rem}
.m-stats-3{display:grid;grid-template-columns:repeat(3,1fr)}

/* ─── MOBILE APP LAYOUT ─────────────────────────────────────── */
@media(max-width:768px){

  /* BASE RESET — iOS Safari safe */
  html{overflow-x:hidden!important;width:100%!important;max-width:100%!important;-webkit-text-size-adjust:100%}
  body{overflow-x:hidden!important;width:100%!important;max-width:100%!important;-webkit-text-size-adjust:100%}
  *{box-sizing:border-box!important;max-width:100%!important;word-wrap:break-word!important;min-width:0}
  img:not([style*="position:absolute"]):not([style*="position: absolute"]){max-width:100%!important;height:auto!important;display:block}

  /* Fix iOS Safari 100vh bug */
  .mob-hero,.mob-hero-dark{min-height:auto!important}
  [style*="height:100vh"]{height:100svh!important}
  [style*="height:85vh"]{height:240px!important}
  [style*="height:70vh"]{height:220px!important}
  [style*="height:100svh"]{min-height:100svh}

  /* Prevent any element from being wider than viewport */
  body > *{max-width:100vw!important;overflow-x:hidden}

  /* ── GRID → COLONNA ── */
  .m-2col,.m-2col-end{display:flex!important;flex-direction:column!important;gap:0!important;align-items:stretch!important}
  .m-5col{display:flex!important;flex-direction:column!important;gap:0!important;align-items:stretch!important}
  .m-3col,.m-4col,.m-stats-3{display:flex!important;flex-direction:column!important;gap:0!important;align-items:stretch!important}

  /* ── PADDING ── */
  .m-hero-pad{padding:3.5rem 1.4rem 2.5rem!important}
  .m-section-pad{padding:2.2rem 1.4rem!important}
  .m-section-pad-sm{padding:1.6rem 1.4rem!important}
  .m-section-pad-xs{padding:1.3rem 1.4rem!important}

  /* ── NAV ── */
  .nav-links{display:none!important}
  .hamburger{display:flex!important}
  .logo img{height:80px!important}
  .nav-top{padding:.5rem 1.4rem!important}
  .page-top{margin-top:148px!important}
  .btn-nav{font-size:.58rem!important;padding:.4rem .9rem!important;letter-spacing:.1em!important}

  /* ── TIPOGRAFIA ── */
  h1.display{font-size:2.1rem!important;line-height:1.06!important;letter-spacing:-.01em!important}
  h2.display{font-size:1.6rem!important;line-height:1.1!important}
  h3.card-title{font-size:1.25rem!important;line-height:1.15!important}
  .section-title{font-size:1.45rem!important;line-height:1.1!important}
  .section-label{font-size:.55rem!important}
  .cta-band h2{font-size:1.5rem!important;line-height:1.1!important}
  .blockquote{font-size:.95rem!important;padding:1.3rem!important;line-height:1.65!important}
  .tag-line-text{font-size:.55rem!important}

  /* ── SEZIONI ── */
  .section{padding:2.2rem 1.4rem!important}
  .section-header{flex-direction:column!important;align-items:flex-start!important;gap:.5rem!important;padding-bottom:1.2rem!important;margin-bottom:2rem!important}
  .section-num{display:none!important}
  .tag-line{margin-bottom:1.2rem!important}

  /* ── BOTTONI — touch 48px min ── */
  .btn-red{display:block!important;width:100%!important;text-align:center!important;padding:1rem 1.4rem!important;min-height:50px!important;font-size:.7rem!important;margin-bottom:.6rem!important;border-radius:0}
  .btn-outline{display:block!important;width:100%!important;text-align:center!important;padding:1rem 1.4rem!important;min-height:50px!important;font-size:.7rem!important;margin-bottom:.6rem!important;justify-content:center!important}
  .btn-wa{display:flex!important;width:100%!important;justify-content:center!important;min-height:50px!important;padding:1rem 1.4rem!important;font-size:.7rem!important}

  /* ── CTA BAND ── */
  .cta-band{padding:2.5rem 1.4rem!important;flex-direction:column!important;gap:1.8rem!important;text-align:center!important}
  .cta-band p{text-align:center!important;max-width:100%!important}
  .cta-band-btns{width:100%!important;flex-direction:column!important;gap:.6rem!important}
  .btn-wh,.btn-owh{display:block!important;width:100%!important;text-align:center!important;padding:1rem!important;min-height:50px!important;font-size:.7rem!important}

  /* ── SERVICE CARDS ── */
  .service-card{border-right:none!important;border-bottom:1px solid #ccc7bb!important;padding:1.8rem 1.4rem!important}
  .service-card .num{font-size:2.5rem!important;margin-bottom:.8rem!important}
  .service-card .cat{font-size:.58rem!important;margin-bottom:.5rem!important}
  .service-card .desc{font-size:.88rem!important;line-height:1.75!important}

  /* ── FOOTER ── */
  footer{padding:2rem 1.4rem!important;flex-direction:column!important;gap:1.2rem!important;text-align:center!important}
  .footer-logo{font-size:1rem!important;margin-bottom:.3rem!important}
  .footer-links{flex-wrap:wrap!important;justify-content:center!important;gap:.6rem 1.2rem!important}
  .footer-copy{font-size:.6rem!important}

  /* ── INLINE OVERRIDES residui ── */
  [style*="display:grid"]{display:flex!important;flex-direction:column!important;gap:0!important;align-items:stretch!important}
  html body [style*="display:grid"]{display:flex!important;flex-direction:column!important;gap:0!important;align-items:stretch!important}
  html body [style*="grid-template-columns"]{display:flex!important;flex-direction:column!important;gap:0!important;align-items:stretch!important}
  [style*="height:100vh"]{height:260px!important}
  [style*="height:85vh"]{height:240px!important}
  [style*="height:70vh"]{height:220px!important}
  [style*="min-height:500px"]{min-height:200px!important}
  [style*="padding:8rem 5rem"]{padding:3.5rem 1.4rem 2.5rem!important}
  [style*="padding:5rem"]{padding:2.2rem 1.4rem!important}
  [style*="padding:4rem"]{padding:1.8rem 1.4rem!important}
  [style*="padding:3.5rem"]{padding:1.6rem 1.4rem!important}
  [style*="padding:3rem"]{padding:1.4rem!important}
  [style*="border-right:1px solid #ccc7bb"]{border-right:none!important;border-bottom:1px solid #ccc7bb!important}
  [style*="border-left:1px solid #ccc7bb"]{border-left:none!important;border-top:1px solid #ccc7bb!important}
  [style*="max-width:520px"],[style*="max-width:580px"],[style*="max-width:600px"],[style*="max-width:700px"],[style*="max-width:820px"],[style*="max-width:900px"]{max-width:100%!important}

  /* ── CONTACT: inline-flex CTA → full width ──
     Note: after any JS el.style.* write, Chrome normalizes the style attribute
     adding spaces after colons. We match both "display:inline-flex" and
     "display: inline-flex" (normalized) so the selector survives mobilize(). */
  a[style*="display:inline-flex"],
  a[style*="display: inline-flex"]{
    display:flex!important;width:100%!important;
    justify-content:center!important;min-height:50px!important;
    box-sizing:border-box!important;
  }
  /* ── CONTACT: BASE/REACH/LANGUAGES flex → column ── */
  [style*="gap:5rem"][style*="flex-wrap:wrap"]{
    flex-direction:column!important;align-items:flex-start!important;gap:.8rem!important;
  }
  /* Hide vertical separators in stacked contact info */
  [style*="width:1px"][style*="height:2.5rem"]{display:none!important}
  [style*="font-size:clamp(3rem"]{font-size:2rem!important}
  [style*="font-size:clamp(2rem"]{font-size:1.5rem!important}
  [style*="font-size:3.5rem"]{font-size:2rem!important}
  [style*="font-size:3rem"]{font-size:1.8rem!important}
  [style*="font-size:2.5rem"]{font-size:1.5rem!important}

  /* ── TOUCH UX ── */
  *{-webkit-tap-highlight-color:rgba(204,0,0,.06)}
  a,button,input,select,textarea{touch-action:manipulation}

  /* Active feedback on tap */
  .btn-red:active{background:#a80000!important;transform:scale(.98)}
  .btn-outline:active{border-color:#111!important;background:rgba(0,0,0,.04)!important}
  .mob-btn-red:active{background:#a80000!important;transform:scale(.98)}
  .mob-btn-dark:active{background:#333!important;transform:scale(.98)}
  .mob-btn-outline:active{background:rgba(0,0,0,.04)!important}
  .mob-section a:active,.mob-section-dark a:active{opacity:.7}
  nav a:active,.nav-links a:active{color:#cc0000!important}

  /* Hero images: better crop on mobile */
  [style*="object-fit:cover"]{object-position:center 30%!important}
  img[style*="position:absolute"]{object-position:center center!important}
}


  /* Responsive typography with clamp() */
  .mob-h1,.mob-h1-white{font-size:clamp(1.7rem,5.5vw,2.2rem)!important}
  .mob-h2,.mob-h2-white{font-size:clamp(1.4rem,4.5vw,1.7rem)!important}
  .mob-h3{font-size:clamp(1.1rem,3.5vw,1.3rem)!important}
  .mob-p,.mob-p-white{font-size:clamp(.85rem,3vw,.95rem)!important;line-height:1.75!important}
  .mob-p-sm{font-size:clamp(.78rem,2.8vw,.88rem)!important}

@media(max-width:375px){
  h1.display{font-size:1.8rem!important}
  .logo img{height:68px!important}
  .page-top{margin-top:138px!important}
}

/* BUTTONS */
.btn-red{background:#cc0000;color:#fff;padding:.9rem 2.5rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;font-weight:500;display:inline-block;transition:background .2s}
.btn-red:hover{background:#a80000}
.btn-outline{background:transparent;color:#111;padding:.9rem 2.5rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border:1px solid #ccc7bb;display:inline-flex;align-items:center;gap:.6rem;transition:all .2s}
.btn-outline:hover{border-color:#111}
.btn-outline::after{content:'→';color:#cc0000}
.btn-wa{display:inline-flex;align-items:center;gap:.75rem;background:rgba(37,211,102,.08);border:1px solid rgba(37,211,102,.25);padding:.9rem 2rem;color:#1a7a32;text-decoration:none;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500}

/* SECTIONS */
.section{padding:6rem 5rem;border-bottom:1px solid #ccc7bb}
.section-alt{background:#ede7d9}
.section-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:4rem;padding-bottom:2rem;border-bottom:1px solid #ccc7bb}
.section-label{font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:#cc0000;margin-bottom:.6rem}
.section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,3vw,3.2rem);font-weight:300;line-height:1.1;color:#cc0000}
.section-title em{font-style:italic}
.section-num{font-family:'Cormorant Garamond',serif;font-size:5rem;font-weight:300;color:rgba(17,17,17,.12);line-height:1}

/* HEADINGS */
h1.display{font-family:'Cormorant Garamond',serif;font-size:clamp(3rem,5.5vw,6.5rem);font-weight:300;line-height:1.02;letter-spacing:-.02em;color:#111}
h1.display em{font-style:italic;color:#cc0000}
h2.display{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,3.5vw,4rem);font-weight:300;line-height:1.05;color:#111}
h2.display em{font-style:italic;color:#cc0000}
h3.card-title{font-family:'Cormorant Garamond',serif;font-size:1.8rem;font-weight:400;color:#111;line-height:1.2}

/* TAG */
.tag-line{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}
.tag-line-bar{width:2rem;height:1px;background:#cc0000;flex-shrink:0}
.tag-line-text{font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:#cc0000}

/* GRID */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:5rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:4rem}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid #ccc7bb}

/* CARD */
.service-card{padding:3.5rem;border-right:1px solid #ccc7bb;cursor:pointer;transition:background .2s;text-decoration:none;display:block;color:inherit}
.service-card:last-child{border-right:none}
.service-card:hover{background:#ede7d9}
.service-card .num{font-family:'Cormorant Garamond',serif;font-size:3.5rem;font-weight:300;color:rgba(17,17,17,.1);line-height:1;margin-bottom:1.5rem}
.service-card .cat{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:#cc0000;margin-bottom:.75rem}
.service-card .desc{font-size:.85rem;color:#555;line-height:1.8;margin-bottom:1.5rem}
.service-card .cta{font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:#cc0000}

/* QUOTE */
.blockquote{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-style:italic;font-weight:300;color:#111;line-height:1.4;padding:2.5rem;border-left:3px solid #cc0000;background:#ede7d9;margin-bottom:2rem}
.blockquote span{color:#cc0000}

/* CTA BAND */
.cta-band{background:#cc0000;padding:5rem;display:flex;align-items:center;justify-content:space-between;gap:3rem}
.cta-band h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,3vw,3.2rem);font-weight:300;color:#fff;line-height:1.15}
.cta-band h2 em{font-style:italic}
.cta-band p{font-size:.88rem;color:rgba(255,255,255,.7);margin-top:.75rem;max-width:400px}
.cta-band-btns{display:flex;flex-direction:column;gap:1rem;flex-shrink:0}
.btn-wh{background:#fff;color:#cc0000;padding:.9rem 2.5rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;font-weight:500;text-align:center;transition:all .2s}
.btn-wh:hover{background:transparent;color:#fff}
.btn-owh{background:transparent;color:#fff;padding:.9rem 2.5rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border:1px solid rgba(255,255,255,.4);text-align:center;transition:all .2s}
.btn-owh:hover{border-color:#fff}

/* FOOTER */
footer{background:#111;padding:3rem 5rem;display:flex;align-items:center;justify-content:space-between}
.footer-logo{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:300;letter-spacing:.2em;text-transform:lowercase;color:rgba(255,255,255,.85)}
.footer-links{display:flex;gap:2rem}
.footer-links a{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.65);text-decoration:none;transition:color .2s}
.footer-links a:hover{color:#cc0000}
.footer-copy{font-size:.6rem;color:rgba(255,255,255,.68);letter-spacing:.06em}

/* REVEAL */
.reveal{opacity:1;transform:none;transition:opacity .4s,transform .4s}
.reveal.on{opacity:1;transform:none}

/* HAMBURGER */
.hamburger{
  display:none;flex-direction:column;justify-content:center;
  gap:5px;cursor:pointer;padding:.6rem .8rem;
  background:none;border:none;z-index:400;
  position:relative;
  min-width:44px;max-width:none!important;
  flex-shrink:0;
}
.hamburger span{
  display:block;width:24px;height:2px;
  max-width:none!important;min-width:24px;min-height:2px;
  background:#111;transition:all .35s cubic-bezier(.4,0,.2,1);
  transform-origin:center;
  flex-shrink:0;
}
/* Hamburger open state — vedi sezione finale CSS */
/* ── MOBILE MENU — Premium redesign ─────────────────────────── */
/* Desktop: completamente nascosto */
@media(min-width:769px){
  .mobile-menu{display:none!important}
}
/* Sempre display:flex — visibility controlla mostra/nasconde */
.mobile-menu{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  position:fixed;top:0;left:0;right:0;bottom:0;
  /* iOS: account for safe areas in full-screen overlay */
  padding-top:var(--sat);
  padding-bottom:var(--sab);
  padding-left:var(--sal);
  padding-right:var(--sar);
  background:#111;
  z-index:350;
  overflow:hidden;
  overscroll-behavior:contain;
  /* GPU layer — smoother animation on mobile */
  will-change:transform,opacity;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  /* Stato nascosto — transizioni CSS fluide senza display toggling */
  visibility:hidden;
  opacity:0;
  transform:translateX(100%);
  transition:
    transform .42s cubic-bezier(.4,0,.2,1),
    opacity .42s cubic-bezier(.4,0,.2,1),
    visibility 0s .42s;
  pointer-events:none;
}
.mobile-menu.open{
  visibility:visible;
  opacity:1;
  transform:translateX(0);
  transition:
    transform .42s cubic-bezier(.4,0,.2,1),
    opacity .42s cubic-bezier(.4,0,.2,1),
    visibility 0s;
  pointer-events:auto;
}
/* ── Header: logo + close ── */
.mobile-menu .mob-menu-logo{
  display:flex;align-items:center;justify-content:space-between;
  padding:.9rem 1.4rem .9rem 1.6rem;
  /* Sfondo beige identico alla navbar: il logo mostra i colori aziendali originali */
  background:#f5f0e8;
  border-bottom:2px solid rgba(0,0,0,.08);
  flex-shrink:0;min-height:72px;
}
.mobile-menu .mob-menu-logo img{
  height:72px!important;width:auto!important;max-width:none!important;
  filter:none;
  opacity:1;
}
.mobile-menu .mob-close{
  background:none;border:none;cursor:pointer;
  width:44px;height:44px;min-width:44px;
  display:flex;align-items:center;justify-content:center;
  color:rgba(0,0,0,.4);
  font-size:.95rem;letter-spacing:-.02em;
  transition:color .2s,transform .2s;
  flex-shrink:0;
  touch-action:manipulation;
  user-select:none;-webkit-user-select:none;
}
.mobile-menu .mob-close:active{color:rgba(0,0,0,.8);transform:scale(.9)}

/* ── Nav links ── */
/* Override: <nav class="mob-nav"> eredita position:fixed dal CSS globale nav{} */
.mobile-menu .mob-nav{
  flex:1;display:flex;flex-direction:column;
  padding:.6rem 0 .4rem;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  position:static!important;
  background:none!important;
  border:none!important;
  top:auto!important;left:auto!important;right:auto!important;
  z-index:auto!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  min-height:0!important;
}
/* Default: nascosti — reset immediato alla chiusura senza transizione */
.mobile-menu .mob-nav a{
  opacity:0;
  transform:translateX(20px);
  font-family:'Cormorant Garamond',serif;
  font-size:1.75rem;font-weight:300;
  color:rgba(255,255,255,.95);
  text-decoration:none;
  letter-spacing:.01em;
  padding:.75rem 1.4rem .75rem 1.8rem;
  border-bottom:1px solid rgba(255,255,255,.07);
  display:flex;align-items:center;justify-content:space-between;
  min-height:58px;
  touch-action:manipulation;
  user-select:none;-webkit-user-select:none;
  position:relative;
  transition:color .15s,background .15s;
}
.mobile-menu .mob-nav a::after{
  content:'→';
  font-family:'DM Sans',sans-serif;
  font-size:.75rem;
  color:rgba(255,255,255,.25);
  flex-shrink:0;
  transition:color .15s,transform .15s;
}
.mobile-menu .mob-nav a:active{
  color:#cc0000;
  background:rgba(204,0,0,.08);
}
.mobile-menu .mob-nav a:active::after{
  color:#cc0000;
  transform:translateX(4px);
}
/* Stagger animazione all'apertura */
.mobile-menu.open .mob-nav a{
  opacity:1;transform:none;
  transition:opacity .38s ease, transform .38s ease;
}
.mobile-menu.open .mob-nav a::after{opacity:.4}
.mobile-menu.open .mob-nav a:nth-child(1){transition-delay:.08s}
.mobile-menu.open .mob-nav a:nth-child(2){transition-delay:.13s}
.mobile-menu.open .mob-nav a:nth-child(3){transition-delay:.18s}
.mobile-menu.open .mob-nav a:nth-child(4){transition-delay:.23s}
.mobile-menu.open .mob-nav a:nth-child(5){transition-delay:.28s}
.mobile-menu.open .mob-nav a:nth-child(6){transition-delay:.32s}
.mobile-menu.open .mob-nav a:nth-child(7){transition-delay:.36s}
.mobile-menu.open .mob-nav a:nth-child(8){transition-delay:.40s}
/* ── Footer: lang + CTA ── */
.mobile-menu .mob-menu-footer{
  padding:1.2rem 1.8rem 1.8rem;
  border-top:1px solid rgba(255,255,255,.06);
  display:flex;flex-direction:column;gap:.9rem;flex-shrink:0;
}
.mobile-menu .mobile-lang{display:flex;gap:.35rem;flex-wrap:wrap}
.mobile-menu .mobile-lang button{
  background:none;
  border:1px solid rgba(255,255,255,.3);
  color:rgba(255,255,255,.75);
  font-family:'DM Sans',sans-serif;
  font-size:.56rem;letter-spacing:.14em;
  cursor:pointer;text-transform:uppercase;
  padding:.4rem .7rem;
  min-height:38px;min-width:42px;
  transition:all .2s;
  touch-action:manipulation;
  user-select:none;-webkit-user-select:none;
}
.mobile-menu .mobile-lang button:active{
  color:rgba(255,255,255,.7);
  border-color:rgba(255,255,255,.55);
}
.mobile-menu .mobile-lang button.on{
  color:#cc0000;border-color:rgba(204,0,0,.5);
}
.mob-menu-cta{
  display:flex;align-items:center;justify-content:center;
  width:100%;
  background:#cc0000;color:#fff;
  padding:1.05rem 1.5rem;
  font-size:.63rem;letter-spacing:.18em;
  text-transform:uppercase;text-decoration:none;
  font-weight:500;min-height:52px;
  touch-action:manipulation;
  user-select:none;-webkit-user-select:none;
  transition:background .2s;
}
.mob-menu-cta:active{background:#a80000}

/* RESPONSIVE */
@media(max-width:1100px){
  nav{padding:1rem 2rem}
  .section{padding:4rem 2rem}
  .cta-band{padding:3rem 2rem;flex-direction:column}
  footer{padding:2rem;flex-direction:column;gap:1.5rem;text-align:center}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .service-card{border-right:none;border-bottom:1px solid #ccc7bb}
}
@media(max-width:768px){

  /* ══ RESET BASE ══════════════════════════════════════════════ */
  html,body{
    overflow-x:hidden!important;
    max-width:100%!important;
    width:100%!important;
    -webkit-text-size-adjust:100%;
    -ms-text-size-adjust:100%;
  }
  *{
    box-sizing:border-box!important;
    max-width:100%!important;
    word-wrap:break-word!important;
    -webkit-tap-highlight-color:rgba(204,0,0,.1);
  }
  img:not([style*="position:absolute"]):not([style*="position: absolute"]){max-width:100%!important;height:auto!important;display:block!important}
  /* Logo nel menu overlay — specificità (0,0,2,2) batte img:not() (0,0,2,1) */
  body .mobile-menu .mob-menu-logo img{height:52px!important;width:auto!important;max-width:none!important;max-height:52px!important;display:block!important;}

  /* ══ NAV MOBILE — solo la barra principale ══════════════════ */
  body > nav{
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    padding:env(safe-area-inset-top,0px) 1.2rem 0 1.2rem!important;
    height:calc(104px + env(safe-area-inset-top,0px))!important;
    min-height:calc(104px + env(safe-area-inset-top,0px))!important;
    max-height:calc(104px + env(safe-area-inset-top,0px))!important;
    overflow:hidden!important;
  }
  .nav-links{display:none!important}
  .nav-top{display:none!important}
  .logo{order:1!important;padding:0!important;flex-shrink:0!important;margin-top:0!important}
  body > nav .logo img{height:178px!important;margin:0!important;mix-blend-mode:normal!important;filter:none!important;max-height:178px!important}
  .hamburger{order:2!important;margin-left:auto!important;display:flex!important;position:relative!important;z-index:210!important;flex-shrink:0!important;}
  /* ══ MOB-NAV nel menu overlay — reset completo dal nav globale ══ */
  .mobile-menu nav,.mobile-menu .mob-nav{
    position:static!important;background:none!important;border:none!important;
    flex-direction:column!important;align-items:stretch!important;
    justify-content:flex-start!important;padding:.6rem 0 .4rem!important;
    height:auto!important;min-height:0!important;max-height:none!important;
    overflow:visible!important;
    top:auto!important;left:auto!important;right:auto!important;z-index:auto!important;
    width:100%!important;flex:1!important;
  }
  /* Offset contenuto — target diretto bypassa Safari style normalization */
  html body .page-top{margin-top:calc(104px + env(safe-area-inset-top,0px))!important}
  .mob-hero{margin-top:calc(104px + env(safe-area-inset-top,0px))!important}
  .mob-only > div:first-child{margin-top:calc(104px + env(safe-area-inset-top,0px))!important}
  [style*="margin-top:135px"]{margin-top:calc(104px + env(safe-area-inset-top,0px))!important}
  [style*="margin-top:145px"]{margin-top:calc(104px + env(safe-area-inset-top,0px))!important}

  /* Fix hero img in mob-only — specificità (0,0,2,1) batte inline <style> (0,0,1,1)
     Necessario perché ogni HTML ha il vecchio selettore img:not() senza fix Safari-space */
  .mob-only img[style*="height:100%"]{height:100%!important;width:100%!important;object-fit:cover!important;}

  /* ══ TUTTI I GRID → COLONNA ══════════════════════════════════ */
  .grid-2,.grid-3,.grid-4{
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
  }

  /* ══ TIPOGRAFIA — clamp() per scaling fluido ═════════════════ */
  h1.display{font-size:clamp(1.75rem,5.5vw,2.1rem)!important;line-height:1.07!important;letter-spacing:-.01em!important}
  h2.display{font-size:clamp(1.4rem,4.5vw,1.65rem)!important;line-height:1.1!important}
  h3.card-title{font-size:clamp(1.15rem,3.5vw,1.35rem)!important;line-height:1.2!important}
  .section-title{font-size:clamp(1.3rem,4vw,1.5rem)!important;line-height:1.1!important}
  .cta-band h2{font-size:clamp(1.35rem,4.2vw,1.55rem)!important;line-height:1.12!important}
  .blockquote{font-size:clamp(.88rem,2.8vw,.98rem)!important;padding:1.2rem 1.4rem!important;line-height:1.65!important}
  /* Tag line — previene overflow con letterspacing ampio */
  .tag-line{
    font-size:clamp(.48rem,1.8vw,.58rem)!important;
    letter-spacing:.18em!important;
    white-space:normal!important;
    word-break:break-word!important;
    overflow:hidden!important;
  }
  /* Font inline grandi → clamp responsive */
  [style*="font-size:clamp(3rem"]{font-size:clamp(1.8rem,5.5vw,2.1rem)!important;line-height:1.07!important}
  [style*="font-size:clamp(2.5rem"]{font-size:clamp(1.6rem,5vw,1.9rem)!important}
  [style*="font-size:clamp(2rem"]{font-size:clamp(1.35rem,4.2vw,1.55rem)!important}
  [style*="font-size:clamp(1.8rem"]{font-size:clamp(1.2rem,3.8vw,1.4rem)!important}
  [style*="font-size:5rem"]{font-size:clamp(2rem,6vw,2.4rem)!important}
  [style*="font-size:3.5rem"]{font-size:clamp(1.8rem,5.5vw,2.1rem)!important}
  [style*="font-size:3rem"]{font-size:clamp(1.65rem,5vw,1.9rem)!important}
  [style*="font-size:2.5rem"]{font-size:clamp(1.5rem,4.5vw,1.7rem)!important}
  [style*="font-size:2.2rem"]{font-size:clamp(1.4rem,4.2vw,1.6rem)!important}
  [style*="font-size:2rem"]{font-size:clamp(1.3rem,4vw,1.5rem)!important}
  [style*="font-size:1.9rem"]{font-size:clamp(1.25rem,3.8vw,1.4rem)!important}

  /* ══ PADDING INLINE ══════════════════════════════════════════ */
  [style*="padding:8rem 5rem"]{padding:3.5rem 1.4rem 2.5rem!important}
  [style*="padding:8rem"]{padding:3rem 1.4rem!important}
  [style*="padding:5rem"]{padding:2rem 1.4rem!important}
  [style*="padding:4rem 5rem"]{padding:2rem 1.4rem!important}
  [style*="padding:4rem"]{padding:1.8rem 1.4rem!important}
  [style*="padding:3.5rem"]{padding:1.6rem 1.4rem!important}
  [style*="padding:3rem 5rem"]{padding:1.5rem 1.4rem!important}
  [style*="padding:3rem"]{padding:1.5rem 1.4rem!important}
  [style*="padding:2.5rem 5rem"]{padding:1.4rem!important}
  [style*="padding:2rem 5rem"]{padding:1.2rem!important}
  [style*="padding:2.5rem"]{padding:1.4rem!important}

  /* ══ ALTEZZE ══════════════════════════════════════════════════ */
  [style*="height:100vh"]{height:280px!important}
  [style*="height:85vh"]{height:260px!important}
  [style*="height:70vh"]{height:240px!important}
  [style*="min-height:500px"]{min-height:220px!important}
  [style*="min-height:320px"]{min-height:190px!important}

  /* ══ GAP ══════════════════════════════════════════════════════ */
  [style*="gap:6rem"]{gap:0!important}
  [style*="gap:5rem"]{gap:0!important}
  [style*="gap:4rem"]{gap:0!important}
  [style*="gap:3rem"]{gap:0!important}

  /* ══ SEZIONI CSS ══════════════════════════════════════════════ */
  .section{padding:2rem 1.4rem!important}
  .section-header{flex-direction:column!important;align-items:flex-start!important;gap:.5rem!important;padding-bottom:1.2rem!important;margin-bottom:1.5rem!important}
  .section-num{display:none!important}
  .tag-line{margin-bottom:1rem!important}

  /* ══ BOTTONI — 48px min touch target (Apple HIG) ════════════ */
  .btn-red,.btn-outline,.btn-wh,.btn-owh{
    display:flex!important;align-items:center!important;justify-content:center!important;
    width:100%!important;
    padding:1rem 1.5rem!important;
    font-size:.68rem!important;letter-spacing:.15em!important;
    min-height:50px!important;
    margin-bottom:.5rem!important;
    touch-action:manipulation;
    -webkit-user-select:none;user-select:none;
  }
  .btn-red:active{opacity:.85;transform:scale(.985)}
  .btn-outline:active,.btn-owh:active{opacity:.7}
  .btn-wh:active{opacity:.85}
  .btn-wa{
    display:flex!important;width:100%!important;justify-content:center!important;
    align-items:center!important;padding:1rem!important;min-height:50px!important;
    touch-action:manipulation;
  }
  .btn-wa:active{opacity:.85;transform:scale(.985)}

  /* ══ MOBILE SECTION BUTTONS (mob-btn-*) ══════════════════════ */
  .mob-btn-red:active,.mob-btn-dark:active{opacity:.82;transform:scale(.988)}
  .mob-btn-outline:active,.mob-btn-outline-white:active{opacity:.65}

  /* ══ CTA BAND ════════════════════════════════════════════════ */
  .cta-band{padding:2.5rem 1.4rem!important;flex-direction:column!important;gap:1.5rem!important;text-align:center!important}
  .cta-band p{text-align:center!important;line-height:1.7!important}
  .cta-band-btns{width:100%!important;flex-direction:column!important}

  /* ══ SERVICE CARDS ═══════════════════════════════════════════ */
  .service-card{border-right:none!important;border-bottom:1px solid #ccc7bb!important;padding:1.6rem 1.4rem!important}
  .service-card .num{font-size:2rem!important;margin-bottom:.75rem!important}
  .service-card:active{background:rgba(0,0,0,.02)!important}

  /* ══ FOOTER ══════════════════════════════════════════════════ */
  footer{padding:2rem 1.4rem!important;flex-direction:column!important;gap:1.2rem!important;text-align:center!important}
  .footer-logo{font-size:.95rem!important;letter-spacing:.2em!important;margin-bottom:.4rem!important}
  .footer-links{flex-wrap:wrap!important;justify-content:center!important;gap:.7rem 1rem!important}
  .footer-links a{min-height:38px;display:inline-flex;align-items:center}
  .footer-copy{font-size:.62rem!important;letter-spacing:.04em!important;color:#888!important}

  /* ══ TOUCH — tutti i target interattivi ══════════════════════ */
  button,a,input,select,textarea{touch-action:manipulation}
  /* Minimum tap area 44×44 per elementi piccoli */
  .lang-sw button,.footer-links a,.mob-cta{
    min-height:44px;display:inline-flex;align-items:center;
  }

  /* ══ IMMAGINI: object-position centrata ══════════════════════ */
  [style*="object-fit:cover"]{object-position:center center!important}
  .mob-img-hero,.mob-img-hero-tall{object-position:center 30%!important}
  [style*="position:absolute"][style*="inset:0"]{
    object-fit:cover!important;
    object-position:center center!important;
  }

  /* ══ ARCHIVE 4 col → 2 col ═══════════════════════════════════ */
  [style*="grid-template-columns:repeat(4,1fr)"]{
    display:grid!important;
    grid-template-columns:repeat(2,1fr)!important;
    gap:1px!important;
  }

  /* ══ HERO FOTO (position:relative + height vh) ═══════════════ */
  [style*="position:relative"][style*="overflow:hidden"]{
    width:100%!important;
  }

  /* ══ TESTI SU HERO SCURI ════════════════════════════════════ */
  body.is-mobile [style*="max-width:520px"]{max-width:100%!important}
  body.is-mobile [style*="max-width:580px"]{max-width:100%!important}
  body.is-mobile [style*="max-width:700px"]{max-width:100%!important}
  body.is-mobile [style*="max-width:820px"]{max-width:100%!important}
  body.is-mobile [style*="max-width:900px"]{max-width:100%!important}
  body.is-mobile [style*="max-width:600px"]{max-width:100%!important}

  /* ══ FLEX ROW → COLUMN ═══════════════════════════════════════ */
  [style*="display:flex"][style*="gap:1.5rem"]{flex-wrap:wrap!important}
  [style*="display:flex"][style*="gap:1rem"]{flex-wrap:wrap!important}
}

/* ─── IMAGE QUALITY MOBILE ──────────────────────────────────── */
@media(max-width:768px){

  /* Hero images - well centered and proportioned */
  .mob-only [style*="position:absolute;inset:0"]{
    object-fit:cover!important;
    object-position:center center!important;
  }

  /* Section spacing consistency */
  .mob-only > *{width:100%!important}
  .mob-section,.mob-section-dark,.mob-section-beige2{
    padding:2rem 1.4rem!important;
  }
  .mob-section-beige2{
    padding:1.2rem 1.4rem!important;
  }
  .mob-hero,.mob-hero-dark{
    padding:2.5rem 1.4rem 2rem!important;
  }

  /* Cards - consistent padding */
  .mob-card,.mob-card-alt,.mob-card-dark{
    padding:1.6rem 1.4rem!important;
  }

  /* Stats grid - prevent border issues */
  .mob-stats{
    margin:0 0 1rem!important;
    border:1px solid #ccc7bb!important;
    overflow:hidden!important;
  }
  .mob-stat{padding:.8rem!important}

  /* Touch feedback */
  .mob-btn-red:active,.mob-btn-dark:active{opacity:.85;transform:scale(.98)}
  .mob-btn-outline:active,.mob-btn-outline-white:active{opacity:.7}
  .mob-card:active,.mob-card-alt:active{opacity:.85}
  .mobile-menu a:active{background:rgba(204,0,0,.06)!important}

  /* CTA band spacing */
  .mob-cta-band{
    padding:2.5rem 1.4rem!important;
  }
  .mob-cta-band h2{
    font-size:clamp(1.5rem,5.5vw,1.8rem)!important;
    margin-bottom:.8rem!important;
  }

  /* Footer clean */
  footer{
    padding:2rem 1.4rem!important;
    flex-direction:column!important;
    gap:1rem!important;
    text-align:center!important;
  }
  .footer-links{
    flex-wrap:wrap!important;
    justify-content:center!important;
    gap:.5rem .8rem!important;
    max-width:280px!important;
    margin:0 auto!important;
  }
  .footer-links a{font-size:.58rem!important}

  /* Quote mobile */
  .mob-quote{
    font-size:clamp(.95rem,3vw,1.1rem)!important;
    padding:1.2rem!important;
    line-height:1.55!important;
    margin-bottom:1.2rem!important;
  }

  /* Prevent label overflow */
  .mob-label{
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  /* Better line heights for readability */
  .mob-p-sm{line-height:1.7!important;margin-bottom:.8rem!important}

  /* Stats numbers mobile */
  .mob-stat-num{font-size:clamp(1.5rem,5vw,1.8rem)!important}

  /* Smooth scroll on iOS */
  html{-webkit-overflow-scrolling:touch}
  .mob-only{-webkit-overflow-scrolling:touch}
}

/* ─── SMALL SCREEN: ≤375px ──────────────────────────────────── */
@media(max-width:375px){
  body > nav .logo img{height:162px!important}
  html body .page-top{margin-top:calc(96px + env(safe-area-inset-top,0px))!important}
  .mob-hero{margin-top:calc(96px + env(safe-area-inset-top,0px))!important}
  .mob-only > div:first-child{margin-top:calc(96px + env(safe-area-inset-top,0px))!important}
  [style*="margin-top:135px"]{margin-top:calc(96px + env(safe-area-inset-top,0px))!important}
  body > nav{height:calc(96px + env(safe-area-inset-top,0px))!important;min-height:calc(96px + env(safe-area-inset-top,0px))!important;max-height:calc(96px + env(safe-area-inset-top,0px))!important}
  .mobile-menu .mob-nav a{font-size:1.55rem!important;min-height:52px!important;padding:.65rem 1.4rem .65rem 1.8rem!important}
  .mobile-menu .mob-menu-logo img{height:50px!important}
}

/* ─── 320px (iPhone SE 1st gen) ─────────────────────────────── */
@media(max-width:320px){
  body > nav .logo img{height:142px!important}
  html body .page-top{margin-top:calc(86px + env(safe-area-inset-top,0px))!important}
  .mob-hero{margin-top:calc(86px + env(safe-area-inset-top,0px))!important}
  .mob-only > div:first-child{margin-top:calc(86px + env(safe-area-inset-top,0px))!important}
  [style*="margin-top:135px"]{margin-top:calc(86px + env(safe-area-inset-top,0px))!important}
  body > nav{height:calc(86px + env(safe-area-inset-top,0px))!important;min-height:calc(86px + env(safe-area-inset-top,0px))!important;max-height:calc(86px + env(safe-area-inset-top,0px))!important}
  .mobile-menu .mob-nav a{font-size:1.4rem!important;padding:.55rem 1.2rem .55rem 1.4rem!important;min-height:46px!important}
  .mobile-menu .mob-menu-logo{padding:.8rem 1.2rem!important}
  .mobile-menu .mob-menu-footer{padding:1rem 1.4rem 1.4rem!important}
}

/* ─── PERFORMANCE: GPU compositing per animazioni fluide ─────── */
@media(max-width:768px){
  /* Force GPU layer su elementi animati */
  .mobile-menu{
    transform:translateZ(0);
    -webkit-transform:translateZ(0);
  }
  .hamburger{
    transform:translateZ(0);
    -webkit-transform:translateZ(0);
  }
  /* Prevent scroll jank su iOS */
  .mob-only{
    -webkit-overflow-scrolling:touch;
    transform:translateZ(0);
  }
  /* Disable reveal animations su mobile — non servono con scroll nativo */
  .reveal{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
  /* Prevent text selection durante scroll */
  .mob-nav a,.mob-btn-red,.mob-btn-outline,.mob-btn-dark,.mob-btn-outline-white{
    -webkit-user-select:none;
    user-select:none;
  }
}

/* ─── iOS SPECIFIC: Safari edge cases ────────────────────────── */
@supports(-webkit-touch-callout:none){
  /* Fix 100vh su Safari iOS — usa dvh se disponibile */
  .mobile-menu{
    min-height:-webkit-fill-available;
  }
  /* Prevent double-tap zoom su button */
  button,a{
    touch-action:manipulation;
  }
}

/* ─── ANDROID CHROME: ottimizzazioni specifiche ──────────────── */
@media(max-width:768px){
  /* Chromium mobile: smooth momentum scroll */
  .mob-nav{
    scroll-behavior:smooth;
  }
  /* Samsung Internet: fix per font rendering */
  .mob-h1,.mob-h1-white,.mob-h2,.mob-h2-white{
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }
}

/* ─── HAMBURGER: animazione X premium ───────────────────────── */
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);background:#cc0000}
.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);background:#cc0000}

/* ═══════════════════════════════════════════════════════════════
   MOBILE — schede/sezioni chiare (crema) invece del nero.
   L'hero (foto + gradiente scuro) NON è una .mob-section-dark,
   quindi resta scuro da sé: effetto "hero scuro + contenuto chiaro".
   Tutto in base-v3.css condiviso → vale su EN, IT e ES.
   ═══════════════════════════════════════════════════════════════ */
@media(max-width:768px){
  .mob-section-dark,.mob-card-dark{background:#f5f0e8!important;border-bottom-color:#ccc7bb!important}

  /* titoli e testo bianchi → scuri leggibili */
  .mob-section-dark .mob-h1-white,.mob-card-dark .mob-h1-white,
  .mob-section-dark .mob-h2-white,.mob-card-dark .mob-h2-white,
  .mob-section-dark .mob-h3,.mob-card-dark .mob-h3,
  .mob-section-dark [style*="color:#fff"],.mob-card-dark [style*="color:#fff"],
  .mob-section-dark [style*="color:#ffffff"],.mob-card-dark [style*="color:#ffffff"]{color:#111!important}
  .mob-section-dark .mob-p-white,.mob-card-dark .mob-p-white,
  .mob-section-dark [style*="rgba(255,255,255,.55)"],.mob-card-dark [style*="rgba(255,255,255,.55)"],
  .mob-section-dark [style*="rgba(255,255,255,.6)"],.mob-card-dark [style*="rgba(255,255,255,.6)"],
  .mob-section-dark [style*="rgba(255,255,255,.65)"],.mob-card-dark [style*="rgba(255,255,255,.65)"],
  .mob-section-dark [style*="rgba(255,255,255,.68)"],.mob-card-dark [style*="rgba(255,255,255,.68)"],
  .mob-section-dark [style*="rgba(255,255,255,.7)"],.mob-card-dark [style*="rgba(255,255,255,.7)"],
  .mob-section-dark [style*="rgba(255,255,255,.75)"],.mob-card-dark [style*="rgba(255,255,255,.75)"]{color:#444!important}

  /* numeri/divisori tenui bianchi → tenui scuri */
  .mob-section-dark [style*="rgba(255,255,255,.15)"],.mob-card-dark [style*="rgba(255,255,255,.15)"]{color:rgba(17,17,17,.22)!important}
  .mob-section-dark [style*="rgba(255,255,255,.2)"],.mob-card-dark [style*="rgba(255,255,255,.2)"]{color:rgba(17,17,17,.25)!important}
  .mob-section-dark [style*="rgba(255,255,255,.08)"],.mob-card-dark [style*="rgba(255,255,255,.08)"]{color:rgba(17,17,17,.12)!important}

  /* bottone outline bianco → outline scuro */
  .mob-section-dark .mob-btn-outline-white,.mob-card-dark .mob-btn-outline-white{color:#111!important;border-color:rgba(17,17,17,.35)!important}

  /* loghi pensati invertiti (bianchi) su fondo scuro: su crema tornano normali */
  .mob-section-dark img[style*="invert(1)"],.mob-card-dark img[style*="invert(1)"]{filter:none!important}

  /* box con background:#111 INLINE dentro il mobile (es. griglia "fatti" di studio):
     diventano crema, testo scuro. L'hero usa background-image/gradiente, non #111 → non toccato. */
  .mob-only [style*="background:#111"]{background:#ede7d9!important;border-color:#ccc7bb!important}
  .mob-only [style*="background:rgba(255,255,255,.08)"]{background:#ccc7bb!important}
  .mob-only [style*="background:#111"] .mob-h1-white,
  .mob-only [style*="background:#111"] .mob-h2-white,
  .mob-only [style*="background:#111"] .mob-h3{color:#111!important}
  .mob-only [style*="background:#111"] .mob-p-white{color:#444!important}
  .mob-only [style*="background:#111"] [style*="color:#fff"],
  .mob-only [style*="background:#111"] [style*="color:#ffffff"]{color:#111!important}
  .mob-only [style*="background:#111"] [style*="rgba(255,255,255,.55)"],
  .mob-only [style*="background:#111"] [style*="rgba(255,255,255,.6)"],
  .mob-only [style*="background:#111"] [style*="rgba(255,255,255,.65)"],
  .mob-only [style*="background:#111"] [style*="rgba(255,255,255,.68)"],
  .mob-only [style*="background:#111"] [style*="rgba(255,255,255,.7)"],
  .mob-only [style*="background:#111"] [style*="rgba(255,255,255,.75)"]{color:#444!important}

  /* RE-ASSERZIONI: elementi rossi mantengono testo bianco (devono restare dopo le regole sopra) */
  .mob-section-dark .mob-cta-band,.mob-card-dark .mob-cta-band,
  .mob-section-dark .mob-cta-band *,.mob-card-dark .mob-cta-band *,
  .mob-section-dark .mob-btn-red,.mob-card-dark .mob-btn-red{color:#fff!important}
}
