/* INSEGNE BRESCIA - LANDING v64 - CSS (stesso ordine della v63) */
#garanzia .tg-title{margin:0 0 14px;letter-spacing:-1.2px} /* v64: ex H1 */
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/montserrat-latin-ext-a63797c1.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;
}

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/montserrat-latin-a5ec5492.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;
}

/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/montserrat-latin-ext-a63797c1.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;
}

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/montserrat-latin-a5ec5492.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;
}

/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/montserrat-latin-ext-a63797c1.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;
}

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/montserrat-latin-a5ec5492.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;
}

/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/montserrat-latin-ext-a63797c1.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;
}

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/montserrat-latin-a5ec5492.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;
}

/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/montserrat-latin-ext-a63797c1.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;
}

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/montserrat-latin-a5ec5492.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;
}

/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/montserrat-latin-ext-a63797c1.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;
}

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/montserrat-latin-a5ec5492.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;
}

/* ===== blocco senza id ===== */


/* ===== blocco senza id ===== */
:root{
  --font-main:'Montserrat',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
      --bg: #f6f7fb;
      --text: #0b1020;
      --muted: #54607a;
      --muted2:#96a0b4;
      --dark: #0a1024;
      --dark2:#0b1230;
      --line: rgba(255,255,255,.10);
      --line2: rgba(255,255,255,.14);
      --orange: #ff8a00;
      --violet: #7d2cff;
      --blue: #1f46ff;
      --shadow: 0 18px 60px rgba(0,0,0,.25);
      --shadow2: 0 14px 44px rgba(0,0,0,.18);
      --radius: 18px;
      --radius2: 14px;
    }

    *{ box-sizing: border-box; }

html, body, button, input, textarea, select,
h1, h2, h3, h4, h5, h6, p, a, span, div, li, label,
section, article, header, footer, nav, aside,
*::before, *::after{
  font-family:var(--font-main) !important;
}

    body{
      margin:0;
      font-family:var(--font-main);
      background: var(--bg);
      color: var(--text);
    }

    a{ color: inherit; }

    .container{ max-width: 1160px; margin: 0 auto; padding: 0 20px; }

    /* bands */
    .band{ padding: 90px 0; }
    .band.dark{
      color: #fff;
      background: linear-gradient(180deg, #070A13, #0B1030);
      position: relative;
      overflow: hidden;
    }

    /* HERO */
    .hero{ padding-top: 110px; padding-bottom: 70px; }

    .hero-watermark{
      position:absolute;
      right:-140px;
      top: 40px;
      width: 720px;
      opacity: .09;
      filter: blur(0px);
      pointer-events:none;
      user-select:none;
    }
    .hero-watermark img{ width:100%; height:auto; display:block; }

    .hero-title{
      margin-top: 6px;
      line-height: .92;
      position: relative;
      z-index: 2;
    }

    /* PRE-HEADLINE (aggiunta, identica a quella che abbiamo definito) */
    .hero-pre{
      margin: 0 0 14px;
      font-size: 18px;
      font-weight: 400; /* stesso peso della sub-headline */
      color: rgba(255,255,255,.78);
      letter-spacing: .01em;
    }
    .hero-pre strong{font-weight:700;}
    .hero-pre-orange{color: var(--orange); font-weight:800;}

    h1{
      font-family:var(--font-main);
      margin:0 0 14px;
      font-size: 76px;
      font-weight: 700;
      letter-spacing: -1.2px;
      line-height: 1.02;
    }
    h1 .accent{
      font-weight: 800;
    }

    .hero-line{ font-family:var(--font-main); display:block; line-height: 1.02; }
    /* micro-allineamento: leggermente più su, ma senza schiacciare */
    .hero-rot{ margin-top: -8px; }

    .accent{
      background: linear-gradient(90deg, var(--blue), var(--violet));
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    /* rotator */
    .hero-rot{
      display:inline-block;
      padding: 0;
      border-radius: 0;
      background: transparent;
      width: fit-content;
      max-width: 100%;
    }

    /* caret typewriter */
    #heroRot{ position: relative; }
    #heroRot::after{
      content:"";
      display:inline-block;
      width: 3px;
      height: 1.02em;
      margin-left: 6px;
      transform: translateY(2px);
      background: var(--orange);
      border-radius: 2px;
      animation: caretBlink .85s infinite;
    }
    @keyframes caretBlink{ 0%,45%{opacity:1} 55%,100%{opacity:0} }

    .lead{ color: rgba(255,255,255,.82); }

    .hero-sub{ color: rgba(255,255,255,.68); }
    .hero-sub strong{ color: rgba(255,255,255,.92); }
    .hero-sub .hero-avoid{ font-weight: 400; color: rgba(255,255,255,.72); }
    .hero-sub .sep-orange{ color: var(--accent); font-weight: 400; opacity: .95; padding: 0 .55em; }


    /* Spaziature coerenti: come pre → INSEGNE (14px) */
    .hero-actions{ margin-top: 14px; display:flex; gap: 12px; flex-wrap: wrap; align-items:center; }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap: 10px;
      padding: 14px 18px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.18);
      text-decoration:none;
      font-weight: 800;
      box-shadow: var(--shadow2);
      transition: transform .15s ease;
    }
    .btn:hover{ transform: translateY(-2px); }

    .cta-orange{
      background: linear-gradient(90deg, #ffb347, #ff8c1a);
      color: #1a1206;
      border-color: rgba(255,255,255,.20);
      box-shadow: 0 18px 44px rgba(255,140,26,.45);
    }

    .bullets{
      margin: 14px 0 0;
      padding: 0;
      list-style:none;
      display:grid;
      gap: 6px;
      max-width: 1160px;
    }
    .bullets li{ display:flex; gap: 10px; align-items:flex-start; }

    /* Bullet typography */
    .bullet-title{
      font-family:var(--font-main);
      font-weight: 600; /* normal/bold (non light) */
      text-transform: uppercase;
      letter-spacing: .04em;
      color:#8fb7ff;
      font-size: 1.06em;
    }
    .bullet-sep{
      display:inline-block;
      padding: 0 .9ch; /* doppio spazio visivo */
      color: var(--orange);
      font-weight: 600;
    }
    .bullet-text{
      font-family:var(--font-main);
      font-weight: 300; /* light */
      color: rgba(255,255,255,.75);
      line-height: 1.4;}

    /* glow arancio leggero sulla riga a rotazione */
    #heroRot{ text-shadow: 0 0 18px rgba(255,138,0,.22), 0 0 42px rgba(255,138,0,.12); }

    .tick{ display:inline-flex; width: 22px; height: 22px; border-radius: 999px; align-items:center; justify-content:center; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); font-weight: 800; }

    /* 3 columns (riquadri, arancio velato tipo screenshot) */
    .hero-cols{
      margin-top: 72px;
      display:grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 22px;
    }
    .hero-col{
      background:
        linear-gradient(90deg, rgba(255,138,0,.12), rgba(255,138,0,.05)),
        rgba(0,0,0,.18);
      border: 1px solid rgba(255,138,0,.30);
      border-radius: 18px;
      padding: 18px;
      box-shadow:
        0 18px 50px rgba(0,0,0,.28),
        0 0 0 1px rgba(255,138,0,.08) inset;
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
    }
    .hero-col:hover{
      box-shadow:
        0 22px 60px rgba(0,0,0,.32),
        0 0 34px rgba(255,138,0,.14);
    }

    .hero-col-title{ font-family:var(--font-main); font-weight: 800; letter-spacing: .02em; font-size: 25px; }
    .hero-col-sub{ margin-top: 6px; color: rgba(255,255,255,.72); font-weight: 400; font-size: 16px; letter-spacing: .04em; text-transform: uppercase; }
    .hero-col-txt{ margin-top: 10px; color: rgba(255,255,255,.78); font-size: 14px; line-height: 1.45; }

    /* bounce arrow */
    @keyframes bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(7px); } }

    /* responsive */
    @media (max-width: 980px){
      h1{ font-size: 52px; }
      .hero-cols{ grid-template-columns: 1fr; }
      .hero-watermark{ right:-240px; width: 620px; }
    }
  


/* TOPBAR (menu orizzontale a comparsa dopo il primo scroll) */
.topbar{
  position: fixed;
  left: 0; right: 0; top: 0;
  z-index: 999;
  background: rgba(10, 12, 18, .70);
  border-bottom: 1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

  transform: translateY(-110%);
  opacity: 0;
  pointer-events: none;
  transition: transform .28s ease, opacity .28s ease;
}
body.has-scrolled .topbar{
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.topbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding: 12px 0;
}
.topbar-brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight: 800;
  letter-spacing:.2px;
  color: rgba(255,255,255,.92);
  text-decoration:none;
}
.topbar-badge{
  width:34px;
  height:34px;
  border-radius:12px;
  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 55%, #e86f00 100%);
  box-shadow: 0 12px 30px rgba(255,138,0,.20);
}
.topbar-nav{
  display:flex;
  gap:12px;
  align-items:center;
  font-size: 14px;
  color: rgba(255,255,255,.72);
}
.topbar-nav a{
  text-decoration:none;
  color: inherit;
  padding: 8px 10px;
  border-radius: 12px;
  transition: background .15s ease, color .15s ease;
  white-space: nowrap;
}
.topbar-nav a:hover{
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.92);
}
.topbar-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 12px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 800;
  color:#fff;
  text-decoration:none;
  border:none;
  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 55%, #e86f00 100%);
  box-shadow: 0 18px 36px rgba(255,138,0,.28);
  transition: transform .15s ease, box-shadow .15s ease;
  white-space: nowrap;
}
.topbar-cta:hover{
  transform: translateY(-1px) scale(1.02);
  box-shadow: 0 22px 44px rgba(255,138,0,.38);
}

/* Responsive: nascondi la nav su schermi molto piccoli */
@media (max-width: 780px){
  .topbar-nav{ display:none; }
}


.tight-lines{ line-height: 1.25; margin: 10px 0; }/* === v12 double-check fixes === */

/* Global typography tightening */

p, li{ line-height:1.28; }
p{ margin:0 0 .75rem; }
.lead, .sub, .subtitle{ line-height:1.25; }

/* ATF subline: light gray + thin orange separators + avoid awkward wraps */
.atf-subline{ color: rgba(255,255,255,.72) !important; }
.atf-subline .sep{
  display:inline-block;
  width:2px;
  height:.92em;
  background:#ff7a18;
  vertical-align:-0.12em;
  margin:0 .70rem;
  border-radius:2px;
}
.atf-subline .grp{ white-space:nowrap; }
.atf-subline .strong{ color: rgba(255,255,255,.92); font-weight:800; }

/* RUOLI: role labels with line + thin divider, keep layout intact */
#ruoli .role-title{ display:inline-block; }
#ruoli .role-line{ display:block; text-transform:uppercase; letter-spacing:.02em; line-height:1.05; }
#ruoli .role-sep{ display:block; height:1px; background:rgba(11,16,32,.14); margin:6px 0; }
#ruoli .persona-card h3 .role-sep{ background:rgba(255,255,255,.22); }

/* RUOLI heading: lowercase parts medium weight (between light and normal) */
#ruoli .ruoli-title .lc{ font-weight:500; }

/* === v14 fixes: RUOLI spacing + kicker === */

/* RUOLI role stack (left buttons + right panel) */
#ruoli .role-stack{ display:block; }
#ruoli .role-part{
  display:block;
  text-transform:uppercase;
  letter-spacing:.02em;
  line-height:1.05;
  white-space:normal;
}
#ruoli .role-divider{
  display:block;
  height:1px;
  background:rgba(11,16,32,.14);
  margin:6px 0;
}
#ruoli .persona-card h3 .role-divider{
  background:rgba(255,255,255,.22);
}

/* RUOLI pre-headline (kicker) like sub */
#ruoli .kicker{
  font-size:1.05rem;
  font-weight:500;
  letter-spacing:0;
  text-transform:none;
  opacity:.92;
  margin:0 0 .55rem;
}

/* === v16 controlled refinements (rollback v15) === */

/* Moderate global line-height (reduce a bit, not aggressive) */
body{ line-height:1.22; }
p, li{ line-height:1.32; }
p{ margin:0 0 .85rem; }
h1, h2, h3{ line-height:1.06; }
.lead, .sub, .subtitle{ line-height:1.30; }

/* RUOLI: keep original proportions, only slight comfort tweaks */
#ruoli .persona-wrap{
  gap: 34px;
}

/* Right panel: add breathing room after role title and make body text a touch larger */
#ruoli .persona-card h3{ margin: 0 0 18px; }
#ruoli .persona-card p{
  font-size: 1.0rem;
  line-height: 1.38;
}
#ruoli .persona-card p + p{ margin-top:.65rem; }

/* Left buttons: keep role stack but prevent awkward wraps by giving title column a bit more room */
#ruoli .pbtn{
  grid-template-columns: 230px 1fr;
}

/* RUOLI kicker: same as sub sizing */
#ruoli .kicker{
  font-size: 1.05rem;
  font-weight: 500;
  opacity: .92;
}

/* ATF preheadline: force to match sub (same size & weight) */
.atf-pre, .preheadline, .pre-headline, .atf-kicker, .hero-kicker{
  font-size: 1.05rem !important;
  font-weight: 500 !important;
  line-height: 1.30 !important;
  opacity: .92 !important;
}

/* ATF sub-headline: ridotta per allinearla alla pre-headline */
.hero-sub.atf-subline.lead{
  font-size: 1.05rem !important;
  line-height: 1.40 !important;
}

/* === v17 typography refinements === */

/* RUOLI left names -> Montserrat */
#ruoli .persona-buttons,
#ruoli .persona-buttons *{
  font-family:var(--font-main);
}

/* RUOLI right panel: more space after role title */
#ruoli .persona-card h3{
  margin-bottom: 28px !important;
}

/* RUOLI right panel subtitle spacing */
#ruoli .persona-card .subtitle,
#ruoli .persona-card .role-subtitle{
  margin-top: 0 !important;
  margin-bottom: 16px !important;
}

/* === v18 RUOLI right panel typographic tweaks === */

/* Right panel role names: dark gray + tighter stack */
#ruoli .persona-card h3{
  color: rgba(11,16,32,.78) !important;
  line-height: 1.02 !important;
  margin-bottom: 22px !important;
}
#ruoli .persona-card h3 .role-part{
  line-height: 1.02 !important;
}

/* First dedicated sentence under role name: tighter line-height */
#ruoli .persona-card > p:first-of-type{
  line-height: 1.18 !important;
  margin-top: 0 !important;
  margin-bottom: 14px !important;
}

/* Chips (pilloloni) labels uppercase */
#ruoli .persona-card .chips,
#ruoli .persona-card .chips *{
  text-transform: uppercase !important;
  letter-spacing: .03em !important;
}

/* Text under chips: lowercase, slightly larger */
#ruoli .persona-card .chips + p,
#ruoli .persona-card .chips + .chips-note,
#ruoli .persona-card .chips + .note,
#ruoli .persona-card .chips + .smallprint{
  text-transform: none !important;
  font-size: 0.96rem !important;
  line-height: 1.22 !important;
  margin-top: 12px !important;
}

/* === v19 FIX: RUOLI right panel selectors corrected === */

/* Right panel (purple card) role name */
#ruoli .persona-panel #personaTitle{
  color: rgba(11,16,32,.78) !important; /* dark gray */
  line-height: 1.02 !important;
  margin: 0 0 14px !important; /* less interlinea before first phrase */
}
#ruoli .persona-panel #personaTitle .role-part{
  line-height: 1.02 !important;
}

/* First phrase (lead) tighter */
#ruoli .persona-panel #personaLead{
  line-height: 1.18 !important;
  margin: 0 0 12px !important;
}

/* Chips (pilloloni) in uppercase */
#ruoli .persona-panel #personaChips,
#ruoli .persona-panel #personaChips *{
  text-transform: uppercase !important;
  letter-spacing: .03em !important;
}

/* Text under chips: lowercase + a bit larger */
#ruoli .persona-panel #personaMicro{
  text-transform: none !important;
  font-size: 0.96rem !important;
  line-height: 1.22 !important;
  margin-top: 12px !important;
}

/* === v20 RUOLI right panel final tuning === */

/* Right panel role names: black + larger */
#ruoli .persona-panel #personaTitle{
  color: #0b1020 !important;
  font-size: 1.22rem !important;
  line-height: 1.04 !important;
  margin-bottom: 18px !important;
}

/* Text under chips: thinner + smaller (like central micro texts) */
#ruoli .persona-panel #personaMicro{
  font-weight: 400 !important;
  font-size: .92rem !important;
  line-height: 1.25 !important;
  opacity: .9 !important;
}

/* === v22 RUOLI sync SX + DX === */

/* SX: descrizione sotto il nome ruolo */
#ruoli .persona-buttons .pbtn .desc{
  margin-top: 4px !important;
  line-height: 1.18 !important;
}

/* DX: testo sotto pilloline */
#ruoli .persona-panel #personaMicro{
  margin-top: 14px !important;
  line-height: 1.28 !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  letter-spacing: .01em !important;
  opacity: 1 !important;
  color: rgba(11,16,32,.9) !important;
}

/* DX: chips con linee sopra/sotto */
#ruoli .persona-panel #personaChips{
  margin-top: 2px !important;
  margin-bottom: 14px !important;
  padding: 10px 0 !important;
  border-top: 1px solid rgba(255,255,255,.18) !important;
  border-bottom: 1px solid rgba(255,255,255,.18) !important;
}


/* === REGIA / PROBLEM / AGIT typography refinements (v13) === */

/* Riduce l'effetto "ogni riga ha una taglia diversa" nella sezione Problema */
.problem-sub{
  font-size: 28px;
  line-height: 1.45;
}
.problem-body{
  font-size: 20px;
  line-height: 1.75;
}
.problem-body p,
.problem-body ul,
.problem-body li{
  font-size: 1em;
}
.problem-body p.lead{ font-size: 1em; }
.problem-body .tight-lines{ font-size: 1em; }

/* Header processo: la riga "COME LAVORIAMO ..." allinea la giustezza col riquadro sotto */
.proc-header{
  width: 100%;
  max-width: none;
}
.proc-header p{
  font-size: 20px;
  line-height: 1.35;
  margin: 10px 0 0;
}

/* Headline agitazione: elimina micro-differenze di corpo tra span/strong */
.agit-title h2,
.agit-title h2 span,
.agit-title h2 strong{
  font-size: 1em;
}
.agit-title h2{
  line-height: 1.1;
}

/* Sottolineatura arcobaleno (testo) */
.rainbow-under{
  position: relative;
  display: inline-block;
  padding-bottom: .12em;
}
.rainbow-under::after{ height:2px !important; bottom:-.10em !important; border-radius:999px !important; }



/* Processo (header) */
.proc-u-header{ width:100%; max-width:none; }
.proc-u-header p{ font-size: 22px; line-height:1.35; margin:10px 0 0; }

/* Linea arcobaleno full width sopra IL PROCESSO */
hr.rainbow-sep.full{ width:100% !important; max-width:none !important; }


/* === HEADLINE Rainbow Bold === */
.rainbow-strong{
  font-weight: 800;
  position: relative;
  display: inline-block;
}
.rainbow-strong::after{ height:2px !important; bottom:-.10em !important; border-radius:999px !important; }

/* === Mini description color invert === */
.mini-gray{ color:#AEB4C2 !important; }
.mini-white{ color:#FFFFFF !important; }


/* === v14: pulizia sottolineature precedenti === */
.ul-soft::after{ opacity:0 !important; height:0 !important; }
.ul-soft{ padding-bottom:0 !important; }

/* Se qualche underline "soft" è rimasta, disattivala */
[class*="underline"]:after{ opacity:0; }

/* === v14: nuova sottolineatura (blu -> viola -> arancio) piena === */
.rainbow-strong::after,
.rainbow-under::after{
  background: linear-gradient(90deg,#1E88FF 0%, #7A5CFF 55%, #FF6B00 100%) !important;
  opacity: 1 !important;
}

/* Headline: evita look "velato" */
.rainbow-strong::after{ height:2px !important; bottom:-5px !important; }
.rainbow-under::after{ height:2px !important; bottom:-5px !important; }

/* === v14: mini-descrizioni FASI (sottili, colori invertiti) === */
.proc-mini{ display:flex; flex-direction:column; gap:4px; margin:8px 0 0; }
.proc-mini .mini-strong,
.proc-mini .mini-soft{
  font-weight: 400 !important;
  letter-spacing: 0;
}
.proc-mini .mini-strong{ color:#8D95A6 !important; } /* grigio più scuro */
.proc-mini .mini-soft{ color: rgba(255,255,255,.95) !important; }/* === v14: allineamento icona con blocco testo e nomi fasi più grandi === */

.proc-u-left .proc-icon{ margin-top: 6px !important; }
.proc-name{ font-size: 22px !important; line-height:1.15 !important; }
.proc-phase{ font-size: 12px !important; letter-spacing: .12em !important; }


/* === v17: ripristino sottolineature sottili coerenti === */

.rainbow-strong,
.rainbow-under{
  position: relative;
  display: inline-block;
}

.rainbow-strong::after,
.rainbow-under::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-4px;
  height:2px; /* sottile come richiesto */
  border-radius:999px;
  background:linear-gradient(90deg,#1E88FF 0%, #7A5CFF 60%, #FF6B00 100%);
  opacity:1;
}

/* Evita che override precedenti le annullino */
.ul-soft::after{ display:none !important; }


/* === v18: uniforma spessore e avvicina sottolineature === */

.rainbow-strong::after,
.rainbow-under::after{
  height:3px !important;          /* stesso spessore di FARE un'INSEGNA */
  bottom:-2px !important;         /* più vicino al testo */
  border-radius:999px;
  background:linear-gradient(90deg,#1E88FF 0%, #7A5CFF 60%, #FF6B00 100%) !important;
}



/* === v19: underline più vicina + spessore uniforme (incluso REGIA/sweep) === */
.rainbow-strong::after,
.rainbow-under::after,
.rainbow-under strong::after{
  height:3px !important;
  bottom:-1px !important;  /* parecchio più vicino */
}

/* rainbow-under: underline, non cambia peso */
.rainbow-under{
  position: relative;
  display:inline-block;
  padding-bottom: .02em;
}
.rainbow-under::after{
  content:"";
  position:absolute;
  left:0; right:0;
  bottom:-1px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,#1E88FF 0%, #7A5CFF 60%, #FF6B00 100%);
  opacity:1;
}

/* REGIA usa .sweep: uniforma spessore e avvicina */
.sweep::after{
  height:3px !important;
  bottom:-1px !important;
  opacity:1 !important;
  background:linear-gradient(90deg,#1E88FF 0%, #7A5CFF 60%, #FF6B00 100%) !important;
}

/* Evita variazioni di peso su "la sfida non è" */
.problem-title .t-light{ font-weight: 300 !important; }


/* === v20: Una Sola REGIA nero bold + underline sollevata === */
.rainbow-black-strong{
  font-weight: 800;
  color:#000 !important;
  position:relative;
  display:inline-block;
}

.rainbow-black-strong::after{
  content:"";
  position:absolute;
  left:0; right:0;
  bottom:0px;        /* sollevata, molto vicina */
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,#1E88FF 0%, #7A5CFF 60%, #FF6B00 100%);
}/* === v21: allineamento icone FASI con titolo === */


.proc-u-left .proc-icon{
  margin-top:0 !important;
  align-self:flex-start !important;
}

.proc-u-left .proc-icon svg{
  display:block;
}

.proc-u-meta{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}

.proc-name{
  margin-top:0 !important;
}


/* === v22: Problem sub - NESSUNO/CERTEZZE in grigio (come il resto) === */
.problem-sub .rainbow-under strong{
  color: inherit !important;
}

/* === v22: Soluzione title - righe più ravvicinate e stesso colore === */
.sol-title{ line-height: 1.05 !important; }
.sol-title .t-light{ color:#000 !important; }
.sol-title br{ line-height:0.6; }

/* === v22: Icone FASI allineate al nome (proc-name), non a 'Fase 01' === */
.proc-u-left{ align-items:flex-start !important; }
.proc-u-left .proc-icon{
  margin-top: 22px !important; /* sposta in basso quanto basta per allinearsi alla riga del nome */
}

/* === v22: RUOLI compatti stile screenshot === */
#ruoli .persona-buttons .pbtn{
  padding: 14px 18px !important;
  gap: 0 !important;
  align-items: flex-start !important;
}
#ruoli .persona-buttons .pbtn > span:last-child{ display:none !important; } /* nasconde la frase secondaria */
#ruoli .persona-buttons .pbtn .pbtn-desc { display:block !important; }
#ruoli .role-stack{
  display:block !important;
  line-height:1.05 !important;
}
#ruoli .role-part{
  display:block !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  font-size: 19px !important;
  letter-spacing: .02em !important;
}
#ruoli .role-divider{
  display:block !important;
  height:1px !important;
  width:100% !important;
  background: rgba(11,16,32,.20) !important;
  margin: 6px 0 !important;
}
/* Variante su card a destra (sfondo scuro) */
#ruoli .persona-card .role-divider{
  background: rgba(255,255,255,.22) !important;
}



/* === v24: Tripla Garanzia adjustments === */

/* Guarantee card titles bigger */
.garanzia-card h3,
.garanzia-title{
  font-size: 28px !important;
  line-height: 1.1 !important;
  font-weight: 800 !important;
  letter-spacing: .02em;
}

/* Ensure white intro text */
.band.dark h2 span:first-child{
  color:#ffffff !important;
}







/* === v27: RUOLI - ripristino mini-descrizione a sinistra e layout pulito === */
#ruoli .persona-buttons .pbtn{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:20px 22px;
  border-radius:18px;
}

#ruoli .persona-buttons .pbtn .role-stack{
  display:block;
}

#ruoli .persona-buttons .pbtn .role-part{
  display:block;
  font-weight: 800;
  text-transform:uppercase;
  letter-spacing:.02em;
  line-height:1.05;
}

#ruoli .persona-buttons .pbtn .role-divider{
  display:block;
  height:1px;
  width:100%;
  background: rgba(11,16,32,.18);
  margin: 6px 0;
}

/* Mini-descrizione (quella "di fianco") ripristinata e visibile */
#ruoli .persona-buttons .pbtn > span:last-child{
  display:block;
  font-size:13px;
  line-height:1.25;
  font-weight:600;
  color: rgba(11,16,32,.65);
  text-align:right;
  max-width: 28ch;
}

/* Stato attivo */
#ruoli .persona-buttons .pbtn.active > span:last-child{
  color: rgba(255,255,255,.85);
}
#ruoli .persona-buttons .pbtn.active .role-divider{
  background: rgba(255,255,255,.22);
}
#ruoli .persona-buttons .pbtn.active .role-part{
  color:#fff;
}

/* Mobile: la mini-descrizione va sotto, non sparisce */
@media (max-width: 720px){
  #ruoli .persona-buttons .pbtn{
    flex-direction:column;
    align-items:flex-start;
  }
  #ruoli .persona-buttons .pbtn > span:last-child{
    text-align:left;
    max-width:none;
  }
}

/* TRIPLA GARANZIA: "La nostra" bianca su band dark */
.tg-white{ color:#fff !important; }







/* === v29: RUOLI - ripristina descrizioni a destra come screenshot === */
#ruoli .persona-buttons .pbtn > span:last-child{
  display:block !important;
  font-size:14px !important;
  font-weight:700 !important;
  color: rgba(11,16,32,.55) !important;
  text-align:right !important;
  max-width: 22ch !important;
}
#ruoli .persona-buttons .pbtn.active > span:last-child{
  color: rgba(255,255,255,.82) !important;
}
@media (max-width: 720px){
  #ruoli .persona-buttons .pbtn > span:last-child{
    text-align:left !important;
    max-width:none !important;
  }
}






/* === v30: Problema - testo più compatto e più grande === */
.problem-text,
.problem-block,
.problem-copy{
  font-size: 19px !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
}

/* Target direct paragraphs in that section if no class present */
.section-problema p,
#problema p{
  font-size: 19px !important;
  line-height: 1.35 !important;
  margin-bottom: 12px !important;
}

/* Frasi brevi finali (Preventivi che...) più compatte */
.section-problema p:last-of-type,
#problema p:last-of-type{
  margin-bottom: 8px !important;
}


/* === v31: headline lowercase slightly thicker === */
.problem-title .t-light{
  font-weight: 400 !important;  /* was too light */
}/* === v31: sub uppercase words bold === */


/* === v31: RUOLI mini-descriptions vertically centered === */
#ruoli .persona-buttons .pbtn{
  align-items: center !important;
}

#ruoli .persona-buttons .pbtn > span:last-child{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  height:100%;
}



/* === v32: FORCE problem section fixes === */

/* Headline lowercase thicker */
.problem-title span:not(.rainbow-strong){
  font-weight: 500 !important;
}/* Sub sentence uppercase words bold */


/* Make entire problem intro sentence slightly bigger */
.problem-sub{
  font-size: 22px !important;
  line-height: 1.4 !important;
}

/* Paragraph block below: bigger + tighter */
.problem-sub + p,
.problem-sub ~ p{
  font-size: 20px !important;
  line-height: 1.4 !important;
  margin-bottom: 14px !important;
}



/* === v33: RUOLI lato destro - titoli più grandi (come screenshot) === */
#ruoli .persona-card .role-stack .role-part{
  font-size: 20px !important;
  font-weight: 800 !important;
  line-height: 1.05 !important;
}
#ruoli .persona-card .role-divider{
  margin: 8px 0 !important;
  opacity: .35;
}



/* === v34: FIX DEFINITIVO RUOLI DX + claim ingrandita === */
#ruoli .persona-card h3,
#ruoli .persona-card .role-part,
#ruoli .persona-card .role-stack span{
  font-size: 22px !important;
  font-weight: 800 !important;
  line-height: 1.05 !important;
  letter-spacing: .02em;
}





/* === v35: RUOLI DX (pannello) + Zero rimbalzi (garanzia) === */

/* RUOLI a destra: h3 dentro #personaPanel */
#ruoli #personaPanel h3 .role-part{
  font-size: 22px !important;
  font-weight: 800 !important;
  line-height: 1.05 !important;
  letter-spacing: .02em;
}

/* Se più righe, aumenta anche il contenitore */
#ruoli #personaPanel h3 .role-stack{
  display:block;
}






/* === v38: Fix real typography targets === */

/* Claim sotto REGIA (Zero rimbalzi...) */
.sol-tagline{
  font-size: 26px !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
}

/* Problema: paragrafi più grandi e meno distanziati */
.problem-body p{
  font-size: 21px !important;
  line-height: 1.4 !important;
  margin: 0 0 12px !important;
}

.problem-body p.lead{
  margin: 18px 0 14px !important;
}

.problem-body p.tight-lines{
  margin: 0 0 10px !important;
}

/* Sub: parole in stampatello davvero bold */
.problem-sub strong{
  font-weight: 800 !important;
}



    /* === Typography tweaks (Feb 2026) === */
    .caps{ text-transform: uppercase; font-weight: 800; }
    .caps-lite{ text-transform: uppercase; font-weight: 700; }
    .underline{ text-decoration: underline; text-underline-offset: 3px; }
    .blue-claim{ color: var(--blue); font-weight: 800; text-transform: uppercase; }
    .big-intro{ font-size: 1.65rem; font-weight: 300; margin-bottom: 24px; }
    .big-section-title{ font-size: 1.55rem; font-weight: 800; text-transform: uppercase; }
    .problem-qs li{ text-transform: none; }


/* ====== SEZIONI AGGANCIATE (scoped) ====== */
#vedi-prima{
    --bg: #f6f7fb;
    --text: #0b1020;
    --muted: #54607a;
    --dark: #0a1024;
    --dark2:#0b1230;
    --line: rgba(255,255,255,.10);
    --orange: #ff8a00;
    --violet: #7d2cff;
    --blue: #1f46ff;
    --shadow: 0 18px 60px rgba(0,0,0,.25);
    --radius: 18px;
  }
#vedi-prima{ box-sizing: border-box; }
#vedi-prima{
    margin:0;
    font-family:var(--font-main);
    background: var(--bg);
    color: var(--text);
  }
#vedi-prima .container{ max-width: 1160px; margin: 0 auto; padding: 0 20px; }
#vedi-prima .band{ padding: 90px 0; }
#vedi-prima .band.dark{
      color: #fff;
      background: linear-gradient(180deg, #070A13, #0B1030);
      position: relative;
    overflow: hidden;
  }
#vedi-prima /* === HEADER SEZIONE === */
  .section-pre{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:18px;
    font-size:13px;
    font-weight: 800;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:rgba(255,255,255,.60);
  }
#vedi-prima .section-pre .dot{
    width:10px;
    height:10px;
    border-radius:50%;
    background:var(--orange);
    box-shadow:0 0 0 6px rgba(255,138,0,.12);
  }
#vedi-prima .section-pre .line{
    flex:1;
    height:1px;
    background:rgba(255,255,255,.12);
  }
#vedi-prima .section-title{
    margin:0 0 20px;
    font-size:clamp(42px, 5vw, 64px);
    font-weight:700;
    letter-spacing:-0.02em;
    line-height:1.05;
  }
#vedi-prima .section-title .accent{
    font-weight: 800;
    background: linear-gradient(90deg, var(--blue), var(--violet));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
#vedi-prima .section-intro{
    max-width:85ch;
    margin:0 0 24px;
    font-size:22px;
    line-height:1.65;
    color:rgba(255,255,255,.82);
    font-weight:400;
  }
#vedi-prima .section-intro strong{
    font-weight: 800;
    color:#fff;
    text-transform:uppercase;
    letter-spacing:.02em;
  }
#vedi-prima .section-intro .gradient-highlight{
    font-size:23px; /* Aumentato di 1px (era 22px) */
    font-weight:700; /* Ridotto da 800/900 a 700 (meno black) */
    color:var(--orange); /* Arancio invece di gradiente */
    letter-spacing:.02em;
  }
#vedi-prima /* === COPY PRINCIPALE === */
  .copy-block{
    max-width:100%; /* Full width invece di 95ch */
    margin:0 0 70px; /* Rimuovo margin auto */
    padding:40px 48px;
    background: linear-gradient(135deg, rgba(43,108,255,.06), rgba(122,77,255,.04));
    border:1px solid rgba(255,255,255,.14);
    border-radius:20px;
    box-shadow: 
      0 20px 60px rgba(0,0,0,.2),
      inset 0 1px 0 rgba(255,255,255,.08);
    position:relative;
  }
#vedi-prima .copy-block::before{
    content:"";
    position:absolute;
    top:0;
    left:12px; /* Spostato di 12px dal bordo */
    right:12px; /* Spostato di 12px dal bordo */
    height:3px;
    background: linear-gradient(90deg, var(--blue), var(--violet), var(--orange));
    border-radius:2px;
    opacity:.8;
  }
#vedi-prima .copy-lead{
    margin:0 0 28px;
    padding-bottom:24px;
    border-bottom:1px solid rgba(255,255,255,.08);
  }
#vedi-prima .copy-lead p{
    margin:0 0 14px;
    font-size:20px;
    line-height:1.65;
    color:rgba(255,255,255,.72);
    font-weight:300; /* Assottigliato da 400 a 300 */
  }
#vedi-prima .copy-lead p:last-child{ margin-bottom:0; }
#vedi-prima .copy-lead .smaller-italic{
    font-size:19px; /* Ridotto di 1px (era 20px) */
    font-style:italic;
    color:rgba(255,255,255,.65); /* Leggermente più chiaro */
  }
#vedi-prima .copy-lead .indented{
    padding-left:24px; /* Rientro leggero */
  }
#vedi-prima .copy-solution{
    margin:28px 0;
    padding:24px 28px;
    background:rgba(255,138,0,.08);
    border-left:4px solid var(--orange);
    border-radius:8px;
  }
#vedi-prima .copy-solution p{
    margin:0 0 12px;
    font-size:21px;
    line-height:1.6;
    color:rgba(255,255,255,.88);
    font-weight:400; /* Assottigliato da 600 a 400 */
  }
#vedi-prima .copy-solution p:last-child{ margin-bottom:0; }
#vedi-prima /* Strong arancio per frasi chiave */
  .copy-solution .orange-strong{
    font-weight:800;
    color:var(--orange);
    text-transform:uppercase;
    letter-spacing:.02em;
  }
#vedi-prima /* SIMULAZIONE FOTOREALISTICA - ancora più grande e su riga dedicata */
  .copy-solution .highlight{
    display:block; /* Manda a capo */
    color:var(--orange);
    font-size:1.8em; /* Aumentato da 1.6em a 1.8em (80% più grande) */
    font-weight:800; /* Black invece di Extra-Black */
    text-transform:uppercase;
    letter-spacing:.03em;
    margin-bottom:10px; /* Spazio sotto */
  }
#vedi-prima .copy-process{
    margin:28px 0 0;
  }
#vedi-prima .copy-process p{
    margin:0 0 16px;
    font-size:19px;
    line-height:1.7;
    color:rgba(255,255,255,.80);
    font-weight:300; /* Assottigliato da 400 a 300 */
  }
#vedi-prima .copy-process p:last-child{ 
    margin-bottom:0;
    font-size:20px;
    font-weight:400; /* Assottigliato da 500 a 400 */
  }
#vedi-prima .copy-block em{
    font-style:italic;
    color:rgba(255,255,255,.62);
    font-size:.95em;
  }
#vedi-prima .copy-block strong{
    font-weight:800; /* Black invece di Extra-Black (era 900) */
    color:#fff;
    text-transform:uppercase;
    letter-spacing:.02em;
  }
#vedi-prima /* === GRIGLIA ESEMPI === */
  .examples-grid{
    display:grid;
    gap:70px;
    margin-top:60px;
  }
#vedi-prima .example{
    display:grid;
    gap:28px;
  }
#vedi-prima .example-header{
    text-align:center;
    margin-bottom:6px;
  }
#vedi-prima .example-number{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:48px;
    height:48px;
    border-radius:50%;
    background: linear-gradient(135deg, var(--orange), #ff6b00);
    color:#fff;
    font-size:22px;
    font-weight: 800;
    margin-bottom:14px;
    box-shadow:
      0 10px 30px rgba(255,138,0,.35),
      0 0 0 0 rgba(255,138,0,.4);
    animation: pulse 3s ease-in-out infinite;
  }
@keyframes pulse{
    0%, 100%{ box-shadow: 0 10px 30px rgba(255,138,0,.35), 0 0 0 0 rgba(255,138,0,.4); }
    50%{ box-shadow: 0 10px 30px rgba(255,138,0,.45), 0 0 0 8px rgba(255,138,0,.0); }
  }
#vedi-prima .example-title{
    margin:0;
    font-size:28px;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
    color:#fff;
    line-height:1.2;
  }
#vedi-prima .timeline{
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap:22px;
    position:relative;
    padding:8px 0;
  }
#vedi-prima /* Frecce tra le fasi - più eleganti */
  .timeline::before, #vedi-prima .timeline::after{
    content:"→";
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    font-size:36px;
    font-weight: 800;
    background: linear-gradient(90deg, var(--orange), #ff6b00);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    opacity:.75;
    z-index:10;
    text-shadow: 0 0 20px rgba(255,138,0,.3);
  }
#vedi-prima .timeline::before{
    left:calc(33.33% - 20px);
  }
#vedi-prima .timeline::after{
    left:calc(66.66% - 20px);
  }
#vedi-prima .phase{
    position:relative;
    background: linear-gradient(145deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
    border:1px solid rgba(255,255,255,.12);
    border-radius:16px;
    padding:20px;
    transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }
#vedi-prima .phase::before{
    content:"";
    position:absolute;
    inset:0;
    border-radius:16px;
    padding:1px;
    background: linear-gradient(145deg, rgba(255,255,255,.1), transparent);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity:0;
    transition:opacity 0.4s ease;
  }
#vedi-prima .phase:hover{
    border-color:rgba(255,255,255,.22);
    background: linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
    transform:translateY(-6px) scale(1.02);
    box-shadow:0 24px 60px rgba(0,0,0,.35);
  }
#vedi-prima .phase:hover::before{
    opacity:1;
  }
#vedi-prima .phase-label{
    display:block;
    margin-bottom:14px;
    font-size:11px;
    font-weight: 800;
    letter-spacing:.16em;
    text-transform:uppercase;
    text-align:center;
    padding:6px 12px;
    border-radius:6px;
    width:fit-content;
    margin-left:auto;
    margin-right:auto;
  }
#vedi-prima .phase-label.prima{ 
    color:#8fb7ff; 
    background:rgba(143,183,255,.12);
  }
#vedi-prima .phase-label.progetto{ 
    color:#ff8a00; 
    background:rgba(255,138,0,.12);
  }
#vedi-prima .phase-label.dopo{ 
    color:#7dd87d; 
    background:rgba(125,216,125,.12);
  }
#vedi-prima .phase-image{
    position:relative;
    width:100%;
    aspect-ratio:4/3;
    background: linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
    border-radius:12px;
    margin-bottom:16px;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.08);
  }
#vedi-prima .phase-image::before{
    content:"";
    position:absolute;
    inset:0;
    background:
      repeating-linear-gradient(45deg, 
        rgba(255,255,255,.015) 0px,
        rgba(255,255,255,.015) 12px,
        transparent 12px,
        transparent 24px
      );
  }
#vedi-prima .phase-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
#vedi-prima .phase-caption{
    font-size:15px;
    line-height:1.5;
    color:rgba(255,255,255,.75);
    text-align:center;
    font-weight:400;
    min-height:3em;
    display:flex;
    align-items:center;
    justify-content:center;
  }
#vedi-prima .phase-caption strong{
    font-weight:700;
    color:rgba(255,255,255,.95);
  }
#vedi-prima /* Placeholder text per immagini - più elegante */
  .img-placeholder{
    font-size:13px;
    font-weight:600;
    color:rgba(255,255,255,.35);
    text-align:center;
    padding:40px 20px;
    letter-spacing:.05em;
    line-height:1.6;
  }
#vedi-prima /* === CHIUSURA SEZIONE === */
  .section-closing{
    margin-top:60px;
    padding-top:40px;
    border-top:1px solid rgba(255,255,255,.10);
    text-align:center;
  }
#vedi-prima .closing-text{
    max-width:70ch;
    margin:0 auto 32px;
    font-size:21px;
    line-height:1.6;
    color:rgba(255,255,255,.88);
    font-weight:400;
  }
#vedi-prima .closing-text strong{
    font-weight: 800;
    color:#fff;
    text-transform:uppercase;
    letter-spacing:.02em;
  }
#vedi-prima .cta-wrapper{
    display:flex;
    justify-content:center;
    gap:14px;
    flex-wrap:wrap;
  }
#vedi-prima .cta-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:18px 40px;
    font-size:18px;
    font-weight: 800;
    letter-spacing:.08em;
    text-transform:uppercase;
    text-decoration:none;
    color:#fff;
    background: linear-gradient(135deg, var(--orange), #ff6b00);
    border-radius:14px;
    border:none;
    cursor:pointer;
    box-shadow: 0 4px 20px rgba(255,138,0,.35);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }
#vedi-prima .cta-btn:hover{
    transform:translateY(-2px);
    box-shadow: 0 8px 30px rgba(255,138,0,.45);
  }
#vedi-prima /* === RESPONSIVE === */
  @media (max-width: 900px){
    .timeline{
      grid-template-columns:1fr;
      gap:40px;
    }
    .timeline::before,
    .timeline::after{
      display:none;
    }
    .section-title{
      font-size:40px;
    }
    .section-intro{
      font-size:19px;
    }
    .copy-block{
      padding:32px 28px;
      margin-bottom:50px;
    }
    .copy-solution{
      padding:20px 22px;
    }
    .example-title{
      font-size:24px;
    }
    .examples-grid{
      gap:50px;
    }
  }
@media (max-width: 640px){
#vedi-prima .band{ padding: 60px 0; }
#vedi-prima .section-title{
      font-size:32px;
    }
#vedi-prima .section-intro{
      font-size:17px;
    }
#vedi-prima .copy-block{
      padding:24px 20px;
    }
#vedi-prima .copy-lead p, #vedi-prima .copy-solution p, #vedi-prima .copy-process p{
      font-size:16px;
    }
#vedi-prima .example-number{
      width:40px;
      height:40px;
      font-size:18px;
    }
#vedi-prima .example-title{
      font-size:20px;
    }
#vedi-prima .phase{
      padding:16px;
    }
}

#galleria{
    --bg: #f6f7fb;
    --text: #0b1020;
    --muted: #54607a;
    --dark: #0a1024;
    --orange: #ff8a00;
    --violet: #7d2cff;
    --blue: #1f46ff;
    --shadow: 0 18px 60px rgba(0,0,0,.25);
    --radius: 18px;
  }
#galleria{ box-sizing: border-box; }
#galleria{
    margin:0;
    font-family:var(--font-main);
    background: var(--bg);
    color: var(--text);
  }
#galleria .container{ max-width: 1160px; margin: 0 auto; padding: 0 20px; }
#galleria /* Band a sfondo chiaro */
  .band{ padding: 90px 0; }
#galleria .band.light{
    background: var(--bg);
    color: var(--text);
    position: relative;
  }
#galleria /* === HEADER SEZIONE === */
  .section-pre{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:18px;
    font-size:13px;
    font-weight: 800;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--muted);
  }
#galleria .section-pre .dot{
    width:10px;
    height:10px;
    border-radius:50%;
    background:var(--orange);
    box-shadow:0 0 0 6px rgba(255,138,0,.12);
  }
#galleria .section-pre .line{
    flex:1;
    height:1px;
    background:rgba(11,16,32,.12);
  }
#galleria .section-title{
    margin:0 0 20px;
    font-size:clamp(42px, 5vw, 64px);
    font-weight:700;
    letter-spacing:-0.02em;
    line-height:1.05;
    color:var(--text);
  }
#galleria .section-title .accent{
    font-weight: 800;
    background: linear-gradient(90deg, var(--blue), var(--violet));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
#galleria .section-intro{
    max-width:85ch;
    margin:0 auto 32px; /* Spazio dopo la subheadline prima della sottolineatura */
    font-size:clamp(28px, 3vw, 38px);
    line-height:1.3;
    color:var(--text);
    font-weight:400;
  }
#galleria .section-intro strong{
    font-weight:800;
    color:var(--text);
    text-transform:uppercase;
    letter-spacing:.02em;
  }
#galleria /* Sottolineatura gradiente full-width */
  .section-divider{
    max-width:100%;
    height:3px;
    margin:0 auto 48px; /* Spazio dopo la sottolineatura prima del subtitle */
    background: linear-gradient(90deg, var(--blue), var(--violet), var(--orange));
    border-radius:2px;
    opacity:.8;
  }
#galleria /* Sottotitolo centrato e italico - più grande */
  .section-subtitle{
    max-width:85ch;
    margin:0 auto 60px; /* Spazio dopo il subtitle prima della galleria */
    font-size:22px;
    line-height:1.6;
    color:var(--muted);
    font-weight:400;
    font-style:italic;
    text-align:center;
  }
#galleria /* === GRIGLIA MINI-GALLERIA === */
  .gallery-grid{
    display:grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap:20px;
    margin-bottom:60px;
  }
#galleria .gallery-item{
    position:relative;
    background:#fff;
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 8px 30px rgba(0,0,0,.06);
    transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor:pointer;
  }
#galleria .gallery-item:hover{
    transform:translateY(-6px) scale(1.02);
    box-shadow:0 16px 50px rgba(0,0,0,.12);
  }
#galleria .gallery-image{
    position:relative;
    width:100%;
    aspect-ratio:4/3;
    background: #1a1f2e; /* Grigio scuro invece del gradiente chiaro */
    overflow:hidden;
  }
#galleria .gallery-image::before{
    content:"";
    position:absolute;
    inset:0;
    background:
      repeating-linear-gradient(45deg, 
        rgba(255,255,255,.02) 0px,
        rgba(255,255,255,.02) 12px,
        transparent 12px,
        transparent 24px
      );
  }
#galleria .gallery-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
#galleria /* Overlay al hover */
  .gallery-overlay{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.50);
    opacity:0;
    transition:opacity 0.3s ease;
    display:flex;
    align-items:center;
    justify-content:center;
  }
#galleria .gallery-item:hover .gallery-overlay{
    opacity:1;
  }
#galleria .gallery-overlay-icon{
    width:48px;
    height:48px;
    background:rgba(255,255,255,.2);
    backdrop-filter:blur(10px);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    transform:scale(0.8);
    transition:transform 0.3s ease;
  }
#galleria .gallery-item:hover .gallery-overlay-icon{
    transform:scale(1);
  }
#galleria .gallery-overlay-icon svg{
    width:24px;
    height:24px;
  }
#galleria /* Placeholder per immagini */
  .img-placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:13px;
    font-weight:600;
    color:rgba(255,255,255,.35); /* Testo chiaro su sfondo scuro */
    text-align:center;
    padding:40px 20px;
    line-height:1.6;
  }
#galleria /* === CTA GALLERIA COMPLETA === */
  .gallery-cta-section{
    text-align:center;
    padding:50px 40px;
    background: linear-gradient(135deg, #0d1626, #1a2236); /* Blu scuro invece di chiaro */
    border-radius:20px;
    border:1px solid rgba(43,108,255,.3);
    box-shadow:0 16px 50px rgba(0,0,0,.25);
  }
#galleria .gallery-cta-title{
    margin:0 0 18px;
    font-size:clamp(32px, 4vw, 48px);
    font-weight:700;
    letter-spacing:.02em;
    color:#fff; /* Bianco invece di var(--text) */
    line-height:1.2;
  }
#galleria .gallery-cta-title .line1{
    display:block;
    font-weight:600;
    font-size:0.5em;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:rgba(255,255,255,.65); /* Chiaro invece di var(--muted) */
  }
#galleria .gallery-cta-title .line2{
    display:block;
    font-weight: 800;
    font-size:1.4em;
    background: linear-gradient(90deg, var(--blue), var(--violet));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    text-transform:uppercase;
    letter-spacing:.02em;
    margin:4px 0;
  }
#galleria .gallery-cta-title .line3{
    display:block;
    font-weight:600;
    font-size:0.5em;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:rgba(255,255,255,.65); /* Chiaro invece di var(--muted) */
  }
#galleria .gallery-cta-text{
    margin:0 0 32px;
    font-size:18px;
    line-height:1.6;
    color:rgba(255,255,255,.75); /* Chiaro invece di var(--muted) */
    font-weight:400;
    max-width:70ch;
    margin-left:auto;
    margin-right:auto;
  }
#galleria .gallery-cta-text strong{
    font-weight:700;
    color:#fff; /* Bianco invece di var(--text) */
  }
#galleria .cta-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:18px 40px;
    font-size:18px;
    font-weight: 800;
    letter-spacing:.08em;
    text-transform:uppercase;
    text-decoration:none;
    color:#fff;
    background: linear-gradient(135deg, var(--orange), #ff6b00);
    border-radius:14px;
    border:none;
    cursor:pointer;
    box-shadow: 0 4px 20px rgba(255,138,0,.35);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }
#galleria .cta-btn:hover{
    transform:translateY(-2px);
    box-shadow: 0 8px 30px rgba(255,138,0,.45);
  }
#galleria .cta-btn svg{
    width:20px;
    height:20px;
  }
#galleria /* === RESPONSIVE === */
  @media (max-width: 900px){
    .gallery-grid{
      grid-template-columns:1fr;
    }
    .section-title{
      font-size:36px;
    }
    .section-intro{
      font-size:24px;
    }
    .section-subtitle{
      font-size:18px;
    }
    .gallery-cta-section{
      padding:40px 24px;
    }
    .gallery-cta-title{
      font-size:26px;
    }
  }

#testimonianze{
  --bg:#070A13;--text:#fff;--muted:#96a0b4;--muted2:#6b7894;
  --orange:#ff8a00;--violet:#7d2cff;--blue:#1f46ff;--blue-light:#60A5FA;
  --gold:#fbbf24;--card-bg:rgba(255,255,255,.04);--card-border:rgba(255,255,255,.08);
  --card-hover:rgba(255,255,255,.07);--radius:20px;
}
#testimonianze{box-sizing:border-box;margin:0;padding:0}
#testimonianze{font-family:var(--font-main);background:var(--bg);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased}
#testimonianze .testimonials-section{position:relative;padding:100px 0 120px;background:radial-gradient(1000px 700px at 10% 20%,rgba(43,108,255,.12),transparent 60%),radial-gradient(800px 600px at 90% 60%,rgba(125,44,255,.10),transparent 55%),radial-gradient(600px 400px at 50% 80%,rgba(255,138,0,.06),transparent 50%),linear-gradient(180deg,#070A13,#0B1030 40%,#0a0e22);overflow:hidden}
#testimonianze .testimonials-section::before, #testimonianze .testimonials-section::after{content:'';position:absolute;border-radius:50%;filter:blur(120px);pointer-events:none;opacity:.35}
#testimonianze .testimonials-section::before{width:500px;height:500px;top:-120px;left:-80px;background:radial-gradient(circle,rgba(43,108,255,.4),transparent 70%)}
#testimonianze .testimonials-section::after{width:400px;height:400px;bottom:-60px;right:-40px;background:radial-gradient(circle,rgba(125,44,255,.35),transparent 70%)}
#testimonianze .container{max-width:1160px;margin:0 auto;padding:0 20px;position:relative;z-index:2}
#testimonianze .testi-header{text-align:center;margin-bottom:70px}
#testimonianze .testi-kicker{display:inline-block;font-size:28px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-light);margin-bottom:28px;opacity:0;transform:translateY(16px);animation:fadeUp .7s .2s forwards}
#testimonianze .testi-title{font-size:clamp(26px,4.5vw,46px);font-weight:700;line-height:1.15;letter-spacing:-.02em;margin-bottom:18px;opacity:0;transform:translateY(20px);animation:fadeUp .7s .35s forwards}
#testimonianze .testi-title .upper{font-weight: 800}
#testimonianze .testi-title .accent{background:linear-gradient(90deg,var(--blue),var(--violet),var(--orange));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight: 800}
#testimonianze .testi-subtitle{font-size:17px;font-weight:400;color:var(--muted);max-width:640px;margin:0 auto;line-height:1.6;opacity:0;transform:translateY(16px);animation:fadeUp .7s .5s forwards}
#testimonianze .testi-stats{display:flex;justify-content:center;gap:50px;margin-top:40px;opacity:0;transform:translateY(16px);animation:fadeUp .7s .65s forwards}
#testimonianze .testi-stat{text-align:center}
#testimonianze .testi-stat-num{font-size:36px;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,#fff 40%,var(--blue-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
#testimonianze .testi-stat-label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted2);margin-top:4px}
#testimonianze .testi-grid{columns:3;column-gap:22px;max-width:1160px;margin:0 auto}
@media(max-width:960px){
#testimonianze .testi-grid{columns:2}
}
@media(max-width:600px){
#testimonianze .testi-grid{columns:1;max-width:500px}
}
#testimonianze .testi-card{break-inside:avoid;margin-bottom:22px;padding:28px 26px 24px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);position:relative;overflow:hidden;transition:background .35s,border-color .35s,transform .35s;opacity:0;transform:translateY(30px) scale(.97)}
#testimonianze .testi-card.visible{opacity:1;transform:translateY(0) scale(1);transition:opacity .65s cubic-bezier(.22,.9,.36,1),transform .65s cubic-bezier(.22,.9,.36,1),background .35s,border-color .35s}
#testimonianze .testi-card:hover{background:var(--card-hover);border-color:rgba(255,255,255,.14);transform:translateY(-3px) scale(1.005)}
#testimonianze .testi-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--blue),var(--violet),var(--orange));opacity:0;transition:opacity .4s}
#testimonianze .testi-card:hover::before{opacity:1}
#testimonianze .testi-card.featured{border-color:rgba(43,108,255,.22)}
/* featured non mostra più la linea gradient fissa: solo :hover come le altre */
#testimonianze .testi-stars{display:flex;justify-content:center;gap:3px;margin-bottom:14px}
#testimonianze .testi-body-wrap{position:relative;margin-bottom:20px}
#testimonianze .testi-quote-icon{position:absolute;top:-70px;left:-40px;font-size:180px;line-height:1;font-weight:700;color:rgba(255,255,255,.06);user-select:none;pointer-events:none}
#testimonianze .testi-star{width:15px;height:15px;fill:var(--gold);filter:drop-shadow(0 0 4px rgba(251,191,36,.3))}
#testimonianze .testi-body{position:relative;z-index:1;font-size:14.5px;font-weight:400;line-height:1.65;color:rgba(255,255,255,.78);flex:1;min-width:0}
#testimonianze .testi-hl{display:block;margin:14px 0;padding:12px 16px;background:linear-gradient(135deg,rgba(43,108,255,.08),rgba(125,44,255,.06));border-left:3px solid var(--blue-light);border-radius:0 10px 10px 0;font-size:14px;font-weight:500;color:rgba(255,255,255,.92);line-height:1.55;font-style:italic}
#testimonianze .testi-author{display:flex;align-items:center;gap:14px;padding-top:16px;border-top:1px solid rgba(255,255,255,.07)}
#testimonianze .testi-avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--violet));display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#fff;flex-shrink:0;text-transform:uppercase;letter-spacing:-.02em;border:2px solid rgba(255,255,255,.1)}
#testimonianze .testi-author-info{flex:1;min-width:0;text-align:right;display:flex;flex-direction:column;gap:4px;align-items:flex-end}
#testimonianze .testi-author-name{font-weight:700;font-size:15px;text-align:right}
#testimonianze .testi-author-role{font-size:12px;opacity:.7;text-align:right}
#testimonianze .testi-author-company{font-size:12px;opacity:1;text-align:right;color:#60a5fa;font-weight:600}
#testimonianze .testi-author-loc{font-size:12px;text-align:right;color:rgba(255,255,255,.55);font-weight:500;margin-top:4px}
#testimonianze .testi-author-prov{display:inline;margin-left:4px;color:rgba(255,255,255,.45)}
#testimonianze .testi-cta-band{margin-top:70px;text-align:center;opacity:0;transform:translateY(20px)}
#testimonianze .testi-cta-band.visible{opacity:1;transform:translateY(0);transition:opacity .7s .2s,transform .7s .2s}
#testimonianze .testi-cta-text{font-size:20px;font-weight:600;margin-bottom:24px;color:rgba(255,255,255,.85)}
#testimonianze .testi-cta-text strong{color:#fff}
#testimonianze .testi-cta-btn{display:inline-flex;align-items:center;gap:10px;padding:18px 40px;border:none;border-radius:999px;font-family:inherit;font-size:16px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--blue),var(--violet));cursor:pointer;text-decoration:none;position:relative;overflow:hidden;transition:transform .3s,box-shadow .3s;box-shadow:0 8px 30px rgba(43,108,255,.3)}
#testimonianze .testi-cta-btn:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(43,108,255,.45)}
#testimonianze .testi-cta-btn::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.12));opacity:0;transition:opacity .3s}
#testimonianze .testi-cta-btn:hover::after{opacity:1}
#testimonianze .testi-cta-arrow{font-size:20px;transition:transform .3s}
#testimonianze .testi-cta-btn:hover .testi-cta-arrow{transform:translateX(4px)}
@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
#testimonianze .testi-particle{position:absolute;width:4px;height:4px;border-radius:50%;background:rgba(96,165,250,.25);pointer-events:none;animation:floatParticle 12s infinite ease-in-out}
@keyframes floatParticle{0%,100%{transform:translateY(0) translateX(0);opacity:.2}50%{transform:translateY(-60px) translateX(20px);opacity:.5}}
@media(max-width:600px){
#testimonianze .testimonials-section{padding:70px 0 80px}
#testimonianze .testi-header{margin-bottom:50px}
#testimonianze .testi-kicker{font-size:22px}
#testimonianze .testi-stats{gap:30px}
#testimonianze .testi-stat-num{font-size:28px}
#testimonianze .testi-card{padding:22px 20px 20px}
#testimonianze .testi-avatar{width:54px;height:54px;font-size:17px}
#testimonianze .testi-cta-band{margin-top:50px}
}
#testimonianze .testi-card:nth-child(3n+1){
  background: linear-gradient(135deg, rgba(96,165,250,.08), rgba(255,255,255,0));
}
#testimonianze .testi-card:nth-child(3n+2){
  background: linear-gradient(135deg, rgba(255,159,64,.08), rgba(255,255,255,0));
}
#testimonianze .testi-card:nth-child(3n+3){
  background: var(--card-bg);
}

/* FAQ placeholder (sfondo bianco) */

/* FAQ (sfondo bianco) */
#faq.faq-section{
  background:#ffffff;
  color:#0B1020;
  padding:84px 0;
}
#faq.faq-section .container{
  max-width:1160px;
  margin:0 auto;
  padding:0 20px;
}

/* Head */
#faq .faq-head{
  text-align:center;
  max-width:860px;
  margin:0 auto;
}
#faq .faq-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  letter-spacing:.18em;
  font-weight: 800;
  font-size:13px;
  text-transform:uppercase;
  color:rgba(11,16,32,.55);
  margin-bottom:10px;
}
#faq .faq-pill{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,138,0,.14);
  color:#ff8a00;
  font-weight: 800;
  letter-spacing:.14em;
  font-size:12px;
}
#faq .faq-kicker-text{
  font-weight: 800;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(11,16,32,.55);
}
#faq .faq-kicker::before{display:none}
#faq h2{
  margin:0 0 16px;
  font-weight: 800;
  letter-spacing:-.02em;
  font-size:clamp(34px, 3.6vw, 54px);
  line-height:1.06;
}
#faq .faq-strong{
  text-transform:uppercase;
  font-weight: 800;
  color:#0B1020;
}
#faq .faq-kicker::before{
  content:"";
  width:10px;height:10px;border-radius:50%;
  background:#ff8a00;
  box-shadow:0 0 0 6px rgba(255,138,0,.14);
}
#faq .faq-sub{
  margin:0;
  color:rgba(11,16,32,.72);
  font-size:18px;
  line-height:1.45;
}

/* List */
#faq .faq-list{
  max-width:980px;
  margin:42px auto 0;
}
#faq details.faq-item{
  border:1px solid rgba(11,16,32,.14);
  border-radius:18px;
  background:#ffffff;
  margin:14px 0;
  overflow:hidden;
  box-shadow:0 10px 28px rgba(11,16,32,.06);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
#faq details.faq-item:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 34px rgba(11,16,32,.08);
  border-color:rgba(37,99,235,.20);
}
#faq summary{
  list-style:none;
  cursor:pointer;
  padding:20px 54px 20px 22px; /* spazio a destra per freccetta */
  font-weight: 800;
  display:flex;
  gap:14px;
  align-items:flex-start;
  position:relative;
  background:#0b1e3d;
  color:#fff;
}
#faq summary::after{
  content:"\25BE"; /* ▾ */
  position:absolute;
  right:20px;
  top:22px;
  font-size:18px;
  line-height:1;
  color:rgba(255,255,255,.85);
  transition:transform .2s ease, color .2s ease;
}
#faq details[open] summary::after{
  transform:rotate(180deg);
  color:rgba(125,44,255,.9);
}
#faq summary::-webkit-details-marker{ display:none; }

/* Icon */
#faq .faq-icon{
  display:none;
}
#faq details[open] .faq-icon{
  transform:rotate(45deg);
  background:rgba(125,44,255,.10);
  color:#7d2cff;
}

#faq .faq-q{
  flex:1;
  line-height:1.25;
  color:#ffffff; /* blu scuro per le domande */
}
#faq details[open] summary{
  background:#08172e;
}

/* Answer */
#faq .faq-a{
  padding:16px 22px 22px 22px;
  color:rgba(11,16,32,.82);
  line-height:1.6;
  background:#ffffff; /* sfondo chiaro per le risposte */
  border-top:1px solid rgba(11,16,32,.10);
}
#faq .faq-a p{ margin:10px 0; }
#faq .faq-a ul{ margin:10px 0 10px 18px; padding:0; }
#faq .faq-a li{ margin:6px 0; }
#faq .fineprint{ font-size:13px; opacity:.78; }

@media (max-width: 720px){
  #faq.faq-section{ padding:58px 0; }
  #faq summary{ padding:16px 44px 16px 16px; font-size:15px; }
  #faq .faq-a{ padding:0 16px 16px 16px; }
  #faq .faq-icon{ width:26px;height:26px;border-radius:9px; }
}


/* Extra tweaks richiesti */
.h2-gradient{
  background:linear-gradient(90deg, #00AEEF, #7F00FF);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.caps-strong{
  text-transform:uppercase;
  font-weight: 800;
  letter-spacing:.06em;
  font-size:1.18em;
}

/* === TOPBAR: CTA + CONTATTI (button) === */
.topbar-nav .cta-nav{
  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 55%, #e86f00 100%);
  color:#0B1020;
  font-weight: 800;
  padding: 10px 12px;
  border-radius: 14px;
  box-shadow: 0 12px 30px rgba(255,138,0,.18);
}
.topbar-nav .cta-nav:hover{
  background: linear-gradient(135deg, #ffc36b 0%, #ff970f 55%, #f07a00 100%);
  color:#0B1020;
}
.topbar-nav .contatti-btn{
  appearance:none;
  border:0;
  cursor:pointer;
  padding: 10px 12px;
  border-radius: 14px;
  font-weight: 800;
  background: rgba(255,255,255,.10);
  color: rgba(255,255,255,.92);
  transition: background .15s ease, transform .15s ease;
  white-space: nowrap;
}
.topbar-nav .contatti-btn:hover{
  background: rgba(255,255,255,.14);
  transform: translateY(-1px);
}

/* === POPUP CONTATTI (stile screenshot) === */
.contatti-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
.contatti-box{
    width: 520px;
  max-  width: 520px;
  background: #f3f4f7;
  border-radius: 24px;
  padding: 22px 22px 18px;
  box-shadow: 0 26px 80px rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.18);
}
.contatti-head{
  display:flex;
  align-items:center;
  justify-content: flex-end;
  gap: 10px;
  margin-bottom: 18px;
}
.contatti-title{
  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 55%, #e86f00 100%);
  color:#fff;
  font-weight: 800;
  font-size: 14px;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 10px 14px;
  border-radius: 14px;
}
.close-popup{
  width: 40px;
  height: 40px;
  border-radius: 14px;
  border: 0;
  background: rgba(255,255,255,.65);
  color:#0B1020;
  font-size: 22px;
  cursor: pointer;
}
.contatto-card{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 14px;
  background: #eceef3;
  border-radius: 18px;
  padding: 16px 16px;
  text-decoration:none;
  border: 1px solid rgba(11,16,32,.06);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  margin-bottom: 14px;
}
.contatto-card:hover{
  transform: translateY(-1px);
  background: #f0f2f7;
  box-shadow: 0 14px 34px rgba(11,16,32,.10);
}
.contatto-left{
  display:flex;
  align-items:center;
  gap: 14px;
}
.contatto-ico{
  width: 42px;
  height: 42px;
  border-radius: 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(125,44,255,.10);
  color: #5a4bff;
}
.contatto-ico svg{
  width: 22px;
  height: 22px;
}
.contatto-label{
  font-weight: 800;
  
  font-size: 16px;

  background: #0057B8;
  color: #ffffff;
  padding: 6px 10px;
  border-radius: 10px;
  display: inline-block;
}
.contatto-sub{
  color: rgba(11,16,32,.62);
  font-size: 13px;
  margin-top: 2px;
}
.contatto-right{
  font-weight: 800;
  color:#0B1020;
  text-align: right;
  letter-spacing: .02em;

  font-size: 28px;
  font-weight: 800;
  letter-spacing: .02em;
}
.nota-contatti{
  margin: 6px 6px 0;
  font-size: 13px;
  color: rgba(11,16,32,.55);
}

/* --- NAV separators + Montserrat --- */
.topbar-nav{
  display:flex;
  align-items:center;
  gap:0;
}
.topbar-nav a{
  font-family:var(--font-main);
  letter-spacing: .02em;
  position: relative;
  padding: 10px 14px;
}
.topbar-nav a:not(:last-child)::after{
  content: "|";
  position:absolute;
  right: -2px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(255,255,255,.45);
  font-weight: 600;
}
.topbar-cta{
  font-family:var(--font-main);
}

/* anchor landing */
#galleria-cta{ scroll-margin-top: 110px; }
#testimonianze{ scroll-margin-top: 110px; }
#contatti{ scroll-margin-top: 110px; }


/* --- CONTATTI popup: redesign (no orange gradients) --- */
.contatti-overlay{
  background: rgba(8,10,20,.62) !important;
  backdrop-filter: blur(6px);
}

.contatti-box{
  width: 640px !important;
  max-width: calc(100vw - 28px) !important;
  background: #ffffff !important;
  border-radius: 26px !important;
  padding: 26px 26px 22px !important;
  box-shadow: 0 28px 90px rgba(0,0,0,.42) !important;
  border: 1px solid rgba(20,30,60,.10) !important;
}

.contatti-head{
  display:flex;
  align-items:flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 18px;
}

.contatti-title{
  background: none !important;
  color: #0b1e3d !important;
  font-family:var(--font-main);
  font-weight: 800 !important;
  font-size: 34px !important;
  line-height: 1.05;
  padding: 0 !important;
  border-radius: 0 !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
}

.contatti-sub{
  margin-top: 8px;
  color: rgba(11,30,61,.72);
  font-size: 15px;
  line-height: 1.35;
}

.close-popup{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  border: 1px solid rgba(11,30,61,.12);
  background: rgba(245,247,255,.9);
  color: #0b1e3d;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  transition: transform .12s ease, background .12s ease;
}
.close-popup:hover{ transform: scale(1.03); background: rgba(235,239,255,.98); }

.contatti-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.contatto-card{
  background: #f6f7fb !important;
  border: 1px solid rgba(11,30,61,.10) !important;
  border-radius: 18px !important;
  padding: 16px 18px !important;
  transition: transform .14s ease, box-shadow .14s ease, background .14s ease;
}
.contatto-card:hover{
  background: #f0f3ff !important;
  box-shadow: 0 10px 30px rgba(11,30,61,.10);
  transform: translateY(-1px);
}

.contatto-left{
  display:flex;
  align-items:center;
  gap: 14px;
  min-width: 0;
}

.contatto-ico{
  width: 46px !important;
  height: 46px !important;
  border-radius: 16px !important;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(90,75,255,.10) !important;
  color: #274bff !important;
}
.contatto-ico svg{
  width: 22px;
  height: 22px;
  stroke-width: 2.2;
}

.contatto-meta{
  display:flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.contatto-meta strong{
  font-weight: 800;
  color: #0b1e3d;
  letter-spacing: .01em;
}
.contatto-meta span{
  color: rgba(11,30,61,.70);
  font-size: 13px;
}

.contatto-right{
  font-family:var(--font-main);
  font-weight: 800;
  font-size: 18px;
  color: #0b1e3d;
  text-align: right;
  white-space: nowrap;
}

.nota-contatti{
  margin-top: 14px;
  color: rgba(11,30,61,.62);
  font-size: 13px;
}

/* wider layout on desktop */
@media (min-width: 720px){
  .contatti-grid{
    grid-template-columns: 1fr;
  }
}



/* === vNext: richieste estetiche (gradient, contrasti, chips) === */

/* Titolo “LAVORO FATTO BENE” gradient blu→viola→arancio */
.grad-text{
  background: linear-gradient(90deg, #1f46ff 0%, #7d2cff 52%, #ff8a00 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* SOLO INSEGNE · Perché? / SOLO BRESCIA · Perché? a tutta colonna */
.sol-only-title{
  display:block;
  width:100%;
  font-size: 30px;
  font-weight:800;
  letter-spacing:.04em;
}
@media (max-width:720px){
  .sol-only-title{font-size: 24px;}
}

/* SPOILER styling */
.spoiler-label{
  font-style: italic;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255,255,255,.70);
}
.spoiler-strong{
  text-transform: none;
}

/* FAQ footer: testi sottili leggermente più pieni */
.faq-footer-text{
  font-weight: 5500;
}
.faq-footer-text .fft-rest{
  font-weight: 500;
  color: rgba(17,28,54,.82);
}

/* TRIPLA GARANZIA: migliora contrasto e coerenza box “COSA…” */
#garanzia .drow{
  background: #0b1230;
  border: 1px solid rgba(255,255,255,.10);
}
#garanzia .drow p{
  color: rgba(255,255,255,.86);
}
#garanzia .twobox{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 18px;
}
#garanzia .ibox{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 16px;
  padding: 18px 18px 16px;
}
#garanzia .ibox .it{
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 800;
  color: rgba(255,255,255,.72);
  margin-bottom: 10px;
}
#garanzia .ibox p{
  margin:0;
  color: rgba(255,255,255,.90);
}


#garanzia .cta-wrapper{
  margin-top: 18px;
}
#garanzia .cta-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 14px 18px;
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  background: linear-gradient(90deg, var(--orange) 0%, #ffb14a 35%, var(--orange) 100%);
  color: #121824;
  box-shadow: 0 14px 30px rgba(255,138,0,.22);
  border: 1px solid rgba(255,255,255,.14);
}
#garanzia .cta-chip:hover{
  transform: translateY(-1px);
}

/* Responsive */
@media (max-width: 860px){
  #garanzia .twobox{ grid-template-columns: 1fr; }
}

/* vFix: ALLERTA MALTEMPO centrato + testi leggermente più grandi */
.malt-newstitle, .malt-subtitle{ text-align:center; }
.malt-subtitle{ max-width: 980px; margin-left:auto; margin-right:auto; }
.malt-body{ font-size:19px; line-height:1.7; font-weight:400; }
.malt-claim{ font-size:19px; font-weight:600; }
.malt-pill{ font-size:19px; font-weight:600; }
@media (max-width:720px){
  .malt-body,.malt-claim,.malt-pill{ font-size:16px; }
}



/* CTA microcopy helpers */
.cta-micro{
  margin:12px 0 0;
  font-size:13px;
  line-height:1.5;
  opacity:.9;
  color:inherit;
}
.hero-actions .cta-micro{
  text-align:left;
  max-width:680px;
  color:rgba(255,255,255,.82);
}
.gallery-cta .cta-micro,
.cta-wrapper .cta-micro,
.testi-cta-band .cta-micro,
.sim-bridge .cta-micro{
  text-align:center;
}

/* ============================================================
   ALLERTA MALTEMPO, stile articolo di giornale, ma in Montserrat
   ============================================================ */
[id*="allerta" i],
[class*="allerta" i],
[id*="maltempo" i],
[class*="maltempo" i]{
  font-family:var(--font-main) !important;
}

.allerta-article,
.news-article,
.article-newspaper,
[id*="allerta" i] article,
[class*="allerta" i] article{
  font-family:var(--font-main) !important;
  position:relative;
}

.allerta-article .article-label,
.news-article .article-label,
.article-newspaper .article-label,
[id*="allerta" i] .article-label,
[class*="allerta" i] .article-label{
  font-family:var(--font-main) !important;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight: 800;
}

.allerta-article h1,
.allerta-article h2,
.allerta-article h3,
.news-article h1,
.news-article h2,
.news-article h3,
.article-newspaper h1,
.article-newspaper h2,
.article-newspaper h3,
[id*="allerta" i] h1,
[id*="allerta" i] h2,
[id*="allerta" i] h3,
[class*="allerta" i] h1,
[class*="allerta" i] h2,
[class*="allerta" i] h3{
  font-family:var(--font-main) !important;
  font-weight: 800;
  letter-spacing:-.04em;
}

.allerta-article p,
.news-article p,
.article-newspaper p,
[id*="allerta" i] p,
[class*="allerta" i] p{
  font-family:var(--font-main) !important;
}

.allerta-article .dropcap::first-letter,
.news-article .dropcap::first-letter,
.article-newspaper .dropcap::first-letter,
[id*="allerta" i] .dropcap::first-letter,
[class*="allerta" i] .dropcap::first-letter{
  font-family:var(--font-main) !important;
  font-weight: 800;
}

/* ===== blocco senza id ===== */
:root{
      /* base colors - upgraded palette */
      --page: #F0F4F8;
      --page2:#E8EDF6;
      --card: #ffffff;
      --card-elevated: #FAFBFD;
      --ink:  #0B1020;
      --muted:#4A5A73;
      --muted2:#7B8AA0;
      --muted3:#A8B5C7;

      /* brand accents - più saturi */
      --blue:   #2563EB;
      --blue-light: #60A5FA;
      --violet: #7C3AED;
      --violet-light: #A78BFA;
      --orange: #F97316;
      --orange-light: #FB923C;

      /* gradients */
      --gradient-primary: linear-gradient(135deg, var(--blue), var(--violet));
      --gradient-warm: linear-gradient(135deg, var(--orange), var(--orange-light));
      --gradient-subtle: linear-gradient(135deg, rgba(37,99,235,.05), rgba(124,58,237,.05));

      /* elevation system */
      --radius: 20px;
      --radius-lg: 24px;
      --radius-sm: 12px;
      --shadow-sm: 0 2px 8px rgba(11,16,32,.04), 0 1px 2px rgba(11,16,32,.06);
      --shadow-md: 0 8px 24px rgba(11,16,32,.08), 0 2px 8px rgba(11,16,32,.06);
      --shadow-lg: 0 20px 50px rgba(11,16,32,.12), 0 8px 20px rgba(11,16,32,.08);
      --shadow-xl: 0 32px 80px rgba(11,16,32,.16), 0 12px 32px rgba(11,16,32,.10);

      --line:  rgba(11,16,32,.08);
      --line-soft: rgba(11,16,32,.06);
    }

    *{ box-sizing:border-box; margin:0; padding:0; }
    html{ scroll-behavior:smooth; }
    
    body{
      font-family:var(--font-main);
      background: var(--page);
      color: var(--ink);
      line-height: 1.6;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    .container{ 
      max-width: 1160px; 
      margin: 0 auto; 
      padding: 0 32px; 
    }

    /* SECTION SYSTEM - Enhanced */
    .band{ 
      padding: 120px 0; 
      position: relative; 
      overflow:hidden; 
    }

    /* Decorative background patterns */
    .band::before{
      content:"";
      position:absolute; 
      inset:-1px;
      background:
        radial-gradient(circle at 20% 30%, rgba(37,99,235,.06), transparent 50%),
        radial-gradient(circle at 80% 60%, rgba(124,58,237,.06), transparent 50%),
        radial-gradient(circle at 50% 80%, rgba(249,115,22,.04), transparent 40%);
      pointer-events:none;
      opacity: 1;
    }
    
    .band::after{
      content:"";
      position:absolute;
      top:0; left:0; right:0; bottom:0;
      background-image: 
        repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(37,99,235,.012) 2px, rgba(37,99,235,.012) 4px);
      pointer-events:none;
      opacity: .5;
    }

    .band .container{ position: relative; z-index: 2; }

    .band.alt{ 
      background: var(--page2); 
    }
    .band.alt::before{
      background:
        radial-gradient(circle at 30% 40%, rgba(124,58,237,.08), transparent 50%),
        radial-gradient(circle at 70% 70%, rgba(37,99,235,.06), transparent 50%);
    }

    /* Dark section - upgraded */
    .band.darkish{
      background:
        radial-gradient(1200px 800px at 20% 25%, rgba(99,102,241,.16), transparent 60%),
        radial-gradient(1200px 800px at 80% 40%, rgba(139,92,246,.14), transparent 55%),
        linear-gradient(165deg, #0A0E1A 0%, #0F1729 50%, #0B1230 100%);
      color:#fff;
    }
    .band.darkish::before{ display:none; }
    .band.darkish::after{
      background-image: 
        repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(255,255,255,.015) 2px, rgba(255,255,255,.015) 4px);
    }

    /* Section rule - modernized */
    .section-rule{
      display:flex; 
      align-items:center; 
      gap:14px;
      margin: 0 0 24px;
      font-weight: 800;
      letter-spacing: .12em;
      text-transform: uppercase;
      font-size: 11px;
      color: var(--muted2);
    }
    .section-rule .dot{
      width: 12px; 
      height: 12px; 
      border-radius: 999px;
      background: var(--gradient-primary);
      box-shadow: 
        0 0 0 4px rgba(37,99,235,.08),
        0 2px 8px rgba(37,99,235,.2);
      animation: pulse-dot 3s ease-in-out infinite;
    }
    @keyframes pulse-dot{
      0%, 100%{ transform: scale(1); opacity: 1; }
      50%{ transform: scale(1.1); opacity: .9; }
    }
    .section-rule .line{ 
      height:1px; 
      flex:1; 
      background: linear-gradient(90deg, var(--line), transparent);
    }

    /* TYPOGRAPHY - Enhanced */
    .micro{ 
      font-size: 11px; 
      letter-spacing: .16em; 
      text-transform: uppercase; 
      font-weight: 800; 
      color: var(--muted2); 
    }
    .lead{ 
      font-size: 21px; 
      line-height: 1.7; 
      font-weight: 500; 
      color: var(--ink); 
    }
    .accent{ 
      font-weight: 800; 
      background: var(--gradient-primary);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    .t-light{ font-weight: 400; }
    
    .sfida-lite{ font-weight:400; text-transform:none; letter-spacing:.01em; }
.t-normal{ font-weight: 500; }
    .t-bold{ font-weight: 800; }
    .t-black{ font-weight: 800; }

    h1,h2,h3{ 
      font-family:var(--font-main); 
      line-height: 1.15;
    }

    /* CARDS - Premium glassmorphism */
    .card{
      background: rgba(255,255,255,.95);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(255,255,255,.6);
      border-radius: var(--radius);
      box-shadow: var(--shadow-md);
      position: relative;
      overflow: hidden;
    }
    
    /* Card shine effect */
    .card::before{
      content: "";
      position: absolute;
      top: 0; left: -100%;
      width: 100%; height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,.3), transparent);
      transition: left .6s ease;
    }

    .card.hover{ 
      transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .card.hover:hover{ 
      transform: translateY(-4px) scale(1.01);
      box-shadow: var(--shadow-xl);
      border-color: rgba(37,99,235,.2);
    }
    .card.hover:hover::before{
      left: 100%;
    }

    /* Card with gradient border */
    .card-gradient{
      position: relative;
      background: var(--card);
      border: none;
    }
    .card-gradient::before{
      content: "";
      position: absolute;
      inset: 0;
      border-radius: var(--radius);
      padding: 1.5px;
      background: var(--gradient-primary);
      -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      -webkit-mask-composite: xor;
      mask-composite: exclude;
      opacity: .3;
      transition: opacity .3s ease;
    }
    .card-gradient:hover::before{
      opacity: .6;
    }

    /* BUTTONS - Modern */
    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap: 12px;
      padding: 16px 32px;
      border-radius: 14px;
      background: var(--gradient-warm);
      color: #fff;
      border: none;
      text-decoration:none;
      font-weight: 800;
      font-size: 15px;
      letter-spacing: .02em;
      box-shadow: 
        0 20px 40px rgba(249,115,22,.3),
        0 8px 16px rgba(249,115,22,.2),
        inset 0 1px 0 rgba(255,255,255,.3);
      transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
      position: relative;
    }
    
    .btn:hover{
      transform: translateY(-2px) scale(1.02);
      box-shadow: 
        0 24px 50px rgba(249,115,22,.35),
        0 12px 24px rgba(249,115,22,.25),
        inset 0 1px 0 rgba(255,255,255,.4);
    }
    .btn:active{
      transform: translateY(0) scale(1);
    }

    /* SEZIONE 2: PROBLEMA (light) */
    .problem{ 
      max-width: 1160px; 
      margin: 0 auto; 
    }
    
    .problem-title{
      margin:0 0 20px;
      font-size: 68px;
      line-height: 1.08;
      letter-spacing: -1.2px;
      font-weight: 400;
      color: var(--ink);
    }
    .problem-title strong{ 
      font-weight: 800;
      position: relative;
      display: inline-block;
    }
    .problem-title strong::after{
      content: "";
      position: absolute;
      bottom: -4px; left: 0; right: 0;
      height: 2px;
      background: var(--gradient-primary);
      border-radius: 2px;
      opacity: .3;
    }
    
    .problem-sub{
      margin: 20px 0 0;
      font-size: 30px;
      line-height: 1.4;
      color: var(--muted);
      font-weight: 500;
    }
    .problem-sub strong{ 
      font-weight: 800; 
      color: var(--ink); 
    }

    .problem-body{ 
      margin-top: 40px; 
      color: #1c2340; 
      font-size: 18px; 
      line-height: 1.8;
      font-weight: 400;
    }
    .problem-body p{ margin: 0 0 18px; }
    .problem-body strong{ font-weight: 700; color: var(--ink); }

    /* Question boxes - dark style for light sections */
    .problem-qs{ 
      margin: 32px 0; 
      padding: 0; 
      list-style: none; 
      display:grid; 
      gap: 14px; 
    }
    .problem-qs li{
      padding: 18px 24px;
      border-left: 3px solid rgba(249,115,22,.4);
      border-radius: 16px;
      background: rgba(11,16,32,.95);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-right: 1px solid rgba(37,99,235,.15);
      border-top: 1px solid rgba(37,99,235,.15);
      border-bottom: 1px solid rgba(37,99,235,.1);
      box-shadow: 
        0 12px 40px rgba(11,16,32,.15),
        inset 0 1px 0 rgba(255,255,255,.05);
      color: rgba(255,255,255,.9);
      font-weight: 600;
      font-size: 17px;
      transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
      position: relative;
    }
    .problem-qs li::before{
      content: "?";
      position: absolute;
      left: -14px;
      top: 50%;
      transform: translateY(-50%);
      width: 28px;
      height: 28px;
      background: var(--gradient-warm);
      border-radius: 999px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #fff;
      font-weight: 800;
      font-size: 16px;
      box-shadow: 0 4px 12px rgba(249,115,22,.3);
      opacity: 0;
      transition: all .3s ease;
    }
    .problem-qs li:hover{
      box-shadow: 
        0 16px 48px rgba(11,16,32,.2),
        inset 0 1px 0 rgba(255,255,255,.08);
      transform: translateX(8px);
      border-left-color: var(--orange);
      background: rgba(11,16,32,.98);
    }
    .problem-qs li:hover::before{
      opacity: 1;
      left: -12px;
    }

    /* Alert box - dark style on light section */
    .problem-alert{
      margin: 40px 0;
      padding: 28px 32px;
      background: rgba(11,16,32,.95);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      border: 1.5px solid rgba(37,99,235,.2);
      border-left: 4px solid var(--orange);
      border-radius: var(--radius-lg);
      box-shadow: 
        0 12px 40px rgba(11,16,32,.15),
        inset 0 1px 0 rgba(255,255,255,.05);
      position: relative;
      overflow: hidden;
    }
    .problem-alert::before{
      content: "•";
      position: absolute;
      top: -20px;
      right: -20px;
      font-size: 120px;
      opacity: .05;
      font-weight: 800;
      pointer-events: none;
      color: var(--orange);
    }
    .problem-alert-title{
      margin: 0 0 16px;
      font-weight: 800;
      font-size: 20px;
      color: #fff;
      text-transform: uppercase;
      letter-spacing: .04em;
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .problem-alert p{
      margin: 12px 0;
      font-weight: 500;
      line-height: 1.8;
      color: rgba(255,255,255,.88);
      position: relative;
      z-index: 1;
    }
    .problem-alert strong{ 
      font-weight: 800; 
      color: var(--orange-light);
    }

    /* Problem boxes grid */
    .problem-grid{
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 20px;
    }
    @media (max-width: 640px){
      .problem-grid{
        grid-template-columns: 1fr;
      }
    }
    .problem-box{
      padding: 24px 28px;
      background: rgba(11,16,32,.95);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(37,99,235,.2);
      border-radius: var(--radius);
      box-shadow: 
        0 12px 40px rgba(11,16,32,.15),
        inset 0 1px 0 rgba(255,255,255,.05);
      transition: all .3s cubic-bezier(.2,.8,.2,1);
    }
    .problem-box:hover{
      transform: translateY(-4px);
      box-shadow: 
        0 16px 48px rgba(11,16,32,.2),
        inset 0 1px 0 rgba(255,255,255,.08);
      border-color: rgba(37,99,235,.3);
    }
    .problem-box-label{
      margin: 0 0 12px;
      font-size: 22px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .04em;
      color: var(--blue-light);
    }
    .problem-box-text{
      font-size: 16px;
      line-height: 1.7;
      color: rgba(255,255,255,.88);
      font-weight: 500;
    }
    .problem-box-text strong{
      font-weight: 800;
      color: rgba(255,255,255,.98);
    }

    /* SEZIONE 3: AGITAZIONE (dark) */
    .agit{ 
      max-width: 1160px; 
      margin: 0 auto; 
    }
    
    .agit-title{
      margin:0 0 20px;
      font-size: 62px;
      line-height: 1.12;
      letter-spacing: -1px;
      font-weight: 800;
      color: #fff;
      text-shadow: 0 2px 20px rgba(0,0,0,.3);
    }
    .agit-title .t-light{
      font-size: .88em;
      font-weight: 500;
    }
    
    .agit-sub{
      margin: 20px 0 0;
      font-size: 28px;
      line-height: 1.45;
      color: rgba(255,255,255,.82);
      font-weight: 500;
    }
    .agit-sub strong{ 
      font-weight: 800; 
      color: #fff; 
      background: linear-gradient(135deg, #fff, rgba(255,255,255,.9));
      -webkit-background-clip: text;
      background-clip: text;
    }

    .agit-body{
      margin-top: 40px;
      color: rgba(255,255,255,.88);
      font-size: 18px;
      line-height: 1.8;
      font-weight: 400;
    }
    .agit-body p{ margin: 0 0 18px; }
    .agit-body strong{ 
      font-weight: 700; 
      color: #fff; 
    }

    /* Stack emphasis - glassmorphism light on dark section */
    .agit-stack{
      margin: 32px 0;
      padding: 24px 28px;
      background: rgba(255,255,255,.04);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(255,255,255,.1);
      border-radius: var(--radius);
      display: grid;
      gap: 2px;
      font-weight: 600;
      font-size: 17px;
      box-shadow: 
        0 8px 32px rgba(0,0,0,.2),
        inset 0 1px 0 rgba(255,255,255,.1);
}
    .agit-stack span{
      position: relative;
      display: block;
      padding: 6px 0 6px 40px;
      color: rgba(255,255,255,.92);
      line-height: 1.35;
      transition: all .2s ease;
}
    .agit-stack span:hover{
      color: #fff;
      transform: translateX(4px);
    }
    .agit-stack span::before{
      content: "→";
      position: absolute;
      left: 0;
      top: 6px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 24px;
      height: 24px;
      background: var(--gradient-warm);
      border-radius: 6px;
      color: #fff;
      font-weight: 800;
      font-size: 14px;
      box-shadow: 0 4px 12px rgba(249,115,22,.3);
}

    /* Box con lista - glassmorphism on dark */
    .agit-box{
      margin: 32px 0;
      padding: 28px 32px;
      background: rgba(0,0,0,.25);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(255,255,255,.12);
      border-radius: var(--radius);
      box-shadow: 
        0 12px 40px rgba(0,0,0,.3),
        inset 0 1px 0 rgba(255,255,255,.08);
    }
    .agit-box-title{
      margin: 0 0 18px;
      font-weight: 800;
      font-size: 19px;
      color: #fff;
    }
    .agit-list{
      margin: 16px 0 0;
      padding: 0;
      list-style: none;
      display: grid;
      gap: 10px;
    }
    .agit-list li{
      position: relative;
      padding-left: 32px;
      color: rgba(255,255,255,.85);
      font-weight: 500;
      line-height: 1.7;
      transition: all .2s ease;
    }
    .agit-list li:hover{
      color: rgba(255,255,255,.95);
      transform: translateX(4px);
    }
    .agit-list li::before{
      content: "•";
      position: absolute;
      left: 0;
      top: -2px;
      width: 22px;
      height: 22px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(249,115,22,.2);
      border: 1px solid rgba(249,115,22,.4);
      border-radius: 6px;
      color: var(--orange-light);
      font-weight: 800;
      font-size: 18px;
    }

    /* Quote dramatica - glassmorphism on dark */
    .agit-quote{
      margin: 40px 0;
      padding: 32px 36px;
      background: 
        linear-gradient(135deg, rgba(249,115,22,.12), rgba(251,146,60,.08)),
        rgba(0,0,0,.2);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-left: 4px solid var(--orange);
      border-radius: var(--radius);
      font-size: 23px;
      line-height: 1.6;
      font-weight: 500;
      color: rgba(255,255,255,.94);
      font-style: italic;
      box-shadow: 
        0 12px 40px rgba(0,0,0,.25),
        inset 0 1px 0 rgba(255,255,255,.1);
      position: relative;
    }
    .agit-quote::before{
      content: """;
      position: absolute;
      top: 10px;
      left: 16px;
      font-size: 80px;
      font-family:var(--font-main) !important;
      color: rgba(249,115,22,.15);
      line-height: 1;
      font-style: normal;
    }
    .agit-quote strong{
      font-weight: 800;
      color: #fff;
      font-style: normal;
    }

    /* Label section */
    .agit-label{
      margin: 40px 0 16px;
      font-weight: 500;
      font-size: 22px;
      color: rgba(255,255,255,.78);
      letter-spacing: .01em;
      line-height: 1.35;
    }

    /* Costi invisibili - bullet list 2 colonne */
    .agit-costs{
      margin: 20px 0 32px;
      padding: 0;
      list-style: none;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px 32px;
    }
    .agit-costs li{
      display: flex;
      align-items: flex-start;
      gap: 10px;
      padding: 0;
      background: transparent;
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      border: none;
      border-radius: 0;
      font-weight: 700;
      font-size: 17px;
      color: rgba(255,255,255,.88);
      box-shadow: none;
      line-height: 1.4;
    }
    .agit-costs li::before{
      content: "";
      display: inline-block;
      width: 8px;
      height: 8px;
      flex-shrink: 0;
      background: var(--orange);
      border-radius: 50%;
      margin-top: 7px;
    }
    .agit-costs li:hover{
      background: transparent;
      border-color: transparent;
      transform: none;
      box-shadow: none;
    }

    /* Chiusura agitazione - glassmorphism on dark */
    .agit-close{
      margin: 48px 0 0;
      padding: 32px 36px;
      background: rgba(0,0,0,.35);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      border: 1px solid rgba(255,255,255,.15);
      border-radius: var(--radius-lg);
      font-size: 20px;
      line-height: 1.7;
      font-weight: 500;
      color: rgba(255,255,255,.92);
      box-shadow: 
        0 16px 48px rgba(0,0,0,.3),
        inset 0 1px 0 rgba(255,255,255,.1);
    }
    .agit-close strong{
      font-weight: 800;
      background: var(--gradient-warm);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    /* ALLERTA MALTEMPO BOX - Premium gradient style */
    .weather-alert{
      margin: 48px 0;
      padding: 36px 40px;
      background: 
        linear-gradient(135deg, rgba(37,99,235,.12), rgba(124,58,237,.08)),
        rgba(255,255,255,.98);
      border: 2px solid transparent;
      background-clip: padding-box;
      border-radius: var(--radius-lg);
      box-shadow: 
        0 20px 60px rgba(37,99,235,.15),
        inset 0 1px 0 rgba(255,255,255,.8);
      position: relative;
      overflow: hidden;
    }
    .weather-alert::before{
      content: "";
      position: absolute;
      inset: 0;
      border-radius: var(--radius-lg);
      padding: 2px;
      background: linear-gradient(135deg, #2F7BFF, #7A5CFF, #FF8A1F);
      -webkit-mask: 
        linear-gradient(#fff 0 0) content-box, 
        linear-gradient(#fff 0 0);
      -webkit-mask-composite: xor;
      mask-composite: exclude;
      pointer-events: none;
    }
    .weather-alert-badge{
      display: inline-flex;
      padding: 10px 18px;
      margin: 0 0 24px;
      background: linear-gradient(135deg, #2F7BFF, #7A5CFF);
      border-radius: 999px;
      font-size: 11px;
      font-weight: 800;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: #fff;
      box-shadow: 0 8px 24px rgba(47,123,255,.25);
    }
    .weather-alert-title{
      margin: 0 0 24px;
      font-size: 26px;
      line-height: 1.3;
      font-weight: 800;
      color: var(--ink);
      position: relative;
    }
    .weather-alert-body{
      margin: 0 0 18px;
      font-size: 17px;
      line-height: 1.75;
      color: #1c2340;
      font-weight: 400;
    }
    .weather-alert-body:last-child{
      margin-bottom: 0;
    }
    .weather-alert-body strong{
      font-weight: 800;
      color: var(--ink);
    }

    /* Domande agitazione */
    .agit-questions{
      margin: 48px 0 32px;
      padding: 0;
      display: grid;
      gap: 12px;
    }
    .agit-q{
      padding: 16px 20px;
      background: rgba(255,255,255,.04);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      border: 1px solid rgba(255,255,255,.1);
      border-left: 3px solid var(--blue-light);
      border-radius: 14px;
      color: rgba(255,255,255,.88);
      font-weight: 600;
      font-size: 16px;
      line-height: 1.6;
      box-shadow: 0 4px 12px rgba(0,0,0,.15);
    }

    /* Bridge text */
    .agit-bridge{
      margin: 32px 0;
      font-size: 18px;
      line-height: 1.8;
      color: rgba(255,255,255,.85);
      font-weight: 400;
    }
    .agit-bridge strong{
      font-weight: 800;
      color: rgba(255,255,255,.95);
    }

    /* SEZIONE 4: SOLUZIONE (light) */
    .sol{ 
      max-width: 1160px; 
      margin: 0 auto; 
    }
    
    .sol-kicker{
      display: inline-flex;
      align-items: center;
      margin: 0 0 20px;
      padding: 10px 20px;
      background: var(--gradient-subtle);
      border: 1px solid rgba(37,99,235,.15);
      border-radius: 10px;
      font-size: 11px;
      font-weight: 800;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--blue);
      box-shadow: var(--shadow-sm);
    }

    .sol-title{
      margin: 0 0 20px;
      font-size: 62px;
      line-height: 1.14;
      letter-spacing: -1px;
      color: var(--ink);
    }
    .sol-title strong{ 
      font-weight: 800;
      background: var(--gradient-primary);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    .sol-sub{
      margin: 20px 0 0;
      font-size: 28px;
      line-height: 1.45;
      color: var(--muted);
      font-weight: 500;
    }
    .sol-sub strong{ 
      font-weight: 800; 
      color: var(--ink); 
    }

    .sol-body{
      margin-top: 40px;
      color: #1c2340;
      font-size: 18px;
      line-height: 1.8;
      font-weight: 400;
    }
    .sol-body strong{ font-weight: 700; color: var(--ink); }

    /* Steps cards - dark cards on light section */
    .sol-steps{
      margin: 48px 0;
      display: grid;
      gap: 20px;
    }
    .sol-step{
      padding: 28px 32px;
      font-size: 17px;
      line-height: 1.75;
      color: rgba(255,255,255,.9);
      font-weight: 500;
      position: relative;
      background: rgba(11,16,32,.95);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(37,99,235,.2);
      box-shadow: 
        0 12px 40px rgba(11,16,32,.15),
        inset 0 1px 0 rgba(255,255,255,.05);
    }
    .sol-step strong{
      font-weight: 800;
      color: #fff;
      font-size: 18px;
    }

    /* ── LAYOUT AFFIANCATO: cards + infografica ── */
    /* (rimosso, ora è unificato) */

    /* ── PROCESSO UNIFICATO ── */
    .proc-unified{
      margin: 48px 0;
      display: flex;
      flex-direction: column;
      gap: 0;
    }

    /* Titolo infografica */
    .proc-u-header{
      text-align: center;
      margin-bottom: 18px;
    }
    
    .proc-u-header p{
      font-size: 18px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .06em;
      opacity: .9;
    }

    .proc-u-header h3{
      font-size: clamp(38px,5vw,62px);
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .06em;
      color: var(--ink, #0b1020);
      margin: 0 0 6px;
      line-height: 1.2;
    }
    .proc-u-header h3 span{
      background: linear-gradient(135deg, var(--blue), var(--violet));
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }
    .proc-u-header p{
      font-size: 18px;
      color: var(--muted);
      font-weight: 500;
      margin: 0;
      line-height: 1.5;
    }


    /* Wrapper righe (serve per linea + frecce) */
    .proc-u-rows{
      position: relative;
      border-radius: 22px;
      overflow: hidden;
    }

    /* Linea verticale che accompagna le fasi */
    .proc-u-rows::before{
      content:"";
      position:absolute;
      left: 58px;           /* centro icona: 28px padding + 30px */
      top: 34px;
      bottom: 34px;
      width: 2px;
      background: rgba(255,255,255,.10);
      border-radius: 2px;
      z-index: 0;
      pointer-events: none;
    }

    /* Piccolo “nodo” al centro dell’icona (aggancia visivamente la linea) */
    .proc-icon{
      position: relative;
      z-index: 2;
    }
    .proc-icon::after{
      content:"";
      position:absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%,-50%);
      width: 10px;
      height: 10px;
      border-radius: 999px;
      background: rgba(255,255,255,.18);
      box-shadow: 0 0 0 6px rgba(255,255,255,.05);
      pointer-events: none;
    }

    /* Freccia tra una fase e l’altra */
    .proc-u-row:not(:last-child)::after{
      content:"";
      position:absolute;
      left: 58px;
      bottom: -10px;
      transform: translateX(-50%);
      width: 0;
      height: 0;
      border-left: 8px solid transparent;
      border-right: 8px solid transparent;
      border-top: 10px solid rgba(255,255,255,.18);
      filter: drop-shadow(0 6px 10px rgba(0,0,0,.25));
      z-index: 1;
      pointer-events: none;
    }

    /* Assicura che i contenuti stiano sopra la linea */
    .proc-u-row > *{ position: relative; z-index: 1; }


    .proc-u-row{
      display: grid;
      grid-template-columns: 300px auto 1fr;
      align-items: center;
      background: rgba(11,16,32,.95);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(37,99,235,.15);
      border-bottom: none;
      padding: 24px 28px;
      opacity: 0;
      transform: translateY(14px);
      transition: all .5s cubic-bezier(.22,.61,.36,1);
      position: relative;
    }

    .proc-u-row.visible{
      opacity: 1;
      transform: translateY(0);
    }

    .proc-u-rows .proc-u-row:first-child{
      border-radius: 22px 22px 0 0;
    }

    .proc-u-rows .proc-u-row:last-child{
      border-bottom: 1px solid rgba(37,99,235,.15);
      border-radius: 0 0 var(--radius) var(--radius);
    }

    .proc-u-row:hover{
      background: rgba(11,16,32,1);
      border-color: rgba(37,99,235,.25);
    }
    /* Ripristina il bordo bottom sull'elemento precedente all'hover */
    .proc-u-row:hover + .proc-u-row{
      border-top-color: rgba(37,99,235,.25);
    }

    /* Lato sinistro: icona + meta */
    .proc-u-left{
      display: flex;
      align-items: center;
      gap: 16px;
    }

    .proc-icon{
      width: 60px;
      height: 60px;
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      transition: transform .3s ease;
    }
    .proc-u-row:hover .proc-icon{ transform: scale(1.08); }

    .proc-icon svg{
      width: 28px; height: 28px;
      stroke: #fff; fill: none;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    /* Colori icone: bluetto, viola, vinaccia, arancio */
    .proc-u-row:nth-child(1) .proc-icon{ background: linear-gradient(135deg,#1e56a0,#3b82f6); }
    .proc-u-row:nth-child(2) .proc-icon{ background: linear-gradient(135deg,#5b21b6,#7c3aed); }
    .proc-u-row:nth-child(3) .proc-icon{ background: linear-gradient(135deg,#7a1f3d,#a0335c); }
    .proc-u-row:nth-child(4) .proc-icon{ background: linear-gradient(135deg,#c2410c,#ff8a00); }

    .proc-u-meta{ min-width: 0; }

    .proc-phase{
      font-size: 13px;
      font-weight: 700;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: rgba(255,255,255,.45);
      margin-bottom: 2px;
      line-height: 1;
    }
    .proc-name{
      font-size: 21px;
      font-weight: 800;
      color: #fff;
      line-height: 1.3;
      margin-bottom: 3px;
      text-transform: uppercase;
      letter-spacing: .03em;
    }
    .proc-mini{
      font-size: 13px;
      color: rgba(255,255,255,.45);
      font-weight: 500;
      line-height: 1.5;
      margin: 0;
    }
    .proc-mini strong{
      color: rgba(255,255,255,.7);
      font-weight: 700;
    }

    /* Separatore verticale */
    .proc-u-sep{
      width: 2px;
      align-self: stretch;
      margin: 0 28px;
      background: rgba(255,255,255,.12);
      border-radius: 2px;
      flex-shrink: 0;
    }

    /* Lato destro: descrizione estesa */
    .proc-u-right{
      font-size: 16px;
      line-height: 1.75;
      color: rgba(255,255,255,.8);
      font-weight: 500;
    }
    .proc-u-right strong{
      font-weight: 800;
      color: #fff;
      font-size: 17px;
    }

    /* Extra row (Pratiche), attaccata, colore più tenue */
    .proc-u-row.is-extra{
      background: rgba(11,16,32,.82);
    }
    .proc-u-row.is-extra .proc-icon{
      background: linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.04));
      border: 1px solid rgba(255,255,255,.1);
    }
    .proc-u-row.is-extra .proc-icon svg{
      stroke: rgba(255,255,255,.6);
    }
    .proc-u-row.is-extra .proc-u-right{
      color: rgba(255,255,255,.6);
    }

    .proc-extra-tag{
      display: inline-flex;
      align-items: center;
      font-size: 9px;
      font-weight: 800;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--orange);
      background: rgba(255,138,0,.1);
      padding: 3px 10px;
      border-radius: 20px;
      border: 1px solid rgba(255,138,0,.15);
    }

    /* ── Responsive ── */
    @media(max-width: 768px){
      .proc-u-rows::before{ display:none; }
      .proc-u-row:not(:last-child)::after{ display:none; }
      .proc-icon::after{ display:none; }
      .proc-u-row{
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 20px 22px;
      }
      .proc-u-sep{
        width: 100%;
        height: 2px;
        margin: 0;
        align-self: auto;
        background: rgba(255,255,255,.08);
      }
      .proc-u-left{ gap: 12px; }
      .proc-icon{
        width: 50px; height: 50px;
        border-radius: 12px;
      }
      .proc-icon svg{ width: 24px; height: 24px; }
      .proc-name{ font-size: 18px; }
      .proc-u-right{ font-size: 15px; }
      Vpx; }
    }

    /* Tagline emphasis */
    .sol-tagline{
      margin: 48px 0 40px;
      padding: 28px 0;
      text-align: center;
      font-size: 26px;
      font-weight: 700;
      color: var(--ink);
      letter-spacing: .02em;
      position: relative;
    }
    .sol-tagline::before,
    .sol-tagline::after{
      content: "";
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      width: 80px;
      height: 2px;
      background: var(--gradient-primary);
    }
    .sol-tagline::before{ left: calc(50% - 250px); }
    .sol-tagline::after{ right: calc(50% - 250px); }

    /* Solo insegne / solo brescia - dark cards on light */
    .sol-only{
      margin: 56px 0;
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 28px;
      align-items: stretch;
    }
    .sol-only-card{
      padding: 36px 40px;
      position: relative;
      background: rgba(11,16,32,.95);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(37,99,235,.2);
      box-shadow: 
        0 12px 40px rgba(11,16,32,.15),
        inset 0 1px 0 rgba(255,255,255,.05);
      overflow: hidden;
      display: flex !important;
      flex-direction: column !important;
    }
    .sol-only-card > .sol-only-list{
      flex-shrink: 0;
    }
    .sol-only-card > .sol-only-footer{
      margin-top: auto !important;
    }
    .sol-only-footer .sol-only-list{
      margin-top: 0;
    }
    .sol-only-badge{
      display: flex;
      align-items: center;
      gap: 14px;
      margin-top: 28px;
      padding: 22px 24px;
      background: linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
      border: 1px solid rgba(255,255,255,.1);
      border-radius: var(--radius-sm);
    }
    .sol-only-badge .badge-num{
      font-family:var(--font-main);
      font-size: 80px;
      font-weight: 700;
      line-height: 1;
      color: #fff;
      letter-spacing: 0;
      display: flex;
      align-items: center;
      gap: 0;
      overflow: hidden;
    }
    .digit-roller{
      display: inline-block;
      height: 1em;
      overflow: hidden;
      position: relative;
      border-left: 1.5px solid rgba(0,0,0,.5);
      padding: 0 .04em;
    }
    .digit-roller:first-child{
      border-left: none;
    }
    /* 3D depth: top/bottom fade + inner shadow */
    .digit-roller::before,
    .digit-roller::after{
      content: '';
      position: absolute;
      left: 0; right: 0;
      height: 30%;
      z-index: 2;
      pointer-events: none;
    }
    .digit-roller::before{
      top: 0;
      background: linear-gradient(to bottom, rgba(11,16,32,.5) 0%, transparent 100%);
    }
    .digit-roller::after{
      bottom: 0;
      background: linear-gradient(to top, rgba(11,16,32,.5) 0%, transparent 100%);
    }
    .digit-roller-inner{
      display: flex;
      flex-direction: column;
      transition: transform 3s cubic-bezier(.12,.82,.28,1);
      will-change: transform;
    }
    .digit-roller-inner span{
      display: flex;
      align-items: center;
      justify-content: center;
      height: 1em;
      line-height: 1;
      text-align: center;
      text-shadow: 0 2px 6px rgba(0,0,0,.35), 0 0 20px rgba(255,255,255,.08);
    }
    .digit-dot{
      display: inline-flex;
      align-items: center;
      line-height: 1;
      height: 1em;
      margin: 0 -.01em;
      text-shadow: 0 2px 6px rgba(0,0,0,.35);
    }
    .sol-only-badge .badge-label{
      font-size: 14px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .06em;
      color: rgba(255,255,255,.5);
      line-height: 1.3;
    }
    .sol-only-title{
      margin: 0 0 20px;
      font-size: 28px;
      font-weight: 400;
      line-height: 1.3;
      letter-spacing: .04em;
      color: #fff;
    }
    .sol-only-title span{
      font-weight: 800;
      background: var(--gradient-warm);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }
    .sol-only-card p{
      margin: 0 0 16px;
      color: rgba(255,255,255,.55);
      font-size: 16px;
      line-height: 1.5;
      font-weight: 400;
      letter-spacing: .012em;
    }
    .sol-only-card p strong{
      font-weight: 600;
      color: rgba(255,255,255,1);
    }
    .sol-only-list{
      margin: 24px 0 0;
      padding: 20px 24px;
      background: rgba(37,99,235,.1);
      border: 1px solid rgba(37,99,235,.2);
      border-radius: var(--radius-sm);
      list-style: none;
      display: grid;
      gap: 10px;
    }
    .sol-only-list li{
      position: relative;
      padding-left: 28px;
      font-weight: 800;
      font-size: 14px;
      color: rgba(255,255,255,.95);
      text-transform: uppercase;
      letter-spacing: .06em;
    }
    .sol-only-list li::before{
      content: "✓";
      position: absolute;
      left: 0;
      top: -1px;
      width: 20px;
      height: 20px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: var(--gradient-warm);
      border-radius: 6px;
      color: #fff;
      font-weight: 800;
      font-size: 12px;
      box-shadow: 0 2px 8px rgba(249,115,22,.25);
    }

    /* Proof section - dark on light */
    .sol-proof{
      margin: 48px 0;
      padding: 32px 36px;
      background: rgba(11,16,32,.95);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(37,99,235,.2);
      border-radius: var(--radius);
      box-shadow: 
        0 12px 40px rgba(11,16,32,.15),
        inset 0 1px 0 rgba(255,255,255,.05);
    }
    .sol-proof p{
      margin: 0 0 16px;
      color: rgba(255,255,255,.72);
      font-size: 17px;
      line-height: 1.5;
      font-weight: 500;
      letter-spacing: .012em;
    }
    .sol-proof p strong{
      font-weight: 600;
      color: rgba(255,255,255,.95);
    }
    .sol-proof p.big-intro{
      font-size: 1.65rem !important;
      font-weight: 300 !important;
      margin-bottom: 28px !important;
      line-height: 1.4 !important;
    }
    .sol-proof ul{
      margin: 20px 0;
      padding: 0;
      list-style: none;
      display: grid;
      gap: 10px;
    }
    .sol-proof ul li{
      position: relative;
      padding-left: 32px;
      color: rgba(255,255,255,.72);
      font-weight: 400;
      line-height: 1.45;
      letter-spacing: .012em;
    }
    .sol-proof ul li::before{
      content: "→";
      position: absolute;
      left: 0;
      top: 0;
      width: 24px;
      height: 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: var(--gradient-primary);
      border-radius: 6px;
      color: #fff;
      font-weight: 800;
      font-size: 14px;
      box-shadow: 0 2px 8px rgba(37,99,235,.2);
    }

    /* Trio tagline - dark badge on light */
    .sol-trio{
      margin: 0;
      padding: 22px 40px;
      text-align: center;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0;
      background: rgba(11,16,32,.78);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(37,99,235,.2);
      border-radius: var(--radius);
      font-size: 36px;
      line-height: 1.1;
      font-weight: 800;
      letter-spacing: .08em;
      color: rgba(255,255,255,.92);
      box-shadow: 
        0 12px 40px rgba(11,16,32,.15),
        inset 0 1px 0 rgba(255,255,255,.05);
      position: relative;
      overflow: visible;
    }
    .sol-trio .trio-sep{
      display: block;
      flex-shrink: 0;
      width: 2px;
      height: 2em;
      background: var(--orange);
      border-radius: 2px;
      margin: 0 2.5em;
      opacity: .9;
      align-self: center;
    }
    .sol-trio::before{
      content: "";
      position: absolute;
      inset: -2px;
      background: var(--gradient-primary);
      border-radius: var(--radius);
      opacity: .08;
      z-index: 0;
    }

    /* Guarantee number pills */
    .gar-pill{
      display: inline-flex;
      align-items: center;
      padding: 6px 16px;
      background: rgba(37,99,235,.18);
      border: 1px solid rgba(37,99,235,.35);
      border-radius: 999px;
      font-size: 14px;
      font-weight: 800;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--blue-light);
      box-shadow: 0 2px 8px rgba(37,99,235,.15);
    }

    /* CTA section */
    .sol-cta{
      margin: 48px 0 0;
      text-align: center;
    }

    /* Override per sezione dark con classe sol (Tripla Garanzia) */
    .band.darkish .sol-kicker{
      background: rgba(37,99,235,.15);
      border-color: rgba(37,99,235,.3);
      color: var(--blue-light);
    }
    .band.darkish .sol-title{
      color: #fff;
    }
    .band.darkish .sol-sub{
      color: rgba(255,255,255,.78);
    }
    .band.darkish .sol-sub strong{
      color: #fff;
    }
    .band.darkish .sol-body{
      color: rgba(255,255,255,.88);
    }
    .band.darkish .sol-body strong{
      color: #fff;
    }
    .band.darkish .sol-body .lead{
      color: rgba(255,255,255,.9);
    }
    .band.darkish .sol-body .lead strong{
      color: rgba(255,255,255,.98);
    }
    .band.darkish .sol-tagline{
      color: #fff;
    }

    /* RESPONSIVE - Enhanced */
    @media (max-width: 980px){
      .container{ padding: 0 24px; }
      .band{ padding: 80px 0; }
      
      .problem-title, .agit-title, .sol-title{ font-size: 46px; }
      .problem-sub, .agit-sub, .sol-sub{ font-size: 24px; }
      .sol-only{ grid-template-columns: 1fr; }
      
      .sol-tagline::before,
      .sol-tagline::after{ display: none; }
    }

    @media (max-width: 640px){
      .container{ padding: 0 20px; }
      .band{ padding: 60px 0; }
      
      .problem-title, .agit-title, .sol-title{ font-size: 36px; letter-spacing: -.6px; }
      .problem-sub, .agit-sub, .sol-sub{ font-size: 20px; }
      .lead{ font-size: 18px; }
      .sol-tagline{ font-size: 20px; }
      
      .btn{ padding: 14px 24px; font-size: 14px; }
      
      .problem-qs li::before{ display: none; }
    }

    /* Smooth scroll reveal animations */
    @keyframes fadeInUp{
      from{
        opacity: 0;
        transform: translateY(30px);
      }
      to{
        opacity: 1;
        transform: translateY(0);
      }
    }

    .problem, .agit, .sol{
      animation: fadeInUp .8s ease-out;
    }

    /* === GRADIENT EFFECTS & PREMIUM ANIMATIONS === */
    
    /* Gradient text animato */
    .grad-text{
      background: linear-gradient(90deg, var(--blue), #7C3AED, var(--orange));
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
      background-size: 200% 200%;
      animation: gradShift 6s ease-in-out infinite;
    }
    @keyframes gradShift{
      0%{ background-position: 0% 50%; }
      50%{ background-position: 100% 50%; }
      100%{ background-position: 0% 50%; }
    }

    /* Sottolineatura gradient sottile che "entra" da sinistra */
    .sweep{
      position: relative;
      display: inline-block;
      padding-bottom: .06em;
    }
    .sweep::after{
      content:"";
      position:absolute;
      left:0; right:0; bottom:-.10em;
      height:2px;
      border-radius:999px;
      background: linear-gradient(90deg, #2F7BFF, #7A5CFF, #FF8A1F);
      transform: scaleX(0);
      transform-origin:left;
      transition: transform .9s cubic-bezier(.2,.8,.2,1);
      opacity:.9;
    }
    .in-view .sweep::after{ transform: scaleX(1); }

    /* Sottolineatura soft statica (alternativa) */
    .ul-soft{
      position: relative;
      display:inline-block;
      padding-bottom: .06em;
    }
    .ul-soft::after{
      content:'';
      position:absolute;
      left:0; bottom:-.05em;
      height: 2px;
      width: 100%;
      border-radius: 999px;
      background: linear-gradient(90deg, #2F7BFF, #7A5CFF, #FF8A1F);
      opacity: 1;
      box-shadow: 0 6px 14px rgba(47,123,255,.15), 0 6px 14px rgba(255,138,31,.1);

    }

    /* Rainbow separator, horizontal */
    .rainbow-sep{
      display: block;
      height: 2px;
      width: 100%;
      max-width: 180px;
      border-radius: 999px;
      background: linear-gradient(90deg, #2F7BFF, #7A5CFF, #FF8A1F);
      border: none;
      margin: 28px 0;

    }
    
    .rainbow-sep.full{
      max-width: none;
      width: 100%;
    }

    /* Proc mini: two-line mapping */
    .proc-mini{ display: block; }
    .proc-mini .mini-strong{
      display:block;
      font-weight: 800;
      color: rgba(255,255,255,.82);
      letter-spacing: .01em;
    }
    .proc-mini .mini-soft{
      display:block;
      font-weight: 500;
      color: rgba(255,255,255,.45);
    }

    /* REGIA: typography harmony (less "salt & pepper") */
    .sol-body{
      margin-top: 34px;
      font-size: 20px;
      line-height: 1.65;
      font-weight: 400;
    }
    .sol-body p{ margin: 0 0 18px; }
    .sol-body p:last-child{ margin-bottom: 0; }

    .regia-lead{
      font-weight: 500;
      color: var(--ink);
    }
    .regia-lead strong{
      font-weight: 700;
      color: var(--ink);
    }
    .regia-opposite .accent{
      font-weight: 800;
      letter-spacing: .02em;
    }
    .regia-close{
      margin-top: 26px;
      font-weight: 400;
      color: var(--ink);
    }

.band:not(.darkish):not(.dark) .rainbow-sep{
      opacity: 1;
      box-shadow: none;
    }
    .band.darkish .rainbow-sep,
    .band.dark .rainbow-sep{
      opacity: .7;
      box-shadow: 0 4px 12px rgba(47,123,255,.2), 0 4px 12px rgba(255,138,31,.12);
    }

    /* On light bands: full color underlines */
    .band:not(.darkish):not(.dark) .ul-soft::after{
      opacity: 1;

    }

    /* Scroll reveal con blur sottile */
    .reveal{
      opacity: 0;
      transform: translateY(20px) scale(.98);
      filter: blur(6px);
      transition: opacity .8s cubic-bezier(.2,.85,.2,1), 
                  transform .8s cubic-bezier(.2,.85,.2,1), 
                  filter .8s cubic-bezier(.2,.85,.2,1);
    }
    .reveal.in-view{
      opacity: 1;
      transform: translateY(0) scale(1);
      filter: blur(0);
    }

    /* Reveal rapido per elementi secondari */
    .reveal-fast{
      opacity: 0;
      transform: translateY(12px);
      filter: blur(3px);
      transition: opacity .5s cubic-bezier(.2,.85,.2,1), 
                  transform .5s cubic-bezier(.2,.85,.2,1), 
                  filter .5s cubic-bezier(.2,.85,.2,1);
    }
    .reveal-fast.in-view{
      opacity: 1;
      transform: translateY(0);
      filter: blur(0);
    }/* Stagger delay per liste */
    
    .reveal:nth-child(2){ transition-delay: 100ms; }
    .reveal:nth-child(3){ transition-delay: 200ms; }
    .reveal:nth-child(4){ transition-delay: 300ms; }
    .reveal:nth-child(5){ transition-delay: 400ms; }

    /* Prefers-reduced-motion respect */
    @media (prefers-reduced-motion: reduce){
      .reveal, .reveal-fast, .sweep::after, .mark::before{
        transition: opacity .3s ease !important;
        filter: none !important;
        transform: none !important;
      }
      .grad-text{
        animation: none !important;
      }
    }
  
    /* DISATTIVA LE LINEE DECORATIVE (sottolineature/segmenti) dove non servono */
    .no-lines::before,
    .no-lines::after{
      content: none !important;
      display: none !important;
      background: none !important;
    }



    /* ALLERTA MALTEMPO - titolo stile "giornale" */
    .weather-alert-newstitle{
      font-size: clamp(36px, 4.6vw, 60px);
      font-weight: 800;
      letter-spacing: .12em;
      text-transform: uppercase;
      line-height: 1.05;
      margin: 0 0 10px 0;
      color: var(--ink);
    }
    .weather-alert-subtitle{
      font-size: 22px;
      font-weight: 800;
      letter-spacing: .04em;
      text-transform: none;
      opacity: .85;
      margin: 0 0 22px 0;
      color: var(--ink);
    }
    .weather-pill{
      margin: 20px 0 0;
      padding: 16px 24px;
      background: rgba(11,16,32,.88);
      border: 1px solid rgba(37,99,235,.3);
      border-radius: 14px;
      font-size: 15px;
      font-weight: 600;
      line-height: 1.5;
      color: rgba(255,255,255,.88);
    }
    .weather-pill strong{
      font-weight: 800;
      color: #fff;
    }

/* ===== blocco senza id ===== */
.caps-title{
      display:block;
      margin: 0 0 10px;
      font-weight: 800;
      letter-spacing: .10em;
      text-transform: uppercase;
      font-size: 16px;
      color: rgba(255,255,255,.92);
    }/* ===== ib-garanzie-final-fix ===== */
/* ===== blocco senza id ===== */
/* ===== POPUP CONTATTACI RESTYLE ===== */



.contatti-box h2 {
    color: #ff7a1a !important;
    font-size: 64px;
    font-weight: 800 !important;
    letter-spacing: 2px;

    text-transform: uppercase;
    margin-bottom: 10px;
}/* ===== blocco senza id ===== */
/* ===== FAQ: PESO CORRETTO DOMANDE ===== */

/* Alleggeriamo SOLO il testo normale della domanda */
/* minuscole più leggere */
/* Manteniamo forte lo stampatello */
/* Ripristiniamo peso normale delle risposte */


/* ===== FAQ FOOTER (impaginazione come screenshot) ===== */
#faq .faq-footer{
  margin: 52px auto 0;
  max-width: 980px;
  border-top: 1px solid rgba(11,16,32,.10);
  padding-top: 34px;
  text-align: center;
}
#faq .faq-footer-text{
  margin: 0 auto 22px;
  max-width: 860px;
  line-height: 1.55;
}
#faq .faq-footer-text .fft-line1{
  display: inline-block;
  font-size: 18px;
  font-weight: 400;
  color: rgba(11,16,32,.60);
  margin-bottom: 10px;
}
#faq .faq-footer-text .fft-line2{
  display: inline;
  font-size: 18px;
  font-weight: 400;
  color: rgba(11,16,32,.60);
}
#faq .faq-footer-text .fft-strong{
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: rgba(11,16,32,.84);
}
#faq .faq-footer-text .fft-rest{
  font-weight: 400;
  color: rgba(11,16,32,.58);
}
#faq .faq-footer-cta{ display:flex; justify-content:center; }
#faq .faq-footer-cta a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 16px 34px;
  border-radius: 14px;
  text-decoration:none;
  font-family:var(--font-main);
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .02em;
  background: linear-gradient(90deg, #ffb347, #ff8c1a);
  color: #1a1206;
  box-shadow: 0 18px 44px rgba(255,140,26,.35);
  border: 1px solid rgba(255,255,255,.35);
  transition: transform .15s ease, box-shadow .15s ease;
}
#faq .faq-footer-cta a:hover{
  transform: translateY(-2px);
  box-shadow: 0 22px 54px rgba(255,140,26,.45);
}
@media(max-width:640px){
  #faq .faq-footer{ padding-top: 28px; }
  #faq .faq-footer-text .fft-line1{ font-size: 16px; }
  #faq .faq-footer-text .fft-line2{ font-size: 16px; }
  #faq .faq-footer-cta a{ width: 100%; max-width: 360px; }
}/* ===== patch-v3-clean ===== */
/* ===== PATCH v3 CLEAN, contrasti corretti ===== */

/* ── TRIPLA GARANZIA: header su sfondo CHIARO → testi SCURI ── */

#garanzia .wrap { margin-left:auto; margin-right:auto; }/* Testi SCURI nell'area header (sfondo chiaro) */

#garanzia .tg-title           { color: var(--gink) !important; }
#garanzia .mid-claim strong { color: var(--gink) !important; }
#garanzia .p strong    { color: var(--gink) !important; }

/* Testi BIANCHI nei box scuri (card, detail, ibox, bonus) */
#garanzia .card,
#garanzia .card p,
#garanzia .card li,
#garanzia .card-inner > p,
#garanzia .note,
#garanzia .detail,
#garanzia .detail p,
#garanzia .drow,
#garanzia .dhead,
#garanzia .dtext,
#garanzia .ibox,
#garanzia .ibox p,
#garanzia .bonus,
#garanzia .bonus p     { color: rgba(255,255,255,.88) !important; }
#garanzia .card strong,
#garanzia .detail strong,
#garanzia .dhead,
#garanzia .ibox strong,
#garanzia .bonus strong { color: #fff !important; }
#garanzia .card-top    { color: rgba(255,255,255,.48) !important; }
#garanzia .it          { color: rgba(255,255,255,.45) !important; }
#garanzia .note        { color: rgba(255,255,255,.72) !important; }

/* Fix bande chiare: .detail espanso edge-to-edge entro il container */
#garanzia .detail {
  margin-left: -20px !important;
  margin-right: -20px !important;
  border-radius: 0 !important;
}/* UNA SOLA REGIA: gradiente */


/* ALLERTA MALTEMPO: centrati */
.agit-maltempo-inner .malt-newstitle,
.agit-maltempo-inner .malt-subtitle{ text-align:center !important; width:100%; }
.agit-maltempo-inner .malt-subtitle{ max-width:980px; margin-left:auto !important; margin-right:auto !important; }

/* 3 CAMPANELLI */
.camp-card-inner{ padding-left:26px !important; padding-right:26px !important; }
.camp-card-body{ max-width:100% !important; text-align:left !important; }
.camp-note{
  width:100% !important; margin-top:26px; padding:16px 18px; border-radius:14px;
  background:rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.10);
  color:rgba(255,255,255,.78); font-style:italic; line-height:1.35;
}

/* SOLO INSEGNE / SOLO BRESCIA */
.only-title{ font-size:clamp(22px,2.6vw,30px) !important; }

/* NON LAVORIAMO PER TUTTI */
#non-per-tutti .npt-title{ text-transform:uppercase !important; font-weight: 800 !important; letter-spacing:-1.2px !important; }
#non-per-tutti .npt-title .t-light,
#non-per-tutti .npt-title .t-accent{
  font-weight: 800 !important;
  background:linear-gradient(90deg,#2b6cff 0%,#7d2cff 55%,#ff8a00 100%) !important;
  -webkit-background-clip:text !important; background-clip:text !important; color:transparent !important;
}
#non-per-tutti .npt-col-header{ font-size:18px !important; letter-spacing:.14em !important; }
#non-per-tutti .npt-col::before{ top:0 !important; left:0 !important; right:0 !important; height:5px !important; border-radius:18px 18px 0 0 !important; opacity:1 !important; }

/* ===== fix-tripla-regia-solo-v2 ===== */
/* === FIX V2: gradiente "LAVORO FATTO BENE" più saturo (blu→viola→arancio) === */
.grad-text{
  background-image: linear-gradient(90deg, #143CFF 0%, #6E2BFF 48%, #FF7A00 100%) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  opacity:1 !important;
  filter: saturate(160%) contrast(115%) !important;
}

/* === FIX V2: SOLO INSEGNE / SOLO BRESCIA titoli davvero più grandi === */
.sol-only-title{
  width:100% !important;
  display:block !important;
  font-size: clamp(28px, 3.2vw, 44px) !important;
  font-weight: 800 !important;
  letter-spacing: .02em !important;
  line-height: 1.12 !important;
}

/* ===== patch-v4 ===== */
/* === PATCH v4: correzioni estetiche multiple === */

/* RUOLI / SCREENSHOT: ingrandisci testi pannello SX e DX */
#ruoli .persona-buttons .pbtn .role-part{
  font-size: 16px !important;
}
#ruoli .persona-card p{
  font-size: 1.18rem !important;
  line-height: 1.45 !important;
}
#ruoli #personaBody{
  font-size: 1.18rem !important;
  line-height: 1.5 !important;
}

/* CTA chip: centra e testo bianco */
#garanzia .cta-chip,
a.cta-chip{
  display: block !important;
  width: fit-content !important;
  margin: 0 auto !important;
  color: #fff !important;
  text-shadow: 0 1px 3px rgba(0,0,0,.25);
  background: linear-gradient(90deg, #d96a00 0%, #ff9a28 50%, #d96a00 100%) !important;
}

/* sim-bridge: testi non filiformi */
.sim-bridge-body{
  font-weight: 400 !important;
  color: rgba(11,16,32,.72) !important;
}
.sim-bridge-body strong{
  font-weight: 700 !important;
}

/* sim-bridge-note: più grande, ultima frase ingrandita */
.sim-bridge-note{
  font-size: 18px !important;
  font-weight: 500 !important;
  color: rgba(11,16,32,.68) !important;
  font-style: normal !important;
  margin-top: 20px !important;
}

/* ===== fix-tripla-righine ===== */
#garanzia .gar-detail-wrap{
  border:none !important;
  outline:none !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.28) !important;
}

/* ===== fix-tripla-no-lines-aggressive ===== */
#garanzia,
#garanzia *{
  border-left: none !important;
  border-right: none !important;
}

#garanzia .gar-detail-wrap,
#garanzia .container,
#garanzia .wrapper{
  border: none !important;
  outline: none !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.28) !important;
  background-clip: padding-box !important;
}

#garanzia::before,
#garanzia::after{
  display:none !important;
  content:none !important;
}

/* ===== fix-tripla-remove-outer-shadow ===== */
/* Remove the new outer "boxed" shadow around the whole Tripla Garanzia area */
#garanzia,
#garanzia .gar-wrap,
#garanzia .garanzia-wrap,
#garanzia .garanzia-container,
#garanzia .section-inner,
#garanzia .container,
#garanzia .wrapper{
  box-shadow: none !important;
  filter: none !important;
}

/* Ensure only the intended dark panel has shadow (if any) */
#garanzia .gar-detail-wrap{
  box-shadow: 0 18px 50px rgba(0,0,0,.28) !important;
}

/* ===== hero-improvements-css ===== */
/* Hero benefit subtitle */
.hero-benefit-sub {
  font-size: clamp(16px, 1.8vw, 20px);
  font-weight: 300;
  color: rgba(255,255,255,.72);
  line-height: 1.6;
  margin: 14px 0 26px;
  max-width: 68ch;
  letter-spacing: .01em;
}
.hero-benefit-sub strong { font-weight: 700; color: rgba(255,255,255,.92); }

/* Hero dual CTA layout */
.hero-actions-dual { display: flex; gap: 14px; flex-wrap: wrap; align-items: stretch; }
.hero-cta-col{display:flex;flex-direction:column;gap:8px;min-width:260px;flex:1 1 320px}
.hero-cta-col .cta-micro{margin:0;text-align:center;font-size:14px;line-height:1.45;color:rgba(255,255,255,.68)}
.btn.cta-blue{
  background: linear-gradient(90deg, #0f6cff 0%, #245cff 38%, #6d4dff 100%);
  color:#fff;
  border-color: rgba(255,255,255,.12);
  box-shadow: 0 18px 44px rgba(36,92,255,.30);
}
.btn.cta-blue:hover{ transform: translateY(-2px); }

/* Ghost CTA button */
.btn.cta-ghost {
  background: transparent;
  border: 2px solid rgba(255,255,255,.30);
  color: rgba(255,255,255,.82);
  padding: 14px 28px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .08em;
  border-radius: 8px;
  text-decoration: none;
  transition: border-color .2s, color .2s;
}
.btn.cta-ghost:hover { border-color: rgba(255,255,255,.62); color: #fff; }

/* Hero micro-proof bar */
.hero-microproof {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 22px 0 0;
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,.52);
}
.hero-mp-item strong { font-weight: 700; color: rgba(255,255,255,.82); }
.hero-mp-sep { color: rgba(255,255,255,.25); font-size: 18px; }

@media(max-width:600px) {
  .hero-actions-dual { flex-direction: column; }
  .hero-cta-col{min-width:100%;width:100%}
  .hero-mp-sep { display: none; }
  .hero-microproof { gap: 6px; }
  .hero-mp-item { width: 100%; }
}

/* ===== improvements-v11-css ===== */
/* ── PROBLEMA: micro-testimonianza ── */
.problem-micro-testi {
  margin-top: 32px;
  padding: 20px 24px;
  background: rgba(31,70,255,.05);
  border-left: 3px solid rgba(31,70,255,.35);
  border-radius: 0 12px 12px 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.problem-micro-testi svg { opacity: .5; flex-shrink: 0; }
.problem-micro-testi p {
  margin: 0;
  font-size: 17px !important;
  font-style: italic;
  color: rgba(11,16,32,.65) !important;
  line-height: 1.65;
  font-weight: 400 !important;
}
.problem-micro-testi span {
  font-size: 13px;
  color: rgba(11,16,32,.4);
  font-weight: 500;
  letter-spacing: .02em;
}

/* ── CHI SONO: micro-badges ── */
.chi-micro-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 24px 0 20px;
}
.chi-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,138,0,.10);
  border: 1px solid rgba(255,138,0,.22);
  font-size: 13px;
  font-weight: 600;
  color: rgba(255,255,255,.85);
  letter-spacing: .02em;
}

.chi-valore-frase {
  font-size: clamp(17px, 2vw, 21px) !important;
  font-weight: 300 !important;
  color: rgba(255,255,255,.62) !important;
  line-height: 1.7 !important;
  margin: 0 0 28px !important;
  border-top: 1px solid rgba(255,255,255,.08);
  padding-top: 22px;
}
.chi-valore-frase strong {
  font-weight: 700 !important;
  color: rgba(255,255,255,.88) !important;
}

/* ── GARANZIA: frase responsabilità ── */
.garanzia-responsabilita {
  display: block;
  margin-top: 48px;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  max-width: 100%;
  text-align: center;
}
.garanzia-responsabilita svg { display: none; }
.garanzia-responsabilita p {
  margin: 0;
  font-size: 32px !important;
  color: rgba(11,16,32,.85) !important;
  line-height: 1.45;
  font-weight: 400 !important;
}

/* ── PROCESSO: timing ── */
.proc-timing-note {
  margin: 32px 0 0;
  padding: 28px 32px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 18px;
}
.proc-timing-grid {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}
.proc-timing-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.proc-timing-phase {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.80);
}
.proc-timing-time {
  font-size: 17px;
  font-weight: 800;
  color: #ff8a00;
}
.proc-timing-div {
  width: 32px; height: 1px;
  background: rgba(255,255,255,.25);
  flex-shrink: 0;
}
.proc-timing-note-text {
  margin: 18px 0 0 !important;
  text-align: center;
  font-size: 13px !important;
  color: rgba(255,255,255,.38) !important;
  font-style: italic;
  font-weight: 300 !important;
}

.proc-referente-strip {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin: 24px 0 0;
  padding: 20px 28px;
  background: rgba(255,138,0,.07);
  border: 1px solid rgba(255,138,0,.18);
  border-radius: 14px;
  color: rgba(255,255,255,.75);
}
.proc-referente-strip svg { flex-shrink: 0; margin-top: 3px; color: #ff8a00; }
.proc-referente-strip p { margin: 0; font-size: 16px !important; line-height: 1.65; font-weight: 300 !important; }
.proc-referente-strip p strong { font-weight: 700 !important; color: rgba(255,255,255,.9) !important; }

/* ── FORM: social proof ── */
.sim-social-proof {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: center;
  justify-content: center;
  margin: 18px 0 0;
}
.sim-sp-item {
  font-size: 16px;
  font-weight: 600;
  color: rgba(11,16,32,.55);
  letter-spacing: .01em;
}
.sim-sp-sep { color: rgba(11,16,32,.25); }

/* ── COSA SUCCEDE DOPO ── */
.cosa-succede-dopo {
  margin: 52px 0 0;
  text-align: center;
}
.cosa-succede-dopo.in-modal{
  margin: 14px auto 24px;
  max-width: 920px;
}
.csd-eyebrow {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(11,16,32,.38);
  margin-bottom: 18px;
}
.csd-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
  align-items: stretch;
}
.csd-step {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  text-align: left;
  padding: 18px 18px 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.90), rgba(255,255,255,.72));
  border: 1px solid rgba(11,16,32,.08);
  border-radius: 16px;
  box-shadow: 0 10px 26px rgba(11,16,32,.06);
}
.csd-num {
  width: 34px; height: 34px;
  border-radius: 12px;
  background: linear-gradient(135deg, #1f46ff, #7d2cff);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.csd-text strong {
  display: block;
  font-size: 15px;
  font-weight: 800;
  color: #0b1020;
  margin-bottom: 4px;
}
.csd-text span {
  font-size: 13px;
  color: rgba(11,16,32,.58);
  line-height: 1.58;
}
.csd-arrow {
  display:none;
}
.csd-note {
  margin: 16px 0 0 !important;
  font-size: 13px !important;
  color: rgba(11,16,32,.42) !important;
  font-style: italic;
}
@media(max-width:860px){
  .csd-steps { grid-template-columns: 1fr; }
}


/* ── FLOATING CTA MOBILE ── */
.floating-cta-mobile {
  position: fixed;
  bottom: -80px;
  left: 0; right: 0;
  z-index: 999;
  display: flex;
  justify-content: center;
  padding: 0 16px 20px;
  transition: bottom .4s cubic-bezier(.34,1.26,.64,1);
  pointer-events: none;
}
.floating-cta-mobile.visible {
  bottom: 0;
  pointer-events: all;
}
.floating-cta-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 32px;
  background: linear-gradient(135deg, #ff8a00, #ff6600);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .08em;
  border: none;
  border-radius: 999px;
  box-shadow: 0 8px 32px rgba(255,100,0,.42);
  cursor: pointer;
  white-space: nowrap;
}
/* Nasconde su desktop */
@media(min-width:769px){
  .floating-cta-mobile { display: none !important; }
}

/* ===== micro-testi-distributed-css ===== */
.micro-testi-strip {
  max-width: 900px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  padding: 40px 0;
}
.mts-item {
  padding: 18px 20px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
}
.mts-quote {
  font-size: 15px;
  font-style: italic;
  color: rgba(255,255,255,.70);
  line-height: 1.65;
  margin: 0 0 10px;
}
.mts-author {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  color: rgba(255,255,255,.35);
  text-transform: uppercase;
}

/* light version */
.micro-testi-strip.light .mts-item {
  border-color: rgba(11,16,32,.09);
  background: rgba(11,16,32,.03);
}
.micro-testi-strip.light .mts-quote { color: rgba(11,16,32,.62); }
.micro-testi-strip.light .mts-author { color: rgba(11,16,32,.35); }

/* ===== v12-extra-css ===== */
/* ── HERO: Tripla Garanzia bar ── */
.hero-tripla-garanzia {
  display: inline-flex;
  flex-direction: column;
  gap: 10px;
  margin: 20px 0 28px;
  padding: 14px 20px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,138,0,.22);
  border-radius: 12px;
}
.hero-tg-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .20em;
  text-transform: uppercase;
  color: #ff8a00;
  margin-bottom: 2px;
}
.hero-tg-items {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.hero-tg-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: rgba(255,255,255,.85);
  line-height: 1.3;
}
.hero-tg-item svg { flex-shrink: 0; }
.hero-tg-item strong {
  color: #fff;
  font-weight: 800;
  letter-spacing: .03em;
  font-size: 13px;
}
.hero-tg-sep {
  color: #ff8a00;
  font-weight: 800;
  font-size: 14px;
  opacity: .7;
}
@media(max-width:600px){
  .hero-tg-items { flex-direction: column; gap: 6px; }
  .hero-tg-sep { display: none; }
}

/* ── RUOLI: empathy intro ── */
.ruoli-empathy-intro {
  max-width: 100%;
  margin: 0 0 32px;
  text-align: center;
  padding: 30px 36px;
  background: #0b1230;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 8px 32px rgba(0,0,0,.25);
}
.ruoli-empathy-intro p {
  font-size: clamp(17px, 1.9vw, 21px) !important;
  font-weight: 400 !important;
  line-height: 1.70 !important;
  color: rgba(255,255,255,.78) !important;
  margin: 0 !important;
}
.ruoli-empathy-intro strong {
  display: block;
  font-weight: 800 !important;
  font-size: clamp(18px, 2vw, 22px) !important;
  text-transform: uppercase !important;
  letter-spacing: .03em !important;
  color: #fff !important;
  margin-top: 10px !important;
}

/* ── Proc timing note adjustments ── */
.proc-timing-note {
  background: rgba(255,255,255,.06) !important;
  border-color: rgba(255,255,255,.12) !important;
}

/* ===== hero-col-v2-css ===== */
/* Hero col, versione ibrido A+B */
.hero-col {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.hero-col-icon {
  margin-bottom: 12px;
  opacity: .9;
}
.hero-col-benefit {
  font-family:var(--font-main);
  font-size: clamp(16px, 1.8vw, 20px);
  font-weight: 800;
  letter-spacing: .02em;
  line-height: 1.18;
  color: #fff;
  text-transform: uppercase;
  margin-bottom: 7px;
}
.hero-col-process {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #ff8a00;
  margin-bottom: 12px;
  opacity: .85;
}
.hero-col-txt {
  color: rgba(255,255,255,.68);
  font-size: 14px;
  line-height: 1.65;
  font-weight: 300;
}
/* Override vecchi stili residui */
.hero-col-title { display: none !important; }
.hero-col-sub { display: none !important; }

/* ===== hero-tg-full-css ===== */
/* ── TRIPLA GARANZIA espansa, sopra le 3 card ── */
.hero-tg-full {
  display: block !important;
  width: 100%;
  margin: 22px 0 30px;
  padding: 20px 26px;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,138,0,.22);
  border-radius: 16px;
  box-sizing: border-box;
}
.hero-tg-full .hero-tg-label {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .20em;
  text-transform: uppercase;
  color: #ff8a00;
  margin-bottom: 18px;
  opacity: .9;
}
.hero-tg-grid {
  display: grid;
  grid-template-columns: 1fr 1px 1fr 1px 1fr;
  align-items: start;
  gap: 0;
}
.hero-tge-divider {
  align-self: stretch;
  width: 1px;
  background: rgba(255,255,255,.10);
  margin: 0 22px;
}
.hero-tge-col {
  padding: 0 4px;
}
.hero-tge-num {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  color: #ff8a00;
  opacity: .6;
  margin-bottom: 5px;
}
.hero-tge-name {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.2;
  margin-bottom: 8px;
}
.hero-tge-desc {
  font-size: 13px;
  font-weight: 300;
  color: rgba(255,255,255,.60);
  line-height: 1.6;
}
@media (max-width: 720px) {
  .hero-tg-grid {
    grid-template-columns: 1fr;
  }
  .hero-tge-divider {
    width: 100%;
    height: 1px;
    margin: 14px 0;
  }
}/* ===== hero-tg-circles-css ===== */
/* cerchietti + titoli più grandi */

.hero-tge-name {
  display: flex !important;
  align-items: center;
  font-size: 17px !important;
  font-weight: 800 !important;
  letter-spacing: .04em !important;
  color: #fff !important;
  margin-bottom: 9px !important;
  line-height: 1.2 !important;
}
.hero-tge-desc {
  font-size: 12px !important;
  padding-left: 31px;
}
/* label TRIPLA GARANZIA con badge shield */
.hero-tge-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #ff8a00;
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  margin-right: 6px;
  flex-shrink: 0;
}
.hero-tg-full .hero-tg-label {
  font-size: 11px !important;
  letter-spacing: .18em !important;
  margin-bottom: 16px !important;
  display: flex !important;
  align-items: center !important;
}

/* ===== hero-tg-v3-css ===== */
/* ── Riquadro Tripla Garanzia ── */
.hero-tg-full {
  position: relative;
  width: 100%;
  margin: 32px 0 28px;
  padding: 28px 26px 22px;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,138,0,.28);
  border-radius: 16px;
  box-sizing: border-box;
}

/* chip centrata in alto, sovrapposta al bordo */
.hero-tg-chip-row {
  position: absolute;
  top: -14px;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  pointer-events: none;
}
.hero-tg-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #ff8a00;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 20px;
  white-space: nowrap;
  pointer-events: auto;
}

/* griglia 3 colonne con separatori corretti */
.hero-tg-grid {
  display: flex;
  align-items: stretch;
  gap: 0;
  width: 100%;
}
.hero-tge-col {
  flex: 1;
  padding: 0 18px;
}
.hero-tge-col:first-child { padding-left: 4px; }
.hero-tge-col:last-child  { padding-right: 4px; }

/* separatore verticale vero, linea tra le colonne */
.hero-tge-divider {
  width: 1px;
  background: rgba(255,255,255,.12);
  flex-shrink: 0;
  align-self: stretch;
  margin: 0;
}

/* titolo garanzia */
.hero-tge-name {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
  font-size: 19px !important;
  font-weight: 800 !important;
  letter-spacing: .03em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  margin-bottom: 8px !important;
  line-height: 1.2 !important;
}
.hero-tge-circle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  min-width: 22px;
  border-radius: 50%;
  background: #ff8a00;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  margin-right: 9px;
  flex-shrink: 0;
  line-height: 1;
}
.hero-tge-desc {
  font-size: 12px !important;
  font-weight: 300 !important;
  color: rgba(255,255,255,.58) !important;
  line-height: 1.55 !important;
  padding-left: 31px !important;
  margin: 0 !important;
}

/* mobile: stack verticale */
@media (max-width: 720px) {
  .hero-tg-grid { flex-direction: column; }
  .hero-tge-divider { width: 100%; height: 1px; margin: 14px 0; }
  .hero-tge-col { padding: 0 4px !important; }
}

/* ===== hero-col-head-css ===== */
.hero-col-head {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin-bottom: 8px;
}
.hero-col-head svg {
  flex-shrink: 0;
  margin-top: 3px;
}
/* hero-col-icon non più usato, nascondi se residuo */
.hero-col-icon { display: none !important; }

/* ===== hero-col-v3-css ===== */
/* icona grande, allineata all'altezza delle 2 righe */
.hero-col-svg {
  flex-shrink: 0;
  align-self: flex-start;
  margin-top: -4px;
  opacity: .92;
}
.hero-col-head {
  align-items: center !important;
  gap: 12px !important;
  margin-bottom: 10px !important;
}
/* riga maiuscola */
.hcb-upper {
  font-size: clamp(15px, 1.6vw, 18px);
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.15;
}
/* riga minuscola */
.hcb-lower {
  font-size: clamp(14px, 1.5vw, 17px);
  font-weight: 400;
  text-transform: none;
  color: rgba(255,255,255,.82);
  line-height: 1.2;
}
/* rimuovi stile precedente sul benefit generico */
.hero-col-benefit {
  font-size: unset !important;
  font-weight: unset !important;
  text-transform: unset !important;
  color: unset !important;
  line-height: unset !important;
}

/* ===== agit-thin-css ===== */
.agit-thin-white {
  color: #fff;
  font-weight: 300;
}
.agit-thin-grey {
  color: #888;
  font-weight: 300;
}/* ===== pbtn-desc-css ===== */


/* ===== pbtn-compact-final-css ===== */
/* Riduzione altezza pulsanti, override definitivo */
#ruoli .persona-buttons .pbtn {
  padding: 7px 14px !important;
  gap: 12px !important;
  align-items: center !important;
  display: flex !important;
  justify-content: space-between !important;
}

/* ===== pbtn-fixes-css ===== */
/* Rispetta maiuscole/minuscole scritte nell'HTML */
#ruoli .persona-buttons .pbtn .role-part,
#ruoli .role-part {
  text-transform: none !important;
  font-weight: 800 !important;
  font-size: 14px !important;
  letter-spacing: .01em !important;
}
/* Altezza uguale tra active e non-active */
#ruoli .pbtn.active {
  transform: none !important;
}
#ruoli .persona-buttons .pbtn,
#ruoli .persona-buttons .pbtn.active {
  min-height: unset !important;
  padding: 7px 14px !important;
  box-sizing: border-box !important;
}/* ===== panel-right-v2-css ===== */
/* ── Titolo ruolo: tutti su una riga con pallino separatore ── */
/* Pallino separatore */
/* ── Testi principali ridotti di 1pt (solo Lead e testo, NON i chip/bullet) ── */
/* Pallini navigazione: nascosti */
/* ===== chip-spacing-css ===== */
/* Bullet (chip), interlinea ridotta */


/* ===== resp-unica-underline-css ===== */
.grad-underline {
  display: inline-block;
  border-bottom: 2px solid transparent;
  border-image: linear-gradient(90deg, #1f46ff, #7d2cff) 1;
  padding-bottom: 2px;
}

/* ===== sol-proof-strong-css ===== */
.sol-proof ul li strong {
  font-size: 1.04em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .015em;
  color: rgba(255,255,255,.95);
}

/* ===== infog-timing-css ===== */
.infog-timing {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin: 32px 0 0;
  padding: 36px 48px;
  background: #fff;
  border: 1px solid rgba(11,16,32,.07);
  border-radius: 18px;
  box-shadow: 0 4px 28px rgba(11,16,32,.05);
}
.infog-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex: 1;
  padding: 0 24px;
}
.infog-num {
  font-size: 52px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.03em;
  background: linear-gradient(135deg, #1f46ff 0%, #7d2cff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: 2px;
}
.infog-phase {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: rgba(11,16,32,.50);
}
.infog-time {
  font-size: 17px;
  font-weight: 800;
  color: #0b1020;
  letter-spacing: -.01em;
  line-height: 1.2;
  text-align: center;
  margin-top: 2px;
}
.infog-sep {
  width: 1px;
  background: rgba(11,16,32,.08);
  flex-shrink: 0;
  align-self: stretch;
  margin: 8px 0;
}
.infog-footnote {
  margin: 14px 0 0 !important;
  text-align: center;
  font-size: 15px !important;
  color: rgba(11,16,32,.50) !important;
  font-style: italic;
  font-weight: 400 !important;
  line-height: 1.5 !important;
}

/* ===== proc-timing-light-css ===== */
.proc-timing-phase { color: rgba(11,16,32,.45) !important; }
.proc-timing-div { background: rgba(11,16,32,.15) !important; }
.proc-timing-note { background: rgba(11,16,32,.04) !important; border-color: rgba(11,16,32,.08) !important; }

/* ===== tc-infog-css ===== */
.tc-infog {
  display: flex; align-items: stretch; gap: 0;
  margin: 24px 0 14px; padding: 22px 32px;
  background: #fff; border: 1px solid rgba(11,16,32,.07);
  border-radius: 14px; box-shadow: 0 2px 16px rgba(11,16,32,.05);
}
.tc-step { display:flex; flex-direction:column; align-items:center; gap:4px; flex:1; padding:0 16px; }
.tc-num {
  font-size: 52px; font-weight: 800; line-height: 1; letter-spacing: -.02em;
  background: linear-gradient(135deg, #1f46ff 0%, #7d2cff 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.tc-phase { font-size:28px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:rgba(11,16,32,.38); }
.tc-time { font-size:20px; font-weight:800; color:#0b1020; text-align:center; margin-top:5px; }
.tc-sep { width:1px; background:rgba(11,16,32,.08); flex-shrink:0; margin:6px 0; }
.tc-footnote-dark { font-size:12px !important; color:rgba(11,16,32,.40) !important; font-style:italic; font-weight:400 !important; line-height:1.5 !important; margin:0 0 8px !important; text-align:center !important; }

/* ===== pbtn-all-fixes-css ===== */
/* Padding compatto uniforme */
#ruoli .persona-buttons .pbtn,
#ruoli .persona-buttons .pbtn.active {
  padding: 7px 14px !important;
  box-sizing: border-box !important;
  transform: none !important;
}
/* Rispetta case HTML */
#ruoli .persona-buttons .pbtn .role-part,
#ruoli .role-part {
  text-transform: none !important;
  font-weight: 800 !important;
  font-size: 14px !important;
}
/* Gap compatto */
#ruoli .persona-buttons .pbtn .role-stack { gap: 3px !important; }
#ruoli .persona-buttons .pbtn .role-divider { margin: 3px 0 !important; }
/* Desc */
.pbtn-desc {
  display: block !important;
  line-height: 1.20 !important;
  font-size: 11.5px !important;
  text-align: right !important;
}/* Pallini nav nascosti */


/* ===== panel-right-all-css ===== */
#ruoli .persona-panel #personaTitle .role-stack {
  display: flex !important; flex-direction: row !important;
  flex-wrap: wrap !important; align-items: center !important; gap: 0 !important;
}
#ruoli .persona-panel #personaTitle .role-part {
  display: inline !important; font-size: 1.20rem !important;
  font-weight: 800 !important; color: #0b1020 !important;
  text-transform: none !important; line-height: 1.3 !important;
}
#ruoli .persona-panel #personaTitle .role-divider {
  display: inline-block !important; width: auto !important; height: auto !important;
  background: none !important; margin: 0 6px !important; border-radius: 0 !important;
}
#ruoli .persona-panel #personaTitle .role-divider::after {
  content: "·" !important; color: rgba(11,16,32,.35) !important;
  font-weight: 800 !important; font-size: 1.1rem !important; vertical-align: middle !important;
}
#ruoli .persona-panel #personaLead {
  font-size: 1.05rem !important; font-weight: 700 !important; line-height: 1.40 !important;
}
#ruoli .persona-panel #personaBody,
#ruoli .persona-card p:not(.lead) {
  font-size: 0.88rem !important; line-height: 1.45 !important; font-weight: 400 !important;
}
#ruoli .persona-panel #personaChips {
  display: flex !important; flex-direction: column !important; gap: 4px !important;
}
#ruoli .chip { line-height: 1.2 !important; padding: 0 !important; }
#ruoli .persona-dots { display: none !important; }

/* ===== hero-col-icon-topright-css ===== */
/* Icona in alto a destra, titolo a sinistra */
.hero-col {
  position: relative !important;
}
.hero-col-head {
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 6px !important;
  margin-bottom: 8px !important;
  padding-right: 52px !important; /* spazio per icona */
}
.hero-col-svg {
  position: absolute !important;
  top: 22px !important;
  right: 20px !important;
  width: 36px !important;
  height: 36px !important;
  margin: 0 !important;
  opacity: .70 !important;
}
.hcb-upper {
  text-align: left !important;
  font-size: clamp(16px, 1.7vw, 19px) !important;
}
.hcb-lower {
  text-align: left !important;
}
.hero-col-process {
  text-align: left !important;
}
.hero-col-txt {
  text-align: left !important;
}

/* ===== chi-tagline-rule-css ===== */
.chi-tagline-wrap {
  position: relative;
}
.chi-tagline-rule {
  width: 100%;
  height: 3px;
  margin: 0 0 18px;
  border-radius: 0;
  background: linear-gradient(90deg, #1f46ff, #7d2cff, #ff8a00);
}

/* ===== agit-float-label-css ===== */
.agit-box-wrap {
  position: relative;
  margin-top: 32px;
  padding-top: 18px;
}
.agit-float-label {
  position: absolute;
  top: 0;
  left: 28px;
  background: #ff8a00;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 4px 14px;
  border-radius: 999px;
  z-index: 2;
  line-height: 1;
}
.agit-box-wrap .agit-box {
  margin-top: 0;
  position: relative;
}

/* ===== agit-inline-label-css ===== */
.agit-inline-label {
  display: inline-block;
  position: relative;
  z-index: 2;
  background: #ff8a00;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 7px 28px;
  border-radius: 999px;
}

/* ===== sol-trio-wrap-css ===== */
.sol-trio-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 48px 0;
}
.sol-trio-chip-row {
  position: relative;
  z-index: 2;
  margin-bottom: -16px;
}
.sol-trio-wrap .agit-inline-label {
  box-shadow: 0 4px 16px rgba(255,138,0,.45);
}
.sol-trio-wrap .sol-trio {
  width: 100%;
  padding-top: 32px;
  border-radius: var(--radius);
}

/* ===== sol-trio-grid-css ===== */
.sol-trio {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr auto 1fr !important;
  align-items: center !important;
  justify-items: center !important;
  gap: 0 !important;
}
.trio-item {
  text-align: center;
  line-height: 1.1;
  padding: 0 16px;
  font-size: 36px;
  font-weight: 800;
  letter-spacing: .08em;
  color: rgba(255,255,255,.92);
  width: 100%;
}
.sol-trio .trio-sep {
  display: block !important;
  width: 2px !important;
  height: 2em !important;
  background: var(--orange) !important;
  border-radius: 2px !important;
  margin: 0 !important;
  opacity: .9 !important;
  align-self: center !important;
  flex-shrink: 0 !important;
}

/* ===== trio-adjust-css ===== */
/* Sposta SX il blocco sinistro */
.trio-left { transform: translateX(-18px); }
.trio-sep-left { transform: translateX(-18px); }
/* Sposta DX il blocco destro */
.trio-sep-right { transform: translateX(18px); }
.trio-right { transform: translateX(18px); }
/* Più padding verticale per simmetria */
.sol-trio-wrap .sol-trio {
  padding-top: 36px !important;
  padding-bottom: 36px !important;
}

/* ===== chi-value-layout-css ===== */
/* Struttura: icona+titolo su stessa riga, testo sotto a piena larghezza */
#chi-sono .chi-value {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 10px !important;
  padding: 20px 22px !important;
}
#chi-sono .chi-value-icon {
  display: none !important; /* nasconde il vecchio icon-solo, usiamo quello nel titolo */
}
#chi-sono .chi-value-content {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  width: 100% !important;
}
#chi-sono .chi-value-title {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}
#chi-sono .chi-value-title::before {
  content: '';
  display: inline-flex;
  flex-shrink: 0;
}
#chi-sono .chi-value-text {
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: rgba(255,255,255,.72) !important;
  font-weight: 400 !important;
  width: 100% !important;
}

/* ===== chi-value-icon-inline-css ===== */
#chi-sono .chi-value-icon {
  display: inline-flex !important;
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  border-radius: 9px !important;
  flex-shrink: 0 !important;
}
#chi-sono .chi-value-title {
  font-size: 13px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
  color: #fff !important;
  margin: 0 !important;
}

/* ===== chi-value-icon-corner-css ===== */
/* Card: position relative per ancorare icona */
#chi-sono .chi-value {
  position: relative !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  padding: 28px 22px 22px !important;
  margin-top: 18px !important; /* spazio per icona che sporge */
}
/* Icona: spigolo in alto a SX, metà fuori */
#chi-sono .chi-value-icon {
  display: inline-flex !important;
  position: absolute !important;
  top: -13px !important;
  left: -10px !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  border-radius: 10px !important;
  z-index: 2 !important;
  box-shadow: 0 6px 18px rgba(37,99,235,.45) !important;
}
/* Titolo centrato */
#chi-sono .chi-value-title {
  display: block !important;
  text-align: center !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
  color: #fff !important;
  margin: 0 0 6px !important;
}
/* Testo centrato, piena larghezza */
#chi-sono .chi-value-text {
  text-align: center !important;
  width: 100% !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: rgba(255,255,255,.72) !important;
  font-weight: 400 !important;
}

/* ===== chi-values-width-css ===== */
#chi-sono .chi-values {
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  column-gap: 28px !important;
  row-gap: 14px !important;
}

/* ===== chi-hook-quote-css ===== */
.chi-hook {
  position: relative !important;
  overflow: hidden !important;
}
.chi-hook-quote-mark {
  position: absolute;
  top: -18px;
  left: 12px;
  font-size: 120px;
  font-family:var(--font-main) !important;
  color: rgba(255,138,0,.10);
  line-height: 1;
  font-style: normal;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}
.chi-hook > p {
  position: relative;
  z-index: 1;
}

/* ===== cta-final-uniformity ===== */
.landing-cta-btn{min-width:280px !important;padding:19px 30px !important;font-size:15px !important;border-radius:16px !important;}
.landing-cta-micro{font-size:13.5px !important;line-height:1.45 !important;max-width:340px !important;opacity:.86 !important;}
.hero-actions-dual .landing-cta-btn{min-width:210px !important;padding:17px 24px !important;font-size:14px !important;}
.faq-footer-cta .landing-cta-btn,.testi-cta-band .landing-cta-btn,.gallery-cta-section .landing-cta-btn,.cta-wrapper .landing-cta-btn,.sol-cta .landing-cta-btn,.chi-cta .landing-cta-btn{min-width:280px !important;padding:19px 30px !important;font-size:15px !important;}
.faq-footer-cta .landing-cta-micro,.testi-cta-band .landing-cta-micro,.gallery-cta-section .landing-cta-micro,.cta-wrapper .landing-cta-micro,.sol-cta .landing-cta-micro,.chi-cta .landing-cta-micro{font-size:13.5px !important;line-height:1.45 !important;max-width:340px !important;}
@media (max-width:720px){.landing-cta-btn,.faq-footer-cta .landing-cta-btn,.testi-cta-band .landing-cta-btn,.gallery-cta-section .landing-cta-btn,.cta-wrapper .landing-cta-btn,.sol-cta .landing-cta-btn,.chi-cta .landing-cta-btn{min-width:0 !important;width:100% !important;}}

/* ===== ib-cta-pill-bigger-v19 ===== */
/* CTA final tuning: more rounded + slightly larger everywhere */
.landing-cta-btn{
  border-radius:999px !important;
  min-width:320px !important;
  padding:23px 40px !important;
  font-size:16px !important;
  font-weight: 800 !important;
  letter-spacing:.07em !important;
  box-shadow:0 16px 38px rgba(0,0,0,.18) !important;
}
.landing-cta-btn:hover{
  transform:translateY(-2px) !important;
  box-shadow:0 22px 48px rgba(0,0,0,.22) !important;
}
.landing-cta-btn.sim{
  background:linear-gradient(90deg,#1538d1 0%,#2b6cff 52%,#1538d1 100%) !important;
  color:#fff !important;
}
.landing-cta-btn.cont{
  background:linear-gradient(90deg,#d96a00 0%,#ff9a28 52%,#d96a00 100%) !important;
  color:#fff !important;
}
.landing-cta-micro{
  font-size:13.5px !important;
  line-height:1.45 !important;
}
.hero-actions-dual{gap:14px !important;}
.hero-actions-dual .landing-cta-btn{
  min-width:240px !important;
  padding:20px 30px !important;
  font-size:15px !important;
  border-radius:999px !important;
}
.hero-actions-dual .landing-cta-col{gap:2px !important;}
.hero-actions-dual .landing-cta-micro{display:none !important;}
.faq-footer-cta .landing-cta-btn,
.testi-cta-band .landing-cta-btn,
.gallery-cta-section .landing-cta-btn,
.cta-wrapper .landing-cta-btn,
.sol-cta .landing-cta-btn,
.chi-cta .landing-cta-btn{
  min-width:320px !important;
  padding:23px 40px !important;
  font-size:16px !important;
  border-radius:999px !important;
}
@media (max-width:720px){
  .landing-cta-btn,
  .faq-footer-cta .landing-cta-btn,
  .testi-cta-band .landing-cta-btn,
  .gallery-cta-section .landing-cta-btn,
  .cta-wrapper .landing-cta-btn,
  .sol-cta .landing-cta-btn,
  .chi-cta .landing-cta-btn,
  .hero-actions-dual .landing-cta-btn{
    width:100% !important;
    min-width:0 !important;
  }
}

/* ===== cta-gradient-npt-fix-v20 ===== */
/* CTA gradients: subtle left-to-right, no central highlight */
.landing-cta-btn.sim{
  background: linear-gradient(90deg, #1538d1 0%, #2b6cff 100%) !important;
  color:#fff !important;
}
.landing-cta-btn.cont{
  background: linear-gradient(90deg, #d96a00 0%, #ff9a28 100%) !important;
  color:#fff !important;
}

/* NON LAVORIAMO PER TUTTI: keep the 2 CTA side by side on desktop */
#non-per-tutti .landing-cta-dual{
  display:flex !important;
  flex-wrap:nowrap !important;
  justify-content:center !important;
  align-items:flex-start !important;
  gap:16px !important;
}
#non-per-tutti .landing-cta-col{
  flex:0 1 auto !important;
  width:auto !important;
  min-width:0 !important;
}
#non-per-tutti .landing-cta-btn{
  min-width:290px !important;
}
@media (max-width: 760px){
  #non-per-tutti .landing-cta-dual{
    flex-wrap:wrap !important;
  }
  #non-per-tutti .landing-cta-col{
    width:100% !important;
  }
  #non-per-tutti .landing-cta-btn{
    width:100% !important;
    min-width:0 !important;
  }
}

/* ===== global-harmonizer-v17 ===== */
:root{
    /* Easing system (Material-style + ammorbidito) */
    --ease-out: cubic-bezier(.22, 1, .36, 1);
    --ease-out-soft: cubic-bezier(.16, 1, .3, 1);
    --ease-in-out: cubic-bezier(.65, 0, .35, 1);
    --ease-spring: cubic-bezier(.34, 1.56, .64, 1);

    /* Durate uniformi */
    --dur-fast: 180ms;
    --dur-base: 260ms;
    --dur-slow: 520ms;
    --dur-reveal: 720ms;

    /* Focus ring unificato */
    --focus-ring: 0 0 0 3px rgba(255,138,0,.35), 0 0 0 5px rgba(31,70,255,.18);
  }

  /* Scroll smoother (rispetta reduced-motion) */
  @media (prefers-reduced-motion: no-preference){
    html{ scroll-behavior: smooth; }
  }

  /* ── REVEAL ANIMATIONS uniformi ────────────────────────── */
  .reveal{
    opacity: 0;
    transform: translate3d(0, 24px, 0);
    filter: none;                       /* via il blur, era pesante */
    transition:
      opacity var(--dur-reveal) var(--ease-out),
      transform var(--dur-reveal) var(--ease-out);
    will-change: opacity, transform;
  }
  .reveal.in-view{
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
  .reveal-fast{
    opacity: 0;
    transform: translate3d(0, 14px, 0);
    filter: none;
    transition:
      opacity var(--dur-slow) var(--ease-out),
      transform var(--dur-slow) var(--ease-out);
  }
  .reveal-fast.in-view{
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
  /* Stagger esteso (era fermo a 4) */
  .reveal:nth-child(1){ transition-delay:  0ms; }
  .reveal:nth-child(2){ transition-delay:  80ms; }
  .reveal:nth-child(3){ transition-delay: 160ms; }
  .reveal:nth-child(4){ transition-delay: 240ms; }
  .reveal:nth-child(5){ transition-delay: 320ms; }
  .reveal:nth-child(6){ transition-delay: 400ms; }
  .reveal:nth-child(7){ transition-delay: 480ms; }
  .reveal:nth-child(8){ transition-delay: 540ms; }

  /* ── BOTTONI: hover/focus/active uniformi ──────────────── */
  .btn,
  .landing-cta-btn,
  .floating-cta-btn,
  .testi-cta-btn,
  button.cta,
  a.cta{
    transition:
      transform var(--dur-base) var(--ease-out),
      box-shadow var(--dur-base) var(--ease-out),
      background-color var(--dur-base) var(--ease-out),
      color var(--dur-base) var(--ease-out),
      filter var(--dur-base) var(--ease-out) !important;
    will-change: transform;
  }
  .btn:hover,
  .landing-cta-btn:hover,
  .floating-cta-btn:hover,
  .testi-cta-btn:hover,
  button.cta:hover,
  a.cta:hover{
    transform: translateY(-2px);
    filter: brightness(1.04);
  }
  .btn:active,
  .landing-cta-btn:active,
  .floating-cta-btn:active,
  .testi-cta-btn:active,
  button.cta:active,
  a.cta:active{
    transform: translateY(0);
    transition-duration: var(--dur-fast);
  }

  /* ── FOCUS VISIBLE accessibile e uniforme ──────────────── */
  :focus{ outline: none; }
  a:focus-visible,
  button:focus-visible,
  .btn:focus-visible,
  [role="button"]:focus-visible,
  input:focus-visible,
  select:focus-visible,
  textarea:focus-visible{
    outline: none;
    box-shadow: var(--focus-ring);
    border-radius: 10px;
  }

  /* ── CARD: transizione hover unificata ─────────────────── */
  .card,
  .hero-col,
  .gallery-item,
  .testi-card,
  .persona-card,
  .sol-only-card{
    transition:
      transform var(--dur-base) var(--ease-out),
      box-shadow var(--dur-base) var(--ease-out),
      border-color var(--dur-base) var(--ease-out) !important;
  }

  /* ── ANCORE: transizione colore liscia ─────────────────── */
  a{
    transition: color var(--dur-fast) var(--ease-out);
  }

  /* ── IMG: fallback watermark logo mancante ─────────────── */
  .hero-watermark img{
    min-height: 1px;
  }
  .hero-watermark img:not([src]),
  .hero-watermark img[src=""]{ display: none; }

  /* ── Selezione testo coerente col brand ────────────────── */
  ::selection{
    background: rgba(255,138,0,.30);
    color: inherit;
  }

  /* ── Scrollbar discreta ────────────────────────────────── */
  @media (pointer: fine){
    *::-webkit-scrollbar{ width: 10px; height: 10px; }
    *::-webkit-scrollbar-thumb{
      background: rgba(125,140,170,.35);
      border-radius: 999px;
      border: 2px solid transparent;
      background-clip: content-box;
    }
    *::-webkit-scrollbar-thumb:hover{
      background: rgba(125,140,170,.55);
      background-clip: content-box;
      border: 2px solid transparent;
    }
  }

  /* ── TWEAK richiesti dall'utente ────────────────────────── */

  /* Titoli "Prima di scegliere…" / "3 criteri", testo .t-light
     ora bianco pieno, non più 44%. METODO resta gradient.     */
  #metodo-scelta .ib-new-title .t-light,
  #criteri-scelta .ib-new-title .t-light{
    color: #fff !important;
  }

  /* Allerta Maltempo, fondo continuo con la sezione bianca
     soprastante ("Il processo" usa var(--bg) = #f6f7fb).      */
  #allerta-maltempo.allerta-journal-section{
    background: var(--bg) !important;
  }
  /* Il blob radiale blu in alto a destra dava ulteriore stacco:
     lo abbasso molto, così resta solo un alone discreto.      */
  #allerta-maltempo.allerta-journal-section::before{
    background: radial-gradient(circle, rgba(31,70,255,.04), transparent 65%) !important;
  }

  /* ── EYEBROWS uniformi v17 ──────────────────────────────────
     Tutti i pre-titoli di sezione usano il pattern .section-rule
     (dot gradient + testo + linea che fade-out).
     Qui solo gli adattamenti per band scure e l'animazione di
     ingresso. Il look base è quello definito nel CSS originale.   */
  .band.dark .section-rule,
  .band.darkish .section-rule,
  .band.dark .npt-rule,
  .band.darkish .npt-rule,
  #non-per-tutti .npt-rule{
    color: rgba(255,255,255,.78) !important;
  }
  .band.dark .section-rule .line,
  .band.darkish .section-rule .line,
  .band.dark .npt-rule .line,
  .band.darkish .npt-rule .line,
  #non-per-tutti .npt-rule .line{
    background: linear-gradient(90deg, rgba(255,255,255,.30), transparent) !important;
  }
  .section-rule,
  .npt-rule{
    /* Più spazio tra pallino e testo */
    gap: 18px !important;
  }
  .section-rule .line,
  .npt-rule .line{
    /* L'animazione di "uscita" della linea è gestita da JS via clip-path. */
    transition: clip-path .6s var(--ease-out, cubic-bezier(.22,1,.36,1)) !important;
  }
  /* Pulsazione pallino più contenuta (1 → 1.06 invece di 1.10/1.18) */
  .section-rule .dot,
  .npt-rule .dot{
    animation: ebDotPulse 2.6s ease-in-out infinite !important;
  }
  @keyframes ebDotPulse{
    0%, 100%{ transform: scale(1);    opacity: 1;   }
    50%    { transform: scale(1.06); opacity: .92; }
  }
  /* Niente cursore: rimosso il caret */
  .section-rule .eb-caret,
  .npt-rule .eb-caret{ display: none !important; }
  /* Niente slide-in da SX: l'eyebrow è sempre visibile, parte
     direttamente la digitazione del testo "in loco".          */
  .section-rule,
  .npt-rule{
    opacity: 1 !important;
    transform: none !important;
  }
  @media (prefers-reduced-motion: reduce){
    .section-rule .dot, .npt-rule .dot{ animation: none !important; }
  }

  /* ── TWEAK richiesti dall'utente (post-screenshot v17) ───── */

  /* 1) Chip "Rendering / Referente / Brescia", versione DARK
     con check in pallino arancio, testo più grande                 */
  #problema .ib-proof-row{
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 14px !important;
    margin-top: 32px !important;
  }
  #problema .ib-chip{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    padding: 18px 22px 18px 62px !important;
    border-radius: 14px !important;
    background: linear-gradient(180deg, #0f172a 0%, #0b1230 100%) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    box-shadow: 0 6px 18px rgba(11,16,32,.18) !important;
    text-align: center !important;
    line-height: 1.35 !important;
    position: relative !important;
    overflow: hidden !important;
  }
  /* Pallino arancio attorno alla spunta */
  #problema .ib-chip .ib-chip-ic{
    position: absolute !important;
    left: 22px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 28px !important;
    height: 28px !important;
    padding: 6px !important;
    flex-shrink: 0 !important;
    box-sizing: border-box !important;
    border-radius: 50% !important;
    background: linear-gradient(135deg, #ffb347 0%, #ff8a00 55%, #e86f00 100%) !important;
    fill: none !important;
    stroke: #1a1206 !important;
    stroke-width: 3 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    box-shadow: 0 4px 12px rgba(255,138,0,.30) !important;
  }
  /* Sottile riga gradient top come "marker" brand */
  #problema .ib-chip::before{
    content: "";
    position: absolute;
    left: 0; right: 0; top: 0;
    height: 2px;
    background: linear-gradient(90deg, #ff8a00 0%, #7d2cff 50%, #1f46ff 100%);
    opacity: .65;
  }
  @media (max-width: 720px){
    #problema .ib-proof-row{ grid-template-columns: 1fr !important; }
    #problema .ib-chip{ font-size: 14px !important; padding: 16px 18px !important; }
  }

  /* 2) Method panel, stesso linguaggio del side-note arancio */
  .ib-method-panel{
    background:
      linear-gradient(135deg, rgba(255,138,0,.12), rgba(255,138,0,.04)) !important;
    border: 1px solid rgba(255,138,0,.28) !important;
    box-shadow: 0 24px 70px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.05) !important;
  }
  .ib-method-panel p{ color: rgba(255,255,255,.88) !important; }
  .ib-method-panel strong{ color: #fff !important; }

  /* 3) Side-note "Nota pratica" → full container width */
  #criteri-scelta .ib-criteria-intro{ max-width: 100% !important; }
  .ib-side-note{
    max-width: 100% !important;
    margin: 32px 0 0 !important;
    padding: 24px 28px !important;
  }

  /* 4) RUOLI title → più aria sotto + box intro più morbido */
  #ruoli .ruoli-title{ margin-bottom: 40px !important; }
  #ruoli .ruoli-empathy-intro{
    margin: 8px 0 56px !important;
    padding: 36px 44px !important;
    border-radius: 20px !important;
    background:
      radial-gradient(circle at 12% 0%, rgba(255,138,0,.10), transparent 38%),
      radial-gradient(circle at 100% 100%, rgba(31,70,255,.10), transparent 42%),
      #0b1230 !important;
    border: 1px solid rgba(255,255,255,.10) !important;
    box-shadow: 0 18px 50px rgba(11,16,32,.18) !important;
  }
  @media (max-width: 720px){
    #ruoli .ruoli-empathy-intro{ padding: 26px 22px !important; }
  }

  /* Riduce lo spazio bianco prima del titolo "IL PROCESSO" */
  section[aria-label="Il processo"]{
    padding-top: 56px !important;
  }
  @media (max-width: 720px){
    section[aria-label="Il processo"]{ padding-top: 36px !important; }
  }

  /* "· Perché?" dopo SOLO INSEGNE / SOLO BRESCIA: corsivo + thin */
  .sol-only-why{
    font-style: italic;
    font-weight: 300 !important;
    opacity: .85;
    display: inline-block;
    margin-left: 4px;
  }
  @media (max-width: 720px){
    .sol-only-title{ font-size: 36px !important; }
  }

  /* Rail "Prima si vede / coordina / scrive": numeri arancio + titoli in stampatello */
  .ib-rail-num{
    width: 76px !important;
    height: 76px !important;
    font-size: 28px !important;
    background: linear-gradient(135deg, #ffb347 0%, #ff8a00 55%, #e86f00 100%) !important;
    color: #fff !important;
    border-color: rgba(255,138,0,.45) !important;
    box-shadow: 0 8px 22px rgba(255,138,0,.22) !important;
    font-weight: 800 !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.18);
  }
  .ib-method-rail .ib-rail-item{
    grid-template-columns: 92px 1fr !important;
  }
  .ib-rail-content h3{
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
  }

  /* "LAVORO FATTO BENE" non deve mai spezzarsi tra FATTO e BENE */
  .sol-title .grad-text{
    white-space: nowrap;
  }
  @media (max-width: 720px){
    /* su mobile concediamo il wrap per evitare overflow */
    .sol-title .grad-text{ white-space: normal; }
  }

  /* Mini-title della ib-welcome-card: mix soft + uppercase grassetto */
  .ib-mini-title .ib-mt-soft{
    font-weight: 300 !important;
    text-transform: none !important;
    color: rgba(255,255,255,.78) !important;
  }
  .ib-mini-title .ib-mt-strong{
    font-weight: 800 !important;
    text-transform: uppercase !important;
    color: #fff !important;
    letter-spacing: .02em !important;
  }

  /* 5) Riga finale "orfana" sui paragrafi
     Browser moderni: text-wrap: pretty distribuisce gli a-capo
     evitando che l'ultima riga abbia 1-2 parole soltanto.
     text-wrap: balance sui titoli brevi crea righe equilibrate. */
  p, li, .lead, .faq-sub, .sol-sub, .chi-close p,
  .ib-new-lead, .ib-method-panel p, .ib-side-note,
  .ruoli-empathy-intro p, .testi-text, .gar-detail-wrap .dtext,
  #garanzia .p, .npt-list-text, .proc-mini, .proc-u-right,
  .regia-lead, .regia-opposite, .regia-close{
    text-wrap: pretty;
  }
  h1, h2, h3, .h2, .h2-gradient,
  .hero-headline, .testi-cta-text, .faq-section h2,
  .ib-new-title, .ruoli-title, .problem-title, .sol-title,
  .chi-title, .npt-title, .ib-bridge h3, .gallery-cta-title,
  .testi-title, .weather-alert-newstitle, .proc-u-header h3,
  .sol-only-title, .ruoli-cta-title{
    text-wrap: balance;
  }

  /* ── Reduce motion: tagli netti, tutto istantaneo ─────── */
  @media (prefers-reduced-motion: reduce){
    *, *::before, *::after{
      animation-duration: .01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: .01ms !important;
      scroll-behavior: auto !important;
    }
    .reveal, .reveal-fast{
      opacity: 1 !important;
      transform: none !important;
      filter: none !important;
    }
  }

  /* ── Reduce motion: tagli netti, tutto istantaneo ─────── */
#non-per-tutti .npt-ban svg{
  width: 1em;
  height: 1em;
  stroke-width: 2.2;
}
#non-per-tutti .npt-col-badge.npt-ban{
  background: rgba(180,30,30,.18);
  color: #ff7a6a;
  width: 30px; height: 30px;
  padding: 5px;
}
#non-per-tutti .npt-list-icon.npt-ban{
  background: rgba(180,30,30,.18);
  color: rgba(255,120,100,.95);
  padding: 3px;
  width: 22px; height: 22px;
}

/* ── RUOLI: header del selettore profilo ─────────────────── */
/* Posizionato via grid: row 1 col 1 (sopra i pulsanti, centrato).
   I pulsanti vanno in row 2 col 1, il pannello in row 2 col 2,
   così il pannello DX resta allineato in alto con i pulsanti
   e non si "abbassa" trascinato dall'header.                    */
#ruoli .persona-wrap{
  grid-template-rows: auto auto !important;
  align-items: start;
}
#ruoli .ruoli-cta-head{
  grid-column: 1;
  grid-row: 1;
  /* Stesso padding-right dei pulsanti (riserva spazio frecce)
     così l'head risulta centrato sulla rettangolo dei pulsanti. */
  padding-right: 62px;
  justify-self: stretch;
  text-align: center;
  margin: 0 0 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  max-width: 100%;
}
#ruoli .persona-buttons{
  grid-column: 1;
  grid-row: 2;
}
#ruoli .persona-panel{
  grid-column: 2;
  grid-row: 2; /* stessa riga dei pulsanti → stessa altezza */
  align-self: stretch;
}
#ruoli .ruoli-cta-rule{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(11,16,32,.55);
}
#ruoli .ruoli-cta-rule .dot{
  width: 6px; height: 6px; border-radius: 50%;
  background: linear-gradient(135deg,#ff8a00,#1f46ff);
  display: inline-block;
}
#ruoli .ruoli-cta-rule .line{
  width: 28px; height: 1px;
  background: linear-gradient(90deg,rgba(11,16,32,.25),rgba(11,16,32,0));
}
#ruoli .ruoli-cta-title{
  margin: 0;
  font-family: var(--font-main, 'Montserrat', sans-serif);
  font-size: clamp(34px, 4.2vw, 52px);
  line-height: 1.08;
  letter-spacing: -.015em;
  color: #0b1020;
  text-align: center;
  max-width: 100%;
}
#ruoli .ruoli-cta-title .t-light{
  font-weight: 300;
  color: rgba(11,16,32,.88);
}
#ruoli .ruoli-cta-title .ib-new-grad{
  font-weight: 800;
  background: linear-gradient(135deg,#ff8a00 0%,#ff5e3a 35%,#7d2cff 75%,#1f46ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
#ruoli .ruoli-cta-sub{
  margin: 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: rgba(11,16,32,.62);
  max-width: 56ch;
  text-align: center;
}
/* Freccia "clicca sotto", centrata sopra i pulsanti */
#ruoli .ruoli-cta-arrow{
  margin-top: 2px;
  width: 32px; height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: linear-gradient(135deg,#ff8a00 0%,#ff5e3a 35%,#7d2cff 75%,#1f46ff 100%);
  box-shadow: 0 8px 22px rgba(31,70,255,.25), 0 2px 6px rgba(0,0,0,.08);
  animation: ruoliBob 1.6s cubic-bezier(.4,0,.2,1) infinite;
  align-self: center;
}
#ruoli .ruoli-cta-arrow svg{ width: 16px; height: 16px; }
@keyframes ruoliBob{
  0%, 100%{ transform: translateY(0); }
  50%    { transform: translateY(6px); }
}
@media (prefers-reduced-motion: reduce){
  #ruoli .ruoli-cta-arrow{ animation: none; }
}

/* ── RUOLI: lock dimensioni del pannello DX ──────────────── */
/* Altezza pannello = altezza esatta della colonna dei pulsanti.
   Calcolata via JS al primo render e ad ogni resize.
   Fallback CSS: usa la stretching naturale del grid (riga 2).  */
#ruoli .persona-panel{
  display: flex;
  flex-direction: column;
  overflow: hidden; /* clipping di sicurezza se la persona ha più contenuto */
}
#ruoli .persona-panel .persona-footer{
  margin-top: auto;
}

@media (max-width: 920px){
  #ruoli .persona-wrap{
    grid-template-rows: auto !important;
  }
  #ruoli .ruoli-cta-head,
  #ruoli .persona-buttons,
  #ruoli .persona-panel{
    grid-column: 1 !important;
    grid-row: auto !important;
    align-self: stretch !important;
    padding-right: 0 !important;
  }
  #ruoli .persona-panel{ min-height: 0; }
}

/* ── RUOLI: crossfade soft del pannello DX al cambio persona ─ */
#ruoli .persona-panel > *{
  transition:
    opacity .26s cubic-bezier(.22,1,.36,1),
    transform .26s cubic-bezier(.22,1,.36,1);
  will-change: opacity, transform;
}
#ruoli .persona-panel.is-swapping > *{
  opacity: 0;
  transform: translateY(8px);
}
/* Sui pulsanti: hover più "tangibile" (cursore + sottile ombra) */
#ruoli .pbtn{ cursor: pointer; }

/* ===== atf-2026-clean-css ===== */
html { scroll-behavior: smooth; }
  .new-atf-pre { font-size: clamp(15px, 1.6vw, 18px); letter-spacing: .02em; }
  .new-atf-sub { max-width: 960px; margin-top: 8px; font-size: clamp(20px, 2.1vw, 28px); line-height: 1.35; color: rgba(255,255,255,.82) !important; }
  .new-atf-sub strong { color: rgba(255,255,255,.96); font-weight: 800; }
  .new-atf-actions { margin-top: 22px !important; margin-bottom: 22px !important; }
  .atf-blue-pill {
    background: linear-gradient(90deg, #1f46ff, #4467ff) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    border-radius: 999px !important;
    padding: 17px 30px !important;
    box-shadow: 0 18px 44px rgba(31,70,255,.42) !important;
    letter-spacing: .03em !important;
    text-transform: uppercase;
  }
  .new-atf-microproof { margin-top: 12px !important; gap: 9px !important; max-width: 980px !important; }
  .new-atf-microproof li { align-items: flex-start; }
  .new-atf-microproof .tick { flex: 0 0 22px; color: #fff; }
  .new-atf-microproof .bullet-title { color: #8fb7ff; font-weight: 800; text-transform: none; letter-spacing: .01em; }
  .new-atf-microproof .bullet-text { color: rgba(255,255,255,.76); font-weight: 400; }
  .atf-bottom-scroll { margin-top: 42px; display:flex; justify-content:center; }
/* Pulsating chevron (replaces second CTA) */
.atf-scroll-chevron{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  text-decoration: none;
  opacity: 0;
  animation: atfChevronPulse 2.6s ease-in-out infinite;
  cursor: pointer;
}
.atf-scroll-chevron svg{ display: block; }
@keyframes atfChevronPulse{
  0%   { opacity: 0; transform: translateY(-18px); filter: drop-shadow(0 0 0 rgba(255,255,255,0)); }
  25%  { opacity: 1; transform: translateY(0);     filter: drop-shadow(0 0 14px rgba(255,255,255,.85)); }
  50%  { opacity: 1; transform: translateY(8px);   filter: drop-shadow(0 0 18px rgba(255,255,255,1)); }
  75%  { opacity: .6; transform: translateY(0);    filter: drop-shadow(0 0 6px rgba(255,255,255,.4)); }
  100% { opacity: 0; transform: translateY(-18px); filter: drop-shadow(0 0 0 rgba(255,255,255,0)); }
}

  .atf-scroll-link { display:inline-flex; flex-direction:column; align-items:center; gap:8px; text-decoration:none; color:rgba(255,255,255,.82); font-weight:800; letter-spacing:.06em; font-size:13px; }
  .atf-scroll-link svg { animation: bounce 2s infinite; color: var(--orange); }
  @media (max-width: 680px){
    .new-atf-sub { font-size: 18px; }
    .new-atf-microproof .bullet-sep { padding: 0 .45ch; }
    .atf-blue-pill { width: 100%; max-width: 320px; }
  }/* ===== atf-2026-fix-css ===== */
/* ATF: ritorno a Montserrat standard, senza font allungati */
  
  .new-atf-pre {
    font-size: clamp(18px, 1.85vw, 22px) !important;
    line-height: 1.35 !important;
    font-weight: 400 !important;
    letter-spacing: .01em !important;
  }
  .new-atf-sub {
    max-width: 990px !important;
    margin-top: 12px !important;
    font-size: clamp(23px, 2.25vw, 32px) !important;
    line-height: 1.34 !important;
    color: rgba(255,255,255,.82) !important;
    font-weight: 400 !important;
  }
  .atf-orange-text {
    color: var(--orange) !important;
    font-weight: 800 !important;
  }

  /* Microproof: ripristino formattazione precedente dei bullet */
  .new-atf-microproof {
    display: grid !important;
    gap: 6px !important;
    margin-top: 16px !important;
    max-width: 1160px !important;
  }
  .new-atf-microproof li {
    display: flex !important;
    gap: 10px !important;
    align-items: flex-start !important;
  }
  .new-atf-microproof .tick {
    display: inline-flex !important;
    width: 22px !important;
    height: 22px !important;
    flex: 0 0 22px !important;
    border-radius: 999px !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(255,255,255,.08) !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    color: #fff !important;
    font-weight: 800 !important;
  }
  .new-atf-microproof .bullet-title {
    font-family: Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    color: #8fb7ff !important;
    font-size: 1.06em !important;
  }
  .new-atf-microproof .bullet-sep {
    display: inline-block !important;
    padding: 0 .9ch !important;
    color: var(--orange) !important;
    font-weight: 600 !important;
  }
  .new-atf-microproof .bullet-text {
    font-family: Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
    font-weight: 300 !important;
    color: rgba(255,255,255,.75) !important;
    line-height: 1.4 !important;
  }/* CTA bassa: più rifinita, tipo chips */
  
  .atf-scroll-link {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 10px 18px !important;
    border-radius: 999px !important;
    text-decoration: none !important;
    color: rgba(255,255,255,.86) !important;
    background: rgba(255,255,255,.06) !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    box-shadow: 0 14px 34px rgba(0,0,0,.22) !important;
    font-weight: 700 !important;
    letter-spacing: .05em !important;
    font-size: 13px !important;
    text-transform: uppercase !important;
  }
  .atf-scroll-link svg {
    width: 22px !important;
    height: 22px !important;
    color: var(--orange) !important;
    animation: bounce 2s infinite !important;
  }

  /* Sezioni successive: niente font condensati o pesi 900 sui titoli black */
  #ruoli .ruoli-title,
  #ruoli .ruoli-title * {
    font-family: Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
    font-stretch: normal !important;
  }
  #ruoli .ruoli-title .caps {
    font-weight: 800 !important;
  }
  @media (max-width: 680px){
    .new-atf-pre { font-size: 17px !important; }
    .new-atf-sub { font-size: 20px !important; }
    .new-atf-microproof .bullet-sep { padding: 0 .65ch !important; }
    .atf-scroll-link { padding: 10px 15px !important; }
  }/* ===== atf-2026-user-request-2 ===== */
/* ATF: pre e subheadline stessa dimensione, Montserrat standard */
  
  .atf-orange-thin {
    color: var(--orange) !important;
    font-weight: 300 !important;
  }
  .atf-orange-strong {
    color: var(--orange) !important;
    font-weight: 700 !important;
  }
  .new-atf-microproof .tick {
    color: #25d366 !important;
    border-color: rgba(37, 211, 102, .38) !important;
    background: rgba(37, 211, 102, .08) !important;
  }
  .atf-bullet-orange,
  .atf-plus {
    color: var(--orange) !important;
  }
  .atf-bullet-orange {
    font-weight: 500 !important;
  }
  .atf-plus {
    font-weight: 700 !important;
    padding: 0 .2ch !important;
  }
  .new-atf-microproof .bullet-title {
    font-weight: 600 !important;
  }
  .new-atf-microproof .bullet-text {
    font-weight: 300 !important;
  }
  @media (max-width: 680px){
    .new-atf-pre,
    .new-atf-sub { font-size: 18px !important; }
  }/* ===== atf-2026-user-request-3 ===== */
/* ATF update: ripristino microproof come screenshot + piccoli ritocchi richiesti */
  

  /* Pre-headline leggermente più piccola della sub */
  .new-atf-pre {
    font-size: clamp(19px, 1.9vw, 23px) !important;
    line-height: 1.35 !important;
    font-weight: 400 !important;
    letter-spacing: .01em !important;
  }
  .new-atf-sub {
    font-size: clamp(20px, 2vw, 24px) !important;
    line-height: 1.35 !important;
    font-weight: 400 !important;
    letter-spacing: .01em !important;
    color: rgba(255,255,255,.84) !important;
  }

  /* Microproof: colori/formattazione ripristinati */
  .new-atf-microproof {
    margin-top: 16px !important;
    gap: 6px !important;
    max-width: 1160px !important;
  }
  .new-atf-microproof .tick {
    color: #fff !important;
    border-color: rgba(255,255,255,.14) !important;
    background: rgba(255,255,255,.08) !important;
  }
  .new-atf-microproof .bullet-title {
    color: #8fb7ff !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    font-size: 1.06em !important;
  }

  /* CTA inferiore: testo in chips, freccia sotto/fuori dalla chips */
  .atf-bottom-scroll {
    margin-top: 44px !important;
    display: flex !important;
    justify-content: center !important;
  }
  .atf-scroll-link {
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    text-decoration: none !important;
    color: rgba(255,255,255,.86) !important;
    font-weight: 700 !important;
    letter-spacing: .05em !important;
    font-size: 13px !important;
    text-transform: uppercase !important;
  }
  .atf-scroll-link > span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 10px 18px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.06) !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    box-shadow: 0 14px 34px rgba(0,0,0,.22) !important;
  }
  .atf-scroll-link svg {
    display: block !important;
    width: 24px !important;
    height: 24px !important;
    color: var(--orange) !important;
    animation: bounce 2s infinite !important;
  }

  @media (max-width: 680px){
    .new-atf-pre { font-size: 17px !important; }
    .new-atf-sub { font-size: 18px !important; }
    .new-atf-microproof .bullet-sep { padding: 0 .65ch !important; }
  }

/* ===== atf-sectionrule-fix-2026-05-26 ===== */
/* Richiesta: SUB uguale alla PRE */
  .new-atf-pre,
  .new-atf-sub {
    font-size: clamp(19px, 1.9vw, 23px) !important;
    line-height: 1.35 !important;
    font-weight: 400 !important;
    letter-spacing: .01em !important;
  }
  .new-atf-sub {
    max-width: 1040px !important;
    margin-top: 14px !important;
    color: rgba(255,255,255,.84) !important;
  }

  /* Microtitoletti di sezione tutti uniformati alla misura di "Sei nel posto giusto" */
  .section-rule {
    font-size: 13px !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
  }
  .section-rule > span:not(.dot):not(.line),
  .section-rule span:not(.dot):not(.line) {
    font-size: 13px !important;
    line-height: 1.25 !important;
  }

  @media (max-width: 680px){
    .new-atf-pre,
    .new-atf-sub { font-size: 18px !important; }
    .section-rule,
    .section-rule > span:not(.dot):not(.line),
    .section-rule span:not(.dot):not(.line) { font-size: 12px !important; }
  }

/* ===== atf-final-user-fix-2026-05-26 ===== */
/* Fix finale ATF: SUB grande quanto PRE + bullet richiesti */
  .hero, .hero * {
    font-family: Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
    font-stretch: normal !important;
  }
  .new-atf-pre,
  .new-atf-sub {
    font-size: clamp(20px, 2vw, 24px) !important;
    line-height: 1.35 !important;
    font-weight: 400 !important;
    letter-spacing: .01em !important;
  }
  .new-atf-sub {
    color: rgba(255,255,255,.84) !important;
    max-width: 1040px !important;
    margin-top: 14px !important;
  }
  .new-atf-sub .atf-sub-white {
    color: rgba(255,255,255,.84) !important;
    font-weight: 400 !important;
  }
  .new-atf-sub .atf-orange-thin {
    color: var(--orange) !important;
    font-weight: 300 !important;
  }
  .new-atf-sub .atf-orange-strong,
  .new-atf-sub .atf-orange-text {
    color: var(--orange) !important;
    font-weight: 700 !important;
  }

  .new-atf-microproof .tick {
    color: var(--orange) !important;
    border-color: rgba(255,138,0,.36) !important;
    background: rgba(255,138,0,.10) !important;
  }
  .new-atf-microproof .bullet-title {
    color: #8fb7ff !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: .035em !important;
    font-size: 1.06em !important;
  }
  .new-atf-microproof .bullet-sep {
    color: var(--orange) !important;
    padding: 0 .9ch !important;
    font-weight: 600 !important;
  }
  .new-atf-microproof .bullet-text {
    color: rgba(255,255,255,.75) !important;
    font-weight: 300 !important;
    line-height: 1.4 !important;
  }
  .new-atf-microproof .atf-bullet-orange,
  .new-atf-microproof .atf-plus {
    color: inherit !important;
    font-weight: inherit !important;
    padding: 0 !important;
  }

  @media (max-width: 680px){
    .new-atf-pre,
    .new-atf-sub { font-size: 19px !important; }
  }

/* ===== final-atf-ruoli-typography-fix-2026-05-26 ===== */
/* Fix definitivo: PRE e SUB identiche e Montserrat standard */
  body .hero p.hero-pre.new-atf-pre,
  body .hero p.hero-sub.atf-subline.lead.new-atf-sub{
    font-family: Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
    font-size: clamp(20px, 2vw, 24px) !important;
    line-height: 1.35 !important;
    font-weight: 400 !important;
    letter-spacing: .01em !important;
    font-stretch: normal !important;
  }
  body .hero p.hero-sub.atf-subline.lead.new-atf-sub{
    max-width: 1040px !important;
    margin-top: 14px !important;
    color: rgba(255,255,255,.84) !important;
  }

  /* RUOLI: via effetto font allungato/spaziato, Montserrat leggero */
  body #ruoli .ruoli-title,
  body #ruoli .ruoli-title *{
    font-family: Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
    font-stretch: normal !important;
    letter-spacing: -0.015em !important;
    text-transform: none !important;
  }
  body #ruoli .ruoli-title{
    font-weight: 300 !important;
  }
  body #ruoli .ruoli-title .lc{
    font-weight: 300 !important;
  }
  body #ruoli .ruoli-title .caps{
    font-weight: 700 !important;
    letter-spacing: -0.012em !important;
  }

  /* Bullet: spunte arancio e parole minuscole non in grassetto */
  body .new-atf-microproof .tick{
    color: var(--orange) !important;
    border-color: rgba(255,138,0,.36) !important;
    background: rgba(255,138,0,.10) !important;
  }
  body .new-atf-microproof .bullet-title{
    color: #8fb7ff !important;
    text-transform: none !important;
    letter-spacing: .035em !important;
    font-size: 1.06em !important;
    font-weight: 600 !important;
  }
  body .new-atf-microproof .bullet-title .bt-strong{
    font-weight: 600 !important;
  }
  body .new-atf-microproof .bullet-title .bt-soft{
    font-weight: 300 !important;
    letter-spacing: .01em !important;
  }

  @media (max-width: 680px){
    body .hero p.hero-pre.new-atf-pre,
    body .hero p.hero-sub.atf-subline.lead.new-atf-sub{
      font-size: 19px !important;
    }
  }

/* ===== final-pre-bullet-weight-fix-2026-05-26-b ===== */
/* Richiesta: arancio PRE più sottile, uguale alle parole arancio della SUB */
  body .hero p.hero-pre.new-atf-pre .hero-pre-orange{
    color: var(--orange) !important;
    font-weight: 700 !important;
    letter-spacing: .06em !important;
  }

  /* Richiesta: Risultato più sottile nei bullet */
  body .new-atf-microproof .bullet-title .bt-result{
    font-weight: 300 !important;
    letter-spacing: .01em !important;
  }

/* ===== patch-user-20260526-gradient-menu ===== */
/* Riquadro SIMULAZIONE FOTOREALISTICA: filetto perimetrale con sfumatura che scorre */
@property --grad-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}
#vedi-prima .copy-solution{
  margin: 28px 0 !important;
  padding: 24px 28px !important;
  background: rgba(255,138,0,.05) !important;
  border-left: 4px solid var(--orange) !important;
  border-radius: 8px !important;
  position: static !important;
  isolation: auto !important;
}
#vedi-prima .copy-solution::before{ content: none !important; }
#vedi-prima .copy-solution::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius: inherit;
  padding: 2px;
  background: conic-gradient(from var(--grad-angle),
    #ff8a00 0deg,
    #ffb347 60deg,
    #7d2cff 140deg,
    #1f46ff 220deg,
    #7d2cff 300deg,
    #ff8a00 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  animation: ib-border-flow 5.5s linear infinite;
  z-index: 0;
  pointer-events: none;
}
#vedi-prima .copy-solution > *{
  position: relative;
  z-index: 1;
}
@keyframes ib-border-flow {
  to { --grad-angle: 360deg; }
}
/* Browser senza @property: fallback statico senza rotazione visibile */
@supports not (background: paint(something)) {
  #vedi-prima .copy-solution::before{
    background: linear-gradient(90deg, #ff8a00, #7d2cff 50%, #1f46ff 100%);
    animation: none;
  }
}

/* SOLO INSEGNE / SOLO BRESCIA: titolo su prima riga e Perché? a capo, entrambi bianchi */
.sol-only-title{
  line-height: 1.08 !important;
  margin-bottom: 22px !important;
}
.sol-only-title .sol-main-white{
  display: inline-block !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: none !important;
  font-size: calc(1em + 2px) !important;
  font-weight: 800 !important;
  letter-spacing: .035em !important;
}
.sol-only-title .sol-only-why{
  display: inline-block !important;
  margin-left: 0 !important;
  margin-top: 10px !important;
  color: #fff !important;
  opacity: 1 !important;
  font-style: italic !important;
  font-weight: 200 !important;
  letter-spacing: .005em !important;
  font-size: .92em !important;
}

/* Chi sono: tagline su due righe più pulita */
.chi-tagline{
  line-height: 1.12 !important;
}

/* Tripla garanzia: titoletti arancio e più leggibili */
#garanzia .ibox .it,
#garanzia .it{
  font-size: 13px !important;
  letter-spacing: .14em !important;
  font-weight: 800 !important;
  color: rgb(255, 134, 36) !important;
}

/* Barra superiore: avvicina i 3 pulsanti a CONTATTACI */
.topbar-inner{
  justify-content: flex-start !important;
}
.topbar-brand{
  margin-right: auto !important;
}
.topbar-nav{
  margin-left: auto !important;
  gap: 8px !important;
}
.topbar-cta{
  margin-left: 8px !important;
}

/* Nota pratica: font più grande */
.ib-side-note{
  font-size: 21px !important;
  line-height: 1.45 !important;
}
.ib-side-note strong{
  font-size: 1.02em !important;
}
@media (max-width: 720px){
  .ib-side-note{ font-size: 18px !important; }
}

/* ===== preserve-newlines ===== */
/* Onora gli a capo (\n) inseriti direttamente nel testo dall'editor.
   Limitato a contenitori di paragrafo, NON ai titoli/h1 perché renderebbe
   visibili i newline che ci sono nel sorgente tra <span> figli. */
p, li,
.ib-new-lead, .ib-side-note, .ib-bridge p,
.chi-valore-frase, .chi-subtitle, .ruoli-cta-sub,
.sol-sub, .sol-tagline,
.ib-method-panel p, .ruoli-empathy-intro p {
  white-space: pre-line;
}
/* Eccezione: i bullet ATF hanno markup multilinea che NON deve
   produrre break visivi. */
.new-atf-microproof li,
.new-atf-microproof li * {
  white-space: normal;
}

/* ===== regia-bridge-ponte-css ===== */
.regia-bridge-ponte{
  max-width: 980px !important;
  margin: 0 0 26px !important;
  color: rgba(255,255,255,.78) !important;
  font-family: Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
  font-size: clamp(24px, 2.35vw, 36px) !important;
  line-height: 1.25 !important;
  font-weight: 300 !important;
  letter-spacing: .015em !important;
}
#regia .regia-bridge-ponte + .sol-title{ margin-top: 0 !important; }
@media (max-width: 720px){ .regia-bridge-ponte{ font-size: 22px !important; } }

/* ===== criteri-light-and-bridge-fix ===== */
/* v20: sezione 3 COSE a fondo chiaro + frase ponte dentro il riquadro finale */
#criteri-scelta{
  background: var(--bg, #f6f7fb) !important;
  color: var(--ink, #0b1020) !important;
  position: relative !important;
  overflow: hidden !important;
}
#criteri-scelta::before{
  opacity: .42 !important;
  background-image:
    linear-gradient(rgba(11,16,32,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11,16,32,.055) 1px, transparent 1px) !important;
}
#criteri-scelta .section-rule{ color: rgba(11,16,32,.62) !important; }
#criteri-scelta .section-rule .line{ background: linear-gradient(90deg, rgba(11,16,32,.20), transparent) !important; }
#criteri-scelta .ib-new-title,
#criteri-scelta .ib-new-title .strong{ color: #0b1020 !important; }
#criteri-scelta .ib-new-title .t-light{ color: rgba(11,16,32,.58) !important; }
#criteri-scelta .ib-new-lead{ color: rgba(11,16,32,.70) !important; }
#criteri-scelta .ib-new-lead strong{ color: #0b1020 !important; }
#criteri-scelta .ib-side-note{
  background: linear-gradient(135deg, rgba(255,138,0,.11), rgba(255,138,0,.035)) !important;
  border: 1px solid rgba(255,138,0,.25) !important;
  color: rgba(11,16,32,.74) !important;
  box-shadow: 0 18px 48px rgba(11,16,32,.08) !important;
}
#criteri-scelta .ib-side-note strong{ color: #0b1020 !important; }
#criteri-scelta .ib-criterion{
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.88)) !important;
  border: 1px solid rgba(11,16,32,.10) !important;
  box-shadow: 0 20px 54px rgba(11,16,32,.10) !important;
}
#criteri-scelta .ib-criterion-num{ color: rgba(11,16,32,.13) !important; }
#criteri-scelta .ib-criterion-icon{
  background: rgba(255,138,0,.08) !important;
  border: 1px solid rgba(255,138,0,.22) !important;
}
#criteri-scelta .ib-criterion h3{ color: #0b1020 !important; }
#criteri-scelta .ib-criterion p{ color: rgba(11,16,32,.72) !important; }
#criteri-scelta .ib-criterion p strong{ color: #0b1020 !important; }
#criteri-scelta .ib-bridge{
  background:
    radial-gradient(circle at 20% 0%, rgba(31,70,255,.16), transparent 38%),
    radial-gradient(circle at 86% 30%, rgba(255,138,0,.16), transparent 32%),
    linear-gradient(135deg, #11172a, #20253a) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  box-shadow: 0 26px 76px rgba(11,16,32,.20) !important;
}
#criteri-scelta .ib-bridge .regia-bridge-ponte{
  max-width: 880px !important;
  margin: 24px auto 0 !important;
  color: rgba(255,255,255,.82) !important;
  text-align: center !important;
  font-size: clamp(21px, 2.05vw, 30px) !important;
  line-height: 1.26 !important;
  font-weight: 300 !important;
  letter-spacing: .015em !important;
}
#criteri-scelta .ib-bridge .regia-bridge-ponte + p{ margin-top: 24px !important; }

/* ===== fix-3cose-no-grid-darker-cards-20260527 ===== */
/* Sezione 3 COSE: fondo chiaro pulito, senza quadrettatura + card più scure e leggibili */
#criteri-scelta{
  background: linear-gradient(180deg, #f5f6f8 0%, #eef1f5 100%) !important;
  background-color: #f3f5f8 !important;
}
#criteri-scelta::before,
#criteri-scelta::after{
  content: none !important;
  display: none !important;
  background: none !important;
  background-image: none !important;
  opacity: 0 !important;
}
#criteri-scelta.band::before,
#criteri-scelta.band::after{
  content: none !important;
  display: none !important;
  background: none !important;
  background-image: none !important;
  opacity: 0 !important;
}
#criteri-scelta .ib-criteria-grid{
  position: relative !important;
  z-index: 1 !important;
}
#criteri-scelta .ib-criterion{
  background: linear-gradient(180deg, #d4dce8 0%, #c6d0de 100%) !important;
  border: 1px solid rgba(11,16,32,.22) !important;
  box-shadow: 0 24px 58px rgba(11,16,32,.18) !important;
}
#criteri-scelta .ib-criterion p{ color: rgba(7,16,31,.82) !important; }
#criteri-scelta .ib-criterion-num{ color: rgba(7,16,31,.20) !important; }
#criteri-scelta .ib-criterion-icon{
  background: rgba(255,138,0,.15) !important;
  border-color: rgba(255,138,0,.34) !important;
}
#criteri-scelta .ib-side-note{
  background: linear-gradient(135deg, rgba(255,138,0,.13), rgba(255,255,255,.62)) !important;
  border: 1px solid rgba(255,138,0,.30) !important;
  box-shadow: 0 18px 44px rgba(11,16,32,.10) !important;
}

/* ===== ib-final-3cose-cold-solid ===== */
/* PATCH FINALE: sezione 3 COSE su fondo grigio freddo e card solide, senza velature */
#criteri-scelta{
  background: #e9eef4 !important;
  background-color: #e9eef4 !important;
  background-image: none !important;
}
#criteri-scelta::before,
#criteri-scelta::after,
#criteri-scelta.band::before,
#criteri-scelta.band::after{
  content: none !important;
  display: none !important;
  background: none !important;
  background-image: none !important;
  opacity: 0 !important;
}
#criteri-scelta .container{
  position: relative !important;
  z-index: 1 !important;
}
#criteri-scelta .ib-side-note{
  background: #edf2f7 !important;
  background-image: none !important;
  border: 1px solid rgba(255,138,0,.32) !important;
  box-shadow: 0 18px 44px rgba(11,16,32,.08) !important;
  color: #172033 !important;
}
#criteri-scelta .ib-side-note strong{
  color: #07101f !important;
}
#criteri-scelta .ib-criterion{
  background: #c4ccd7 !important;
  background-image: none !important;
  background-color: #c4ccd7 !important;
  opacity: 1 !important;
  filter: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  border: 1px solid rgba(11,16,32,.28) !important;
  box-shadow: 0 24px 58px rgba(11,16,32,.20) !important;
}
#criteri-scelta .ib-criterion:hover{
  background: #b9c4d1 !important;
  background-image: none !important;
  background-color: #b9c4d1 !important;
  box-shadow: 0 28px 68px rgba(11,16,32,.25) !important;
}
#criteri-scelta .ib-criterion::before,
#criteri-scelta .ib-criterion::after{
  content: none !important;
  display: none !important;
  background: none !important;
  opacity: 0 !important;
}
#criteri-scelta .ib-criterion h3{
  color: #07101f !important;
}
#criteri-scelta .ib-criterion p{
  color: rgba(7,16,31,.88) !important;
}
#criteri-scelta .ib-criterion p strong{
  color: #07101f !important;
}
#criteri-scelta .ib-criterion-num{
  color: rgba(7,16,31,.24) !important;
}
#criteri-scelta .ib-criterion-icon{
  background: rgba(255,138,0,.14) !important;
  border-color: rgba(255,138,0,.36) !important;
}

/* ===== mobile-overflow-and-accordion-fix ===== */
/* === MOBILE FIX v1: elimina overflow laterale e adatta sezioni critiche === */
@media (max-width: 720px){
  html, body{
    width:100% !important;
    max-width:100% !important;
    overflow-x:hidden !important;
  }
  body{ font-size:16px !important; }
  *, *::before, *::after{ box-sizing:border-box !important; }
  .container,
  #testimonianze .container{
    width:100% !important;
    max-width:100% !important;
    padding-left:22px !important;
    padding-right:22px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  section, .band, .band.dark, .band.light, .testimonials-section{
    max-width:100vw !important;
    overflow-x:hidden !important;
  }
  .band{ padding-top:64px !important; padding-bottom:64px !important; }

  /* Titoli: impedisce headline da 70px/nowrap che tagliano il testo a destra */
  h1, h2, h3,
  .section-title,
  .ruoli-title,
  .testi-title,
  #testimonianze .testi-title,
  #criteri-scelta .ib-new-title,
  #metodo-scelta .ib-new-title,
  .proc-title,
  .proc-u-title,
  .sol-title,
  .faq-head h2,
  .npt-title{
    max-width:100% !important;
    width:100% !important;
    white-space:normal !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    hyphens:none !important;
    font-size:clamp(32px, 10.2vw, 46px) !important;
    line-height:1.08 !important;
    letter-spacing:-0.03em !important;
    text-align:left !important;
  }
  .section-rule,
  .section-pre,
  .npt-rule{
    max-width:100% !important;
    overflow:hidden !important;
    gap:12px !important;
  }
  .section-rule span:not(.dot):not(.line),
  .section-pre span:not(.dot):not(.line),
  .npt-rule span:not(.dot):not(.line){
    min-width:0 !important;
    white-space:normal !important;
    line-height:1.25 !important;
  }
  .lead, .section-intro, .section-subtitle, .copy-lead, .faq-sub, p, li{
    max-width:100% !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
  }

  /* 3 COSE: card e riquadro finale contenuti dentro viewport */
  #criteri-scelta .ib-grid,
  #criteri-scelta .ib-criteria,
  #criteri-scelta .ib-new-grid{
    grid-template-columns:1fr !important;
    width:100% !important;
    max-width:100% !important;
  }
  #criteri-scelta .ib-criterion,
  #criteri-scelta .ib-side-note,
  #criteri-scelta .ib-bridge{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:24px !important;
    padding-right:24px !important;
    overflow:hidden !important;
  }
  #criteri-scelta .ib-bridge h3{
    font-size:clamp(27px, 8.8vw, 37px) !important;
    line-height:1.12 !important;
    letter-spacing:-.025em !important;
    text-align:center !important;
  }
  #criteri-scelta .ib-bridge .regia-bridge-ponte{
    font-size:clamp(19px, 5.2vw, 23px) !important;
    line-height:1.35 !important;
    letter-spacing:.01em !important;
    max-width:100% !important;
    margin-top:22px !important;
    text-align:center !important;
  }
  #criteri-scelta .ib-bridge p{
    font-size:clamp(17px, 4.7vw, 20px) !important;
    line-height:1.45 !important;
    text-align:center !important;
  }

  /* PROCESSO / GARANZIE: blocchi scuri e card non devono sbordare */
  .proc-card, .proc-step, .proc-box, .process-card,
  .gar-card, .tg-card, .card, .risk-card{
    max-width:100% !important;
    width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  .cards, .grid, .proc-grid, .tg-grid{
    grid-template-columns:1fr !important;
    max-width:100% !important;
  }

  /* TORMENTONI: il tris desktop sborda su mobile, quindi diventa verticale */
  .sol-trio-wrap{ width:100% !important; margin:42px 0 !important; }
  .sol-trio-wrap .sol-trio,
  .sol-trio{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    max-width:100% !important;
    padding:42px 22px 30px !important;
    overflow:hidden !important;
    border-radius:22px !important;
  }
  .sol-trio .trio-item{
    width:100% !important;
    padding:0 !important;
    transform:none !important;
    font-size:clamp(28px, 10vw, 42px) !important;
    line-height:1.08 !important;
    letter-spacing:.045em !important;
    white-space:normal !important;
  }
  .sol-trio .trio-sep,
  .trio-sep-left,
  .trio-sep-right{
    width:64% !important;
    max-width:220px !important;
    height:2px !important;
    margin:20px auto !important;
    transform:none !important;
  }
  .sol-trio-chip-row{ max-width:100% !important; }
  .sol-trio-wrap .agit-inline-label{
    max-width:calc(100vw - 54px) !important;
    white-space:normal !important;
    text-align:center !important;
    font-size:16px !important;
    padding-left:22px !important;
    padding-right:22px !important;
  }
  .sol-trio-note{
    font-size:19px !important;
    line-height:1.45 !important;
    padding:0 6px !important;
  }

  /* RUOLI: su mobile sostituiamo il selettore desktop con accordion */
  #ruoli .persona-buttons,
  #ruoli .persona-panel,
  #ruoli .persona-arrows,
  #ruoli .persona-dots{
    display:none !important;
  }
  #ruoli .persona-wrap{ display:block !important; gap:0 !important; }
  #ruoli .ruoli-cta-arrow{ display:none !important; }
  #ruoli .ruoli-title{ text-align:left !important; }
  #ruoli .ruoli-empathy-intro{
    padding:24px 20px !important;
    margin-bottom:34px !important;
  }
  #ruoli .ruoli-empathy-intro p{
    font-size:17px !important;
    line-height:1.45 !important;
  }
  #ruoli .mobile-role-accordion{
    display:block !important;
    margin-top:24px !important;
  }
  #ruoli .mobile-role-accordion details{
    background:#ffffff !important;
    border:1px solid rgba(11,16,32,.12) !important;
    border-radius:18px !important;
    margin:0 0 14px !important;
    overflow:hidden !important;
    box-shadow:0 14px 34px rgba(11,16,32,.08) !important;
  }
  #ruoli .mobile-role-accordion summary{
    cursor:pointer !important;
    list-style:none !important;
    padding:20px 22px !important;
    font-weight:800 !important;
    letter-spacing:.035em !important;
    text-transform:uppercase !important;
    color:#0b1020 !important;
    display:flex !important;
    justify-content:space-between !important;
    gap:14px !important;
    align-items:center !important;
  }
  #ruoli .mobile-role-accordion summary::-webkit-details-marker{ display:none !important; }
  #ruoli .mobile-role-accordion summary::after{
    content:'+' !important;
    color:#ff8a00 !important;
    font-size:28px !important;
    line-height:1 !important;
    flex:0 0 auto !important;
  }
  #ruoli .mobile-role-accordion details[open] summary::after{ content:'–' !important; }
  #ruoli .mobile-role-body{
    padding:0 22px 22px !important;
    color:#30384b !important;
    font-size:16px !important;
    line-height:1.48 !important;
  }
  #ruoli .mobile-role-body .role-lead{
    color:#0b1020 !important;
    font-weight:700 !important;
    margin-bottom:12px !important;
  }
  #ruoli .mobile-role-chips{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
    margin-top:16px !important;
  }
  #ruoli .mobile-role-chips span{
    display:inline-flex !important;
    padding:7px 10px !important;
    border-radius:999px !important;
    background:rgba(255,138,0,.10) !important;
    color:#0b1020 !important;
    font-size:12px !important;
    font-weight:800 !important;
  }

  /* TESTIMONIANZE: niente colonne strette/verticali */
  #testimonianze .testimonials-section{ padding:70px 0 !important; }
  #testimonianze .testi-header{ margin-bottom:32px !important; text-align:left !important; }
  #testimonianze .testi-title{
    text-align:left !important;
    font-size:clamp(31px, 9.5vw, 42px) !important;
    line-height:1.14 !important;
  }
  #testimonianze .testi-subtitle{
    margin:18px 0 0 !important;
    max-width:100% !important;
    width:100% !important;
    text-align:left !important;
    font-size:18px !important;
    line-height:1.45 !important;
  }
  #testimonianze .testi-grid{
    display:none !important;
  }
  #testimonianze .testi-cta-band{
    display:none !important;
  }

  /* CTA: bottoni a tutta larghezza e senza sbordo */
  .landing-cta-dual{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
    width:100% !important;
    max-width:100% !important;
  }
  .landing-cta-col, .landing-cta-btn{
    width:100% !important;
    max-width:100% !important;
  }
  .landing-cta-btn{
    white-space:normal !important;
    text-align:center !important;
    padding-left:20px !important;
    padding-right:20px !important;
    font-size:16px !important;
    line-height:1.2 !important;
  }
}

/* ===== v57-pre-regia-integration ===== */
/* v57 — sintesi delle sezioni pre-REGIA, usando il linguaggio visivo della landing */
#problema .v57-method-summary{padding:34px 38px!important;margin-top:44px!important;}
#problema .v57-method-summary::after{
  content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:42%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,138,0,.42),transparent);
}
#criteri-scelta .ib-criterion p{white-space:normal!important;}
#criteri-scelta .ib-bridge .regia-bridge-ponte strong{font-weight:800!important;}
#regia .sol-sub strong{letter-spacing:.045em;}
#regia .regia-close strong{color:#fff;font-weight:800;}
@media(max-width:720px){
  #problema .v57-method-summary{padding:26px 22px!important;margin-top:32px!important;}
  #problema .v57-method-summary .ib-mini-title{font-size:21px!important;line-height:1.48!important;}
  #problema .v57-method-summary p{font-size:16.5px!important;line-height:1.68!important;text-align:left!important;}
  #criteri-scelta .ib-side-note{letter-spacing:.8px!important;}
  #regia .sol-sub br{display:block!important;}
}

/* ===== enh-nav-dots ===== */
/* ════════════════════════════════════════════════════════════
   NAV LINEA STILE YOUTUBE, linea grigia tutta visibile,
   si colora man mano che si scende, pallini in evidenza
   ════════════════════════════════════════════════════════════ */
.enh-nav-wrap {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 9998;
  pointer-events: none;
  height: 18px;
  background: transparent;
}

/* Track grigio (linea base sempre visibile) */
.enh-nav-track-bar {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: rgba(255,255,255,.20);
  z-index: 1;
}

/* Linea progress colorata (riempie da sx a dx) */
.enh-nav-progress {
  position: absolute;
  top: 0; left: 0;
  height: 4px;
  width: 0%;
  background: linear-gradient(90deg, #1f46ff, #7d2cff, #ff8a00);
  z-index: 2;
  transition: width .12s linear;
  box-shadow: 0 0 10px rgba(125,44,255,.55);
}

/* Track dei pallini: contenitore relativo */
.enh-nav-track {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  pointer-events: none;
  z-index: 3;
}

/* Singolo pallino - posizionato sulla linea, centrato verticalmente */
.enh-nav-dot {
  position: absolute;
  top: 50%;
  width: 12px;
  height: 12px;
  padding: 0;
  border-radius: 999px;
  background: #1a1f33;
  border: 2px solid rgba(255,255,255,.55);
  cursor: pointer;
  pointer-events: auto;
  transition: all .35s cubic-bezier(0.16, 1, 0.3, 1);
  transform: translate(-50%, -50%);
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.enh-nav-dot:hover {
  background: #ffffff;
  border-color: #ffffff;
  transform: translate(-50%, -50%) scale(1.45);
  box-shadow: 0 0 14px rgba(255,255,255,.75), 0 0 28px rgba(255,255,255,.35);
}
.enh-nav-dot.active {
  background: #ffffff;
  border-color: #ffffff;
  transform: translate(-50%, -50%) scale(1.4);
  box-shadow: 0 0 16px rgba(255,255,255,.85), 0 0 32px rgba(255,138,0,.55), 0 0 44px rgba(125,44,255,.4);
}
.enh-nav-dot.passed {
  background: #ffffff;
  border-color: rgba(255,255,255,.85);
  opacity: .85;
}
.enh-nav-dot:focus-visible {
  outline: 2px solid #ff8a00;
  outline-offset: 3px;
}

/* Tooltip al hover */
.enh-nav-dot::after {
  content: attr(data-label);
  position: absolute;
  top: calc(100% + 14px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  background: rgba(11,16,32,.96);
  color: #fff;
  padding: 7px 13px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity .25s ease, transform .25s ease;
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 8px 24px rgba(0,0,0,.4);
  z-index: 10;
}
.enh-nav-dot::before {
  content: "";
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  width: 0; height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 6px solid rgba(11,16,32,.96);
  pointer-events: none;
  opacity: 0;
  transition: opacity .25s ease, transform .25s ease;
  z-index: 10;
}
.enh-nav-dot:hover::after,
.enh-nav-dot:hover::before {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

@media (max-width: 760px) {
  .enh-nav-dot { width: 9px; height: 9px; }
}

/* ===== sol-trio-note-css ===== */
.sol-trio-note{
  margin: 22px auto 0;
  max-width: 1100px;
  text-align: center;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.55;
  color: rgba(11,16,32,.68);
  letter-spacing: .01em;
}
.sol-trio-note strong{
  color: #0b1020;
  font-weight: 700;
}

/* ===== gar-css ===== */
/* ─────────────────────────────────────────────────────────
   TRIPLA GARANZIA  |  #garanzia
   Layout: band light → sfondo chiaro (#eef2f8)
   Header (.wrap, h1, .lead, .mid-claim, .p) → testi SCURI
   .card / .bonus / .detail / .ibox           → sfondo SCURO + testi BIANCHI
───────────────────────────────────────────────────────── */

/* Variabili */
#garanzia {
  --go: #ff8a00;
  --gb: #2b6cff;
  --gv: #7a4dff;
  --gink: #0b1020;
  --gcard: linear-gradient(145deg, rgba(22,32,68,.97) 0%, rgba(14,20,50,.97) 50%, rgba(30,16,58,.97) 100%);
}

/* ── Sezione sfondo chiaro ── */
#garanzia.band.light { background: #eef2f8; }

/* ── Header, testi SCURI ── */
#garanzia .wrap                 { color: var(--gink); }
#garanzia .micro                { display:flex; align-items:center; gap:10px; font-weight:800; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(11,16,32,.42); margin-bottom:14px; }
#garanzia .micro .dot           { width:10px; height:10px; border-radius:999px; flex-shrink:0; background:var(--gv); box-shadow:0 0 0 6px rgba(122,77,255,.1); }
#garanzia .micro .rule          { height:1px; flex:1; background:rgba(11,16,32,.12); }
#garanzia .pill-top             { display:inline-flex; align-items:center; padding:10px 16px; border-radius:999px; font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:rgba(11,16,32,.68); background:rgba(37,99,235,.08); border:1px solid rgba(37,99,235,.18); margin:6px 0 18px; }
#garanzia .tg-title .h1a               { color: var(--gink); font-weight:600; }
#garanzia .tg-title .h1b               { font-weight:800; font-size:1.05em; background:linear-gradient(90deg,var(--gb),var(--gv)); -webkit-background-clip:text; background-clip:text; color:transparent; padding-bottom:3px; }
#garanzia .tg-title .h1c               { color: var(--gink); }
#garanzia .lead                 { margin:12px 0 0; max-width:85ch; font-size:20px; line-height:1.7; color:rgba(11,16,32,.65); }
#garanzia .lead strong          { font-weight:700; color:var(--gink); text-transform:uppercase; }
#garanzia .mid-claim            { margin:22px 0 0; text-align:center; font-size:18px; line-height:1.7; color:rgba(11,16,32,.58); }
#garanzia .mid-claim strong     { font-weight:700; color:var(--gink); text-transform:uppercase; }
#garanzia .sep                  { background:rgba(11,16,32,.12); }
#garanzia .h2                   { margin:0 0 14px; font-size:clamp(24px,2.8vw,34px); font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:rgba(37,99,235,.88); }
#garanzia .p                    { margin:0 0 18px; font-size:17px; line-height:1.75; color:rgba(11,16,32,.62); max-width:95ch; }
#garanzia .p strong             { font-weight:700; color:var(--gink); text-transform:uppercase; }

/* Neutralizza regola globale p:last-of-type */
#garanzia p:last-of-type { font-size: inherit !important; font-weight: inherit !important; line-height: inherit !important; color: inherit !important; }

/* ── CARDS, sfondo SCURO, testi BIANCHI ── */
#garanzia .cards {
  margin-top:26px; display:grid; grid-template-columns:repeat(3,1fr); gap:18px;
}
@media(max-width:820px) { #garanzia .cards { grid-template-columns:1fr; } }

#garanzia .card {
  position:relative;
  background: var(--gcard);
  border:1px solid rgba(255,255,255,.07);
  border-radius:18px; padding:0;
  /* Ombra più sobria, meno diffusa */
  box-shadow:0 10px 28px rgba(0,0,0,.22), 0 2px 6px rgba(0,0,0,.10);
  color:rgba(255,255,255,.88);
}
#garanzia .card-inner {
  padding:24px 20px 20px; display:flex; flex-direction:column; min-height:100%;
}
#garanzia .card-top {
  display:flex; align-items:center; justify-content:center; gap:10px;
  margin-bottom:12px; font-size:11px; font-weight:800; letter-spacing:.18em;
  text-transform:uppercase; color:rgba(255,255,255,.48);
}
#garanzia .badge {
  width:30px; height:30px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--go); color:#111; font-size:11px; font-weight:800;
  box-shadow:0 10px 30px rgba(255,138,0,.22);
}
#garanzia .card-title, #garanzia .card h3 {
  text-align:center; font-size:clamp(19px,2.1vw,24px) !important; font-weight:800 !important;
  letter-spacing:.05em; text-transform:uppercase; margin:0 0 10px; color:#fff !important;
}
#garanzia .bar {
  height:3px; border-radius:99px; opacity:.85;
  background:linear-gradient(90deg,var(--gb),var(--gv),var(--go));
  width:62%; margin:0 auto 16px;
}
#garanzia .card-inner > p {
  margin:0 0 10px; font-size:15px !important; line-height:1.65 !important;
  font-weight:300; color:rgba(255,255,255,.82) !important;
}
#garanzia .card-inner > p strong { font-weight:700; color:#fff !important; text-transform:uppercase; letter-spacing:.02em; }
#garanzia .note {
  margin-top:auto; padding:12px 14px; border-radius:12px;
  background:rgba(0,0,0,.22); border:1px solid rgba(255,255,255,.10);
  font-size:13px !important; font-weight:300; line-height:1.6;
  color:rgba(255,255,255,.60) !important;
}
#garanzia .note strong { font-weight:700; color:rgba(255,255,255,.88) !important; text-transform:uppercase; }

/* ── BONUS, sfondo SCURO ── */
#garanzia .bonus {
  margin-top:16px; padding:22px; border-radius:20px;
  background:linear-gradient(135deg,rgba(255,138,0,.11),rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.13);
  box-shadow:0 18px 50px rgba(0,0,0,.28);
  color:rgba(255,255,255,.85);
}
#garanzia .bonus .t      { font-size:22px; font-weight: 800; letter-spacing:.08em; text-align:center; margin:8px 0 18px; color:#fff; }
#garanzia .bonus .t .g   { color:var(--go); font-size:16px; font-weight: 800; letter-spacing:.18em; text-transform:uppercase; }
#garanzia .bonus .t .vp  { color:#fff; font-size:28px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
#garanzia .bonus p       { margin:0 0 8px; font-size:17px !important; line-height:1.7; color:rgba(255,255,255,.75) !important; }
#garanzia .bonus p strong { font-weight:700; color:#fff !important; text-transform:uppercase; }

/* ── DETAIL, sfondo SCURO ── */
#garanzia .detail {
  background:rgba(10,16,44,.92); border-radius:18px;
  padding:0 28px; margin-top:32px;
  border:1px solid rgba(255,255,255,.09);
}
#garanzia .drow           { padding:26px 0; border-top:1px solid rgba(255,255,255,.09); }
#garanzia .drow:first-child { border-top:none; }
#garanzia .dhead          { font-size:clamp(20px,2.4vw,30px); font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:rgba(255,255,255,.92); margin:0 0 14px; }
#garanzia .dnum           { color:var(--go); font-weight:800; }
#garanzia .dtext          { font-size:17px !important; line-height:1.75; font-weight:300; color:rgba(255,255,255,.72) !important; margin:0 0 18px; }
#garanzia .dtext strong   { font-weight:700; color:#fff !important; text-transform:uppercase; }

#garanzia .twobox { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media(max-width:640px) { #garanzia .twobox { grid-template-columns:1fr; } }

/* ── IBOX, sfondo ancora più scuro ── */
#garanzia .ibox {
  padding:18px; border-radius:14px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.11);
  color:rgba(255,255,255,.80);
}
#garanzia .ibox .it { margin:0 0 10px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.14em; color:rgba(255,255,255,.48); }
#garanzia .ibox p   { margin:0; font-size:14px !important; line-height:1.7; font-weight:300; color:rgba(255,255,255,.75) !important; }
#garanzia .ibox p strong { font-weight:700; color:#fff !important; text-transform:uppercase; }

/* Fix contrast testi su sfondo chiaro (override globale) */
#garanzia .lead, 
#garanzia .p,
#garanzia .mid-claim,
#garanzia .wrap p{
  color: var(--gink) !important;
  opacity: 1 !important;
}
#garanzia .micro{ color: rgba(11,16,32,.55) !important; }

/* ===== gar-center-fix ===== */
#garanzia .wrap { text-align: center !important; }
#garanzia .micro { justify-content: center !important; }
#garanzia .lead, #garanzia .mid-claim, #garanzia .p { margin-left: auto !important; margin-right: auto !important; }
#garanzia .pill-top { margin-left: auto !important; margin-right: auto !important; }

/* ===== gar-override-final ===== */
/* ══════════════════════════════════════════════════════════
   GARANZIA, OVERRIDE DEFINITIVO (batte tutte le patch)
   Regola unica e ultima: niente altre patch su #garanzia.
   Header = sfondo chiaro → testi SCURI
   Card/Detail/Ibox/Bonus = sfondo SCURO → testi BIANCHI
══════════════════════════════════════════════════════════ */

/* ── RESET margini detail (annulla tutte le patch precedenti) ── */
#garanzia .detail {
  margin-left: 0 !important;
  margin-right: 0 !important;
  border-radius: 18px !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.28) !important;
}

/* ── NUOVO CONTENITORE DETAIL ── */
#garanzia .gar-detail-wrap {
  background: #0a102c;
  border-radius: 18px;
  padding: 0 28px;
  margin: 32px 0 8px;
  border: none; /* removed side righine */
box-shadow: 0 18px 50px rgba(0,0,0,.28);
  color: rgba(255,255,255,.88);
  overflow: hidden;
  background-clip: padding-box;
}
#garanzia .gar-detail-wrap .drow {
  padding: 26px 0;
  border-top: 1px solid rgba(255,255,255,.09);
  color: rgba(255,255,255,.88);
}
#garanzia .gar-detail-wrap .drow:first-child { border-top: none; }
#garanzia .gar-detail-wrap .dhead {
  font-size: clamp(20px,2.4vw,30px); font-weight: 800;
  letter-spacing: .04em; text-transform: uppercase;
  color: rgba(255,255,255,.92); margin: 0 0 14px;
}
#garanzia .gar-detail-wrap .dnum { color: #ff8a00; font-weight: 800; }
#garanzia .gar-detail-wrap .dtext,
#garanzia .gar-detail-wrap p.dtext {
  font-size: 17px; line-height: 1.75; font-weight: 300;
  color: rgba(255,255,255,.78); margin: 0 0 18px;
}
#garanzia .gar-detail-wrap .dtext strong,
#garanzia .gar-detail-wrap p.dtext strong { color: #fff; font-weight: 700; text-transform: uppercase; }
#garanzia .gar-detail-wrap .twobox {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
}
@media(max-width:640px) { #garanzia .gar-detail-wrap .twobox { grid-template-columns: 1fr; } }
#garanzia .gar-detail-wrap .ibox {
  padding: 18px; border-radius: 14px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.11);
  color: rgba(255,255,255,.80);
}
#garanzia .gar-detail-wrap .ibox .it {
  font-size: 11px; font-weight: 800; text-transform: uppercase;
  letter-spacing: .14em; color: rgba(255,255,255,.48); margin-bottom: 10px;
}
#garanzia .gar-detail-wrap .ibox p {
  margin: 0; font-size: 14px; line-height: 1.7;
  font-weight: 300; color: rgba(255,255,255,.78);
}
#garanzia .gar-detail-wrap .ibox p strong { color: #fff; font-weight: 700; text-transform: uppercase; }
#garanzia .bonus {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ── AREA HEADER (sfondo chiaro), TESTI SCURI ── */
#garanzia.band.light { background: #eef2f8 !important; }
#garanzia .wrap { color: #0b1020 !important; }
#garanzia .micro,
#garanzia .micro span { color: rgba(11,16,32,.42) !important; }
#garanzia .pill-top { color: rgba(11,16,32,.68) !important; }
#garanzia .tg-title .h1a,
#garanzia .tg-title .h1c { color: #0b1020 !important; }
#garanzia .lead,
#garanzia .lead p { color: rgba(11,16,32,.65) !important; }
#garanzia .lead strong { color: #0b1020 !important; }
#garanzia .mid-claim { color: rgba(11,16,32,.58) !important; }
#garanzia .mid-claim strong { color: #0b1020 !important; }
#garanzia .p { color: rgba(11,16,32,.62) !important; }
#garanzia .p strong { color: #0b1020 !important; }
#garanzia .h2 { color: rgba(37,99,235,.88) !important; }

/* ── CARD (sfondo scuro), TESTI BIANCHI ── */
#garanzia .card { color: rgba(255,255,255,.88) !important; }
#garanzia .card-inner > p { color: rgba(255,255,255,.82) !important; }
#garanzia .card-inner > p strong { color: #fff !important; }
#garanzia .card-title,
#garanzia .card h3 { color: #fff !important; }
#garanzia .note { color: rgba(255,255,255,.60) !important; }
#garanzia .note strong { color: rgba(255,255,255,.88) !important; }

/* ── DETAIL (sfondo scuro), TESTI BIANCHI ── */
#garanzia .detail { color: rgba(255,255,255,.88) !important; }
#garanzia .wrap .detail { color: rgba(255,255,255,.88) !important; }
#garanzia .dhead { color: rgba(255,255,255,.92) !important; }
#garanzia .wrap .dhead { color: rgba(255,255,255,.92) !important; }
#garanzia .dnum { color: #ff8a00 !important; }
#garanzia .drow { color: rgba(255,255,255,.88) !important; }
#garanzia .wrap .drow { color: rgba(255,255,255,.88) !important; }
/* Specificità extra per battere #garanzia .wrap p */
#garanzia .wrap .detail p,
#garanzia .wrap .dtext,
#garanzia .detail p,
#garanzia p.dtext { color: rgba(255,255,255,.78) !important; }
#garanzia .wrap .detail p strong,
#garanzia .wrap .dtext strong,
#garanzia p.dtext strong { color: #fff !important; }

/* ── IBOX (sfondo scuro), TESTI BIANCHI ── */
#garanzia .ibox { color: rgba(255,255,255,.80) !important; }
#garanzia .wrap .ibox { color: rgba(255,255,255,.80) !important; }
#garanzia .ibox .it { color: rgb(255,134,36) !important; }
/* Specificità extra per battere #garanzia .wrap p */
#garanzia .wrap .ibox p,
#garanzia .ibox p { color: rgba(255,255,255,.78) !important; }
#garanzia .wrap .ibox p strong,
#garanzia .ibox p strong { color: #fff !important; }

/* ── BONUS (sfondo scuro), TESTI BIANCHI ── */
#garanzia .bonus { color: rgba(255,255,255,.85) !important; }
#garanzia .bonus p { color: rgba(255,255,255,.75) !important; }
#garanzia .bonus p strong { color: #fff !important; }



/* ── CTA chip: centrata, no sottolineatura ── */
#garanzia .cta-wrapper { text-align: center !important; }
#garanzia .cta-chip {
  display: inline-flex !important;
  color: #fff !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.3) !important;
  text-decoration: none !important;
}
#garanzia .cta-chip:hover {
  text-decoration: none !important;
}

/* ===== ruoli-empathy-css ===== */
.ruoli-empathy-intro {
  max-width: 100%;
  margin: 0 0 52px;
  text-align: center;
  padding: 34px 40px;
  background: #0b1230;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 8px 32px rgba(0,0,0,.25);
}
.ruoli-empathy-intro p {
  font-size: clamp(17px, 2vw, 21px);
  font-weight: 400;
  line-height: 1.70;
  color: rgba(255,255,255,.75);
  margin: 0;
}
.ruoli-empathy-intro strong {
  display: block;
  font-weight: 800;
  font-size: clamp(18px, 2.1vw, 23px);
  text-transform: uppercase;
  letter-spacing: .03em;
  color: #fff;
  margin-top: 10px;
}
.persona-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 28px;
}
.persona-dot-btn {
  width: 10px; height: 10px;
  border-radius: 50%;
  border: 2px solid rgba(11,16,32,.25);
  background: transparent;
  cursor: pointer;
  padding: 0;
  transition: background .2s, border-color .2s;
}
.persona-dot-btn.active {
  background: #ff8a00;
  border-color: #ff8a00;
}

/* ===== chi-sono-titles-css ===== */
/* ──────────────────────────────────────────
   CHI SONO, titoletti sezione
   .chi-block-label : DA DOVE ARRIVO / LA SCELTA / L'OSSESSIONE / ESPERIENZA SUL CAMPO
   .chi-value-title : Occhio da Designer / Attenzione maniacale / ecc.
────────────────────────────────────────── */

/* Titoletti principali dei blocchi, grandi e in stampatello */
#chi-sono .chi-block-label {
  font-size: clamp(24px, 3vw, 38px) !important;
  font-weight: 800 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  line-height: 1.1 !important;
  display: block !important;
}
#chi-sono .chi-block-sub {
  font-size: clamp(15px, 1.6vw, 18px) !important;
  font-weight: 400 !important;
  font-style: italic !important;
  color: rgba(255,255,255,.75) !important;
  letter-spacing: .01em !important;
  margin-top: 5px !important;
  display: block !important;
}
#chi-sono .chi-title-inline {
  margin-bottom: 26px !important;
}

/* Titoletti dei 4 riquadri valore */
#chi-sono .chi-value-title {
  font-size: clamp(16px, 1.9vw, 22px) !important;
  font-weight: 800 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  margin: 0 0 7px !important;
  line-height: 1.2 !important;
}
#chi-sono .chi-value-text {
  font-size: 19px !important;
  font-weight: 300 !important;
  color: rgba(255,255,255,.65) !important;
  line-height: 1.6 !important;
}
#chi-sono .chi-value-text strong {
  font-weight: 700 !important;
  color: rgba(255,255,255,.88) !important;
}

/* ===== blocco senza id ===== */
.chi-micro-badges > .chi-badge{
  display: grid !important;
  grid-template-columns: 18px 1fr;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  width: 100%;
}
.chi-micro-badges > .chi-badge > svg{ justify-self: start; }
.chi-micro-badges > .chi-badge > .cb-text{
  text-align: center;
  line-height: 1.3;
}

/* ===== npt-css ===== */
#non-per-tutti {
  background:
    radial-gradient(700px 450px at 85% 15%, rgba(122,77,255,.07), transparent 60%),
    radial-gradient(500px 350px at 5% 85%, rgba(30,136,255,.05), transparent 55%),
    #0a0e1c;
}
.npt-wrap {
  max-width: 1160px;
  margin: 0 auto;
}

/* eyebrow */
.npt-rule {
  display: flex; align-items: center; gap: 14px;
  margin: 0 0 28px;
  font-size: 10px; font-weight: 800;
  letter-spacing: 2.5px; text-transform: uppercase;
  color: rgba(255,255,255,.28);
}
.npt-rule .dot {
  width: 10px; height: 10px; border-radius: 999px; flex-shrink: 0;
  background: linear-gradient(135deg,#2563EB,#7C3AED);
  box-shadow: 0 0 0 4px rgba(37,99,235,.1);
}
.npt-rule .line { height: 1px; flex: 1; background: rgba(255,255,255,.08); }

/* Titolo */
.npt-title {
  font-size: clamp(36px, 5.2vw, 60px);
  font-weight: 800; letter-spacing: -1.5px;
  line-height: 1.06; margin: 0 0 20px; color: #fff;
}
.npt-title .t-light { font-weight: 200; color: rgba(255,255,255,.32); }
.npt-title .t-accent {
  background: linear-gradient(90deg,#1E88FF,#7A3AFF);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* Lead */
.npt-lead {
  font-size: clamp(17px, 1.9vw, 21px);
  font-weight: 300; color: rgba(255,255,255,.60);
  line-height: 1.68; max-width: 100%; margin: 0 0 52px;
}
.npt-lead strong { font-weight: 700; color: rgba(255,255,255,.85); }

/* Due colonne card, stile card garanzia */
.npt-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 0 0 52px;
}
@media(max-width:720px){ .npt-grid { grid-template-columns: 1fr; } }

.npt-col {
  position: relative;
  overflow: hidden; /* fix: la barra gradient superiore segue le corner del card */
  background: linear-gradient(145deg, rgba(38,53,88,0.95) 0%, rgba(28,36,66,0.95) 45%, rgba(48,32,88,0.95) 100%);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 18px;
  padding: 28px 28px 26px;
  box-shadow: 0 20px 60px rgba(0,0,0,.4);
}

/* Barra superiore: rossa per NO, blu per SI */
.npt-col::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  border-radius: 18px 18px 0 0;
  opacity: .95;
}
.npt-col-no::before { background: linear-gradient(90deg,#b52020,#ff4040); }
.npt-col-si::before { background: linear-gradient(90deg,#1E88FF,#7A3AFF); }

/* Header colonna, stile card-top garanzia */
.npt-col-header {
  display: flex; align-items: center;
  justify-content: center; gap: 10px;
  margin: 0 0 20px;
  font-size: 11px; font-weight: 800;
  letter-spacing: .18em; text-transform: uppercase;
}
.npt-col-no .npt-col-header { color: rgba(255,120,100,.80); }
.npt-col-si .npt-col-header { color: rgba(100,180,255,.85); }

.npt-col-badge {
  width: 28px; height: 28px; border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 800; flex-shrink: 0;
}
.npt-col-no .npt-col-badge { background: rgba(180,30,30,.3); color: #ff7060; }
.npt-col-si .npt-col-badge { background: rgba(30,136,255,.25); color: #70c0ff; }

/* Barra separatrice, identica a .bar garanzia */
.npt-col-bar {
  height: 3px; border-radius: 99px; opacity: .7;
  margin: 0 auto 20px;
  width: 55%;
}
.npt-col-no .npt-col-bar { background: linear-gradient(90deg,#b52020,#ff4040,#ff8060); }
.npt-col-si .npt-col-bar { background: linear-gradient(90deg,#2b6cff,#7a4dff,#ff8a00); }

/* Lista */
.npt-list {
  list-style: none; padding: 0; margin: 0;
  display: grid; gap: 12px;
}
.npt-list li {
  display: flex; align-items: flex-start; gap: 12px;
  font-size: 15px; font-weight: 300;
  color: rgba(255,255,255,.72); line-height: 1.55;
  padding: 0;
}
.npt-list-icon {
  flex-shrink: 0;
  width: 20px; height: 20px;
  border-radius: 999px;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 800;
  margin-top: 1px;
}
.npt-col-no .npt-list-icon { background: rgba(180,30,30,.25); color: rgba(255,100,80,.9); }
.npt-col-si .npt-list-icon { background: rgba(30,136,255,.2); color: rgba(100,200,130,.9); }
.npt-list li strong { font-weight: 700; color: rgba(255,255,255,.88); }

/* Chiusura */
.npt-close {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
}
.npt-close-text {
  font-size: clamp(17px, 1.9vw, 21px);
  font-weight: 300; color: rgba(255,255,255,.62);
  line-height: 1.7; margin: 0 0 10px;
}
.npt-close-text strong { font-weight: 800; color: #fff; }
.npt-close-note {
  font-size: 14px; font-style: italic;
  color: rgba(255,255,255,.32); margin: 0;
}

/* Grassettato → stampatello */
.npt-stamp {
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: rgba(255,255,255,.92);
}

/* Titoletti NON FA / FA PER TE più grandi */
.npt-col-header {
  font-size: 19px !important;
  letter-spacing: .12em !important;
}

/* ===== sim-bridge-css ===== */
/* ── Bridge emotivo prima del form ── */
  .sim-bridge {
    max-width: 760px;
    margin: 0 auto 64px;
    text-align: center;
  }
  .sim-bridge-eyebrow {
    display: inline-flex; align-items: center; gap: 10px;
    font-size: 10px; font-weight: 800;
    letter-spacing: 2.5px; text-transform: uppercase;
    color: rgba(11,16,32,.4);
    margin: 0 0 22px;
  }
  .sim-bridge-eyebrow::before,
  .sim-bridge-eyebrow::after {
    content: ""; display: inline-block;
    width: 28px; height: 1px;
    background: rgba(11,16,32,.2);
  }
  .sim-bridge-title {
    font-size: clamp(32px, 4.5vw, 52px);
    font-weight: 800;
    letter-spacing: -1.5px;
    line-height: 1.08;
    color: #0b1020;
    margin: 0 0 22px;
  }
  .sim-bridge-title .t-light {
    font-weight: 200;
    color: rgba(11,16,32,.38);
  }
  .sim-bridge-title .t-grad {
    background: linear-gradient(90deg, #1E88FF 0%, #7A3AFF 60%, #FF8A1F 100%);
    -webkit-background-clip: text; background-clip: text; color: transparent;
  }
  .sim-bridge-body {
    font-size: clamp(17px, 1.9vw, 21px);
    font-weight: 300;
    color: rgba(11,16,32,.58);
    line-height: 1.7;
    margin: 0 0 14px;
  }
  .sim-bridge-body strong {
    font-weight: 700;
    color: rgba(11,16,32,.82);
  }
  .sim-bridge-note {
    font-size: 14px;
    font-weight: 400;
    color: rgba(11,16,32,.4);
    font-style: italic;
    margin: 0;
  }
  .sim-bridge-divider {
    width: 60px; height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, #1E88FF, #7A3AFF, #FF8A1F);
    margin: 28px auto 0;
    opacity: .7;
  }

/* ===== sim-voice-box-css ===== */
.sim-voice-box{
  margin: 24px auto 0;
  max-width: 720px;
  padding: 30px 24px 26px;
  border-radius: 14px;
  border: 1px dashed rgba(0,0,0,.22);
  background: rgba(255,255,255,.55);
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.sim-voice-box .sim-bridge-note{
  margin: 0 !important;
  font-size: 17px !important;
  font-weight: 400 !important;
  color: rgba(11,16,32,.55) !important;
  line-height: 1.45 !important;
  letter-spacing: .01em !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 10px !important;
}
.sim-voice-box .svb-eyebrow{
  font-size: 17px;
  font-style: italic;
  color: rgba(11,16,32,.55);
  letter-spacing: .01em;
}
.sim-voice-box .svb-phone{
  display: inline-block;
  font-size: 32px;
  font-weight: 800;
  color: #2e3e6e;
  letter-spacing: .02em;
  text-decoration: none;
  line-height: 1.1;
  margin: 2px 0;
}
.sim-voice-box .svb-phone:hover{ color: #4356a0; }
.sim-voice-box .svb-hint{
  font-size: 16px;
  font-style: italic;
  color: rgba(11,16,32,.48);
  letter-spacing: .01em;
}
.sim-voice-box ~ .sim-bridge-divider,
.sim-voice-box + .sim-bridge-divider,
.sim-bridge-divider{ display: none !important; }

/* ===== ib-new-initial-css ===== */
#problema, #metodo-scelta, #criteri-scelta { font-family:var(--font-main); }
#problema .ib-flow, #metodo-scelta .ib-flow, #criteri-scelta .ib-flow{
  /* allineati al container standard della pagina (1160px),
     così questi 3 blocchi non risultano "incassati"        */
  max-width: 100%;
  margin: 0 auto;
}
#problema{ background:linear-gradient(180deg,#f6f7fb 0%,#eef2f8 100%); position:relative; overflow:hidden; }
#problema::before{ content:""; position:absolute; right:-160px; top:-120px; width:420px; height:420px; border-radius:999px; background:radial-gradient(circle,rgba(31,70,255,.16),transparent 68%); pointer-events:none; }
#problema::after{ content:""; position:absolute; left:-180px; bottom:-180px; width:420px; height:420px; border-radius:999px; background:radial-gradient(circle,rgba(255,138,0,.12),transparent 68%); pointer-events:none; }
#problema .container{ position:relative; z-index:1; }
.ib-new-title{ margin:0; font-size:clamp(38px,5.4vw,68px); line-height:1.04; letter-spacing:-1.2px; font-weight: 800; color:#0b1020; }
.ib-new-title .t-light{ font-weight:300; color:rgba(11,16,32,.48); }
.ib-new-title .strong{ color:#3a3a3a; font-weight: 800; }
.ib-new-grad{ background:linear-gradient(90deg,#1E88FF 0%,#7A5CFF 58%,#FF6B00 100%); -webkit-background-clip:text; background-clip:text; color:transparent; font-weight: 800; }
.ib-new-under{ position:relative; display:inline-block; font-weight: 800; color:#0b1020; }
.ib-new-under::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:3px; border-radius:999px; background:linear-gradient(90deg,#1E88FF 0%,#7A5CFF 58%,#FF6B00 100%); }
.ib-new-lead{ margin:26px 0 0; max-width:84ch; font-size:20px; line-height:1.72; color:rgba(11,16,32,.72); font-weight:400; }
.ib-new-lead strong{ color:#3a3a3a; font-weight: 800; }
.ib-proof-row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:30px; }
.ib-chip{ display:inline-flex; align-items:center; gap:8px; padding:10px 13px; border-radius:999px; background:rgba(11,16,32,.04); border:1px solid rgba(11,16,32,.08); color:rgba(11,16,32,.68); font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.ib-chip span{ color:#ff8a00; font-size:15px; }
.ib-welcome-card{ margin:42px auto 0; max-width:920px; position:relative; padding:28px; border-radius:24px; background:#fff; border:1px solid rgba(11,16,32,.08); box-shadow:0 24px 70px rgba(11,16,32,.10); overflow:hidden; }
.ib-welcome-card::before{ content:""; position:absolute; inset:0 0 auto 0; height:5px; background:linear-gradient(90deg,#1E88FF 0%,#7A5CFF 58%,#FF6B00 100%); }
.ib-card-kicker{ display:inline-flex; align-items:center; gap:8px; margin-bottom:16px; padding:8px 11px; border-radius:999px; background:rgba(255,138,0,.10); border:1px solid rgba(255,138,0,.22); color:#B85B00; font-size:11px; font-weight: 800; letter-spacing:.12em; text-transform:uppercase; }
.ib-card-kicker::before{ content:""; width:7px; height:7px; border-radius:999px; background:#ff8a00; box-shadow:0 0 12px rgba(255,138,0,.55); }
.ib-mini-title{ margin:0 0 18px; font-size:26px; line-height:1.15; letter-spacing:-.4px; color:#3a3a3a; font-weight: 800; }
.ib-checklist{ margin:0; padding:0; list-style:none; display:grid; gap:14px; }
.ib-checklist li{ position:relative; padding:16px 16px 16px 50px; border-radius:16px; background:linear-gradient(135deg,rgba(31,70,255,.05),rgba(125,44,255,.04)); border:1px solid rgba(11,16,32,.07); color:rgba(11,16,32,.78); font-size:15px; line-height:1.48; font-weight:500; }
.ib-checklist li::before{ content:"✓"; position:absolute; left:16px; top:16px; width:24px; height:24px; display:flex; align-items:center; justify-content:center; border-radius:8px; background:linear-gradient(90deg,#ffb347,#ff8c1a); color:#1a1206; font-weight: 800; box-shadow:0 8px 18px rgba(255,138,0,.22); }
.ib-checklist strong{ display:block; margin-bottom:3px; color:#3a3a3a; font-weight: 800; text-transform:uppercase; letter-spacing:.03em; }
#metodo-scelta{ color:#fff; background:radial-gradient(circle at 15% 15%, rgba(31,70,255,.16), transparent 34%), radial-gradient(circle at 85% 20%, rgba(255,138,0,.10), transparent 32%), linear-gradient(180deg,#0B1030,#0F1340); position:relative; overflow:hidden; }
#metodo-scelta::before, #criteri-scelta::before{ content:""; position:absolute; inset:0; pointer-events:none; opacity:.05; background-image:linear-gradient(rgba(255,255,255,.50) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.50) 1px, transparent 1px); background-size:48px 48px; }
#metodo-scelta .container, #criteri-scelta .container{ position:relative; z-index:1; }
#metodo-scelta .ib-new-title, #criteri-scelta .ib-new-title{ color:#fff; }
#metodo-scelta .ib-new-title .t-light, #criteri-scelta .ib-new-title .t-light{ color:rgba(255,255,255,.44); }
#metodo-scelta .ib-new-title .strong, #criteri-scelta .ib-new-title .strong{ color:#fff; }
#metodo-scelta .ib-new-lead, #criteri-scelta .ib-new-lead{ color:rgba(255,255,255,.78); }
#metodo-scelta .ib-new-lead strong, #criteri-scelta .ib-new-lead strong{ color:#fff; }
.ib-method-panel{ margin:34px 0 0; padding:30px; border-radius:24px; background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.12); box-shadow:0 24px 70px rgba(0,0,0,.22); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.ib-method-panel p{ margin:0; font-size:19px; line-height:1.68; color:rgba(255,255,255,.80); font-weight:400; }
.ib-method-panel strong{ color:#fff; font-weight: 800; }
.ib-method-rail{ display:grid; gap:18px; margin-top:42px; }
.ib-rail-item{ display:grid; grid-template-columns:74px 1fr; gap:18px; align-items:start; padding:22px; border-radius:22px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); box-shadow:0 18px 50px rgba(0,0,0,.16); }
.ib-rail-num{ width:58px; height:58px; border-radius:18px; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,rgba(31,70,255,.22),rgba(125,44,255,.20)); border:1px solid rgba(255,255,255,.12); color:#fff; font-size:22px; font-weight: 800; }
.ib-rail-content h3{ margin:0 0 7px; color:#fff; font-size:20px; line-height:1.2; font-weight: 800; letter-spacing:.01em; }
.ib-rail-content p{ margin:0; color:rgba(255,255,255,.70); font-size:15.5px; line-height:1.62; font-weight:400; }
#criteri-scelta{ color:#fff; background:linear-gradient(180deg,#070A13,#0B1030); position:relative; overflow:hidden; }
.ib-criteria-intro{ max-width:920px; margin-top:28px; }
.ib-side-note{ margin-top:26px; padding:22px 24px; border-radius:18px; background:linear-gradient(135deg,rgba(255,138,0,.12),rgba(255,138,0,.05)); border:1px solid rgba(255,138,0,.25); color:rgba(255,255,255,.80); font-size:15px; line-height:1.58; font-weight:500; }
.ib-side-note strong{ color:#fff; font-weight: 800; }
.ib-criteria-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin:48px 0 0; }
.ib-criterion{ position:relative; min-height:100%; padding:30px 26px 28px; border-radius:22px; background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.035)),rgba(0,0,0,.14); border:1px solid rgba(255,255,255,.12); box-shadow:0 22px 60px rgba(0,0,0,.22); overflow:hidden; }
.ib-criterion::before{ content:""; position:absolute; inset:0 0 auto 0; height:4px; background:linear-gradient(90deg,#1E88FF 0%,#7A5CFF 58%,#FF6B00 100%); }
.ib-criterion-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:18px; }
.ib-criterion-num{ color:rgba(255,255,255,.18); font-size:58px; line-height:.85; letter-spacing:-.06em; font-weight: 800; }
.ib-criterion-icon{ width:46px; height:46px; display:flex; align-items:center; justify-content:center; border-radius:16px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); }
.ib-criterion-icon svg{ width:24px; height:24px; stroke:#ff8a00; stroke-width:2.1; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.ib-criterion h3{ margin:0 0 14px; color:#fff; font-size:23px; line-height:1.14; font-weight: 800; letter-spacing:.01em; text-transform:uppercase; }
.ib-criterion p{ margin:0; color:rgba(255,255,255,.73); font-size:15.5px; line-height:1.68; font-weight:400; }
.ib-criterion p strong{ color:#fff; font-weight:800; }
.ib-bridge{ margin:62px auto 0; max-width:980px; padding:38px 42px; border-radius:26px; text-align:center; background:radial-gradient(circle at 20% 0%,rgba(31,70,255,.18),transparent 38%),radial-gradient(circle at 86% 30%,rgba(255,138,0,.16),transparent 32%),rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.13); box-shadow:0 26px 76px rgba(0,0,0,.28); }
.ib-bridge h3{ margin:0; color:#fff; font-size:clamp(28px,3.2vw,42px); line-height:1.16; letter-spacing:-.7px; font-weight: 800; }
.ib-bridge p{ margin:18px auto 0; max-width:760px; color:rgba(255,255,255,.78); font-size:17px; line-height:1.68; font-weight:400; }
.ib-bridge strong{ color:#fff; font-weight: 800; }
@media(max-width:980px){ .ib-criteria-grid{ grid-template-columns:1fr; } }
@media(max-width:720px){ .ib-new-title{ font-size:clamp(34px,10vw,52px); } .ib-new-lead{ font-size:17px; } .ib-welcome-card,.ib-method-panel,.ib-bridge{ padding:24px 22px; } .ib-rail-item{ grid-template-columns:1fr; } .ib-rail-num{ width:52px; height:52px; } .ib-criterion{ padding:28px 22px 26px; } }

/* ===== blocco senza id ===== */
/* RUOLI: titolo (ripristino dimensione come layout originale) */
  #ruoli .ruoli-title{
}
#ruoli .ruoli-title{
    font-family:var(--font-main);
    font-size: clamp(36px, 4.8vw, 54px);
    line-height: 1.06;
    letter-spacing: -0.015em;
    font-weight: 800;
    margin-bottom: 14px;
  }

/* ===== sol-intro-dark ===== */
/* === LA SOLUZIONE, intro su fondo scuro === */
#sol-intro .sol-title { color:#fff !important; }
#sol-intro .sol-title .t-light { color:rgba(255,255,255,.65) !important; font-weight:300 !important; }
#sol-intro .rainbow-black-strong { color:#fff !important; text-shadow:none !important; }
#sol-intro .grad-text {
  background:linear-gradient(90deg,#60A5FA 0%,#A78BFA 55%,#FB923C 100%) !important;
  -webkit-background-clip:text !important; background-clip:text !important; color:transparent !important;
}
#sol-intro .sol-kicker {
  color:rgba(255,255,255,.45) !important;
  border-color:rgba(255,255,255,.18) !important;
  background:rgba(255,255,255,.05) !important;
}
#sol-intro .sol-sub { color:rgba(255,255,255,.8) !important; font-weight:400 !important; }
#sol-intro .sol-sub strong,
#sol-intro .chiavi-mano,
#sol-intro .unico-referente { color:#fff !important; }
#sol-intro .sol-body p { color:rgba(255,255,255,.72) !important; }
#sol-intro .sol-body strong { color:#fff !important; }
#sol-intro .sol-body .accent { color:#93C5FD !important; }
#sol-intro .section-rule { color:rgba(255,255,255,.3) !important; }
#sol-intro .section-rule .line { background:linear-gradient(90deg,rgba(255,255,255,.12),transparent) !important; }
#sol-intro .dot { background:var(--gradient-primary) !important; }

/* ===== ib-allerta-css ===== */
/* ============================================================
   ALLERTA MALTEMPO, ripristino aspetto HTML15
   Nota: questa è l'unica deroga editoriale al Montserrat,
   perché l'effetto "articolo di giornale" del file 15 nasceva
   volutamente da una testata serif in stile quotidiano.
   ============================================================ */
#allerta-maltempo.allerta-journal-section{
  background: transparent !important;
  position: relative !important;
  overflow: hidden !important;
}
#allerta-maltempo.allerta-journal-section::before{
  content:"" !important;
  display:none !important;
}
#allerta-maltempo .container{
  position:relative !important;
  z-index:2 !important;
}
#allerta-maltempo .agit-maltempo-outer{
  max-width:1100px !important;
  margin:0 auto !important;
}
#allerta-maltempo .agit-maltempo-inner,
#allerta-maltempo .agit-maltempo-inner *{
  box-sizing:border-box !important;
}/* ═══════════════════════════════════════════════════════════
   ALLERTA MALTEMPO, versione articolo di giornale
   ═══════════════════════════════════════════════════════════ */
/* Ombra ridotta: prima era 0 24px 60px rgba(0,0,0,.45)
     che creava lo "stacco grigio" visibile sotto la card. */
  
.agit-maltempo-inner {
  background: transparent !important;
  border-radius: 0 !important;
  padding: 38px 56px 44px !important;
  color: #1a1a1a !important;
  position: relative !important;
  z-index: 2 !important;
  font-family: "Georgia", "Times New Roman", serif !important;
}

/* Testata stile giornale */
.malt-masthead {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  border-bottom: 3px double #1a1a1a !important;
  padding: 0 0 8px !important;
  margin: 0 0 18px !important;
  font-family: "Georgia", "Times New Roman", serif !important;
  font-size: 11px !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
  color: #5a5a5a !important;
  font-weight: 600 !important;
}

/* Titolo principale stile testata */
.malt-newstitle,
span.malt-newstitle {
  display: block !important;
  width: 100% !important;
  font-family: "Georgia", "Times New Roman", serif !important;
  font-size: clamp(38px, 6vw, 64px) !important;
  font-weight: 800 !important;
  letter-spacing: .02em !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  text-align: center !important;
  color: #0a0a0a !important;
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #0a0a0a !important;
  margin: 0 0 6px !important;
  padding: 0 !important;
  font-stretch: normal;
  font-variant: small-caps;
}

/* Sottotitolo / occhiello */
.malt-subtitle {
  font-family: "Georgia", "Times New Roman", serif !important;
  font-size: clamp(18px, 2.4vw, 24px) !important;
  font-weight: 400 !important;
  font-style: italic !important;
  text-align: center !important;
  color: #2a2a2a !important;
  letter-spacing: .01em !important;
  margin: 0 0 22px !important;
  padding: 0 0 22px !important;
  line-height: 1.35 !important;
  border-bottom: 1px solid rgba(11,16,32,.20) !important;
  text-transform: none !important;
}

/* Body text stile articolo */
.malt-body {
  font-family: "Georgia", "Times New Roman", serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  color: #1c1c1c !important;
  line-height: 1.7 !important;
  margin: 0 0 14px !important;
  text-align: justify !important;
  hyphens: auto !important;
}

/* Drop cap sul primo paragrafo */
.malt-body.malt-lead::first-letter {
  float: left !important;
  font-family: "Georgia", "Times New Roman", serif !important;
  font-size: 64px !important;
  line-height: .85 !important;
  font-weight: 800 !important;
  margin: 6px 10px 0 0 !important;
  color: #0a0a0a !important;
}

/* Claim/grassetti centrati stile occhiello */
.malt-claim {
  font-family: "Georgia", "Times New Roman", serif !important;
  font-size: clamp(17px, 2vw, 21px) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
  color: #0a0a0a !important;
  text-align: center !important;
  line-height: 1.35 !important;
  margin: 22px 0 !important;
  padding: 16px 0 !important;
  border-top: 1px solid rgba(11,16,32,.20) !important;
  border-bottom: 1px solid rgba(11,16,32,.20) !important;
}

/* Riquadro finale "pill", stile editoriale chiusura */
.malt-pill {
  margin: 28px auto 0 !important;
  padding: 22px 28px !important;
  background: #1a1a1a !important;
  color: #f5f1e8 !important;
  border: none !important;
  border-radius: 0 !important;
  font-family: "Georgia", "Times New Roman", serif !important;
  font-size: clamp(16px, 1.9vw, 19px) !important;
  font-weight: 400 !important;
  font-style: italic !important;
  line-height: 1.55 !important;
  text-align: center !important;
  position: relative !important;
  max-width: 720px !important;
}/* Bordo decorativo doppio attorno al box */
/* Spegne l'animazione glow precedente, stile giornale è sobrio */



.malt-signature {
  font-family: "Georgia", "Times New Roman", serif !important;
  font-size: 14px !important;
  font-style: italic !important;
  text-align: right !important;
  color: #4a4a4a !important;
  margin: 22px 0 0 !important;
  padding: 14px 0 0 !important;
  border-top: 1px solid rgba(11,16,32,.15) !important;
  letter-spacing: .02em !important;
}


.malt-dateline {
  font-family: "Georgia", "Times New Roman", serif !important;
  font-size: 12px !important;
  font-style: italic !important;
  color: #5a5a5a !important;
  text-align: center !important;
  margin: -10px 0 14px !important;
  letter-spacing: .04em !important;
}

/* Override mirato: dentro Allerta si usa lo stesso serif editoriale del file HTML15 */
#allerta-maltempo .agit-maltempo-inner,
#allerta-maltempo .malt-masthead,
#allerta-maltempo .malt-newstitle,
#allerta-maltempo span.malt-newstitle,
#allerta-maltempo .malt-subtitle,
#allerta-maltempo .malt-body,
#allerta-maltempo .malt-body.malt-lead::first-letter,
#allerta-maltempo .malt-claim,
#allerta-maltempo .malt-pill,
#allerta-maltempo .malt-signature,
#allerta-maltempo .malt-dateline{
  font-family:"Georgia","Times New Roman",serif !important;
}
#allerta-maltempo .malt-newstitle,
#allerta-maltempo span.malt-newstitle{
  display:block !important;
  width:100% !important;
  background:none !important;
  -webkit-background-clip:initial !important;
  background-clip:initial !important;
  color:#0a0a0a !important;
  -webkit-text-fill-color:#0a0a0a !important;
}
#allerta-maltempo .malt-newstitle::after{
  display:none !important;
}
#allerta-maltempo .malt-pill{
  border-radius:0 !important;
}
@media(max-width:680px){
  #allerta-maltempo .malt-masthead{
    gap:10px !important;
    flex-direction:column !important;
    align-items:center !important;
    text-align:center !important;
  }
  #allerta-maltempo .malt-newstitle,
  #allerta-maltempo span.malt-newstitle{
    font-size:clamp(34px,11vw,52px) !important;
    letter-spacing:.01em !important;
  }
  #allerta-maltempo .malt-body{
    text-align:left !important;
  }
}

/* ===== blocco senza id ===== */
:root{
      --page:#F0F4F8;--ink:#0B1020;--muted:#4A5A73;--muted2:#7B8AA0;
      --blue:#2563EB;--blue-light:#60A5FA;--violet:#7C3AED;--violet-light:#A78BFA;
      --orange:#F97316;--orange-light:#FB923C;
      --gradient-primary:linear-gradient(135deg,var(--blue),var(--violet));
      --gradient-warm:linear-gradient(135deg,var(--orange),var(--orange-light));
      --radius:20px;--radius-lg:24px;--radius-sm:12px;
    }
    *{box-sizing:border-box;margin:0;padding:0}
    html{scroll-behavior:smooth}
    body{font-family:var(--font-main);background:var(--page);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
    .container{max-width:1160px;margin:0 auto;padding:0 20px}
    .band{padding:120px 0;position:relative;overflow:hidden}
    .band .container{position:relative;z-index:2}
    .band.darkish{
      background:radial-gradient(1200px 800px at 20% 25%,rgba(99,102,241,.16),transparent 60%),radial-gradient(1200px 800px at 80% 40%,rgba(139,92,246,.14),transparent 55%),linear-gradient(165deg,#0A0E1A 0%,#0F1729 50%,#0B1230 100%);color:#fff;
    }
    .band.darkish::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(255,255,255,.015) 2px,rgba(255,255,255,.015) 4px);pointer-events:none}
    .band.dark .section-rule,
    .band.darkish .section-rule{display:flex;align-items:center;gap:14px;margin:0 0 24px;font-weight: 800;letter-spacing:.12em;text-transform:uppercase;font-size:13px;color:rgba(255,255,255,.5)}
    .band:not(.darkish):not(.dark) .section-rule{color:rgba(11,16,32,.4)}
    .band:not(.darkish):not(.dark) .section-rule .line{background:linear-gradient(90deg,rgba(11,16,32,.12),transparent)}
    .section-rule .dot{width:12px;height:12px;border-radius:999px;background:var(--gradient-primary);box-shadow:0 0 0 4px rgba(37,99,235,.15),0 2px 8px rgba(37,99,235,.3);animation:pulse-dot 3s ease-in-out infinite}
    @keyframes pulse-dot{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.9}}
    .section-rule .line{height:1px;flex:1;background:linear-gradient(90deg,rgba(255,255,255,.15),transparent)}
    .micro{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight: 800;color:rgba(255,255,255,.5)}
    .accent{font-weight: 800;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:transparent}
    .t-light{font-weight:400}
    h1,h2,h3{font-family:var(--font-main);line-height:1.15}
    .btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:16px 32px;border-radius:14px;background:var(--gradient-warm);color:#fff;border:none;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:.02em;box-shadow:0 20px 40px rgba(249,115,22,.3),0 8px 16px rgba(249,115,22,.2),inset 0 1px 0 rgba(255,255,255,.3);transition:all .3s cubic-bezier(0.4,0,0.2,1)}
    .btn:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 24px 50px rgba(249,115,22,.35),0 12px 24px rgba(249,115,22,.25),inset 0 1px 0 rgba(255,255,255,.4)}
    .sweep{position:relative;display:inline-block;padding-bottom:.04em}
    .sweep::after{content:"";position:absolute;left:0;right:0;bottom:-.05em;height:2px;border-radius:999px;background:linear-gradient(90deg,#2F7BFF,#7A5CFF,#FF8A1F);transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.2,.8,.2,1);box-shadow:0 0 0 1px rgba(255,255,255,.18),0 10px 22px rgba(47,123,255,.32),0 10px 22px rgba(255,138,31,.22);filter:saturate(1.55)}
    .in-view .sweep::after,.sweep.in-view::after{transform:scaleX(1)}
    .ul-soft{position:relative;display:inline-block;padding-bottom:.06em}
    .ul-soft::after{content:'';position:absolute;left:0;bottom:-.05em;height:2px;width:100%;border-radius:999px;background:linear-gradient(90deg,#2F7BFF,#7A5CFF,#FF8A1F);box-shadow:0 6px 14px rgba(47,123,255,.15),0 6px 14px rgba(255,138,31,.1);filter:saturate(1.35)}
    .reveal{opacity:0;transform:translateY(20px) scale(.98);filter:blur(6px);transition:opacity .8s cubic-bezier(.2,.85,.2,1),transform .8s cubic-bezier(.2,.85,.2,1),filter .8s cubic-bezier(.2,.85,.2,1)}
    .reveal.in-view{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}
    .reveal-fast{opacity:0;transform:translateY(12px);filter:blur(3px);transition:opacity .5s cubic-bezier(.2,.85,.2,1),transform .5s cubic-bezier(.2,.85,.2,1),filter .5s cubic-bezier(.2,.85,.2,1)}
    .reveal-fast.in-view{opacity:1;transform:translateY(0);filter:blur(0)}
    .reveal:nth-child(1){transition-delay:0ms}.reveal:nth-child(2){transition-delay:100ms}.reveal:nth-child(3){transition-delay:200ms}.reveal:nth-child(4){transition-delay:300ms}
    .no-lines::before,.no-lines::after{content:none!important;display:none!important}
    @media(prefers-reduced-motion:reduce){.reveal,.reveal-fast,.sweep::after{transition:opacity .3s ease!important;filter:none!important;transform:none!important}}

    /* === CHI SONO, DARK SECTION === */
    .chi{max-width:1160px;margin:0 auto}
    .chi-kicker{display:inline-flex;align-items:center;margin:0 0 20px;padding:10px 20px;background:rgba(37,99,235,.15);border:1px solid rgba(37,99,235,.3);border-radius:10px;font-size:11px;font-weight: 800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-light);box-shadow:0 2px 8px rgba(37,99,235,.15)}
    .chi-title{margin:0 0 8px;font-size:62px;line-height:1.14;letter-spacing:-1px;color:#fff}
    .chi-title strong{font-weight: 800}

    /* SUB, GRANDE */
    .chi-subtitle{margin:0 0 32px;font-size:32px;line-height:1.35;color:rgba(255,255,255,.82);font-weight:500}
    .chi-subtitle strong{font-weight:800;color:#fff}

    /* BODY storytelling, compatto */
    .chi-body{margin-top:24px;color:rgba(255,255,255,.55);font-size:15px;line-height:1.6;font-weight:400}
    .chi-body p{margin:0 0 12px}
    .chi-body strong{font-weight:600;color:rgba(255,255,255,1)}
    .chi-body em{color:rgba(255,255,255,.45);font-style:italic}

    /* Hook */
    .chi-hook{margin:0 0 48px;padding:24px 28px;background:rgba(255,255,255,.05);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.14);border-left:4px solid var(--orange);border-radius:var(--radius);box-shadow:0 12px 40px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.1);color:rgba(255,255,255,.88);font-size:15.5px;line-height:1.6;font-weight:500}
    .chi-hook strong{font-weight:800;color:#fff}
    .chi-hook .chi-hook-name{font-weight: 800;background:var(--gradient-warm);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:20px}

    /* Blocks */
    .chi-block{margin:48px 0}
    /* LABEL, grande, dominante */
    .chi-block-label{display:block;margin:0 0 4px;font-size:24px;font-weight: 800;text-transform:uppercase;letter-spacing:.06em;color:#fff}
    /* SUB, più piccola, sottotono */
    .chi-block-title{margin:0 0 14px;font-size:16px;font-weight:400;line-height:1.4;color:rgba(255,255,255,.45);letter-spacing:.01em}

    /* Benefit */
    .chi-benefit{margin:22px 0;padding:18px 22px;background:rgba(255,255,255,.07);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-sm);box-shadow:0 8px 28px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.1);display:flex;align-items:flex-start;gap:14px}
    .chi-benefit-icon{flex-shrink:0;width:34px;height:34px;border-radius:10px;background:var(--gradient-warm);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(249,115,22,.3);margin-top:2px}
    .chi-benefit-icon svg{width:17px;height:17px;stroke:#fff;fill:none}
    .chi-benefit-text{color:rgba(255,255,255,.75);font-size:15px;line-height:1.55;font-weight:400}
    .chi-benefit-text strong{font-weight:700;color:rgba(255,255,255,.95)}
    .chi-benefit-label{display:block;margin-bottom:6px;font-size:13px;font-weight: 800;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-light)}

    /* Skills */
    .chi-skills{margin:16px 0;padding:0;list-style:none;display:grid;gap:7px}
    .chi-skills li{padding:12px 16px;background:rgba(255,255,255,.06);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.14);border-radius:12px;color:rgba(255,255,255,.85);font-weight:500;font-size:14.5px;line-height:1.45;display:flex;align-items:flex-start;gap:12px;box-shadow:0 4px 16px rgba(0,0,0,.15);transition:all .3s cubic-bezier(0.4,0,0.2,1)}
    .chi-skills li:hover{transform:translateX(6px);border-color:rgba(255,255,255,.28)}
    .chi-skills li::before{content:"→";display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;background:var(--gradient-primary);border-radius:6px;color:#fff;font-weight: 800;font-size:13px;flex-shrink:0;box-shadow:0 2px 8px rgba(37,99,235,.25)}

    /* Quote */
    .chi-quote{margin:24px 0;padding:22px 26px;background:linear-gradient(135deg,rgba(249,115,22,.14),rgba(251,146,60,.08)),rgba(255,255,255,.05);backdrop-filter:blur(12px);border-left:4px solid var(--orange);border:1px solid rgba(249,115,22,.2);border-left:4px solid var(--orange);border-radius:var(--radius);font-size:17px;line-height:1.5;font-weight:500;color:rgba(255,255,255,.92);font-style:italic;box-shadow:0 12px 40px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.08);position:relative}
    .chi-quote::before{content:"\201C";position:absolute;top:6px;left:12px;font-size:64px;font-family:var(--font-main) !important;color:rgba(249,115,22,.1);line-height:1;font-style:normal}
    .chi-quote strong{font-weight: 800;font-style:normal;color:#fff}

    /* Values */
    .chi-values{margin:44px 0 0;display:grid;grid-template-columns:repeat(2,1fr);row-gap:14px;column-gap:14px}
    .chi-value{padding:16px 20px;background:rgba(255,255,255,.06);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);border-radius:14px;box-shadow:0 8px 28px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.1);transition:all .3s cubic-bezier(.2,.8,.2,1);display:flex;align-items:center;gap:16px}
    .chi-value:hover{transform:translateY(-2px);box-shadow:0 12px 36px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.14);border-color:rgba(255,255,255,.28)}
    .chi-value-icon{width:38px;height:38px;min-width:38px;border-radius:10px;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(37,99,235,.3)}
    .chi-value-icon svg{width:18px;height:18px;stroke:#fff;fill:none}
    .chi-value-content{flex:1;min-width:0}
    .chi-value-title{margin:0 0 2px;font-size:13px;font-weight: 800;text-transform:uppercase;letter-spacing:.04em;color:#fff}
    .chi-value-text{font-size:13px;line-height:1.45;color:rgba(255,255,255,.65);font-weight:400}
    .chi-value-text strong{font-weight:700;color:rgba(255,255,255,.9)}

    /* Close */
    .chi-close{margin:52px 0 0;padding:28px 32px;text-align:center;background:rgba(255,255,255,.05);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-lg);box-shadow:0 16px 48px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.1);position:relative;overflow:hidden}
    .chi-close::before{content:"";position:absolute;inset:-2px;background:var(--gradient-primary);border-radius:var(--radius-lg);opacity:.06;z-index:0}
    .chi-close p{position:relative;z-index:1;color:rgba(255,255,255,.85);font-size:18px;line-height:1.55;font-weight:500;margin:0 0 6px}
    .chi-close p:last-child{margin:0}
    .chi-close strong{font-weight: 800;background:var(--gradient-warm);-webkit-background-clip:text;background-clip:text;color:transparent}

    /* CTA */
    .chi-cta{margin:44px 0 0;text-align:center}
    .chi-cta-choice{margin:0 0 22px;font-size:17px;line-height:1.5;font-weight:500;color:rgba(255,255,255,.65)}
    .chi-cta-choice strong{font-weight:800;color:#fff}
    .chi-cta-choice em{font-style:italic;color:rgba(255,255,255,.45)}

    /* Tagline */
    .chi-tagline{margin:44px 0 32px;padding:22px 0;text-align:center;font-size:clamp(36px,4vw,56px);font-weight:700;color:#fff;letter-spacing:.02em;position:relative}
    .chi-tagline::before,.chi-tagline::after{content:"";position:absolute;top:50%;transform:translateY(-50%);width:80px;height:2px;background:var(--gradient-primary)}
    .chi-tagline::before{left:calc(50% - 280px)}.chi-tagline::after{right:calc(50% - 280px)}

    @media(max-width:980px){.container{padding:0 24px}.band{padding:80px 0}.chi-title{font-size:46px}.chi-subtitle{font-size:26px}.chi-block-label{font-size:20px}.chi-values{grid-template-columns:1fr}.chi-tagline::before,.chi-tagline::after{display:none}}
    @media(max-width:640px){.container{padding:0 20px}.band{padding:60px 0}.chi-title{font-size:36px;letter-spacing:-.6px}.chi-subtitle{font-size:22px}.chi-block-label{font-size:18px}.btn{padding:14px 24px;font-size:14px}}

/* ===== blocco senza id ===== */
:root { --ib-accent: #ff8a00; }
  .ib-bullets { margin: 12px 0; padding: 0; }
  .ib-bullets{
    margin: 12px 0 12px 14px; /* spazio sopra/sotto + lieve rientro */
  }
  .ib-bullets li{
    list-style: none;
    position: relative;
    padding-left: 1.6em; /* rientro maggiore rispetto al testo */
    margin: 0.45em 0;
    line-height: 1.35;
    color: #ffffff; /* testo bullet bianco */
  }
  .ib-bullets--dot li::before{
    content: "•";
    color: var(--ib-accent);
    position: absolute;
    left: 0;
    top: 0;
    font-weight: 800;
  }
  .ib-bullets--check li::before{
    content: "✓";
    color: var(--ib-accent);
    position: absolute;
    left: 0;
    top: 0.02em;
    font-weight: 800;
  }

/* ===== blocco senza id ===== */
/* INLINE TITOLI + SOTTOTITOLI (come screenshot) */
  .chi-title-inline{
    display:flex;
    align-items:baseline;
    gap:14px;
    margin:0 0 14px;
    flex-wrap:wrap;
  }
  .chi-title-inline .chi-block-label{
    margin:0;
  }
  .chi-title-inline .chi-block-sub{
    margin:0;
    font-size:16px;
    font-weight:600;
    line-height:1.35;
    color:#ff8a00; /* arancio */
    letter-spacing:.01em;
    text-transform:none;
  }
  /* Evita doppio spazio: i vecchi h3 non esistono più, ma teniamo safe */
  .chi-block-title{ display:none; }

/* ===== blocco senza id ===== */
.caps {
    text-transform: uppercase;
    font-weight: 700;
    text-decoration: none;
}

.problem-list {
    line-height: 1.35;
    margin: 0;
    padding-left: 18px;
}

.problem-list li {
    margin-bottom: 6px;
}

/* ===== blocco senza id ===== */
.big-section-title {
    font-size: 2rem;
    font-weight: 600; /* ridotto rispetto a 800 */
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.problem-list li,
.tech-list li {
    font-weight: 400; /* testi minuscoli più leggeri */
}

.caps {
    text-transform: uppercase;
    font-weight: 700; /* stampatelli restano bold */
}

/* ===== blocco senza id ===== */
/* Domande critiche (pill): minuscole più leggere, stampatelli bold */
.problem-qs li { font-weight: 400; }
.problem-qs li strong { font-weight: 700; text-transform: uppercase; letter-spacing: .4px; }

/* Righe subito dopo le domande */
.qs-sub { font-size: 0.95em; opacity: 0.85; display: inline-block; margin-top: 6px; }
.qs-claim { margin-top: 10px; line-height: 1.35; }
.qs-claim strong { text-decoration: none; }

/* ===== blocco senza id ===== */
.problem-qs li strong {
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: #ffffff !important;   /* stampatelli bianchi */
}

/* ===== blocco senza id ===== */
/* Alleggerisce SOLO il testo minuscolo negli elenchi scuri */
.problem-list li,
.tech-list li,
.problem-qs li {
    font-weight: 300 !important;   /* più sottile */
}

.problem-list li strong,
.tech-list li strong,
.problem-qs li strong {
    font-weight: 700 !important;   /* stampatelli restano bold */
}

/* ===== blocco senza id ===== */
/* Assottiglia testi minuscoli nei DUE riquadri scuri screenshot */
.problem-grid,
.problem-grid li,
.problem-body ul,
.problem-body li {
    font-weight: 300 !important;
}

/* Mantiene bold solo ciò che è in strong */
.problem-grid strong,
.problem-body strong {
    font-weight: 700 !important;
}

/* ===== blocco senza id ===== */
/* FORZA struttura come screenshot 3 */

/* Tutto il testo dei box scuri molto leggero */
.problem-grid li,
.problem-body li,
.problem-list li {
    font-weight: 300 !important;
    letter-spacing: 0.2px;
}

/* Le parti in strong restano ben marcate */
.problem-grid li strong,
.problem-body li strong,
.problem-list li strong {
    font-weight: 700 !important;
}

/* Rende ancora più evidente la differenza */
.problem-grid li strong {
    color: #ffffff !important;
}

/* ===== blocco senza id ===== */
/* Box elenco (come screenshot 3): testo base sottile, caps bold */
.agit-stack span {
    font-weight: 300 !important;
    line-height: 1.4;
    letter-spacing: 0.2px;
}
.agit-stack span strong,
.agit-stack span .caps {
    font-weight: 800 !important;
    color: #ffffff !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Se dentro agit-stack ci sono <strong class="caps">... */
.agit-stack span strong.caps {
    font-weight: 800 !important;
    color: #ffffff !important;
}

/* ===== blocco senza id ===== */
/* Forza maiuscolo nei due highlight in frase chiavi-in-mano */
strong.chiavi-mano,
strong.unico-referente { text-transform: uppercase; }/* ===== blocco senza id ===== */


/* ===== blocco senza id ===== */
.guarantee-text { font-weight: 300 !important; line-height: 1.6; }
.guarantee-text strong { font-weight: 700 !important; text-transform: uppercase; }

/* ===== ib-thin-guarantee-patch ===== */
/* Patch mirata: assottiglia solo il testo "minuscolo" nel blocco garanzia.
   Non tocca il resto della landing. */
.guarantee-text{
  font-weight: 300 !important;
  line-height: 1.6;
}
.guarantee-text strong{
  font-weight: 700 !important;
  text-transform: uppercase;
}

/* ===== ib-guarantee-weight-fix ===== */
/* Override ultra-specific rules in #garanzia that were forcing bold */
#garanzia p.guarantee-text,
#garanzia p.guarantee-text:last-of-type{
  font-weight: 300 !important;
}
#garanzia p.guarantee-text strong{
  font-weight: 700 !important;
  text-transform: uppercase;
}

/* ===== ib-garanzie-card-tuning ===== */
/* Garanzie: gerarchia tipografica */
.sol-step .gar-pill{ font-weight:700; }
.sol-step .micro.gar-note{
  text-transform:none !important;
  letter-spacing:0 !important;
  font-variant:normal !important;
}
.sol-step .micro.gar-note strong{
  font-weight:700 !important;
  text-transform:uppercase;
  letter-spacing:.04em;
}

/* ===== ib-garanzie-final-fix ===== */
.sol-step p,
.sol-step .micro,
.sol-step .micro.gar-note{
  font-weight:400 !important;
}

.sol-step strong{
  font-weight:700 !important;
  font-size:inherit !important;
  text-transform:uppercase;
}

.sol-step .micro.gar-note{
  text-transform:none !important;
  letter-spacing:normal !important;
}/* === FIX v31: TRIPLA GARANZIA allineata a 1160 come le altre sezioni ===
   Il doppio padding (container + .wrap) rendeva la sezione più stretta.
   Qui annulliamo il padding orizzontale della .wrap SOLO dentro #garanzia,
   mantenendo i padding verticali originali. */





/* ===== blocco senza id ===== */
/* --- CONTATTACI OVERRIDE --- */
#contattaci a,
#contattaci p {
    font-size: 28px !important;
    font-weight: 700 !important;
}

#contattaci label {
    background-color: #0057B8 !important;
    color: #ffffff !important;
    padding: 6px 12px;
    display: inline-block;
    border-radius: 4px;
    font-weight: 600;
}

/* ===== blocco senza id ===== */
/* ===== CONTATTACI DEFINITIVE OVERRIDE ===== */

/* Make phone/email huge */
section[id*="contatt"] a,
section[id*="contatt"] p,
section[id*="contatt"] .contact-info,
section[id*="contatt"] .info {
    font-size: 36px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
}

/* Blue background labels */
section[id*="contatt"] label,
section[id*="contatt"] .form-label {
    background-color: #007BFF !important;
    color: #ffffff !important;
    padding: 8px 14px !important;
    display: inline-block !important;
    border-radius: 6px !important;
    font-weight: 700 !important;
}

/* ===== blocco senza id ===== */
/* ===== POPUP CONTATTACI HARD OVERRIDE ===== */

.contatti-box .contatto-right {
    font-size: 34px !important;
    font-weight: 800 !important;
    color: #0e2238 !important;
}

.contatti-box .contatto-label {
    background-color: #0057B8 !important;
    color: #ffffff !important;
    padding: 8px 14px !important;
    border-radius: 8px !important;
    display: inline-block !important;
    font-weight: 800 !important;
}

/* make cards slightly more spaced */
.contatti-box .contatto-card {
    padding: 22px !important;
}

/* ===== blocco senza id ===== */
/* ===== POPUP CONTATTACI RESTYLE ===== */

.contatti-box {
    background: #f2f2f2 !important;
    border-radius: 24px !important;
    padding: 40px 35px !important;
}

.contatti-box h2 {
    color: #ff7a1a !important;
    font-size: 48px !important;
    font-weight: 800 !important;
    letter-spacing: 2px;
}

.contatti-box .contatto-card {
    background: #071d49 !important;
    border-radius: 20px !important;
    padding: 26px 28px !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 22px !important;
}

.contatti-box .contatto-left {
    display: flex;
    align-items: center;
    gap: 18px;
}

.contatti-box .contatto-icon {
    font-size: 42px !important;
    color: #ffffff !important;
}

.contatti-box .contatto-label {
    background: none !important;
    color: #ffffff !important;
    font-size: 18px !important;
    font-weight: 600 !important;
}

.contatti-box .contatto-right {
    font-size: 34px !important;
    font-weight: 800 !important;
    color: #ffffff !important;
    text-align: right !important;
}

.contatti-box .contatto-sub {
    color: #b8c4db !important;
    font-size: 19px !important;
}

.contatti-box .contatto-card * {
    color: #ffffff !important;
}

@media (max-width: 600px) {
    .contatti-box .contatto-card {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 10px;
    }
    .contatti-box .contatto-right {
        text-align: left !important;
    }
}

/* ===== blocco senza id ===== */
/* ===== POPUP CONTATTACI FINAL TUNING ===== */

.contatti-box {
    padding: 50px 45px !important;
}

.contatti-box .contatto-card {
    background: #051b3d !important;
    border-radius: 18px !important;
    padding: 28px 34px !important;
    margin-bottom: 26px !important;
}

.contatti-box .contatto-right {
    font-size: 38px !important;
    font-weight: 800 !important;
    letter-spacing: 1px;
}

.contatti-box .contatto-label {
    font-size: 20px !important;
    font-weight: 700 !important;
}

.contatti-box .contatto-sub {
    font-size: 16px !important;
    opacity: 0.85;
}

/* ===== blocco senza id ===== */
/* ===== CONTATTI (FIX ALLINEAMENTI) ===== */

/* Avoid overflow/sfasamenti: let the right side shrink and wrap INSIDE the card */
#contattiPopup .contatto-card{
  flex-wrap: wrap;
  align-items: center;
}
#contattiPopup .contatto-left{
  min-width: 0;
  flex: 1 1 260px;
}
#contattiPopup .contatto-right{
  min-width: 0 !important;
  flex: 0 1 auto;
  max-width: 100%;
  word-break: break-word;
}

/* Keep number/email visually aligned even when it wraps */
#contattiPopup .contatto-right{
  display: block;
  margin-left: auto;
}

/* Small screens: stack nicely */
@media (max-width: 520px){
  #contattiPopup .contatto-card{ flex-direction: column; align-items: flex-start; }
  #contattiPopup .contatto-right{ margin-left: 0; text-align: left; }
}

/* ===== blocco senza id ===== */
/* ===== POPUP CONTATTACI: WIDE + COMPACT ===== */
#contattiPopup .contatti-box{
  width: min(1100px, calc(100% - 24px)) !important;
  padding: 28px 34px 22px !important;
}
#contattiPopup .contatti-head{ margin-bottom: 14px !important; }
#contattiPopup .contatti-title{
  font-size: 44px !important;
  padding: 0 !important;
  background: none !important;
  color: #0B1020 !important;
  letter-spacing: 2px !important;
}
#contattiPopup .contatti-sub{ font-size: 16px !important; }

#contattiPopup .contatto-card{
  padding: 18px 22px !important;
  margin-bottom: 14px !important;
}
#contattiPopup .contatto-ico{
  width: 56px !important;
  height: 56px !important;
  border-radius: 18px !important;
}
#contattiPopup .contatto-ico svg{ width: 28px !important; height: 28px !important; }

#contattiPopup .contatto-meta strong{ font-size: 18px !important; }
#contattiPopup .contatto-meta span{ font-size: 14px !important; }

#contattiPopup .contatto-right{
  font-size: 32px !important;
  line-height: 1.05 !important;
  white-space: nowrap;
}
/* email: allow wrap but keep inside */
#contattiPopup a[href^="mailto"] .contatto-right{
  white-space: normal;
  word-break: break-word;
  max-width: 520px;
}

@media (max-width: 720px){
  #contattiPopup .contatti-title{ font-size: 40px !important; }
  #contattiPopup .contatto-right{ font-size: 30px !important; white-space: normal; }
}

/* ===== blocco senza id ===== */
/* ===== OVERRIDE: SIMULAZIONE (GRIGI + LABEL + PLACEHOLDER) ===== */
/* Pagina/Sezione: grigio chiaro */
.simulazione-final-section{
  background: #f2f4f8 !important;
}
/* Form: grigio medio (più scuro del resto) */
.simulazione-form{
  background: #d6dbe4 !important;
}
/* Manteniamo i campi bianchi, per contrasto */
.simulazione-form input,
.simulazione-form textarea,
.simulazione-form select{
  background: #ffffff !important;
}
/* Label: NON attaccate al campo */
.simulazione-form .field label{
  margin: 0 0 8px 0 !important;
  transform: none !important;
}
/* Placeholder più velati (anche popup) */
.simulazione-form input::placeholder,
.simulazione-form textarea::placeholder{
  color: rgba(11,16,32,0.30) !important;
}

/* ===== blocco senza id ===== */
/* ===== FORM LABELS: NO BLUE CHIPS ===== */
.simulazione-form .field label{
  display:block !important;
  background: transparent !important;
  color: #0B1020 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 0 8px 0 !important;
  font-weight: 800 !important;
}

/* ===== blocco senza id ===== */
/* ===== FORM: LABELS SENZA CHIP BLU (FORCE) ===== */
.simulazione-form .field label,
.simulazione-form label{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  color: #0B1020 !important;
  font-weight: 800 !important;
  margin: 0 0 8px 0 !important;
}

/* ===== blocco senza id ===== */
/* ===== FORM: LABELS PIÙ VICINE + PIÙ LEGGERE (NO CHIP) ===== */
.simulazione-form .field label,
.simulazione-form label{
  display:block !important;
  margin: 0 0 6px 0 !important;      /* più vicine al campo */
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-weight: 600 !important;       /* meno bold */
  color: rgba(11,16,32,0.72) !important; /* grigio scuro */
  letter-spacing: 0.1px;
}

/* ===== blocco senza id ===== */
/* ===== LABEL PIÙ BASSE (popup + fondo pagina) ===== */
.simulazione-form .field label,
.simulazione-form label{
  margin: 8px 0 4px 0 !important;  /* abbassate */
  font-weight: 500 !important;     /* meno bold */
  color: rgba(11,16,32,0.65) !important; /* grigio scuro */
}

/* ===== blocco senza id ===== */
.simulazione-form input::placeholder,
.simulazione-form textarea::placeholder{
  color: rgba(11,16,32,0.35);
}

/* ===== blocco senza id ===== */
/* ===== FAQ: minuscole più leggere ===== */
.faq-section p,
.faq-section .faq-answer,
.faq-section .faq-answer p{
  font-weight: 400 !important;
}
.faq-section h3,
.faq-section .faq-question{
  font-weight: 800 !important;
}

/* ===== blocco senza id ===== */
.simulazione-form .field label,
.simulazione-form label{
  font-weight: 600 !important;
}/* ===== blocco senza id ===== */
/* ===== FAQ: RISPOSTE RIPRISTINATE ===== */
/* peso normale come prima */


/* ===== blocco senza id ===== */
/* ===== FAQ: DOMANDE LEGGERMENTE ASSOTTIGLIATE ===== */
.faq-section h3,
.faq-section .faq-question{
  font-weight: 600 !important;   /* meno bold rispetto a prima */
}

/* ===== blocco senza id ===== */
/* ===== FAQ: PESO CORRETTO DOMANDE ===== */

/* Alleggeriamo SOLO il testo normale della domanda */
.faq-section summary .faq-q{
  font-weight: 500 !important;   /* minuscole più leggere */
}

/* Manteniamo forte lo stampatello */
.faq-section summary .faq-q .upper{
  font-weight: 800 !important;
}

/* Ripristiniamo peso normale delle risposte */
.faq-section .faq-answer,
.faq-section .faq-answer p{
  font-weight: 500 !important;
}

/* ===== blocco senza id ===== */
/* ===== INPUT FILE: testo e bottone in grigio scuro ===== */
.simulazione-form input[type="file"]{
  color: rgba(11,16,32,0.75) !important;
}

.simulazione-form input[type="file"]::file-selector-button{
  color: rgba(11,16,32,0.75) !important;
  font-weight: 500;
}

.simulazione-form input[type="file"]::-webkit-file-upload-button{
  color: rgba(11,16,32,0.75) !important;
  font-weight: 500;
}

/* ===== patch-v3 ===== */
/* (tutte le regole #garanzia centralizzate in gar-override-final) */

/* UNA SOLA REGIA: gradiente blu→viola→arancio (blu più profondo) */
.grad-text{
  background: linear-gradient(90deg, #1E3A8A 0%, var(--violet) 50%, var(--orange) 100%) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  color: transparent !important;
}

/* ALLERTA MALTEMPO: titolo + sottotitolo centrati (o full-width leggibile) */
.agit-maltempo-inner .malt-newstitle,
.agit-maltempo-inner .malt-subtitle{
  text-align: center !important;
  width: 100%;
}
.agit-maltempo-inner .malt-subtitle{
  max-width: 980px;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* 3 CAMPANELLI: più spazio orizzontale ai paragrafi */
.camp-card-inner{ padding-left: 26px !important; padding-right: 26px !important; }
.camp-card-body{
  max-width: 100% !important;
  text-align: left !important;
}
.camp-note{
  width:100% !important;
  margin-top:26px;
  padding:16px 18px;
  border-radius:14px;
  background: rgba(0,0,0,.25);
  border: 1px solid rgba(255,255,255,.10);
  color: rgba(255,255,255,.78);
  font-style: italic;
  line-height: 1.35;
}


/* SOLO INSEGNE / SOLO BRESCIA: titoletti più grandi */
.only-title{
  font-size: clamp(22px, 2.6vw, 30px) !important;
}

/* NON LAVORIAMO PER TUTTI: titolo stampatello grasso + gradiente */
#non-per-tutti .npt-title{
  text-transform: uppercase !important;
  font-weight: 800 !important;
  letter-spacing: -1.2px !important;
}
#non-per-tutti .npt-title .t-light,
#non-per-tutti .npt-title .t-accent{
  font-weight: 800 !important;
  background: linear-gradient(90deg, #2b6cff 0%, #7d2cff 55%, #ff8a00 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
}
#non-per-tutti .npt-title br{ display:none; }

/* NON FA PER TE SE / FA PER TE SE: ingranditi */
#non-per-tutti .npt-col-header{
  font-size: 18px !important;
  letter-spacing: .14em !important;
}

/* Linea rossa/blu: sul bordo superiore (non dentro) e segue i rounded */
#non-per-tutti .npt-col::before{
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 5px !important;
  border-radius: 18px 18px 0 0 !important;
  opacity: 1 !important;
}

/* ===== cta-dual-global-css ===== */
.landing-cta-dual{display:flex;gap:14px;justify-content:center;align-items:flex-start;flex-wrap:wrap}
.landing-cta-col{display:flex;flex-direction:column;align-items:center;gap:8px}
.landing-cta-btn{display:inline-flex;align-items:center;justify-content:center;min-width:320px;padding:20px 34px;border-radius:999px;text-decoration:none;font-weight: 800;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 10px 28px rgba(0,0,0,.16);transition:transform .15s ease, box-shadow .15s ease}
.landing-cta-btn:hover{transform:translateY(-1px)}
.landing-cta-btn.sim{background:linear-gradient(90deg,#1538d1,#2b6cff,#1538d1);color:#fff}
.landing-cta-btn.cont{background:linear-gradient(90deg,#d96a00,#ff9a28,#d96a00);color:#fff}
.landing-cta-micro{margin:0;max-width:340px;text-align:center;font-size:13.5px;line-height:1.45;color:inherit;opacity:.86}
.hero-actions-dual{gap:10px!important}
.hero-actions-dual .landing-cta-btn{min-width:210px;padding:17px 24px;font-size:14px;letter-spacing:.07em}
.hero-actions-dual .landing-cta-col{gap:0}
.hero-actions-dual .landing-cta-micro{display:none}
@media (max-width: 720px){
  .landing-cta-dual{gap:10px}
  .landing-cta-col{width:100%}
  .landing-cta-btn{width:100%;min-width:0}
}

/* ===== step-trio-refresh ===== */
.after-request-title,.steps-title,.cosa-succede-title,.request-steps-title{
  font-size: clamp(30px, 3vw, 44px) !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  text-align: center !important;
  letter-spacing: .02em !important;
  color: #0b1020 !important;
  margin-bottom: 28px !important;
  display:block !important;
}
.after-request-note,.steps-note,.cosa-succede-note,.request-steps-note{
  font-size: clamp(22px, 2.2vw, 30px) !important;
  line-height: 1.35 !important;
  text-align: center !important;
  color: rgba(11,16,32,.68) !important;
  margin-top: 22px !important;
  font-style: italic;
  display:block !important;
}
.step-card p,.after-request-card p,.request-step-card p{
  text-align:center !important;
  font-size:18px !important;
  line-height:1.55 !important;
  margin:0 !important;
}
@media (max-width:1100px){
  .step-card,.after-request-card,.request-step-card{
    width:290px !important;
    min-height:205px !important;
  }
}
@media (max-width:768px){
  .step-card,.after-request-card,.request-step-card{
    width:100% !important;
    max-width:420px !important;
    min-height:auto !important;
  }
}

/* ===== npt-and-cta-fix ===== */
/* Non lavoriamo per tutti: finale formattato */
.npt-final-message{
  text-align:center;
  line-height:1.5;
  font-size: 1.08rem;
}
.npt-final-message .npt-strong{
  color:#ffffff !important;
  font-weight:800 !important;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.npt-final-message .npt-soft{
  color:rgba(255,255,255,.68) !important;
  font-weight:400 !important;
}

/* CTA pills: keep on a single line */
.btn,
.cta-btn,
.cta-chip,
.hero-actions .btn,
.cta-wrapper .btn{
  white-space: nowrap !important;
}

/* ===== trio-fix-v2 ===== */
/* Trittico: titolo sopra e nota sotto */
.after-request-title{
  font-size: clamp(34px, 3.2vw, 46px) !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  text-align: center !important;
  letter-spacing: .02em !important;
  color: #0b1020 !important;
  margin-bottom: 28px !important;
  display:block !important;
}
.after-request-note{
  font-size: clamp(24px, 2.3vw, 32px) !important;
  line-height: 1.35 !important;
  text-align: center !important;
  color: rgba(11,16,32,.68) !important;
  margin-top: 22px !important;
  font-style: italic;
  display:block !important;
}

/* Card del trittico più compatte e centrate */
.steps-grid,.after-request-grid,.request-steps-grid{
  display:flex !important;
  justify-content:center !important;
  gap:18px !important;
  flex-wrap:wrap !important;
}
.step-card,.after-request-card,.request-step-card{
  width:320px !important;
  min-height:220px !important;
  padding:24px 22px !important;
  border-radius:22px !important;
  text-align:center !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  align-items:center !important;
}
.step-card h3,.after-request-card h3,.request-step-card h3,.step-title{
  font-size:28px !important;
  line-height:1.15 !important;
  font-weight: 800 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  text-align:center !important;
  margin:18px 0 12px !important;
  width:100% !important;
}

/* Testi grigi interni: minuscoli, non bold, centrati */
.step-card p,.after-request-card p,.request-step-card p,
.step-card .sub,.after-request-card .sub,.request-step-card .sub,
.step-card .desc,.after-request-card .desc,.request-step-card .desc{
  text-align:center !important;
  font-size:18px !important;
  line-height:1.55 !important;
  margin:0 !important;
  color: rgba(11,16,32,.58) !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* ===== trio-typography-fix ===== */
.step-card p,
.after-request-card p,
.request-step-card p{
    text-align:center;
    font-size:18px;
    line-height:1.6;
    color:rgba(11,16,32,.58);
    font-weight:400;
    text-transform:none;
    letter-spacing:0;
    margin:0;
}

.step-card,
.after-request-card,
.request-step-card{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
}

/* ===== csd-real-fix ===== */
/* Trittico reale: titolo sopra e nota sotto */
.cosa-succede-dopo .csd-eyebrow{
  display:block !important;
  text-align:center !important;
  font-size: clamp(34px, 3.1vw, 46px) !important;
  line-height:1.15 !important;
  font-weight:800 !important;
  letter-spacing:.02em !important;
  color:#0b1020 !important;
  margin: 0 0 28px !important;
}
.cosa-succede-dopo .csd-note{
  display:block !important;
  text-align:center !important;
  font-size: clamp(24px, 2.2vw, 32px) !important;
  line-height:1.35 !important;
  color: rgba(11,16,32,.68) !important;
  margin: 22px 0 0 !important;
  font-style: italic !important;
}

/* Layout card */
.cosa-succede-dopo .csd-steps{
  width:100% !important;

  display:flex !important;
  justify-content:center !important;
  gap:18px !important;
  flex-wrap:wrap !important;
  align-items:stretch !important;
}
.cosa-succede-dopo .csd-step{
  width:320px !important;
  min-height:220px !important;
  padding:24px 22px !important;
  border-radius:22px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  text-align:center !important;
}
.cosa-succede-dopo .csd-arrow{
  display:none !important;
}
.cosa-succede-dopo .csd-num{
  margin:0 auto 14px !important;
}
.cosa-succede-dopo .csd-text{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
}
.cosa-succede-dopo .csd-text strong{
  display:block !important;
  width:100% !important;
  text-align:center !important;
  font-size:28px !important;
  line-height:1.15 !important;
  font-weight: 800 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  margin:0 0 12px !important;
}
.cosa-succede-dopo .csd-text span{
  display:block !important;
  width:100% !important;
  text-align:center !important;
  font-size:18px !important;
  line-height:1.6 !important;
  color:rgba(11,16,32,.58) !important;
  font-weight:400 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  margin:0 !important;
}

@media (max-width:1100px){
  .cosa-succede-dopo .csd-step{
    width:290px !important;
    min-height:205px !important;
  }
}
@media (max-width:768px){
  .cosa-succede-dopo .csd-step{
    width:100% !important;
    max-width:420px !important;
    min-height:auto !important;
  }
}

/* ===== final-csd-and-form-tuning ===== */
/* Trittico: via di mezzo */
.cosa-succede-dopo .csd-eyebrow{
  font-size: clamp(28px, 2.5vw, 34px) !important;
  line-height: 1.18 !important;
  margin-bottom: 18px !important;
}
.cosa-succede-dopo .csd-text strong{
  font-size: clamp(20px, 1.8vw, 24px) !important;
  line-height: 1.15 !important;
}
.cosa-succede-dopo .csd-note{
  font-size: clamp(16px, 1.6vw, 20px) !important;
  line-height: 1.35 !important;
  margin-top: 16px !important;
}

/* Pulsante invio form centrato */
.simulazione-form .actions{
  display:flex !important;
  justify-content:center !important;
}
.simulazione-form .actions .btn-primary,
.simulazione-form .actions button[type="submit"]{
  display:inline-flex !important;
  margin:0 auto !important;
}

/* ===== popup-height-fix ===== */
/* Popup simulazione: dimensioni ok + scroll reale */
.simulazione-dialog{
  max-height: 88vh !important;
  width: min(980px, calc(100vw - 24px)) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}
.simulazione-modal{
  padding: 12px !important;
}
@media (max-width: 720px){
  .simulazione-dialog{
    max-height: 92vh !important;
    width: calc(100vw - 20px) !important;
  }
}

/* ===== trittico-fix ===== */
/* TRITTICO FORM – 3 box affiancati */
.form-steps,
.steps,
.trittico,
.after-request-steps{
  display:flex !important;
  gap:18px !important;
  justify-content:center !important;
  flex-wrap:nowrap !important;
}

.form-steps > div,
.steps > div,
.trittico > div,
.after-request-steps > div{
  flex:1 1 0 !important;
  max-width:260px !important;
  padding:18px 16px !important;
}

@media (max-width:900px){
  .form-steps,
  .steps,
  .trittico,
  .after-request-steps{
    flex-wrap:wrap !important;
  }
}

/* ===== csd-inline-fix ===== */
/* forza i 3 step del form popup sulla stessa riga */
.csd-steps{
  width:100% !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-wrap:nowrap !important;
  gap:16px !important;
}

.csd-step{
  flex:1 1 0 !important; max-width:none !important;
  text-align:center !important;
}

.csd-arrow{
  flex:0 0 auto !important;
  font-size:22px !important;
  opacity:0.7;
}

/* ===== hero-atf-clean ===== */
/* ATF line */
.hero-sub.atf-subline.lead{
  font-size: 1.05rem !important;
  line-height: 1.40 !important;
  color: rgba(255,255,255,.72) !important;
  font-weight: 400 !important;
}
.hero-sub.atf-subline.lead .strong{
  font-weight: 800 !important;
  color: rgba(255,255,255,.92) !important;
  text-transform: uppercase !important;
}
.hero-sub.atf-subline.lead .grp{
  font-weight: 400 !important;
  color: rgba(255,255,255,.72) !important;
  text-transform: none !important;
}
.hero-sub.atf-subline.lead .sep{
  display:inline-block !important;
  width:2px !important;
  height:.92em !important;
  background:#ff8a00 !important;
  vertical-align:-0.12em !important;
  margin:0 .70rem !important;
  border-radius:2px !important;
}
.hero-sub.atf-subline.lead .colon{
  color:#ff8a00 !important;
  font-weight:700 !important;
  margin:0 .35rem !important;
}

/* Hero spacing */
.hero-actions.hero-actions-dual{
  margin-bottom: 30px !important;
}
.hero-microproof{
  margin-top: 0 !important;
  margin-bottom: 18px !important;
}
.bullets{
  margin-top: 0 !important;
  margin-bottom: 22px !important;
}
.hero-cols{
  margin-top: 0 !important;
  margin-bottom: 28px !important;
}

/* ===== blocco senza id ===== */
/* ===== FORM SIMULAZIONE (FINAL SECTION) ===== */
.simulazione-final-section{
  padding: 90px 0;
}
.simulazione-final-section .container{
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 24px;
}
.simulazione-head{
  text-align: center;
  margin-bottom: 26px;
}
.simulazione-title{
  font-size: 56px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin: 0 0 12px 0;
}
.simulazione-subtitle{
  max-width: 860px;
  margin: 0 auto;
  font-size: 18px;
  line-height: 1.6;
  opacity: .9;
}

.simulazione-switch{
  display:flex;
  gap: 10px;
  justify-content:center;
  margin: 26px 0 18px 0;
  flex-wrap: wrap;
}
.simulazione-tab{
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.7);
  padding: 12px 16px;
  border-radius: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  color: rgba(11,16,32,.38);
  cursor: pointer;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.simulazione-tab:hover{ color: rgba(11,16,32,.7); }
.simulazione-tab.is-active{
  background: #071d49;
  color: #fff;
  border-color: #071d49;
  font-weight: 800;
}

/* Inline pill button used inside soft-box copy */
.inline-pill-btn{
  display: inline-block;
  background: #2e3e6e;
  color: #fff;
  border: 1px solid #2e3e6e;
  border-radius: 12px;
  padding: 10px 16px;
  margin: 0 4px;
  font: inherit;
  font-weight: 800;
  letter-spacing: .06em;
  font-size: 0.95em;
  line-height: 1.2;
  cursor: pointer;
  vertical-align: middle;
  transition: background .2s ease, transform .15s ease;
}
.inline-pill-btn:hover{ background:#4356a0; }
.inline-pill-btn:active{ transform: translateY(1px); }

/* Variante compatta per stare meglio inline in una sola riga */
.inline-pill-btn.inline-pill-sm{
  padding: 6px 12px;
  font-size: 0.82em;
  letter-spacing: .04em;
  border-radius: 10px;
}

.simulazione-panels{ max-width: 980px; margin: 0 auto; }
.simulazione-panel{ display:none; }
.simulazione-panel.is-active{ display:block; }

.simulazione-form{
  background: rgba(255,255,255,.75);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 18px;
  padding: 26px;
}
.grid-2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.field label{
  display:inline-block;
  font-weight: 800;
  background: #071d49;
  color: #fff;
  border-radius: 10px;
  padding: 7px 12px;
  margin-bottom: 8px;
}
.field input, .field textarea{
  width: 100%;
  padding: 14px 14px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.14);
  background: #fff;
  font-size: 16px;
}
.field input[type="file"]{
  padding: 10px 12px;
}
.hint{
  margin: 8px 0 0 0;
  font-size: 13px;
  opacity: .8;
}
.micro-note{
  margin: 14px 0 0 0;
  font-size: 14px;
  opacity: .85;
}
.soft-box{
  margin-top: 0;
  padding: 24px 16px 18px;
  border-radius: 14px;
  border: 1px dashed rgba(0,0,0,.22);
  background: rgba(255,255,255,.55);
}
.soft-box p{ line-height: 2.1; margin: 0; }
.soft-box + .grid-2,
.soft-box + .field{ margin-top: 22px; }
.actions{
  display:flex;
  gap: 12px;
  justify-content: flex-start;
  align-items:center;
  margin-top: 18px;
  flex-wrap: wrap;
}
.btn-primary{
  background: #ff7a1a;
  color: #fff;
  border: none;
  padding: 14px 18px;
  border-radius: 12px;
  font-weight: 800;
  cursor: pointer;
}
.btn-ghost{
  background: transparent;
  border: 1px solid rgba(0,0,0,.18);
  padding: 14px 18px;
  border-radius: 12px;
  font-weight: 800;
  cursor: pointer;
}

/* ===== MODAL SIMULAZIONE ===== */
.simulazione-modal{
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
}
.simulazione-modal.is-open{ display:block; }
.simulazione-backdrop{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}
.simulazione-dialog{
  position: relative;
  width: min(980px, calc(100% - 36px));
  margin: 4.5vh auto;
  background: #f2f2f2;
  border-radius: 22px;
  padding: 26px 22px 18px;
  max-height: 91vh;
  overflow:auto;
}
.simulazione-close{
  position:absolute;
  top: 14px;
  right: 14px;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.75);
  font-size: 22px;
  font-weight: 800;
  cursor: pointer;
}
.simulazione-modal-head{
  text-align:center;
  padding: 10px 18px 8px;
}
.simulazione-modal-head h3{
  margin: 0 0 10px 0;
  font-size: 52px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.simulazione-modal-head p{
  margin: 0;
  opacity: .9;
}

/* modal variants */
.simulazione-switch.in-modal{ margin-top: 16px; }
.simulazione-panels.in-modal{ margin-top: 12px; }
.simulazione-panels.in-modal .simulazione-form{ background: rgba(255,255,255,.85); }

@media (max-width: 820px){
  .grid-2{ grid-template-columns: 1fr; }
  .simulazione-title{ font-size: 44px; }
  .simulazione-modal-head h3{ font-size: 38px; }
}

/* ===== blocco senza id ===== */
/* ===== CONTATTACI DARK (FOOTER SECTION) ===== */
.contattaci-dark{
  padding: 86px 0;
  background: radial-gradient(1200px 520px at 20% 0%, rgba(255,122,26,.18), transparent 55%),
              radial-gradient(900px 520px at 80% 30%, rgba(90,75,255,.18), transparent 60%),
              #051b3d;
  color: #fff;
}
.contattaci-dark .container{
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 24px;
}
.contattaci-head{
  text-align: center;
  margin-bottom: 28px;
}
.contattaci-head h2{
  margin: 0 0 12px 0;
  font-size: 58px;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}
.contattaci-head p{
  margin: 0 auto;
  max-width: 820px;
  font-size: 18px;
  line-height: 1.6;
  color: rgba(255,255,255,.86);
}
.contattaci-cards{
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  max-width: 980px;
  margin: 0 auto;
}
.contattaci-card{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 26px 28px;
  border-radius: 20px;
  text-decoration: none;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(6px);
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.contattaci-card:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.09);
  border-color: rgba(255,255,255,.18);
}
.contattaci-left{
  min-width: 0;
}
.contattaci-label{
  display: inline-block;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.14);
  color: #fff;
  font-weight: 800;
  font-size: 16px;
  padding: 8px 12px;
  border-radius: 12px;
}
.contattaci-sub{
  margin-top: 8px;
  font-size: 15px;
  color: rgba(255,255,255,.78);
}
.contattaci-right{
  text-align: right;
  font-size: 40px;
  font-weight: 800;
  letter-spacing: 1px;
  color: #fff;
  line-height: 1.05;
  word-break: break-word;
}
@media (max-width: 720px){
  .contattaci-head h2{ font-size: 44px; }
  .contattaci-card{ flex-direction: column; align-items: flex-start; }
  .contattaci-right{ text-align: left; font-size: 34px; }
}

/* ===== final-big-text ===== */
#garanzia .closing-text {
  font-size: 32px !important;
  line-height: 1.6 !important;
  font-weight: 500 !important;
  color: rgba(11,16,32,.85) !important;
  text-align: center !important;
  margin: 40px 0 0 !important;
}
#garanzia .closing-text strong {
  font-weight: 800 !important;
  color: #0b1020 !important;
  text-transform: none !important;
}
.garanzia-responsabilita p {
  font-size: 32px !important;
  line-height: 1.6 !important;
  font-weight: 400 !important;
  color: rgba(11,16,32,.85) !important;
}
.garanzia-responsabilita p strong {
  font-weight: 800 !important;
  color: #0b1020 !important;
}

/* ===== hero-cta-final-fix ===== */
.hero-actions-dual{align-items:stretch !important;}
.hero-actions-dual .hero-cta-col .cta-micro{display:block !important;max-width:none !important;margin:0 !important;text-align:center !important;color:rgba(255,255,255,.70) !important;font-size:13.5px !important;line-height:1.45 !important;}
.hero-actions-dual .hero-cta-col .btn{width:100%;justify-content:center;}
.hero-actions-dual .hero-cta-col .cta-blue{background:linear-gradient(90deg,#0f6cff 0%,#245cff 38%,#6d4dff 100%) !important;color:#fff !important;box-shadow:0 18px 44px rgba(36,92,255,.30) !important;}
.hero-actions-dual .hero-cta-col .cta-orange{background:linear-gradient(90deg,#ffb347 0%,#ff8a00 55%,#e86f00 100%) !important;color:#1a1206 !important;box-shadow:0 18px 44px rgba(255,140,26,.32) !important;}
@media (max-width:760px){
  .hero-actions-dual .hero-cta-col{width:100%;}
}

/* ===== ib-final-pratica-refine ===== */
/* Riquadro IN PRATICA, blu notte coerente e card interne leggibili */
#cliente-caldo aside.ib-welcome-card{
  background:
    radial-gradient(circle at 16% 0%, rgba(31,70,255,.12), transparent 34%),
    radial-gradient(circle at 100% 8%, rgba(255,138,0,.08), transparent 26%),
    linear-gradient(180deg,#10172f 0%,#0b1024 100%) !important;
  border:1px solid rgba(255,255,255,.13) !important;
  box-shadow:0 24px 70px rgba(11,16,32,.24) !important;
}
#cliente-caldo aside.ib-welcome-card .ib-card-kicker{
  background:rgba(255,138,0,.11) !important;
  border-color:rgba(255,138,0,.32) !important;
  color:#ffb15c !important;
}
#cliente-caldo aside.ib-welcome-card .ib-mini-title{
  color:#fff !important;
}
#cliente-caldo aside.ib-welcome-card .ib-checklist li{
  background:rgba(255,255,255,.085) !important;
  border:1px solid rgba(255,255,255,.16) !important;
  color:rgba(255,255,255,.80) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035) !important;
}
#cliente-caldo aside.ib-welcome-card .ib-checklist li strong{
  color:#fff !important;
}
#cliente-caldo aside.ib-welcome-card .ib-checklist li span{
  color:rgba(255,255,255,.78) !important;
}
#cliente-caldo aside.ib-welcome-card .ib-checklist li::before{
  color:#0b1024 !important;
  background:linear-gradient(135deg,#ffb347,#ff8a00) !important;
  box-shadow:0 8px 18px rgba(255,138,0,.20) !important;
}

/* ===== popup-contatti-css ===== */
/* ═══════════════════════════════════════
   POPUP CONTATTACI, stile card estese
═══════════════════════════════════════ */
.contatti-overlay {
  display: none;
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(6,10,28,.72);
  backdrop-filter: blur(8px);
  align-items: center; justify-content: center;
}
.contatti-overlay[aria-hidden="false"] { display: flex; }

.contatti-box {
  background: linear-gradient(145deg, #0f1630 0%, #0b1028 100%);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 24px;
  padding: 32px 28px 28px;
  width: min(540px, 92vw);
  box-shadow: 0 40px 80px rgba(0,0,0,.55);
  display: flex; flex-direction: column; gap: 14px;
}

.contatti-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 8px;
}
.contatti-title {
  font-size: 13px; font-weight: 800; letter-spacing: .18em;
  text-transform: uppercase; color: rgba(255,255,255,.45);
}
.close-popup {
  width: 34px; height: 34px; border-radius: 999px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.10);
  color: rgba(255,255,255,.55); font-size: 20px; line-height: 1;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: background .15s ease;
}
.close-popup:hover { background: rgba(255,255,255,.14); color: #fff; }

/* Card contatto, identiche a quelle a fondo pagina */
.contatto-card {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  padding: 22px 24px;
  border-radius: 18px;
  text-decoration: none;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.contatto-card:hover {
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.18);
  transform: translateY(-1px);
}
.contatto-left { min-width: 0; }
.contatto-label {
  display: inline-block;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.12);
  color: #fff; font-weight: 800; font-size: 15px;
  padding: 6px 12px; border-radius: 10px;
}
.contatto-sub {
  margin-top: 7px; font-size: 14px;
  color: rgba(255,255,255,.55);
}
.contatto-right {
  text-align: right; font-size: 32px; font-weight: 800;
  letter-spacing: .5px; color: #fff; line-height: 1.05;
  word-break: break-all; flex-shrink: 0;
}
.contatto-right--email {
  font-size: 17px !important; font-weight: 700 !important;
  word-break: break-all; letter-spacing: 0;
}
@media (max-width: 480px) {
  .contatto-card { flex-direction: column; align-items: flex-start; }
  .contatto-right { text-align: left; font-size: 26px; }
}

/* ===== cta-pill-override ===== */
/* ===== CTA PILLONI + MICRO SOTTO ===== */
.hero-actions,
.sol-cta,
.chi-cta,
.cta-wrapper,
.faq-footer-cta,
.testi-cta-band,
.gallery-cta-section{
  display:flex;
  flex-direction:column;
  align-items:center;
}

.hero-actions,
.sol-cta,
.cta-wrapper,
.faq-footer-cta{
  gap: 14px;
}

.testi-cta-band{
  text-align:center;
  gap: 14px;
}

.chi-cta{
  text-align:center;
  gap: 16px;
}

.gallery-cta-section{
  text-align:center;
  gap: 16px;
}

.hero-actions .btn,
.sol-cta .btn,
.chi-cta .btn,
.cta-wrapper .cta-btn,
.cta-wrapper .cta-chip,
.faq-footer-cta .topbar-cta,
.testi-cta-btn,
.gallery-cta-section .cta-btn{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-width: min(100%, 380px);
  padding: 20px 34px !important;
  border-radius: 999px !important;
  font-size: clamp(20px, 2.1vw, 24px) !important;
  font-weight: 800 !important;
  letter-spacing: -.02em;
  text-decoration:none !important;
  color:#fff !important;
  border: none !important;
  box-shadow: 0 22px 48px rgba(21,38,104,.28);
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
.hero-actions .btn:hover,
.sol-cta .btn:hover,
.chi-cta .btn:hover,
.cta-wrapper .cta-btn:hover,
.cta-wrapper .cta-chip:hover,
.faq-footer-cta .topbar-cta:hover,
.testi-cta-btn:hover,
.gallery-cta-section .cta-btn:hover{
  transform: translateY(-2px) scale(1.01);
  box-shadow: 0 26px 56px rgba(21,38,104,.34);
  filter: saturate(1.03);
}
.hero-actions .btn,
.testi-cta-btn,
.gallery-cta-section .cta-btn,
.faq-footer-cta .topbar-cta,
.cta-wrapper .cta-btn{
  background: linear-gradient(90deg, #0f6cff 0%, #245cff 38%, #6d4dff 100%) !important;
}
.sol-cta .btn,
.cta-wrapper .cta-chip,
.hero-actions .cta-orange{
  background: linear-gradient(90deg, #ffb347 0%, #ff8a00 55%, #e86f00 100%) !important;
  box-shadow: 0 22px 48px rgba(255,138,0,.24);
}
.hero-actions .cta-micro,
.sol-cta .cta-micro,
.chi-cta .cta-micro,
.cta-wrapper .cta-micro,

.band.light .cta-wrapper .cta-micro,
.band.light .sol-cta .cta-micro,
.band.light 
.testi-cta-band .testi-cta-text{
  margin: 0 0 6px 0;
}
.testi-cta-band .cta-micro{
  color: rgba(255,255,255,.82) !important;
}
.chi-cta-choice{
  margin-bottom: 4px !important;
}
@media (max-width: 760px){
  .hero-actions .btn,
  .sol-cta .btn,
  .chi-cta .btn,
  .cta-wrapper .cta-btn,
  .cta-wrapper .cta-chip,
  .faq-footer-cta .topbar-cta,
  .testi-cta-btn,
  .gallery-cta-section .cta-btn{
    min-width: 100%;
    width: 100%;
    padding: 18px 22px !important;
    font-size: 20px !important;
  }
}

/* ===== modal-head-upgrade ===== */
/* ===== POPUP SIMULAZIONE, TESTO INTRO + FORME COME SEZIONE ===== */
.simulazione-dialog{
  width:min(980px, calc(100% - 28px)) !important;
  max-height: calc(100vh - 30px);
  overflow:auto;
}
.simulazione-modal-head{
  text-align:center;
  max-width: 760px;
  margin: 0 auto 18px;
}
.simulazione-modal-head h3{
  display:none;
}
.simulazione-modal-head .modal-kicker{
  margin: 8px 0 4px;
  font-size: 16px;
  line-height:1.2;
  color: rgba(11,16,32,.48);
  font-weight: 500;
  letter-spacing: .02em;
}
.simulazione-modal-head .modal-callout{
  margin: 0 0 12px;
  font-size: clamp(34px, 5vw, 54px);
  line-height:1.02;
  font-weight: 800;
  letter-spacing: -.03em;
  background: linear-gradient(90deg, #1E88FF 0%, #7A3AFF 60%, #FF8A1F 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.simulazione-modal-head .modal-copy{
  margin:0 0 8px;
  font-size: clamp(17px, 2vw, 21px);
  line-height:1.65;
  color: rgba(11,16,32,.68);
}
.simulazione-modal-head .modal-note{
  margin:0;
  font-size:14px;
  line-height:1.5;
  color: rgba(11,16,32,.48);
  font-style: italic;
}

/* ===== blocco senza id ===== */
/* ===== ATF CTA back to normal size ===== */
.hero-actions .btn.no-pill{
  border-radius:12px !important;
  padding:14px 22px !important;
  font-size:18px !important;
  min-width:auto !important;
  box-shadow:none !important;
}

/* ===== readable micro text under 'PARLIAMO DELLA TUA INSEGNA' ===== */
.sol-cta .cta-micro{
  color:#2a2a2a !important;
}

/* ===== remove shadow from OK VEDIAMO IL MIO CASO ===== */
.cta-chip{
  text-shadow:none !important;
}

/* ===== blocco senza id ===== */
/* Final CTA fixes */
.cta-chip,
.cta-chip *,
.cta-wrapper .cta-chip,
.cta-wrapper .cta-chip *{
  text-shadow: none !important;
  filter: none !important;
}

/* ATF CTA back to right aligned and compact */
.hero-actions{
  display:flex !important;
  flex-direction:row !important;
  justify-content:flex-end !important;
  align-items:center !important;
  gap:12px !important;
}
.hero-actions .btn,
.hero-actions .btn.no-pill{
  min-width:auto !important;
  width:auto !important;
  border-radius:14px !important;
  padding:14px 18px !important;
  font-size:16px !important;
  box-shadow: var(--shadow2) !important;
}

/* Remove ATF microcopy if present */
.hero-actions .cta-micro{ display:none !important; }

/* ===== cta-final-tweaks-2 ===== */
/* ATF CTA: left aligned */
.hero-actions{
  display:flex !important;
  flex-direction:row !important;
  justify-content:flex-start !important;
  align-items:center !important;
  gap:12px !important;
}

/* Remove any shadow from this specific CTA */
.cta-chip,
.cta-chip *,
.cta-chip span,
.cta-chip strong{
  text-shadow:none !important;
  text-shadow:none !important;
}

/* ===== enh-aesthetic-v1 ===== */
/* ════════════════════════════════════════════════════════════
   ENHANCEMENT v3, FIX: display:block forzato, transition aggiunte
   ════════════════════════════════════════════════════════════ */

:root {
  --ease-out-soft: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out-quick: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ─── 1. AURORA GLOW: ridichiaro display:block per battere il display:none ─── */
.band.dark, .band.darkish {
  position: relative !important;
  overflow: hidden !important;
}
.band.dark::before, .band.darkish::before {
  display: block !important;
  content: "" !important;
  position: absolute !important;
  inset: -10% !important;
  pointer-events: none !important;
  background:
    radial-gradient(900px 600px at 20% 10%, rgba(31,70,255,.20), transparent 55%),
    radial-gradient(700px 500px at 85% 60%, rgba(125,44,255,.18), transparent 55%),
    radial-gradient(500px 400px at 50% 110%, rgba(255,138,0,.14), transparent 60%) !important;
  animation: enhAuroraDrift 22s ease-in-out infinite alternate !important;
  z-index: 0 !important;
  opacity: 1 !important;
  width: auto !important;
  height: auto !important;
}
.band.dark > *, .band.darkish > * {
  position: relative;
  z-index: 1;
}
@keyframes enhAuroraDrift {
  0%   { transform: translate(0, 0) scale(1); opacity: .85; }
  50%  { transform: translate(3%, -2%) scale(1.05); opacity: 1; }
  100% { transform: translate(-2%, 1%) scale(1.03); opacity: .9; }
}

/* ─── 2. ANIMATED GRADIENT TEXT, .accent + headline strong ─── */
.accent,
.h1b,
.rainbow-strong,
.rainbow-black-strong {
  background-size: 250% 100% !important;
  animation: enhGradShift 6s ease-in-out infinite !important;
}
@keyframes enhGradShift {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}

/* ─── 4. CARDS LIFT al hover, CON TRANSITION ESPLICITA ─── */
.cards .card,
.chi-value,
.npt-col,
.camp-card,
.hero-col,
.sol-only-card {
  transition: transform .45s var(--ease-out-soft), box-shadow .45s var(--ease-out-soft), border-color .45s var(--ease-out-soft) !important;
}
.cards .card:hover,
.chi-value:hover,
.npt-col:hover,
.camp-card:hover,
.hero-col:hover,
.sol-only-card:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 24px 64px rgba(0,0,0,.34), 0 8px 22px rgba(31,70,255,.16) !important;
}

/* ─── 5. STAGGER FADE-UP su gruppi (solo al primo ingresso, non al hover!) ─── */
@keyframes enhFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.cards .card,
.chi-values .chi-value,
.hero-cols .hero-col,
.camp-cards .camp-card,
.npt-grid .npt-col {
  opacity: 0;
  animation: enhFadeIn 1s var(--ease-out-soft) both !important;
}
.cards .card:nth-child(1),
.chi-values .chi-value:nth-child(1),
.hero-cols .hero-col:nth-child(1),
.camp-cards .camp-card:nth-child(1),
.npt-grid .npt-col:nth-child(1)              { animation-delay: .1s !important; }
.cards .card:nth-child(2),
.chi-values .chi-value:nth-child(2),
.hero-cols .hero-col:nth-child(2),
.camp-cards .camp-card:nth-child(2),
.npt-grid .npt-col:nth-child(2)              { animation-delay: .25s !important; }
.cards .card:nth-child(3),
.chi-values .chi-value:nth-child(3),
.hero-cols .hero-col:nth-child(3),
.camp-cards .camp-card:nth-child(3)          { animation-delay: .4s !important; }
.chi-values .chi-value:nth-child(4)          { animation-delay: .55s !important; }

/* ─── 6. SECTION-RULE pallino: pulse soft ─── */
.section-rule .dot,
.npt-rule .dot,
.section-pre .dot {
  animation: enhPulseDot 2.6s ease-in-out infinite !important;
}
@keyframes enhPulseDot {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255,138,0,0); }
  50%      { box-shadow: 0 0 0 10px rgba(255,138,0,.25); }
}

/* ─── 7. TRIPLA GARANZIA, mantieni il colore al hover (richiesta utente) ─── */
#garanzia .cards .card { position: relative !important; }
#garanzia .cards .card::after {
  display: block !important;
  content: "" !important;
  position: absolute !important;
  inset: -2px !important;
  border-radius: inherit !important;
  background: linear-gradient(135deg, rgba(31,70,255,.55), rgba(125,44,255,.55), rgba(255,138,0,.55)) !important;
  z-index: -1 !important;
  opacity: 0 !important;
  filter: blur(22px) !important;
  transition: opacity .6s var(--ease-out-soft) !important;
}
#garanzia .cards .card:hover::after {
  opacity: .7 !important;
}

/* ─── 8. CHI SONO icons hover ─── */
.chi-value .chi-value-icon {
  transition: transform .5s var(--ease-bounce) !important;
}
.chi-value:hover .chi-value-icon {
  transform: scale(1.18) rotate(-6deg) !important;
}

/* ─── 9. FAQ icon rotation ─── */
.faq-item .faq-icon {
  transition: transform .4s var(--ease-out-soft) !important;
}
.faq-item[open] .faq-icon {
  transform: rotate(45deg) !important;
}

/* ─── 10. NPT col bar disegna ─── */
@keyframes enhDrawBar {
  from { transform: scaleX(0); transform-origin: left; }
  to   { transform: scaleX(1); transform-origin: left; }
}
.npt-col::before {
  animation: enhDrawBar 1.4s var(--ease-out-soft) .5s both !important;
}

/* ─── 11. WATERMARK drift ─── */
.hero-watermark img {
  animation: enhWatermarkDrift 30s ease-in-out infinite alternate !important;
}
@keyframes enhWatermarkDrift {
  from { transform: translateX(0) scale(1); }
  to   { transform: translateX(-3%) scale(1.04); }
}

/* ─── 12. PERSONA active aura ─── */
.pbtn.active {
  position: relative !important;
}
.pbtn.active::after {
  display: block !important;
  content: "" !important;
  position: absolute !important;
  inset: -4px !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #2563EB, #7C3AED) !important;
  z-index: -1 !important;
  opacity: .35 !important;
  filter: blur(14px) !important;
  animation: enhAuraBreathe 2.8s ease-in-out infinite !important;
}
@keyframes enhAuraBreathe {
  0%, 100% { opacity: .25; }
  50%      { opacity: .65; }
}

/* ─── 13. GALLERY hover ─── */
.gallery-item {
  transition: transform .5s var(--ease-out-soft) !important;
}
.gallery-item:hover {
  transform: scale(1.04) !important;
}
.gallery-item .gallery-image {
  transition: filter .5s var(--ease-out-soft) !important;
}
.gallery-item:hover .gallery-image {
  filter: brightness(1.10) !important;
}

/* ─── 14. SOL-TRIO glow ─── */
.sol-trio .trio-item {
  transition: text-shadow .35s var(--ease-out-soft) !important;
}
.sol-trio:hover .trio-item {
  text-shadow: 0 0 24px rgba(255,138,0,.55) !important;
}

/* ─── 15. ALLERTA MALTEMPO breathing glow ─── */
.agit-maltempo-outer {
  animation: enhMaltGlow 5s ease-in-out infinite !important;
}
@keyframes enhMaltGlow {
  0%, 100% { box-shadow: 0 24px 60px rgba(0,0,0,.45), 0 6px 20px rgba(30,136,255,.12); }
  50%      { box-shadow: 0 24px 80px rgba(0,0,0,.55), 0 10px 36px rgba(122,77,255,.32); }
}

/* ─── 16. CAMP badge pulse ─── */
.camp-card-badge {
  animation: enhBadgePulse 2.8s ease-in-out infinite !important;
}
@keyframes enhBadgePulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255,138,0,0); }
  50%      { box-shadow: 0 0 0 8px rgba(255,138,0,.24); }
}

/* ─── 17. TC-NUM glow al hover step ─── */
.tc-num {
  transition: filter .4s var(--ease-out-soft) !important;
}
.tc-step:hover .tc-num {
  filter: drop-shadow(0 0 18px rgba(31,70,255,.45)) !important;
}

/* ─── 18. RAINBOW SEP animato ─── */
hr.rainbow-sep {
  background-size: 250% 100% !important;
  animation: enhGradShift 8s linear infinite !important;
}

/* ─── 19. SMOOTH SCROLL ─── */
html {
  scroll-behavior: smooth !important;
}


/* ─── 20. NPT CTA: testo su una sola riga ─── */
#non-per-tutti .landing-cta-btn {
  white-space: nowrap !important;
  min-width: 0 !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
}

/* ─── 21. VEDI PRIMA CTA: testo specifico SIMULAZIONE FOTOREALISTICA ─── */
#vedi-prima .landing-cta-btn.sim {
  white-space: nowrap !important;
}


/* ═══════════════════════════════════════════════════════════
   ALLERTA MALTEMPO, versione articolo di giornale
   ═══════════════════════════════════════════════════════════ */
.agit-maltempo-outer {
  margin: 56px 0 0 !important;
  padding: 0 !important;
  border-radius: 4px !important;
  background: #f5f1e8 !important;
  /* Ombra ridotta: prima era 0 24px 60px rgba(0,0,0,.45)
     che creava lo "stacco grigio" visibile sotto la card. */
  box-shadow:
    0 12px 32px rgba(11,16,32,.10),
    0 2px 8px rgba(11,16,32,.06),
    inset 0 0 0 1px rgba(11,16,32,.06) !important;
  position: relative !important;
  overflow: hidden !important;
}
.agit-maltempo-outer::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background-image: 
    radial-gradient(ellipse at top, rgba(11,16,32,.04), transparent 60%),
    repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(11,16,32,.012) 2px, rgba(11,16,32,.012) 3px);
  pointer-events: none !important;
  z-index: 1 !important;
}
.agit-maltempo-inner {
  background: transparent !important;
  border-radius: 0 !important;
  padding: 38px 56px 44px !important;
  color: #1a1a1a !important;
  position: relative !important;
  z-index: 2 !important;
  font-family:var(--font-main) !important;
}
@media (max-width: 680px) {
  .agit-maltempo-inner { padding: 28px 22px 32px !important; }
}

/* Testata stile giornale */
.malt-masthead {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  border-bottom: 3px double #1a1a1a !important;
  padding: 0 0 8px !important;
  margin: 0 0 18px !important;
  font-family:var(--font-main) !important;
  font-size: 11px !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
  color: #5a5a5a !important;
  font-weight: 600 !important;
}
.malt-masthead-edition { font-style: italic; }

/* Titolo principale stile testata */
.malt-newstitle,
span.malt-newstitle {
  display: block !important;
  width: 100% !important;
  font-family:var(--font-main) !important;
  font-size: clamp(38px, 6vw, 64px) !important;
  font-weight: 800 !important;
  letter-spacing: .02em !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  text-align: center !important;
  color: #0a0a0a !important;
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #0a0a0a !important;
  margin: 0 0 6px !important;
  padding: 0 !important;
  font-stretch: normal;
  font-variant: small-caps;
}
.malt-newstitle::after {
  display: none !important;
}

/* Sottotitolo / occhiello */
.malt-subtitle {
  font-family:var(--font-main) !important;
  font-size: clamp(18px, 2.4vw, 24px) !important;
  font-weight: 400 !important;
  font-style: italic !important;
  text-align: center !important;
  color: #2a2a2a !important;
  letter-spacing: .01em !important;
  margin: 0 0 22px !important;
  padding: 0 0 22px !important;
  line-height: 1.35 !important;
  border-bottom: 1px solid rgba(11,16,32,.20) !important;
  text-transform: none !important;
}

/* Body text stile articolo */
.malt-body {
  font-family:var(--font-main) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  color: #1c1c1c !important;
  line-height: 1.7 !important;
  margin: 0 0 14px !important;
  text-align: justify !important;
  hyphens: auto !important;
}
.malt-body strong { 
  font-weight: 800 !important; 
  color: #0a0a0a !important; 
  letter-spacing: .01em !important;
}

/* Drop cap sul primo paragrafo */
.malt-body.malt-lead::first-letter {
  float: left !important;
  font-family:var(--font-main) !important;
  font-size: 64px !important;
  line-height: .85 !important;
  font-weight: 800 !important;
  margin: 6px 10px 0 0 !important;
  color: #0a0a0a !important;
}

/* Claim/grassetti centrati stile occhiello */
.malt-claim {
  font-family:var(--font-main) !important;
  font-size: clamp(17px, 2vw, 21px) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
  color: #0a0a0a !important;
  text-align: center !important;
  line-height: 1.35 !important;
  margin: 22px 0 !important;
  padding: 16px 0 !important;
  border-top: 1px solid rgba(11,16,32,.20) !important;
  border-bottom: 1px solid rgba(11,16,32,.20) !important;
}

/* Riquadro finale "pill", stile editoriale chiusura */
.malt-pill {
  margin: 28px auto 0 !important;
  padding: 22px 28px !important;
  background: #1a1a1a !important;
  color: #f5f1e8 !important;
  border: none !important;
  border-radius: 0 !important;
  font-family:var(--font-main) !important;
  font-size: clamp(16px, 1.9vw, 19px) !important;
  font-weight: 400 !important;
  font-style: italic !important;
  line-height: 1.55 !important;
  text-align: center !important;
  position: relative !important;
  max-width: 720px !important;
}
.malt-pill::before,
.malt-pill::after {
  content: "" !important;
  position: absolute !important;
  left: 0; right: 0;
  height: 1px !important;
  background: rgba(245,241,232,.4) !important;
}
.malt-pill::before { top: 6px !important; }
.malt-pill::after  { bottom: 6px !important; }
.malt-pill strong {
  display: block !important;
  font-weight: 800 !important;
  font-style: normal !important;
  color: #ffd591 !important;
  text-transform: uppercase !important;
  letter-spacing: .12em !important;
  font-size: 12px !important;
  margin: 0 0 10px !important;
}

/* Bordo decorativo doppio attorno al box */
.agit-maltempo-outer::after {
  content: "" !important;
  position: absolute !important;
  inset: 8px !important;
  border: 1px solid rgba(11,16,32,.18) !important;
  pointer-events: none !important;
  z-index: 1 !important;
  border-radius: 2px !important;
}

/* Spegne l'animazione glow precedente, stile giornale è sobrio */
.agit-maltempo-outer {
  animation: none !important;
}


.malt-signature {
  font-family:var(--font-main) !important;
  font-size: 14px !important;
  font-style: italic !important;
  text-align: right !important;
  color: #4a4a4a !important;
  margin: 22px 0 0 !important;
  padding: 14px 0 0 !important;
  border-top: 1px solid rgba(11,16,32,.15) !important;
  letter-spacing: .02em !important;
}


.malt-dateline {
  font-family:var(--font-main) !important;
  font-size: 12px !important;
  font-style: italic !important;
  color: #5a5a5a !important;
  text-align: center !important;
  margin: -10px 0 14px !important;
  letter-spacing: .04em !important;
}

/* ─── REDUCED MOTION ─── */
/* prefers-reduced-motion universale rimosso, singole regole gestiscono accessibilità */

/* ===== enh-shimmer-js ===== */
.enh-shimmer-overlay {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -100%;
  width: 60%;
  background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,.55) 50%, transparent 100%);
  pointer-events: none;
  z-index: 999;
  filter: blur(2px);
  animation: enhShimmerSlide 4s ease-in-out infinite;
  -webkit-animation: enhShimmerSlide 4s ease-in-out infinite;
}
@keyframes enhShimmerSlide {
  0%, 60%   { left: -100%; }
  100% { left: 200%; }
}
@-webkit-keyframes enhShimmerSlide {
  0%, 60%   { left: -100%; }
  100% { left: 200%; }
}
.landing-cta-btn,
a.cta-chip,
.cta-btn {
  position: relative;
  overflow: hidden;
}

/* ===== file-input-soften ===== */
/* Scegli file, alleggerito + bordi stondati */
.simulazione-form input[type="file"]::file-selector-button,
.simulazione-form input[type="file"]::-webkit-file-upload-button{
  background: rgba(11,16,32,.04) !important;
  border: 1px solid rgba(11,16,32,.10) !important;
  border-radius: 8px !important;
  padding: 6px 14px !important;
  margin-right: 12px !important;
  font-weight: 500 !important;
  font-size: 0.9em !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
  color: rgba(11,16,32,.55) !important;
  cursor: pointer !important;
  transition: background .2s ease !important;
}
.simulazione-form input[type="file"]::file-selector-button:hover,
.simulazione-form input[type="file"]::-webkit-file-upload-button:hover{
  background: rgba(11,16,32,.08) !important;
}

/* ===== __om-edit-overrides ===== */
#simulazione .sim-social-proof >:is(h1,h2,h3,h4,h5,h6,p,li,dt,dd,blockquote,figcaption,label,span,a,em,strong,small,td,th,caption) >:is(h1,h2,h3,h4,h5,h6,p,li,dt,dd,blockquote,figcaption,label,span,a,em,strong,small,td,th,caption) { font-size: 9px !important }
#simulazione .sim-social-proof >:is(h1,h2,h3,h4,h5,h6,p,li,dt,dd,blockquote,figcaption,label,span,a,em,strong,small,td,th,caption) >:is(h1,h2,h3,h4,h5,h6,p,li,dt,dd,blockquote,figcaption,label,span,a,em,strong,small,td,th,caption) { font-size: 19px !important }
#simulazione :is(h1,h2,h3,h4,h5,h6,p,li,dt,dd,blockquote,figcaption,label,span,a,em,strong,small,td,th,caption) >div:nth-child(3) { font-size: 21px !important }
#simulazione :is(h1,h2,h3,h4,h5,h6,p,li,dt,dd,blockquote,figcaption,label,span,a,em,strong,small,td,th,caption) >div:nth-child(4) { font-size: 21px !important }
#simulazione :is(h1,h2,h3,h4,h5,h6,p,li,dt,dd,blockquote,figcaption,label,span,a,em,strong,small,td,th,caption) >div:nth-child(3) { font-weight: 500 !important }
#simulazione :is(h1,h2,h3,h4,h5,h6,p,li,dt,dd,blockquote,figcaption,label,span,a,em,strong,small,td,th,caption) >div:nth-child(3) { font-weight: 600 !important }

/* ===== ib-final-contrast-nav-fix ===== */
/* === FIX FINALE: 3 COSE più contrastate + navigazione alta visibile === */
#criteri-scelta .ib-criterion{
  background: linear-gradient(180deg, rgba(232,236,245,.98), rgba(214,221,234,.96)) !important;
  border-color: rgba(11,16,32,.20) !important;
  box-shadow: 0 24px 58px rgba(11,16,32,.20) !important;
}
#criteri-scelta .ib-criterion:hover{
  background: linear-gradient(180deg, rgba(225,231,242,.99), rgba(204,213,229,.98)) !important;
  box-shadow: 0 28px 68px rgba(11,16,32,.24) !important;
}
#criteri-scelta .ib-criterion-num{ color: rgba(11,16,32,.20) !important; }
#criteri-scelta .ib-criterion p{ color: rgba(11,16,32,.82) !important; }
#criteri-scelta .ib-criterion h3,
#criteri-scelta .ib-criterion p strong{ color:#07101f !important; }
.enh-nav-wrap{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  height:24px !important;
  z-index:2147483000 !important;
  pointer-events:none !important;
  background:transparent !important;
}
.enh-nav-track-bar{
  top:0 !important;
  height:5px !important;
  background:rgba(255,255,255,.42) !important;
  box-shadow:0 1px 0 rgba(11,16,32,.22), 0 2px 14px rgba(11,16,32,.18) !important;
}
.enh-nav-progress{
  top:0 !important;
  height:5px !important;
  box-shadow:0 0 12px rgba(31,70,255,.55),0 0 18px rgba(255,138,0,.42) !important;
}
.enh-nav-track{ top:0 !important; height:5px !important; }
.enh-nav-dot{
  width:13px !important;
  height:13px !important;
  background:#10182c !important;
  border:2px solid rgba(255,255,255,.85) !important;
  box-shadow:0 0 0 2px rgba(11,16,32,.14),0 2px 8px rgba(0,0,0,.45) !important;
}
.enh-nav-dot.active{
  background:#fff !important;
  border-color:#fff !important;
  box-shadow:0 0 16px rgba(255,255,255,.9),0 0 34px rgba(255,138,0,.55),0 0 48px rgba(31,70,255,.35) !important;
}

/* ===== ib-user-final-3cose-last ===== */
/* ULTIMO OVERRIDE: deve stare dopo tutti gli altri stili. 3 COSE = fondo freddo + card solide/scure. */
html body section#criteri-scelta.band,
html body #criteri-scelta{
  background: #e2e8ee !important;
  background-color: #e2e8ee !important;
  background-image: none !important;
  color: #07101f !important;
}
html body #criteri-scelta::before,
html body #criteri-scelta::after{
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  background: none !important;
  background-image: none !important;
}
html body #criteri-scelta .ib-criteria-grid > article.ib-criterion,
html body #criteri-scelta article.ib-criterion,
html body section#criteri-scelta .ib-criterion{
  background: #aeb8c6 !important;
  background-color: #aeb8c6 !important;
  background-image: linear-gradient(180deg, #b7c1ce 0%, #9faaba 100%) !important;
  opacity: 1 !important;
  border: 1px solid rgba(7,16,31,.32) !important;
  box-shadow: 0 24px 52px rgba(7,16,31,.22) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html body #criteri-scelta .ib-criteria-grid > article.ib-criterion:hover,
html body #criteri-scelta article.ib-criterion:hover{
  background: #a5b0c0 !important;
  background-color: #a5b0c0 !important;
  background-image: linear-gradient(180deg, #afbaca 0%, #97a3b4 100%) !important;
  box-shadow: 0 28px 62px rgba(7,16,31,.26) !important;
}
html body #criteri-scelta .ib-criterion h3{ color:#07101f !important; }
html body #criteri-scelta .ib-criterion p{ color:rgba(7,16,31,.90) !important; }
html body #criteri-scelta .ib-criterion p strong{ color:#07101f !important; font-weight:800 !important; }
html body #criteri-scelta .ib-criterion-num{ color:rgba(7,16,31,.32) !important; }
html body #criteri-scelta .ib-criterion-icon{
  background: rgba(255,138,0,.20) !important;
  border-color: rgba(255,138,0,.48) !important;
}
html body #criteri-scelta .ib-criterion-icon svg{ stroke:#ff7a1a !important; }
html body #criteri-scelta .ib-side-note{
  background: rgba(255,255,255,.38) !important;
  background-image: none !important;
  border: 1px solid rgba(255,138,0,.35) !important;
  box-shadow: 0 18px 42px rgba(7,16,31,.08) !important;
}

/* ===== ib-3cose-dark-navy-final-v3 ===== */
/* OVERRIDE DEFINITIVO V3: card sezione 3 COSE in navy profondo brand */
html body section#criteri-scelta .ib-criteria-grid > article.ib-criterion,
html body section#criteri-scelta article.ib-criterion,
html body #criteri-scelta .ib-criterion{
  background: #0a1024 !important;
  background-color: #0a1024 !important;
  background-image: linear-gradient(180deg, #0b1230 0%, #07101f 100%) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: 0 28px 64px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.06) !important;
  color: #ffffff !important;
  opacity: 1 !important;
  filter: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html body section#criteri-scelta .ib-criteria-grid > article.ib-criterion:hover,
html body section#criteri-scelta article.ib-criterion:hover,
html body #criteri-scelta .ib-criterion:hover{
  background: #0b1230 !important;
  background-color: #0b1230 !important;
  background-image: linear-gradient(180deg, #0d1538 0%, #0a1024 100%) !important;
  border-color: rgba(255,138,0,.35) !important;
  box-shadow: 0 32px 72px rgba(0,0,0,.46), 0 0 0 1px rgba(255,138,0,.18), inset 0 1px 0 rgba(255,255,255,.08) !important;
}
html body #criteri-scelta .ib-criterion::before,
html body #criteri-scelta .ib-criterion::after{
  content: none !important;
  display: none !important;
  background: none !important;
  opacity: 0 !important;
}
html body #criteri-scelta .ib-criterion h3{
  color: #ffffff !important;
}
html body #criteri-scelta .ib-criterion p{
  color: rgba(255,255,255,.82) !important;
}
html body #criteri-scelta .ib-criterion p strong{
  color: #ffffff !important;
  font-weight: 800 !important;
}
html body #criteri-scelta .ib-criterion-num{
  color: rgba(255,255,255,.14) !important;
}
html body #criteri-scelta .ib-criterion-icon{
  background: rgba(255,138,0,.18) !important;
  border: 1px solid rgba(255,138,0,.55) !important;
}
html body #criteri-scelta .ib-criterion-icon svg{
  stroke: #ffa64d !important;
  color: #ffa64d !important;
}

/* ===== ib-l23-multi-fix-v2 ===== */
/* ============================================================
   FIX #1 — Persona panel (sezione RUOLI): testo tagliato
   ============================================================ */
html body #ruoli .persona-panel{
  overflow: visible !important;
  height: auto !important;
  min-height: 0 !important;
}
html body #ruoli .persona-wrap{
  align-items: stretch !important;
}
html body #ruoli .persona-panel #personaMicro{
  margin-bottom: 6px !important;
  padding-bottom: 4px !important;
}

/* ============================================================
   FIX #2 — Box "il PREZZO CONTA DAVVERO" (.ib-side-note in #criteri-scelta)
   ============================================================ */
html body #criteri-scelta .ib-side-note{
  background: #f4f6fa !important;
  background-color: #f4f6fa !important;
  background-image: none !important;
  border: 2px solid rgba(7,16,31,.55) !important;
  box-shadow: 0 6px 18px rgba(7,16,31,.06) !important;
  color: #0b1020 !important;
}
html body #criteri-scelta .ib-side-note strong{
  color: #07101f !important;
}

/* ============================================================
   FIX #4 — Box "SIMULAZIONE FOTOREALISTICA" (#vedi-prima .copy-solution)
   ============================================================ */
html body #vedi-prima .copy-solution p{
  margin: 0 0 18px !important;
  line-height: 1.55 !important;
}
html body #vedi-prima .copy-solution p:last-child{
  margin-bottom: 0 !important;
}
html body #vedi-prima .copy-solution p:first-child{
  margin-bottom: 22px !important;
}
html body #vedi-prima .copy-solution .highlight{
  display: block !important;
  margin: 0 0 6px !important;
  line-height: 1.05 !important;
}
html body #vedi-prima .copy-solution p .orange-strong{
  display: inline !important;
}

/* ============================================================
   FIX #5 (RIFATTO) — Closing-text: "Non chiediamo di FIDARTI / Te lo mostriamo PRIMA"
   - Interlinea AGGRESSIVA per avvicinare le 2 righe (line-height 1.05)
   - RIPRISTINO il centramento orizzontale (margin 0 auto)
   ============================================================ */
html body .section-closing .closing-text,
html body p.closing-text{
  line-height: 1.05 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 0 !important;
  margin-bottom: 32px !important;
  text-align: center !important;
}

/* ============================================================
   FIX #6 (RIFATTO) — Gallery-cta-text: "Sfoglia la galleria..."
   - Interlinea molto stretta (line-height 1.15) per 3 righe ravvicinate
   ============================================================ */
html body p.gallery-cta-text,
html body .gallery-cta-text{
  line-height: 1.15 !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ===== ib-mobile-rescue-v4 ===== */
@media (max-width: 760px){
  html, body{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow-x:hidden !important;
  }
  body{ position:relative !important; }
  body *{ box-sizing:border-box !important; }
  body section, body .band, body .container,
  body .card, body article, body aside,
  body .ib-flow, body .ib-criteria-grid, body .ib-method-rail,
  body .proc-unified, body .sol, body .sol-proof,
  body .chi, body .chi-body, body .chi-values,
  body .ruoli-empathy-intro, body .persona-wrap{
    max-width:100% !important;
    min-width:0 !important;
  }
  body .container{
    width:100% !important;
    padding-left:22px !important;
    padding-right:22px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    overflow:visible !important;
  }
  body section, body .band{
    overflow-x:hidden !important;
  }
  p, li, h1, h2, h3, h4, span, strong, em, a, button, summary{
    max-width:100% !important;
    overflow-wrap:break-word !important;
    word-break:normal !important;
  }
  .ib-new-grad, .grad-text, .h2-gradient .accent, .rainbow-strong{
    display:inline !important;
    white-space:normal !important;
  }

  /* Titoli enormi: desktop -> mobile reale */
  h1, h2, h3,
  .hero-headline, .ib-new-title, .sol-title, .problem-title,
  .chi-title, .ruoli-title, .npt-title, .testi-title,
  .proc-u-header h3, .proc-title, .gallery-cta-title,
  #garanzia .h2-gradient, #garanzia h2, #tripla-garanzia h2{
    width:100% !important;
    max-width:100% !important;
    white-space:normal !important;
    text-align:left !important;
    font-size:clamp(34px, 10.2vw, 46px) !important;
    line-height:1.08 !important;
    letter-spacing:-.035em !important;
  }
  .section-rule, .section-pre, .npt-rule{
    width:100% !important;
    max-width:100% !important;
    overflow:hidden !important;
  }

  /* Metodo: il rail non deve restare a 2 colonne */
  #metodo-scelta .ib-method-rail{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
    width:100% !important;
  }
  #metodo-scelta .ib-rail-item{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
    width:100% !important;
    padding:24px 22px !important;
    overflow:hidden !important;
  }
  #metodo-scelta .ib-rail-num{
    width:70px !important;
    height:70px !important;
    font-size:24px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }
  #metodo-scelta .ib-rail-content h3{
    font-size:clamp(26px, 8.1vw, 35px) !important;
    line-height:1.12 !important;
    letter-spacing:.035em !important;
    text-align:left !important;
  }
  #metodo-scelta .ib-rail-content p{
    font-size:17px !important;
    line-height:1.55 !important;
  }

  /* 3 COSE: bridge e card sempre dentro viewport */
  #criteri-scelta .ib-criteria-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
    width:100% !important;
  }
  #criteri-scelta .ib-criterion,
  #criteri-scelta .ib-side-note,
  #criteri-scelta .ib-bridge{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding:24px 20px !important;
    overflow:hidden !important;
  }
  #criteri-scelta .ib-bridge h3{
    font-size:clamp(29px, 9vw, 38px) !important;
    line-height:1.10 !important;
    letter-spacing:-.025em !important;
    text-align:center !important;
  }
  #criteri-scelta .ib-bridge .regia-bridge-ponte,
  #criteri-scelta .ib-bridge p{
    font-size:clamp(18px, 5vw, 22px) !important;
    line-height:1.38 !important;
    letter-spacing:0 !important;
    text-align:center !important;
    max-width:100% !important;
  }
  #criteri-scelta .ib-bridge strong,
  #criteri-scelta .ib-bridge b{
    letter-spacing:.08em !important;
    font-size:.92em !important;
  }

  /* Soluzione / processo / garanzie: blocchi grandi e listoni */
  .sol-step, .sol-proof, .sol-only-card, .gar-detail-wrap, .tg-card, .proc-card, .proc-step, .proc-u-card{
    width:100% !important;
    max-width:100% !important;
    padding-left:24px !important;
    padding-right:24px !important;
    margin-left:0 !important;
    margin-right:0 !important;
    overflow:hidden !important;
  }
  .sol-proof .big-intro,
  .sol-proof p,
  .sol-proof li,
  #garanzia p, #garanzia li,
  #tripla-garanzia p, #tripla-garanzia li{
    font-size:clamp(18px, 5.2vw, 22px) !important;
    line-height:1.42 !important;
    letter-spacing:0 !important;
  }
  .sol-proof ul{
    margin-left:0 !important;
    padding-left:0 !important;
    list-style:none !important;
  }
  .sol-proof li{
    display:grid !important;
    grid-template-columns:34px 1fr !important;
    column-gap:14px !important;
    align-items:start !important;
  }

  /* TORMENTONI: no carousel desktop/crop laterale */
  .sol-trio-wrap{ overflow:hidden !important; width:100% !important; max-width:100% !important; }
  .sol-trio{
    display:flex !important;
    flex-direction:column !important;
    width:100% !important;
    max-width:100% !important;
    padding:48px 20px 30px !important;
    overflow:hidden !important;
  }
  .sol-trio .trio-item,
  .sol-trio .trio-left,
  .sol-trio .trio-right{
    width:100% !important;
    transform:none !important;
    text-align:center !important;
    font-size:clamp(31px, 11vw, 44px) !important;
    line-height:1.05 !important;
    letter-spacing:.04em !important;
    white-space:normal !important;
  }
  .sol-trio .trio-sep,
  .trio-sep-left, .trio-sep-right{
    width:64% !important;
    height:2px !important;
    margin:18px auto !important;
    transform:none !important;
  }

  /* RUOLI: accordion statico visibile, desktop nascosto */
  #ruoli .persona-buttons,
  #ruoli .persona-panel,
  #ruoli .persona-arrows,
  #ruoli .persona-dots{
    display:none !important;
  }
  #ruoli .persona-wrap{
    display:block !important;
    width:100% !important;
  }
  #ruoli .ruoli-cta-head{
    display:block !important;
    padding-right:0 !important;
    text-align:center !important;
    margin-bottom:24px !important;
  }
  #ruoli .ruoli-cta-title{
    text-align:center !important;
    font-size:clamp(38px, 10.8vw, 50px) !important;
  }
  #ruoli .ruoli-cta-sub{
    font-size:17px !important;
    line-height:1.45 !important;
  }
  #ruoli .mobile-role-accordion{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:22px 0 0 !important;
  }
  #ruoli .mobile-role-accordion details{
    display:block !important;
    width:100% !important;
    background:#fff !important;
    border:1px solid rgba(11,16,32,.13) !important;
    border-radius:18px !important;
    margin:0 0 14px !important;
    overflow:hidden !important;
    box-shadow:0 14px 34px rgba(11,16,32,.08) !important;
  }
  #ruoli .mobile-role-accordion summary{
    list-style:none !important;
    cursor:pointer !important;
    padding:19px 20px !important;
    color:#0b1020 !important;
    font-size:15px !important;
    line-height:1.25 !important;
    font-weight:800 !important;
    text-transform:uppercase !important;
    letter-spacing:.03em !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
  }
  #ruoli .mobile-role-accordion summary::-webkit-details-marker{ display:none !important; }
  #ruoli .mobile-role-accordion summary::after{
    content:'+' !important;
    color:#ff8a00 !important;
    font-size:26px !important;
    line-height:1 !important;
    flex:0 0 auto !important;
  }
  #ruoli .mobile-role-accordion details[open] summary::after{ content:'–' !important; }
  #ruoli .mobile-role-body{
    padding:0 20px 20px !important;
    color:#30384b !important;
    font-size:16px !important;
    line-height:1.48 !important;
  }
  #ruoli .mobile-role-body .role-lead{
    color:#0b1020 !important;
    font-weight:700 !important;
  }
  #ruoli .mobile-role-chips{ display:flex !important; flex-wrap:wrap !important; gap:8px !important; margin-top:14px !important; }
  #ruoli .mobile-role-chips span{ display:inline-flex !important; padding:7px 10px !important; border-radius:999px !important; background:rgba(255,138,0,.10) !important; color:#0b1020 !important; font-size:12px !important; font-weight:800 !important; }

  /* CHI SONO: badge/chips in colonna o wrap, niente taglio laterale */
  #chi-sono .chi-micro-badges,
  #chi-sono .chi-badge-row,
  #chi-sono .chips,
  #chi-sono .chi-values{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:12px !important;
    overflow:hidden !important;
    width:100% !important;
    max-width:100% !important;
  }
  #chi-sono .chi-badge,
  #chi-sono .ib-chip,
  #chi-sono .chip{
    flex:1 1 100% !important;
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    transform:none !important;
  }
  #chi-sono .chi-body, #chi-sono .chi-value, #chi-sono .chi-close{
    width:100% !important;
    max-width:100% !important;
    overflow:hidden !important;
  }

  /* Testimonianze: per ora eliminate da mobile, come concordato da verificare dopo */
  #testimonianze{
    display:none !important;
  }

  /* CTA */
  .landing-cta-dual,
  .cta-row, .cta-wrap{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
    max-width:100% !important;
    gap:16px !important;
  }
  .landing-cta-btn, .btn, .button, a[class*="btn"]{
    max-width:100% !important;
    white-space:normal !important;
  }
}

/* ===== ib-mobile-rescue-v5-hard-overrides ===== */
@media (max-width: 760px){
  html, body{overflow-x:hidden!important;width:100%!important;max-width:100%!important;}
  body{background:#eef2f8!important;}
  *, *::before, *::after{box-sizing:border-box!important;}
  section, .band, .container, .wrap{max-width:100vw!important;overflow-x:hidden!important;}
  .container, .wrap{padding-left:22px!important;padding-right:22px!important;}
  h1,h2,h3,h4,p,li,div,span,strong,em{min-width:0!important;}
  h1,h2,h3,p,li{overflow-wrap:break-word!important;word-break:normal!important;}

  /* METODO / le 3 card iniziali: restano in riga ma senza tagli */
  #metodo-scelta .ib-method-rail{display:grid!important;grid-template-columns:1fr!important;gap:18px!important;width:100%!important;}
  #metodo-scelta .ib-rail-item{
    display:grid!important;
    grid-template-columns:72px minmax(0,1fr)!important;
    align-items:start!important;
    gap:16px!important;
    padding:24px 18px!important;
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  #metodo-scelta .ib-rail-num{width:58px!important;height:58px!important;font-size:21px!important;}
  #metodo-scelta .ib-rail-content{min-width:0!important;width:100%!important;max-width:100%!important;}
  #metodo-scelta .ib-rail-content h3{
    font-size:clamp(28px,8.4vw,38px)!important;
    line-height:1.08!important;
    letter-spacing:.045em!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
  }
  #metodo-scelta .ib-rail-content p,
  #metodo-scelta .ib-rail-content p[style]{
    width:auto!important;
    max-width:100%!important;
    margin-left:0!important;margin-right:0!important;
    font-size:17px!important;
    line-height:1.55!important;
    letter-spacing:0!important;
  }

  /* 3 COSE: annulla larghezze inline e testi troppo larghi */
  #criteri-scelta .ib-bridge,
  #criteri-scelta .ib-criterion,
  #criteri-scelta .ib-side-note{overflow:hidden!important;}
  #criteri-scelta .ib-bridge h3{font-size:clamp(30px,8.8vw,38px)!important;line-height:1.12!important;}
  #criteri-scelta .ib-bridge p,
  #criteri-scelta .ib-bridge p[style]{
    width:auto!important;
    max-width:100%!important;
    margin:22px 0 0!important;
    padding:0!important;
    font-size:clamp(18px,5vw,22px)!important;
    line-height:1.42!important;
    letter-spacing:0!important;
    text-align:center!important;
  }
  #criteri-scelta .ib-bridge strong,
  #criteri-scelta .ib-bridge p strong[style]{
    display:block!important;
    max-width:100%!important;
    white-space:normal!important;
    letter-spacing:.05em!important;
    font-size:.86em!important;
    line-height:1.35!important;
    overflow-wrap:break-word!important;
  }

  /* Responsabilità unica / polizza: elimina l'effetto testo verticale */
  .sol-proof ul{padding-left:0!important;margin-left:0!important;list-style:none!important;}
  .sol-proof li{
    display:block!important;
    position:relative!important;
    padding-left:48px!important;
    margin:0 0 22px!important;
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(18px,5vw,22px)!important;
    line-height:1.48!important;
    letter-spacing:0!important;
    overflow-wrap:break-word!important;
  }
  .sol-proof li::before{
    content:'→'!important;
    position:absolute!important;
    left:0!important;top:.1em!important;
    width:30px!important;height:30px!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
    border-radius:9px!important;
    background:#604cff!important;color:#fff!important;
    font-weight:800!important;font-size:20px!important;
  }
  .sol-proof li strong{display:inline!important;white-space:normal!important;letter-spacing:.03em!important;}

  /* Tripla garanzia: titolo e cards mai fuori schermo */
  #garanzia .tg-title,
  #garanzia .h2-gradient,
  #garanzia .h2-gradient *{
    max-width:100%!important;
    white-space:normal!important;
    overflow-wrap:break-word!important;
  }
  #garanzia .tg-title{font-size:clamp(40px,11vw,56px)!important;line-height:1.05!important;letter-spacing:-.045em!important;}
  #garanzia .tg-title .h1b{display:block!important;font-size:clamp(38px,10vw,50px)!important;white-space:normal!important;}
  #garanzia .cards{grid-template-columns:1fr!important;gap:18px!important;}
  #garanzia .card{width:100%!important;max-width:100%!important;overflow:hidden!important;}
  #garanzia .card-inner{padding:24px 18px 20px!important;}
  #garanzia .card-title, #garanzia .card h3{font-size:clamp(22px,7vw,30px)!important;line-height:1.15!important;}
  #garanzia .card-inner>p, #garanzia .note{font-size:16px!important;line-height:1.55!important;}

  /* Titoli chiari troppo larghi */
  .h2-gradient, .h2-gradient .accent, .ib-new-grad, .grad-text{white-space:normal!important;overflow-wrap:break-word!important;}
  .band.light h1, .band.light h2{max-width:100%!important;}

  /* Ruoli: niente blocchi desktop visibili su mobile */
  #ruoli .persona-wrap, #ruoli .persona-buttons, #ruoli .persona-panel, #ruoli .persona-stage{display:none!important;}
  #ruoli .mobile-role-accordion{display:block!important;}

  /* Chi sono: chip non in carousel laterale */
  #chi-sono .chi-micro-badges, #chi-sono .chi-badge-row, #chi-sono .chips, #chi-sono .chi-values{display:grid!important;grid-template-columns:1fr!important;}
}

/* ===== ib-mobile-rescue-v6-targeted-fixes ===== */
@media (max-width: 760px){
  html, body{width:100%!important;max-width:100%!important;overflow-x:hidden!important;}
  body *{max-width:100%;}
  .container,.wrap{width:100%!important;max-width:100%!important;padding-left:22px!important;padding-right:22px!important;}

  /* 1) TIMING / COUNTER TEMPI CERTI: da schema desktop a lista mobile leggibile */
  .tc-infog{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    width:100%!important;
    max-width:100%!important;
    margin:22px 0 18px!important;
    padding:16px!important;
    overflow:hidden!important;
    border-radius:50%!important;
  }
  .tc-sep{display:none!important;}
  .tc-step{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    display:grid!important;
    grid-template-columns:58px minmax(0,1fr)!important;
    grid-template-areas:
      "num phase"
      "num time"!important;
    align-items:center!important;
    column-gap:14px!important;
    row-gap:2px!important;
    padding:14px 12px!important;
    border:1px solid rgba(11,16,32,.08)!important;
    border-radius:14px!important;
    background:#f6f8fc!important;
    text-align:left!important;
  }
  .tc-num{grid-area:num!important;font-size:34px!important;line-height:1!important;text-align:center!important;letter-spacing:-.03em!important;}
  .tc-phase{
    grid-area:phase!important;
    font-size:13px!important;
    line-height:1.1!important;
    letter-spacing:.10em!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    text-align:left!important;
  }
  .tc-time{grid-area:time!important;font-size:18px!important;line-height:1.15!important;text-align:left!important;margin:2px 0 0!important;}
  .tc-footnote-dark{font-size:16px!important;line-height:1.55!important;padding:0 4px!important;color:rgba(255,255,255,.78)!important;}

  /* 2) GALLERIA: titolo mai spezzato */
  #galleria-cta .gallery-cta-title,
  .gallery-cta-title{width:100%!important;max-width:100%!important;text-align:center!important;overflow:hidden!important;}
  #galleria-cta .gallery-cta-title .line2,
  .gallery-cta-title .line2{
    display:block!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    font-size:clamp(42px, 16vw, 68px)!important;
    line-height:.96!important;
    letter-spacing:.03em!important;
  }
  #galleria-cta .gallery-cta-title .line1,
  #galleria-cta .gallery-cta-title .line3{display:block!important;white-space:nowrap!important;}

  /* 3) RESPONSABILITÀ UNICA: mai spezzata lettera-per-lettera */
  .big-intro .caps-strong,
  .caps-strong.grad-underline{
    display:inline-block!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
    font-size:clamp(20px, 5.2vw, 24px)!important;
    letter-spacing:.045em!important;
    line-height:1.15!important;
  }
  .sol-proof .big-intro,
  .sol-proof .big-intro[style]{
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(24px, 7vw, 32px)!important;
    line-height:1.28!important;
    text-align:left!important;
    overflow:visible!important;
  }
  .sol-proof li{padding-left:44px!important;word-break:normal!important;overflow-wrap:break-word!important;}
  .sol-proof li strong{word-break:normal!important;overflow-wrap:normal!important;}

  /* 4) IL PROCESSO: versione mobile visibile, compatta, non schema desktop */
  #procUnified,
  .proc-unified{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    background:linear-gradient(180deg,#ffffff,#f7f9fc)!important;
    border:1px solid rgba(11,16,32,.10)!important;
    border-radius:24px!important;
    padding:24px 16px!important;
    box-shadow:0 18px 46px rgba(11,16,32,.10)!important;
    color:#0b1020!important;
  }
  .proc-u-header{width:100%!important;max-width:100%!important;text-align:center!important;margin:0 0 18px!important;}
  .proc-u-header h3,
  .proc-u-header h3[style]{
    margin:0 0 10px!important;
    font-size:clamp(34px, 11vw, 48px)!important;
    line-height:1.05!important;
    color:#0b1020!important;
    letter-spacing:-.035em!important;
    text-align:center!important;
  }
  .proc-u-header h3 span{display:block!important;white-space:normal!important;color:#315dff!important;}
  .proc-u-header p,
  .proc-u-header p[style]{
    width:100%!important;
    max-width:100%!important;
    padding:0!important;
    font-size:13px!important;
    line-height:1.35!important;
    letter-spacing:.08em!important;
    color:#5b6678!important;
    text-align:center!important;
  }
  .proc-u-rows{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;width:100%!important;max-width:100%!important;}
  .proc-u-row,
  .proc-u-row.is-extra{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding:18px 16px!important;
    border:1px solid rgba(11,16,32,.10)!important;
    border-radius:50%!important;
    background:#fff!important;
    box-shadow:none!important;
    overflow:hidden!important;
  }
  .proc-u-left{
    display:grid!important;
    grid-template-columns:48px minmax(0,1fr)!important;
    gap:12px!important;
    align-items:start!important;
    width:100%!important;
    max-width:100%!important;
  }
  .proc-icon,
  .proc-icon[style]{
    width:42px!important;height:42px!important;min-width:42px!important;
    margin:0!important;padding:9px!important;border-radius:12px!important;
    background:linear-gradient(135deg,#1f46ff,#7d2cff)!important;
    color:#fff!important;
  }
  .proc-icon svg{width:100%!important;height:100%!important;stroke:currentColor!important;}
  .proc-u-meta{width:100%!important;max-width:100%!important;min-width:0!important;}
  .proc-phase{font-size:12px!important;line-height:1!important;color:#ff8a00!important;letter-spacing:.10em!important;margin:0 0 5px!important;}
  .proc-name{font-size:22px!important;line-height:1.1!important;color:#0b1020!important;letter-spacing:.01em!important;white-space:normal!important;}
  .proc-mini{display:none!important;}
  .proc-u-sep{display:none!important;}
  .proc-u-right,
  .proc-u-right[style]{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:14px 0 0!important;
    padding:0!important;
    font-size:16px!important;
    line-height:1.55!important;
    color:#30384b!important;
    letter-spacing:0!important;
    text-align:left!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
  }
  .proc-u-right strong{color:#0b1020!important;}

  /* 5) Riquadro finale 3 COSE: ulteriore contenimento testo */
  #criteri-scelta .ib-bridge{
    width:100%!important;max-width:100%!important;padding:30px 18px!important;overflow:hidden!important;
  }
  #criteri-scelta .ib-bridge h3,
  #criteri-scelta .ib-bridge h3[style]{
    width:100%!important;max-width:100%!important;font-size:clamp(28px,8vw,36px)!important;line-height:1.14!important;
    overflow-wrap:break-word!important;word-break:normal!important;white-space:normal!important;
  }
  #criteri-scelta .ib-bridge p,
  #criteri-scelta .ib-bridge p[style]{
    width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;
    overflow-wrap:break-word!important;word-break:normal!important;white-space:normal!important;
  }
}

/* ===== ib-mobile-rescue-v7-final-touch ===== */
@media (max-width: 760px){
  html, body{width:100%!important;max-width:100%!important;overflow-x:hidden!important;}
  body{position:relative!important;}
  body *{box-sizing:border-box!important;}

  /* Titoli / elementi decentrati negli screenshot */
  #chi-sono .chi-value-title,
  #chi-sono .chi-block-label,
  #chi-sono .chi-block-sub,
  #garanzia .card-title,
  #garanzia .card h3,
  #contattaci .contattaci-head,
  #simulazione .simulazione-title,
  #simulazione .simulazione-subtitle,
  .cosa-succede-dopo .csd-eyebrow,
  .cosa-succede-dopo .csd-note{
    text-align:center!important;
  }

  /* CHI SONO: iconcine tagliate nei riquadri Occhio/Attenzione/Esperienza */
  #chi-sono .chi-value,
  #chi-sono .chi-value-content{
    overflow:visible!important;
  }
  #chi-sono .chi-value{
    padding-top:34px!important;
    margin-top:34px!important;
  }
  #chi-sono .chi-value-title{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:14px!important;
    padding:0!important;
    width:100%!important;
    max-width:100%!important;
    line-height:1.25!important;
    white-space:normal!important;
    word-break:normal!important;
  }
  #chi-sono .chi-value-icon{
    position:static!important;
    transform:none!important;
    margin:0 auto 4px!important;
    width:54px!important;
    height:54px!important;
    min-width:54px!important;
    border-radius:16px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:visible!important;
  }
  #chi-sono .chi-value-icon svg{
    width:28px!important;
    height:28px!important;
    display:block!important;
  }
  #chi-sono .chi-value-text{
    text-align:center!important;
    max-width:100%!important;
  }

  /* GALLERIA: non deve venire tagliato */
  #galleria-cta,
  #galleria-cta .container,
  #galleria-cta .gallery-cta-card,
  #galleria-cta .gallery-cta-title{
    overflow:visible!important;
  }
  #galleria-cta .gallery-cta-card{
    width:calc(100vw - 44px)!important;
    max-width:calc(100vw - 44px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:18px!important;
    padding-right:18px!important;
  }
  #galleria-cta .gallery-cta-title .line2,
  .gallery-cta-title .line2{
    display:block!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow:visible!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
    font-size:clamp(38px, 11.2vw, 52px)!important;
    letter-spacing:.01em!important;
    line-height:1!important;
    text-align:center!important;
    transform:none!important;
  }

  /* RESPONSABILITÀ: nessuno spezzamento assurdo */
  .big-intro .caps-strong,
  .caps-strong.grad-underline,
  #garanzia .card-title,
  #garanzia .card h3{
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
  }
  .big-intro .caps-strong,
  .caps-strong.grad-underline{
    display:inline!important;
    font-size:clamp(18px, 4.8vw, 22px)!important;
    letter-spacing:.025em!important;
  }
  #garanzia .card-title,
  #garanzia .card h3{
    font-size:clamp(26px, 8vw, 36px)!important;
    line-height:1.12!important;
    letter-spacing:.01em!important;
  }

  /* Cosa succede dopo la richiesta: tre riquadri uno sopra l'altro */
  .cosa-succede-dopo .csd-steps,
  .csd-steps{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:16px!important;
    width:100%!important;
    max-width:100%!important;
    align-items:stretch!important;
  }
  .cosa-succede-dopo .csd-arrow,
  .csd-arrow{display:none!important;}
  .cosa-succede-dopo .csd-step,
  .csd-step{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    display:grid!important;
    grid-template-columns:56px minmax(0,1fr)!important;
    align-items:center!important;
    gap:14px!important;
    text-align:left!important;
    padding:20px 18px!important;
    overflow:hidden!important;
  }
  .cosa-succede-dopo .csd-num,
  .csd-num{
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    margin:0!important;
    font-size:20px!important;
    line-height:1!important;
  }
  .cosa-succede-dopo .csd-text,
  .csd-text{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    text-align:left!important;
    display:block!important;
  }
  .cosa-succede-dopo .csd-text strong,
  .csd-text strong{
    display:block!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    font-size:clamp(18px,5.4vw,23px)!important;
    line-height:1.16!important;
    letter-spacing:.03em!important;
    text-align:left!important;
  }
  .cosa-succede-dopo .csd-text span,
  .csd-text span{
    display:block!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
    font-size:16px!important;
    line-height:1.45!important;
    margin-top:5px!important;
    text-align:left!important;
  }

  /* Form: bottoni file in italiano e più ordinati */
  .simulazione-form input[type="file"].ib-native-file-hidden{
    position:absolute!important;
    width:1px!important;height:1px!important;
    padding:0!important;margin:-1px!important;
    overflow:hidden!important;clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;border:0!important;
  }
  .ib-file-ui{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    width:100%!important;
    margin-top:8px!important;
  }
  .ib-file-btn{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:54px!important;
    padding:14px 18px!important;
    border-radius:14px!important;
    border:1px solid rgba(11,16,32,.12)!important;
    background:#fff!important;
    color:#404858!important;
    font-weight:800!important;
    letter-spacing:.03em!important;
    text-transform:uppercase!important;
    cursor:pointer!important;
  }
  .ib-file-name{
    display:block!important;
    color:rgba(11,16,32,.55)!important;
    font-size:15px!important;
    line-height:1.35!important;
    text-align:center!important;
  }

  /* Contatti: email lunga non deve uscire dalla card */
  .contattaci-card{width:100%!important;max-width:100%!important;overflow:hidden!important;}
  .contattaci-right,
  .contattaci-right--email{
    width:100%!important;
    max-width:100%!important;
    white-space:normal!important;
    word-break:break-word!important;
    overflow-wrap:anywhere!important;
    font-size:clamp(26px, 9vw, 42px)!important;
    line-height:1.05!important;
    text-align:left!important;
  }
}

/* ===== ib-mobile-rescue-v8-user-fixes ===== */
@media (max-width: 760px){
  html,body{max-width:100%!important;overflow-x:hidden!important;}
  body *{box-sizing:border-box!important;}

  /* 2150: numero sopra, testo sotto */
  .sol-only-badge{
    width:100%!important;
    max-width:100%!important;
    min-height:190px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    padding:24px 16px!important;
    overflow:hidden!important;
    text-align:center!important;
  }
  .sol-only-badge .badge-num{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(62px, 22vw, 102px)!important;
    line-height:.88!important;
    letter-spacing:-.055em!important;
    text-align:center!important;
    white-space:nowrap!important;
    overflow:visible!important;
  }
  .sol-only-badge .badge-label,
  .sol-only-badge .badge-label[style]{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(15px, 4.3vw, 19px)!important;
    line-height:1.15!important;
    letter-spacing:.16em!important;
    text-transform:uppercase!important;
    text-align:center!important;
    white-space:normal!important;
  }

  /* RUOLI: su mobile deve vedersi l'accordion, non la struttura desktop */
  #ruoli .persona-wrap{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    margin-top:18px!important;
  }
  #ruoli .persona-buttons,
  #ruoli .persona-panel,
  #ruoli .persona-stage,
  #ruoli .persona-arrows,
  #ruoli #personaArrows,
  #ruoli #personaPanel{
    display:none!important;
  }
  #ruoli .mobile-role-accordion,
  #ruoli .mobile-role-accordion-static{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    margin:22px auto 0!important;
    overflow:visible!important;
  }
  #ruoli .mobile-role-accordion details{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    margin:0 0 12px!important;
    border-radius:50%!important;
    border:1px solid rgba(11,16,32,.11)!important;
    background:#fff!important;
    overflow:hidden!important;
    box-shadow:0 14px 32px rgba(11,16,32,.08)!important;
  }
  #ruoli .mobile-role-accordion summary{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    padding:18px 18px!important;
    list-style:none!important;
    cursor:pointer!important;
    color:#0b1020!important;
    font-weight:850!important;
    font-size:15px!important;
    line-height:1.25!important;
    letter-spacing:.04em!important;
    text-transform:uppercase!important;
  }
  #ruoli .mobile-role-accordion summary::-webkit-details-marker{display:none!important;}
  #ruoli .mobile-role-accordion summary::after{content:'+'!important;font-size:26px!important;line-height:1!important;color:#ff8a00!important;}
  #ruoli .mobile-role-accordion details[open] summary::after{content:'–'!important;}
  #ruoli .mobile-role-body{padding:0 18px 20px!important;color:#3c4350!important;font-size:15.5px!important;line-height:1.55!important;text-align:left!important;}
  #ruoli .mobile-role-body p{margin:0 0 10px!important;}
  #ruoli .mobile-role-body .role-lead{font-weight:800!important;color:#0b1020!important;}
  #ruoli .mobile-role-chips{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-top:12px!important;}
  #ruoli .mobile-role-chips span{display:inline-flex!important;padding:7px 10px!important;border-radius:999px!important;background:rgba(255,138,0,.10)!important;color:#0b1020!important;font-size:12px!important;font-weight:800!important;}

  /* RESPONSABILITÀ TOTALE: leggermente più piccolo, mai tagliato */
  #garanzia .card,
  #garanzia .card-inner{overflow:hidden!important;}
  #garanzia .card-title,
  #garanzia .card h3.card-title,
  #garanzia .card h3{
    width:100%!important;
    max-width:100%!important;
    text-align:center!important;
    font-size:clamp(27px, 8.2vw, 36px)!important;
    line-height:1.08!important;
    letter-spacing:.045em!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
    overflow:visible!important;
  }

  /* CONTATTACI centrato */
  #contattaci .contatti-title,
  #contattaci .contatti-title[style],
  #contattaci h2,
  #contattaci .section-title,
  #contattaci .contact-title,
  .contatti-title{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    text-align:center!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  #contattaci .section-pre,
  #contattaci .section-rule{justify-content:center!important;text-align:center!important;}

  /* FORM: nessun testo inglese del file input */
  input[type="file"].ib-file-native-hidden,
  input[type="file"].ib-native-file-hidden,
  .simulazione-form input[type="file"],
  .field input[type="file"]{
    position:absolute!important;
    width:1px!important;height:1px!important;
    padding:0!important;margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0 0 0 0)!important;
    white-space:nowrap!important;
    border:0!important;
    opacity:0!important;
    pointer-events:none!important;
  }
  .ib-file-ui-static{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;width:100%!important;margin-top:8px!important;}
  .ib-file-ui-static .ib-file-btn{
    display:flex!important;align-items:center!important;justify-content:center!important;
    min-height:54px!important;padding:14px 18px!important;border-radius:14px!important;
    border:1px solid rgba(11,16,32,.12)!important;background:#fff!important;color:#404858!important;
    font-weight:850!important;letter-spacing:.03em!important;text-transform:uppercase!important;cursor:pointer!important;
  }
  .ib-file-ui-static .ib-file-name{display:block!important;color:rgba(11,16,32,.55)!important;font-size:15px!important;line-height:1.35!important;text-align:center!important;}
  .simulazione-form input[type="file"] + .ib-file-ui:not(.ib-file-ui-static){display:none!important;}

  /* COSA SUCCEDE DOPO / IL PROCESSO: 3 riquadri uno sotto l'altro */
  .cosa-succede-dopo,
  .cosa-succede-dopo.in-modal{width:100%!important;max-width:100%!important;overflow:hidden!important;}
  .cosa-succede-dopo .csd-steps,
  .csd-steps{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:14px!important;
    width:100%!important;
    max-width:100%!important;
  }
  .cosa-succede-dopo .csd-arrow,
  .csd-arrow{display:none!important;}
  .cosa-succede-dopo .csd-step,
  .csd-step{
    display:grid!important;
    grid-template-columns:46px minmax(0,1fr)!important;
    align-items:start!important;
    gap:14px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding:18px!important;
    border-radius:50%!important;
    text-align:left!important;
    overflow:hidden!important;
  }
  .cosa-succede-dopo .csd-num,
  .csd-num{width:46px!important;height:46px!important;min-width:46px!important;margin:0!important;font-size:20px!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important;}
  .cosa-succede-dopo .csd-text,
  .csd-text{width:100%!important;max-width:100%!important;min-width:0!important;text-align:left!important;}
  .cosa-succede-dopo .csd-text strong,
  .csd-text strong{display:block!important;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important;font-size:clamp(18px,5.2vw,22px)!important;line-height:1.16!important;text-align:left!important;}
  .cosa-succede-dopo .csd-text span,
  .csd-text span{display:block!important;white-space:normal!important;word-break:normal!important;overflow-wrap:break-word!important;font-size:15.5px!important;line-height:1.45!important;margin-top:6px!important;text-align:left!important;}
}

/* ===== ib-mobile-rescue-v9-user-fixes ===== */
@media (max-width: 760px){
  html, body{max-width:100%!important; overflow-x:hidden!important;}
  body{min-width:0!important;}
  body *{box-sizing:border-box!important;}

  /* 3 COSE: “CHI realizzerà...” tutto in grassetto */
  #criteri-scelta .chi-realizzera{
    display:inline!important;
    font-weight:900!important;
    color:#0b1020!important;
    letter-spacing:-.015em!important;
    text-transform:none!important;
  }

  /* TRIPLA GARANZIA: più grande su mobile, senza punto dopo */
  #garanzia .tg-title .h1b{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(48px, 14.8vw, 70px)!important;
    line-height:.95!important;
    letter-spacing:-.045em!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    text-align:center!important;
  }
  #garanzia .tg-title .h1a + .h1b{ margin-top:4px!important; }

  /* Garanzia 2: RESPONSABILITÀ non deve essere tagliata */
  #garanzia .card,
  #garanzia .card-inner,
  #garanzia .gar-card,
  #garanzia .garanzia-card{
    overflow:hidden!important;
    max-width:100%!important;
  }
  #garanzia .card-title,
  #garanzia h3.card-title,
  #garanzia .gar-card-title,
  #garanzia .gar-title{
    width:100%!important;
    max-width:100%!important;
    display:block!important;
    text-align:center!important;
    font-size:clamp(21px, 6.25vw, 28px)!important;
    line-height:1.12!important;
    letter-spacing:.015em!important;
    white-space:normal!important;
    overflow:visible!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
  }

  /* FORM: file input italiano, compatto, pulito */
  .simulazione-form input[type="file"],
  input[type="file"].ib-file-native-hidden,
  input[type="file"].ib-native-file-hidden{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    opacity:0!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    pointer-events:none!important;
  }
  .simulazione-form .ib-file-ui,
  .simulazione-form .ib-file-ui-static,
  .ib-file-ui,
  .ib-file-ui-static{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    gap:8px!important;
    width:100%!important;
    max-width:100%!important;
    margin:10px 0 18px!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
  }
  .simulazione-form .ib-file-btn,
  .ib-file-btn{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:180px!important;
    min-height:48px!important;
    padding:12px 20px!important;
    border-radius:14px!important;
    border:1px solid rgba(11,16,32,.16)!important;
    background:#fff!important;
    color:#4c5563!important;
    box-shadow:0 8px 18px rgba(11,16,32,.06)!important;
    font-family:Montserrat,system-ui,sans-serif!important;
    font-weight:850!important;
    font-size:14px!important;
    line-height:1!important;
    letter-spacing:.06em!important;
    text-transform:uppercase!important;
    cursor:pointer!important;
  }
  .simulazione-form .ib-file-name,
  .ib-file-name{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    color:rgba(11,16,32,.55)!important;
    font-size:15px!important;
    line-height:1.35!important;
    text-align:left!important;
    letter-spacing:.02em!important;
    padding-left:2px!important;
  }

  /* RUOLI: accordion mobile visibile, struttura desktop nascosta */
  #ruoli .persona-buttons,
  #ruoli .persona-panel,
  #ruoli .persona-stage,
  #ruoli .persona-arrows,
  #ruoli #personaPanel,
  #ruoli #personaArrows,
  #ruoli .persona-dots{
    display:none!important;
  }
  #ruoli .mobile-role-accordion,
  #ruoli .mobile-role-accordion-static{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    max-width:100%!important;
    margin:22px auto 0!important;
    position:relative!important;
    z-index:5!important;
  }

  /* COSA SUCCEDE DOPO / IL PROCESSO: mai a 3 colonne su mobile */
  .cosa-succede-dopo .csd-steps,
  .csd-steps{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:16px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .cosa-succede-dopo .csd-arrow,
  .csd-arrow{display:none!important;}
  .cosa-succede-dopo .csd-step,
  .csd-step{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    display:grid!important;
    grid-template-columns:48px minmax(0,1fr)!important;
    gap:14px!important;
    align-items:start!important;
    padding:18px!important;
    text-align:left!important;
    overflow:hidden!important;
    border-radius:20px!important;
  }
  .cosa-succede-dopo .csd-text,
  .csd-text{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    text-align:left!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
  }
  .cosa-succede-dopo .csd-text strong,
  .csd-text strong{
    display:block!important;
    text-align:left!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    font-size:clamp(18px,5vw,22px)!important;
    line-height:1.15!important;
    letter-spacing:.03em!important;
  }
  .cosa-succede-dopo .csd-text span,
  .csd-text span{
    display:block!important;
    text-align:left!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
    font-size:15.5px!important;
    line-height:1.45!important;
    margin-top:6px!important;
  }

  /* CONTATTACI centrato */
  #contattaci .contattaci-head,
  #contattaci .contattaci-head h2,
  #contattaci .contatti-title,
  #contattaci h2{
    text-align:center!important;
    margin-left:auto!important;
    margin-right:auto!important;
    width:100%!important;
    max-width:100%!important;
  }
}

/* ===== ib-mobile-rescue-v10-user-corrections ===== */
@media (min-width: 761px){
  #garanzia .gar-title-mobile{display:none!important;}
  #garanzia .gar-title-desktop{display:inline!important;}
}
@media (max-width: 760px){
  html,body{overflow-x:hidden!important; max-width:100%!important;}

  /* LA RICHIESTA: CHI e INSEGNA più forti, parte centrale leggermente meno pesante */
  #criteri-scelta .chi-realizzera{font-weight:800!important;}
  #criteri-scelta .chi-realizzera .chi-strong{font-weight:950!important;}
  #criteri-scelta .chi-realizzera .chi-mid{font-weight:760!important;}

  /* TRIPLA GARANZIA: più compatta, allineata a sinistra e senza stacco eccessivo */
  #garanzia .wrap{max-width:100%!important; overflow:hidden!important;}
  #garanzia .tg-title{
    text-align:left!important;
    font-size:clamp(40px, 10.5vw, 52px)!important;
    line-height:.98!important;
    letter-spacing:-.045em!important;
    margin:0 0 20px!important;
    max-width:100%!important;
  }
  #garanzia .tg-title .h1a,
  #garanzia .tg-title .h1b,
  #garanzia .tg-title .h1c{
    display:block!important;
    text-align:left!important;
    margin:0!important;
    padding:0!important;
    max-width:100%!important;
  }
  #garanzia .tg-title .h1b{
    font-size:clamp(37px, 9.7vw, 48px)!important;
    line-height:.94!important;
    letter-spacing:-.055em!important;
    white-space:nowrap!important;
    transform:none!important;
  }
  #garanzia .tg-title .h1c{
    font-size:clamp(38px, 10.2vw, 50px)!important;
    line-height:1!important;
    margin-top:0!important;
  }
  #garanzia .tg-title br{display:none!important;}

  /* GARANZIA 2: su mobile abbrevia il titolo per evitare il taglio */
  #garanzia .gar-title-desktop{display:none!important;}
  #garanzia .gar-title-mobile{display:inline!important;}
  #garanzia .card-title,
  #garanzia h3.card-title{
    font-size:clamp(31px, 8.2vw, 40px)!important;
    line-height:1.02!important;
    letter-spacing:.06em!important;
    white-space:nowrap!important;
    text-align:center!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
  }

  /* FORM: layout mobile ordinato e compatto */
  .simulazione-form,
  #fullSimulazioneForm,
  #miniSimulazioneForm{
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  .simulazione-form .grid-2{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:16px!important;
    width:100%!important;
    max-width:100%!important;
  }
  .simulazione-form .field{
    width:100%!important;
    max-width:100%!important;
    margin:0 0 18px!important;
  }
  .simulazione-form .field label{
    display:block!important;
    margin:0 0 8px!important;
    font-size:15px!important;
    line-height:1.35!important;
  }
  .simulazione-form input:not([type="file"]),
  .simulazione-form textarea,
  .simulazione-form select{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    font-size:16px!important;
  }
  .simulazione-form input[type="file"]{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    opacity:0!important;
    pointer-events:none!important;
  }
  .simulazione-form .ib-file-ui,
  .simulazione-form .ib-file-ui-static{
    width:100%!important;
    max-width:100%!important;
    display:block!important;
    margin:8px 0 10px!important;
    padding:12px!important;
    background:#fff!important;
    border:1px solid rgba(11,16,32,.10)!important;
    border-radius:16px!important;
    box-shadow:0 8px 18px rgba(11,16,32,.04)!important;
  }
  .simulazione-form .ib-file-btn{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:46px!important;
    padding:12px 14px!important;
    border-radius:12px!important;
    background:#f7f8fb!important;
    border:1px solid rgba(11,16,32,.12)!important;
    color:#4c5563!important;
    font-size:13px!important;
    line-height:1!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
    font-weight:850!important;
  }
  .simulazione-form .ib-file-name{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    margin:8px 0 0!important;
    padding:0!important;
    text-align:center!important;
    font-size:14px!important;
    line-height:1.25!important;
    letter-spacing:.01em!important;
    color:rgba(11,16,32,.50)!important;
  }

  /* COSA SUCCEDE DOPO / PROCESSO: card verticali reali, niente barra compressa */
  .cosa-succede-dopo,
  .cosa-succede-dopo *{max-width:100%!important;}
  .cosa-succede-dopo .csd-steps,
  .csd-steps{
    display:flex!important;
    flex-direction:column!important;
    gap:14px!important;
    align-items:stretch!important;
    width:100%!important;
  }
  .cosa-succede-dopo .csd-step,
  .csd-step{
    display:flex!important;
    flex-direction:row!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    width:100%!important;
    min-height:0!important;
    height:auto!important;
    overflow:visible!important;
    padding:18px 16px!important;
    border-radius:50%!important;
    text-align:left!important;
  }
  .cosa-succede-dopo .csd-num,
  .csd-num{
    flex:0 0 42px!important;
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    margin:0 12px 0 0!important;
  }
  .cosa-succede-dopo .csd-text,
  .csd-text{
    flex:1 1 auto!important;
    min-width:0!important;
    width:auto!important;
    text-align:left!important;
  }
  .cosa-succede-dopo .csd-text strong,
  .csd-text strong{
    display:block!important;
    font-size:clamp(18px, 5.2vw, 22px)!important;
    line-height:1.15!important;
    text-align:left!important;
    white-space:normal!important;
  }
  .cosa-succede-dopo .csd-text span,
  .csd-text span{
    display:block!important;
    font-size:15px!important;
    line-height:1.35!important;
    text-align:left!important;
    margin-top:5px!important;
  }
  .cosa-succede-dopo .csd-arrow,
  .csd-arrow{display:none!important;}
}

/* ===== ib-mobile-rescue-v11-user-fixes ===== */
@media (min-width:761px){
  #garanzia .tg-title .h1b .tripla-word,
  #garanzia .tg-title .h1b .garanzia-word{display:inline!important;}
  #garanzia .tg-title .h1b .tripla-word{margin-right:.18em!important;}
}
@media (max-width:760px){
  /* TRIPLA GARANZIA: più grande, con a capo dopo TRIPLA e senza stacco prima di “che mette” */
  #garanzia .tg-title{
    text-align:left!important;
    font-size:clamp(44px, 11.7vw, 58px)!important;
    line-height:.92!important;
    letter-spacing:-.05em!important;
    margin:0 0 18px!important;
    max-width:100%!important;
  }
  #garanzia .tg-title .h1a,
  #garanzia .tg-title .h1b,
  #garanzia .tg-title .h1c{
    display:block!important;
    text-align:left!important;
    margin:0!important;
    padding:0!important;
    max-width:100%!important;
  }
  #garanzia .tg-title .h1a{
    font-size:.72em!important;
    line-height:.98!important;
    letter-spacing:-.035em!important;
  }
  #garanzia .tg-title .h1b{
    display:block!important;
    white-space:normal!important;
    font-size:1.05em!important;
    line-height:.86!important;
    letter-spacing:-.055em!important;
    margin-top:2px!important;
  }
  #garanzia .tg-title .h1b .tripla-word,
  #garanzia .tg-title .h1b .garanzia-word{
    display:block!important;
    white-space:nowrap!important;
    line-height:.86!important;
    margin:0!important;
  }
  #garanzia .tg-title .h1c{
    font-size:.72em!important;
    line-height:.98!important;
    letter-spacing:-.035em!important;
    margin-top:0!important;
  }
  #garanzia .tg-title br{display:none!important;}

  /* FORM: SCEGLI FILE in piccolo riquadro stondato grigino, con nome file affiancato */
  .simulazione-form .ib-file-ui,
  .simulazione-form .ib-file-ui-static{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:12px!important;
    width:100%!important;
    max-width:100%!important;
    margin:8px 0 12px!important;
    padding:10px 12px!important;
    background:#fff!important;
    border:1px solid rgba(11,16,32,.10)!important;
    border-radius:16px!important;
    box-shadow:0 8px 18px rgba(11,16,32,.035)!important;
  }
  .simulazione-form .ib-file-btn,
  .ib-file-ui-static .ib-file-btn{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    min-height:42px!important;
    padding:10px 18px!important;
    border-radius:11px!important;
    background:#f1f3f6!important;
    border:1px solid rgba(11,16,32,.14)!important;
    color:#535b68!important;
    box-shadow:none!important;
    font-family:Montserrat,system-ui,sans-serif!important;
    font-size:13px!important;
    line-height:1!important;
    font-weight:800!important;
    letter-spacing:.03em!important;
    text-transform:none!important;
    white-space:nowrap!important;
  }
  .simulazione-form .ib-file-name,
  .ib-file-ui-static .ib-file-name{
    flex:1 1 auto!important;
    min-width:0!important;
    display:block!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
    color:rgba(11,16,32,.48)!important;
    font-size:15px!important;
    line-height:1.25!important;
    letter-spacing:.01em!important;
    white-space:normal!important;
    overflow-wrap:break-word!important;
  }
}

/* ===== ib-mobile-rescue-v12-user-fixes ===== */
@media (max-width:760px){
  /* CHI SONO: nei riquadri finali icona davanti al titoletto, non sopra */
  .chi-values{
    display:flex!important;
    flex-direction:column!important;
    gap:22px!important;
    width:100%!important;
    max-width:100%!important;
  }
  .chi-value,
  .chi-value-content{
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
  }
  .chi-value-content{
    padding:30px 22px!important;
  }
  .chi-value-title{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:center!important;
    gap:12px!important;
    width:100%!important;
    max-width:100%!important;
    text-align:center!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    font-size:clamp(20px,5.6vw,25px)!important;
    line-height:1.18!important;
    letter-spacing:.09em!important;
  }
  .chi-value-icon{
    position:static!important;
    inset:auto!important;
    transform:none!important;
    flex:0 0 46px!important;
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    margin:0!important;
    border-radius:13px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .chi-value-icon svg{width:22px!important;height:22px!important;display:block!important;}
  .chi-value-text{
    margin-top:18px!important;
    width:100%!important;
    max-width:100%!important;
    text-align:center!important;
    font-size:clamp(21px,5.8vw,27px)!important;
    line-height:1.55!important;
  }

  /* TRIPLA GARANZIA: grande, ma ordinata su 3 righe e senza vuoto tra GARANZIA e “che mette” */
  #garanzia .tg-title{
    text-align:left!important;
    font-size:clamp(50px,13.2vw,66px)!important;
    line-height:.88!important;
    letter-spacing:-.055em!important;
    margin:0 0 16px!important;
    padding:0!important;
    max-width:100%!important;
  }
  #garanzia .tg-title .h1a,
  #garanzia .tg-title .h1b,
  #garanzia .tg-title .h1c{
    display:block!important;
    text-align:left!important;
    margin:0!important;
    padding:0!important;
    max-width:100%!important;
  }
  #garanzia .tg-title .h1a{
    font-size:.58em!important;
    line-height:.98!important;
    letter-spacing:-.025em!important;
  }
  #garanzia .tg-title .h1b{
    font-size:1em!important;
    line-height:.83!important;
    letter-spacing:-.058em!important;
    margin-top:2px!important;
    white-space:normal!important;
  }
  #garanzia .tg-title .h1b .tripla-word,
  #garanzia .tg-title .h1b .garanzia-word{
    display:block!important;
    white-space:nowrap!important;
    line-height:.83!important;
    margin:0!important;
    padding:0!important;
  }
  #garanzia .tg-title .h1c{
    font-size:.57em!important;
    line-height:1.02!important;
    letter-spacing:-.025em!important;
    margin-top:2px!important;
  }
  #garanzia .tg-title br{display:none!important;}

  /* PROCESSO: card reali una sotto l'altra, non barre sovrapposte */
  .cosa-succede-dopo,
  .cosa-succede-dopo.in-modal{
    width:100%!important;
    max-width:100%!important;
    margin:38px auto 0!important;
    padding:0!important;
    overflow:visible!important;
    text-align:center!important;
  }
  .cosa-succede-dopo .csd-eyebrow{
    display:block!important;
    margin:0 0 20px!important;
    text-align:center!important;
    font-size:11px!important;
    line-height:1.35!important;
  }
  .cosa-succede-dopo .csd-steps,
  .cosa-succede-dopo.in-modal .csd-steps,
  .csd-steps{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    overflow:visible!important;
  }
  .cosa-succede-dopo .csd-step,
  .cosa-succede-dopo.in-modal .csd-step,
  .csd-step{
    display:block!important;
    position:relative!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    margin:0 0 16px!important;
    padding:22px 22px 22px 84px!important;
    border-radius:22px!important;
    text-align:left!important;
    overflow:visible!important;
    background:linear-gradient(180deg,#fff,rgba(255,255,255,.92))!important;
    border:1px solid rgba(11,16,32,.08)!important;
    box-shadow:0 14px 34px rgba(11,16,32,.07)!important;
  }
  .cosa-succede-dopo .csd-num,
  .cosa-succede-dopo.in-modal .csd-num,
  .csd-num{
    position:absolute!important;
    left:22px!important;
    top:22px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    margin:0!important;
    border-radius:14px!important;
    font-size:20px!important;
    line-height:1!important;
    color:#fff!important;
  }
  .cosa-succede-dopo .csd-text,
  .cosa-succede-dopo.in-modal .csd-text,
  .csd-text{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
    overflow:visible!important;
  }
  .cosa-succede-dopo .csd-text strong,
  .cosa-succede-dopo.in-modal .csd-text strong,
  .csd-text strong{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    margin:0 0 8px!important;
    text-align:left!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    font-size:clamp(21px,5.5vw,26px)!important;
    line-height:1.14!important;
    letter-spacing:.035em!important;
    color:#0b1020!important;
  }
  .cosa-succede-dopo .csd-text span,
  .cosa-succede-dopo.in-modal .csd-text span,
  .csd-text span{
    display:block!important;
    margin:0!important;
    text-align:left!important;
    white-space:normal!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    font-size:16px!important;
    line-height:1.45!important;
    color:rgba(11,16,32,.62)!important;
  }
  .cosa-succede-dopo .csd-arrow,
  .cosa-succede-dopo.in-modal .csd-arrow,
  .csd-arrow{display:none!important;}
  .cosa-succede-dopo .csd-note{
    display:block!important;
    margin:14px auto 0!important;
    padding:0!important;
    font-size:19px!important;
    line-height:1.45!important;
    text-align:center!important;
    max-width:92%!important;
  }

  /* FORM: “Scegli file” come pulsante dentro campo bianco */
  .simulazione-form .ib-file-ui,
  .simulazione-form .ib-file-ui-static,
  .ib-file-ui-static{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:12px!important;
    width:100%!important;
    max-width:100%!important;
    min-height:58px!important;
    margin:8px 0 14px!important;
    padding:10px 12px!important;
    background:#fff!important;
    border:1px solid rgba(11,16,32,.10)!important;
    border-radius:16px!important;
    box-shadow:0 8px 18px rgba(11,16,32,.045)!important;
  }
  .simulazione-form .ib-file-btn,
  .ib-file-ui-static .ib-file-btn{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
    width:auto!important;
    min-width:128px!important;
    max-width:150px!important;
    min-height:40px!important;
    padding:9px 14px!important;
    border-radius:10px!important;
    background:#f1f2f5!important;
    border:1px solid rgba(11,16,32,.16)!important;
    color:#4f5763!important;
    box-shadow:none!important;
    font-family:Montserrat,system-ui,sans-serif!important;
    font-size:14px!important;
    line-height:1!important;
    font-weight:700!important;
    letter-spacing:.01em!important;
    text-transform:none!important;
    white-space:nowrap!important;
  }
  .simulazione-form .ib-file-name,
  .ib-file-ui-static .ib-file-name{
    flex:1 1 auto!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
    font-size:14px!important;
    line-height:1.25!important;
    color:rgba(11,16,32,.48)!important;
    white-space:normal!important;
    overflow-wrap:break-word!important;
  }
}

/* ===== mobile-v13-final-request-fixes ===== */
@media (max-width: 680px){
  /* 1) Primo blocco: a BRESCIA sottolineato, senza punto e senza stacco eccessivo */
  #problema .ib-new-title .mobile-brescia-under{
    display: inline-block !important;
    border-bottom: 4px solid transparent !important;
    border-image: linear-gradient(90deg,#1e73ff,#6a49ff,#ff6a00) 1 !important;
    padding-bottom: 4px !important;
    margin-bottom: 0 !important;
    line-height: 1.02 !important;
  }
  #problema .ib-new-title .mobile-ora-devi{
    display: inline-block !important;
    margin-top: 8px !important;
  }
  #problema .ib-new-title{ gap:0 !important; }

  /* 2) Tagline: tre voci una sotto l'altra, senza separatori verticali */
  #problema .sol-tagline{
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 92vw !important;
    margin: 34px auto 22px !important;
    padding: 0 14px !important;
    font-size: clamp(24px, 7.2vw, 34px) !important;
    line-height: 1.18 !important;
    letter-spacing: .07em !important;
    text-align: center !important;
    white-space: normal !important;
    overflow: visible !important;
  }
  #problema .sol-tagline .mobile-sol-line{
    display: block !important;
    width: 100% !important;
    text-align: center !important;
  }
  #problema .sol-tagline .mobile-sol-sep{
    display: none !important;
  }

  /* 3) Titolo garanzia: nuova andata a capo */
  #garanzie .h2-gradient{
    white-space: normal !important;
    line-height: 1.08 !important;
  }
}

/* ===== mobile-v14-copy-fixes ===== */
/* v14: richieste puntuali mobile/desktop */
.ib-problem-grad{
  display:inline-block!important;
  background:linear-gradient(90deg,#2298ff 0%,#604cff 45%,#ff7a1a 100%)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
  color:transparent!important;
  font-weight:900!important;
  letter-spacing:.015em!important;
}
@media (max-width:760px){
  .ib-problem-grad{
    display:inline!important;
    white-space:normal!important;
  }
  #criteri-scelta .ib-bridge h3{
    text-transform:none!important;
  }
}

/* ===== desktop-fix-v15 ===== */
/* DESKTOP FIX v15: form file, gallery icon, ruoli desktop */
@media (min-width: 921px){
  /* RUOLI: su desktop torna il sistema SX/DX; nasconde l'accordion mobile */
  #ruoli .mobile-role-accordion,
  #ruoli .mobile-role-accordion-static{
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    height:0 !important;
    overflow:hidden !important;
    margin:0 !important;
    padding:0 !important;
  }
  #ruoli .persona-wrap{
    display:grid !important;
    grid-template-columns:minmax(360px, 440px) minmax(0, 1fr) !important;
    gap:42px !important;
    align-items:stretch !important;
  }
  #ruoli .persona-buttons{
    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }
  #ruoli .persona-panel,
  #ruoli #personaPanel{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    height:auto !important;
    min-height:420px !important;
  }
  #ruoli .persona-arrows,
  #ruoli #personaArrows{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
  }
  #ruoli .pbtn{ cursor:pointer !important; }
}

/* FORM: nasconde il controllo nativo inglese e usa solo il controllo italiano */
.simulazione-form input[type="file"].ib-file-native-hidden,
.simulazione-form input[type="file"].ib-native-file-hidden,
.simulazione-form input[type="file"]{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
}
.simulazione-form .ib-file-ui{
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
  width:100% !important;
  min-height:56px !important;
  padding:10px 13px !important;
  background:#fff !important;
  border:1px solid rgba(11,16,32,.08) !important;
  border-radius:14px !important;
  box-shadow:0 8px 20px rgba(11,16,32,.035) !important;
  box-sizing:border-box !important;
}
.simulazione-form .ib-file-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  min-width:98px !important;
  height:34px !important;
  padding:0 15px !important;
  border-radius:8px !important;
  border:1px solid rgba(11,16,32,.13) !important;
  background:#f3f5f8 !important;
  color:#505766 !important;
  font-size:14px !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  cursor:pointer !important;
  line-height:1 !important;
}
.simulazione-form .ib-file-name{
  display:block !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  color:#4b5563 !important;
  font-size:15px !important;
  font-weight:400 !important;
  letter-spacing:.01em !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

/* GALLERIA: niente iconcina nel bottone */
#galleria-cta a svg,
.galleria-cta a svg,
.gallery-cta a svg,
.gallery-full-cta svg,
a[href*="galleria"] svg{
  display:none !important;
}

@media (max-width: 920px){
  .simulazione-form .ib-file-ui{min-height:62px !important;}
  .simulazione-form .ib-file-btn{min-width:110px !important; height:38px !important;}
}

/* ===== desktop-v17-simulazione-spacing-fix ===== */
@media (min-width: 921px){
  /* Allineamento spazi riquadro SIMULAZIONE FOTOREALISTICA come mockup richiesto */
  html body #vedi-prima .copy-solution{
    padding: 20px 34px 22px !important;
    margin: 20px 0 24px !important;
    background:
      radial-gradient(circle at 7% 0%, rgba(255,138,0,.28), transparent 34%),
      linear-gradient(135deg, rgba(255,122,0,.23), rgba(255,138,0,.135) 46%, rgba(255,122,0,.18)) !important;
    border-left: 4px solid #ff7a1a !important;
    border-top: 1px solid rgba(255,138,0,.34) !important;
    border-right: 1px solid rgba(255,138,0,.18) !important;
    border-bottom: 1px solid rgba(255,138,0,.18) !important;
  }
  html body #vedi-prima .copy-solution p{
    margin: 0 0 8px !important;
    line-height: 1.24 !important;
  }
  html body #vedi-prima .copy-solution p:first-child{
    margin: 0 0 6px !important;
    line-height: 1.18 !important;
  }
  html body #vedi-prima .copy-solution .sim-prova-frase{
    font-size: 20px !important;
    line-height: 1.18 !important;
    font-weight: 500 !important;
    letter-spacing: .01em !important;
  }
  html body #vedi-prima .copy-solution .highlight{
    display: block !important;
    margin: 0 0 7px !important;
    font-size: 1.56em !important;
    line-height: 1.02 !important;
    letter-spacing: .11em !important;
  }
  html body #vedi-prima .copy-solution p:nth-child(2){
    margin: 0 0 10px !important;
    line-height: 1.22 !important;
  }
  html body #vedi-prima .copy-solution p:nth-child(3){
    margin: 0 0 8px !important;
    line-height: 1.22 !important;
  }
  html body #vedi-prima .copy-solution p:last-child{
    margin-bottom: 0 !important;
    line-height: 1.22 !important;
  }
}

/* ===== desktop-v20-simulazione-only-fix ===== */
@media (min-width: 921px){
  html body #vedi-prima .copy-solution{
    padding: 18px 34px 20px !important;
    margin: 20px 0 24px !important;
    background:
      radial-gradient(circle at 7% 0%, rgba(255,138,0,.34), transparent 35%),
      linear-gradient(135deg, rgba(255,122,0,.28), rgba(255,138,0,.15) 44%, rgba(255,122,0,.20)) !important;
    border-left: 4px solid #ff7a1a !important;
    border-top: 1px solid rgba(255,138,0,.40) !important;
    border-right: 1px solid rgba(255,138,0,.22) !important;
    border-bottom: 1px solid rgba(255,138,0,.22) !important;
  }
  html body #vedi-prima .copy-solution p{ margin: 0 !important; line-height: 1.14 !important; }
  html body #vedi-prima .copy-solution p:first-child{ margin: 0 0 8px !important; line-height: 1.14 !important; }
  html body #vedi-prima .copy-solution .sim-prova-frase{
    display:block !important;
    font-size: 20px !important;
    line-height: 1.13 !important;
    margin: 0 0 8px !important;
    letter-spacing: .01em !important;
    font-weight: 500 !important;
    text-transform: none !important;
  }
  html body #vedi-prima .copy-solution .sim-prova-frase strong{
    font-weight: 850 !important;
    letter-spacing: .04em !important;
  }
  html body #vedi-prima .copy-solution h3,
  html body #vedi-prima .copy-solution .solution-title,
  html body #vedi-prima .copy-solution .sim-title,
  html body #vedi-prima .copy-solution strong:first-of-type{
    font-size: clamp(36px, 4.0vw, 54px) !important;
    line-height: .98 !important;
    margin: 0 0 9px !important;
    letter-spacing: .13em !important;
  }
  html body #vedi-prima .copy-solution .sim-main-line,
  html body #vedi-prima .copy-solution p:nth-of-type(2){
    margin-top: 0 !important;
    margin-bottom: 8px !important;
    line-height: 1.18 !important;
  }
  html body #vedi-prima .copy-solution .orange,
  html body #vedi-prima .copy-solution .accent{ margin-top: 8px !important; margin-bottom: 3px !important; }
}

/* ===== ruoli-css ===== */
#ruoli .persona-wrap { display:grid;
      gap: var(--gap);
      grid-template-columns: 1fr 1.38fr;
      align-items:stretch;
      position: relative; }
#ruoli .persona-arrows { position:absolute;
      width: 62px;
      height: 42px;
      display:flex;
      align-items:center;
      justify-content:center;
      gap: 6px;
      pointer-events:none;
      filter: drop-shadow(0 10px 18px rgba(15,23,42,.18));
      z-index: 4;
      left: 0; 
      top: 0; }
#ruoli .persona-arrows span { width: 0; height: 0;
      border-top: 10px solid transparent;
      border-bottom: 10px solid transparent;
      border-left: 14px solid rgba(124,58,237,.90);
      opacity:.25;
      transform: translateX(0);
      animation: arrowWave 1.25s infinite; }
#ruoli .persona-arrows span:nth-child(2) { animation-delay: .16s; }
#ruoli .persona-arrows span:nth-child(3) { animation-delay: .32s; }
@keyframes arrowWave{
  0%{ opacity:.18; transform: translateX(0);}
#ruoli 35% { opacity:1; transform: translateX(0); }
#ruoli 70% { opacity:.35; transform: translateX(0); }
#ruoli 100% { opacity:.18; transform: translateX(0); }
#ruoli.band.mid .persona-arrows span { border-left-color: rgba(124,58,237,.90); }
#ruoli.band.dark .persona-arrows span { border-left-color: rgba(255,255,255,.78); }
#ruoli .persona-buttons { display:grid; gap: 10px; padding-right: 62px; }
#ruoli .pbtn { width:100%;
      text-align:right;
      display:flex; justify-content:space-between; align-items:center; gap:12px;
      padding: 9px 14px;
      border-radius: 16px;
      border: 1px solid var(--line);
      background: #fff;
      cursor:pointer;
      font-weight: 800;
      transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease, color .15s ease; }
#ruoli .pbtn > span:last-child { color: #94a3b8; font-weight: 600; font-size: 13px; text-align: right; flex-shrink: 0; margin-left: auto; }

#ruoli .role-stack{ display:flex; flex-direction:column; gap:6px; line-height:1.05; }
#ruoli .role-part{ display:block; }
#ruoli .role-divider{ display:block; height:1px; width:100%; background: rgba(11,16,32,.14); border-radius: 99px; }
#ruoli .pbtn.active .role-divider{ background: rgba(255,255,255,.28); }
#ruoli .persona-panel .role-divider{ background: rgba(255,255,255,.22); }

#ruoli .ruoli-title{ letter-spacing: -0.02em; }
#ruoli .ruoli-title .caps{ letter-spacing: -0.01em; }

#ruoli .pbtn:hover { border-color: rgba(79,70,229,.35); box-shadow: 0 10px 26px rgba(15,23,42,.08); transform: translateY(-1px); }
#ruoli .pbtn.active { border-color: transparent;
      background: var(--grad-role);
      color: #fff;
      box-shadow: 0 20px 54px rgba(79,70,229,.24);
      transform: translateY(-1px); }
#ruoli .pbtn.active span { color: rgba(255,255,255,.86); }
#ruoli .persona-panel { padding: 18px;
      border-radius: 18px;
      background-image: var(--grad-panel);
      color:#fff;
      transition: background .25s ease, color .25s ease;
      margin-left: 10px;
      display:flex;
      flex-direction:column;
      gap: 10px; }
#ruoli .persona-footer { margin-top:auto; }
#ruoli .persona-footer .chips { margin-top: 0; }
#ruoli .persona-footer .micro { margin-top: 12px; }
#ruoli .persona-panel p, #ruoli .persona-panel .lead, #ruoli .persona-panel .micro { color: rgba(255,255,255,.88); }
#ruoli .persona-panel .chip { background: rgba(255,255,255,.92);
      border-color: rgba(255,255,255,.45);
      color: #0f172a;
      box-shadow: 0 12px 26px rgba(0,0,0,.14); }
#ruoli .persona-panel .chip svg { color: #0f172a; }
#ruoli .persona-panel h3 { margin-bottom: 6px; }
#ruoli .persona-panel .micro { margin-bottom: 0; }
#ruoli.band.dark .pbtn { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); color: rgba(255,255,255,.92); }
#ruoli.band.dark .pbtn span { color: rgba(255,255,255,.70); }
#ruoli.band.dark .pbtn.active { border-color: rgba(255,255,255,.22);
      background: var(--grad);
      color: #fff;
      box-shadow: 0 22px 60px rgba(0,0,0,.35); }
#ruoli.band.dark .pbtn.active span { color: rgba(255,255,255,.86); }

.orange-bullets{list-style:none;padding-left:0}
.orange-bullets li{position:relative;padding-left:22px;margin-bottom:10px}
.orange-bullets li::before{content:"•";color:#ff7a00;font-size:22px;position:absolute;left:0;top:-2px}


} /* v64: chiusura che il browser applicava in automatico */

/* ===== ruoliStyles ===== */
/* RUOLI (scoped) - injected to preserve original look without touching global styles */
section#ruoli{
  background: radial-gradient(900px 420px at 10% 20%, rgba(37,99,235,.10), transparent 55%),
              radial-gradient(700px 360px at 70% 0%, rgba(124,58,237,.10), transparent 55%),
              #f6f7fb;
}
#ruoli{
  --blue:#2563eb;
  --indigo:#4f46e5;
  --violet:#7c3aed;
  --line: rgba(15,23,42,.10);
  --grad-role: linear-gradient(135deg, var(--blue) 0%, var(--indigo) 38%, var(--violet) 82%, #a855f7 120%);
  --grad-panel: linear-gradient(135deg, var(--violet) 0%, #a855f7 55%, #c084fc 110%);
}

/* layout */
#ruoli .persona-wrap{
  display:grid;
  gap: clamp(14px, 2vw, 24px);
  grid-template-columns: 1fr 1.38fr;
  align-items:stretch;
  position: relative;
}

#ruoli .persona-buttons{ display:grid; gap:10px; padding-right: 62px; }

/* pulsantoni */
#ruoli .pbtn{
  width:100%;
  text-align:left;
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding: 14px 14px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: #fff;
  cursor:pointer;
  font-weight: 800;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease, color .15s ease;
}
#ruoli .pbtn > span:last-child{ color: #94a3b8; font-weight: 600; font-size: 13px; text-align: right; margin-left: auto; }
#ruoli .pbtn:hover{
  border-color: rgba(79,70,229,.35);
  box-shadow: 0 10px 26px rgba(15,23,42,.08);
  transform: translateY(-1px);
}
#ruoli .pbtn.active{
  border-color: transparent;
  background: var(--grad-role);
  color:#fff;
  box-shadow: 0 20px 54px rgba(79,70,229,.24);
  transform: translateY(-1px);
}
#ruoli .pbtn.active span{ color: rgba(255,255,255,.86); }

/* pannello DX */
#ruoli .persona-panel{
  padding: 18px;
  border-radius: 18px;
  background-image: var(--grad-panel);
  color:#fff;
  transition: background .25s ease, color .25s ease;
  margin-left: 10px;
  display:flex;
  flex-direction:column;
  gap: 10px;
  box-shadow: 0 18px 50px rgba(15,23,42,.10);
}
#ruoli .persona-panel p{ color: rgba(255,255,255,.88); }
#ruoli .persona-panel .lead{ color: rgba(255,255,255,.92); }
#ruoli .persona-panel .micro{ color: rgba(255,255,255,.88); margin-bottom:0; }

/* footer del riquadro: chips + testo sempre in basso */
#ruoli .persona-footer{ margin-top:auto; }
#ruoli .persona-footer .chips{ margin-top:0; }
#ruoli .persona-footer .micro{ margin-top:12px; }

/* chips nel pannello, layout a 2 colonne, stile bullet point */
#ruoli .chips{ display:flex; flex-direction:column; gap: 10px; margin-top: 6px; align-items: flex-start; }
#ruoli .chip{
  display:flex; align-items:center; gap:8px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: none;
  color: rgba(255,255,255,.92);
  font-weight: 700;
  font-size: 15px;
  box-shadow: none;
  letter-spacing: .01em;
}
#ruoli .chip svg{ width:16px; height:16px; flex-shrink:0; color: rgba(255,255,255,.5); }
#ruoli .chip svg{ width:18px; height:18px; color:#0f172a; }

/* tripla freccetta */
#ruoli .persona-arrows{
  position:absolute;
  width: 62px;
  height: 42px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 6px;
  pointer-events:none;
  filter: drop-shadow(0 10px 18px rgba(15,23,42,.18));
  z-index: 4;
  left:0; top:0;
}
#ruoli .persona-arrows span{
  width:0; height:0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 14px solid rgba(124,58,237,.90);
  opacity:.25;
  transform: translateX(0);
  animation: ruoliArrowWave 1.25s infinite;
}
#ruoli .persona-arrows span:nth-child(2){ animation-delay: .16s; }
#ruoli .persona-arrows span:nth-child(3){ animation-delay: .32s; }

@keyframes ruoliArrowWave{
  0%{ opacity:.18; transform: translateX(0); }
  35%{ opacity:1; transform: translateX(0); }
  70%{ opacity:.35; transform: translateX(0); }
  100%{ opacity:.18; transform: translateX(0); }
}

/* responsive */
@media (max-width: 920px){
  #ruoli .persona-wrap{ grid-template-columns: 1fr; }
  #ruoli .persona-buttons{ padding-right: 0; }
  #ruoli .persona-panel{ margin-left: 0; }
  #ruoli .persona-arrows{ display:none; }
}

.orange-bullets{list-style:none;padding-left:0}
.orange-bullets li{position:relative;padding-left:22px;margin-bottom:10px}
.orange-bullets li::before{content:"•";color:#ff7a00;font-size:22px;position:absolute;left:0;top:-2px}

/* ===== ruoli-final-v23-user-fix ===== */
@media (min-width: 921px){
  /* RUOLI v23: pulsanti SX leggermente più stretti, pannello DX più largo */
  #ruoli .persona-wrap{
    grid-template-columns: minmax(410px, 455px) 62px minmax(640px, 1fr) !important;
    gap: 16px !important;
    max-width: 1290px !important;
  }
  #ruoli .ruoli-cta-head{
    padding-right:62px !important;
  }
  #ruoli .persona-buttons .pbtn{
    padding: 11px 16px !important;
    gap: 14px !important;
  }
  #ruoli .persona-panel,
  #ruoli #personaPanel{
    min-width:0 !important;
    width:100% !important;
  }

  /* Freccette: stabili, non seguono più il cambio pulsante e non vibrano */
  #ruoli .persona-arrows,
  #ruoli #personaArrows{
    width:62px !important;
    height:46px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    overflow:visible !important;
    opacity:1 !important;
    pointer-events:none !important;
  }
  #ruoli .persona-arrows span,
  #ruoli #personaArrows span{
    border-top:12px solid transparent !important;
    border-bottom:12px solid transparent !important;
    border-left:18px solid rgba(124,58,237,.92) !important;
  }
  #ruoli .persona-arrows span:nth-child(1),
  #ruoli #personaArrows span:nth-child(1){ opacity:.54 !important; }
  #ruoli .persona-arrows span:nth-child(2),
  #ruoli #personaArrows span:nth-child(2){ opacity:.76 !important; }
  #ruoli .persona-arrows span:nth-child(3),
  #ruoli #personaArrows span:nth-child(3){ opacity:.98 !important; }
}

/* ===== ruoli-final-v24-user-fix ===== */
@media (min-width: 921px){
  /* RUOLI v24: frecce fisse e frasette centrate in altezza */
  #ruoli .persona-wrap{
    grid-template-columns: minmax(400px, 440px) 78px minmax(660px, 1fr) !important;
    gap: 14px !important;
  }
  #ruoli .ruoli-cta-head{ padding-right:78px !important; }
  #ruoli .persona-buttons .pbtn{
    padding: 11px 15px !important;
    gap: 12px !important;
    align-items: center !important;
  }
  #ruoli .persona-buttons .pbtn .pbtn-desc{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    align-self:stretch !important;
    margin:auto 0 !important;
    text-align:right !important;
    line-height:1.16 !important;
  }
  #ruoli .persona-arrows,
  #ruoli #personaArrows{
    width:78px !important;
    height:48px !important;
    position:absolute !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    overflow:visible !important;
    pointer-events:none !important;
    z-index:3 !important;
    opacity:1 !important;
    transform:none !important;
  }
  #ruoli .persona-arrows span,
  #ruoli #personaArrows span{
    border-top:13px solid transparent !important;
    border-bottom:13px solid transparent !important;
    border-left:20px solid rgba(124,58,237,.98) !important;
  }
  #ruoli .persona-arrows span:nth-child(1),
  #ruoli #personaArrows span:nth-child(1){ opacity:.68 !important; }
  #ruoli .persona-arrows span:nth-child(2),
  #ruoli #personaArrows span:nth-child(2){ opacity:.84 !important; }
  #ruoli .persona-arrows span:nth-child(3),
  #ruoli #personaArrows span:nth-child(3){ opacity:1 !important; }
}

/* ===== ruoli-v26-active-arrows-stable ===== */
@media (min-width: 921px){
  /* v26: mantengo i riquadri corretti, rendo le frecce mobili ma stabili */
  #ruoli .persona-wrap{
    grid-template-columns: minmax(385px, 425px) 88px minmax(690px, 1fr) !important;
    gap:12px !important;
    align-items:stretch !important;
    position:relative !important;
  }
  #ruoli .ruoli-cta-head{ padding-right:88px !important; }
  #ruoli .persona-buttons{
    grid-column:1 !important;
    display:grid !important;
    align-content:stretch !important;
    gap:10px !important;
    padding-right:0 !important;
  }
  #ruoli .persona-buttons .pbtn{
    display:grid !important;
    grid-template-columns:minmax(150px,1fr) minmax(150px,.92fr) !important;
    align-items:center !important;
    min-height:64px !important;
    padding:10px 16px !important;
    gap:14px !important;
  }
  #ruoli .persona-buttons .pbtn .role-stack{
    align-self:center !important;
    justify-self:start !important;
  }
  #ruoli .persona-buttons .pbtn .pbtn-desc{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    align-self:stretch !important;
    justify-self:end !important;
    height:100% !important;
    min-height:100% !important;
    margin:0 !important;
    text-align:right !important;
    line-height:1.18 !important;
    white-space:normal !important;
  }
  #ruoli .persona-panel,
  #ruoli #personaPanel{
    grid-column:3 !important;
    margin-left:0 !important;
    width:100% !important;
    min-width:0 !important;
  }
  #ruoli .persona-arrows,
  #ruoli #personaArrows{
    position:absolute !important;
    grid-column:auto !important;
    grid-row:auto !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:78px !important;
    height:48px !important;
    gap:7px !important;
    overflow:visible !important;
    pointer-events:none !important;
    z-index:8 !important;
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
    animation:none !important;
    right:auto !important;
    bottom:auto !important;
  }
  #ruoli .persona-arrows span,
  #ruoli #personaArrows span{
    display:block !important;
    width:0 !important;
    height:0 !important;
    border-top:12px solid transparent !important;
    border-bottom:12px solid transparent !important;
    border-left:19px solid rgba(124,58,237,.98) !important;
    transform:none !important;
    transition:none !important;
    animation:none !important;
  }
  #ruoli .persona-arrows span:nth-child(1),
  #ruoli #personaArrows span:nth-child(1){ opacity:.72 !important; }
  #ruoli .persona-arrows span:nth-child(2),
  #ruoli #personaArrows span:nth-child(2){ opacity:.88 !important; }
  #ruoli .persona-arrows span:nth-child(3),
  #ruoli #personaArrows span:nth-child(3){ opacity:1 !important; }
}

/* ===== ruoli-v27-hover-arrows-definitivo ===== */
@media (min-width: 921px){
  /* Mantieni riquadri corretti, correggi solo frecce + hover */
  #ruoli .persona-wrap{
    grid-template-columns: minmax(385px,425px) 88px minmax(690px,1fr) !important;
    gap:12px !important;
    align-items:stretch !important;
    position:relative !important;
  }
  #ruoli .persona-buttons{ grid-column:1 !important; }
  #ruoli #personaPanel, #ruoli .persona-panel{ grid-column:3 !important; }
  #ruoli .persona-buttons .pbtn .pbtn-desc{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    align-self:stretch !important;
    height:100% !important;
    margin:0 !important;
    text-align:right !important;
    line-height:1.16 !important;
  }
  #ruoli #personaArrows, #ruoli .persona-arrows{
    position:absolute !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:78px !important;
    height:48px !important;
    gap:7px !important;
    overflow:visible !important;
    pointer-events:none !important;
    z-index:9 !important;
    opacity:1 !important;
    transition:none !important;
    animation:none !important;
  }
  #ruoli #personaArrows span, #ruoli .persona-arrows span{
    display:block !important;
    width:0 !important;
    height:0 !important;
    border-top:12px solid transparent !important;
    border-bottom:12px solid transparent !important;
    border-left:19px solid rgba(124,58,237,.98) !important;
    transform:none !important;
    transition:none !important;
    animation:none !important;
  }
  #ruoli #personaArrows span:nth-child(1), #ruoli .persona-arrows span:nth-child(1){ opacity:.72 !important; }
  #ruoli #personaArrows span:nth-child(2), #ruoli .persona-arrows span:nth-child(2){ opacity:.88 !important; }
  #ruoli #personaArrows span:nth-child(3), #ruoli .persona-arrows span:nth-child(3){ opacity:1 !important; }
}

/* ===== ruoli-v28-stabilizza-pulsanti-anima-frecce ===== */
@media (min-width: 921px){
  /* I pulsanti non devono cambiare dimensione/posizione su hover o active */
  #ruoli .persona-buttons .pbtn,
  #ruoli .persona-buttons .pbtn:hover,
  #ruoli .persona-buttons .pbtn:focus,
  #ruoli .persona-buttons .pbtn:focus-visible,
  #ruoli .persona-buttons .pbtn.active{
    transform:none !important;
    box-sizing:border-box !important;
    min-height:76px !important;
    height:auto !important;
    margin:0 !important;
    border-width:1px !important;
  }
  #ruoli .persona-buttons .pbtn:hover{
    box-shadow:0 10px 26px rgba(15,23,42,.08) !important;
  }
  #ruoli .persona-buttons .pbtn.active{
    box-shadow:0 20px 54px rgba(79,70,229,.24) !important;
  }

  /* Frecce: seguono il pulsante attivo via JS, ma l'animazione è solo interna */
  #ruoli #personaArrows,
  #ruoli .persona-arrows{
    transition:top .14s ease-out, left .14s ease-out !important;
    transform:none !important;
    overflow:visible !important;
    pointer-events:none !important;
  }
  #ruoli #personaArrows span,
  #ruoli .persona-arrows span{
    animation:ibRoleArrowPulse 1.25s ease-in-out infinite !important;
    transform:translateX(0) !important;
    will-change:opacity !important;
  }
  #ruoli #personaArrows span:nth-child(1),
  #ruoli .persona-arrows span:nth-child(1){
    animation-delay:0s !important;
  }
  #ruoli #personaArrows span:nth-child(2),
  #ruoli .persona-arrows span:nth-child(2){
    animation-delay:.16s !important;
  }
  #ruoli #personaArrows span:nth-child(3),
  #ruoli .persona-arrows span:nth-child(3){
    animation-delay:.32s !important;
  }
}
@keyframes ibRoleArrowPulse{
  0%{opacity:.28;}
  35%{opacity:1;}
  70%{opacity:.45;}
  100%{opacity:.28;}
}

/* ===== ruoli-v29-studio-stabile-pacchetto-piu-compatto ===== */
@media (min-width: 921px){
  /* v29: stabilizza il penultimo pulsante e compatta leggermente il blocco senza toccare l'hover */
  #ruoli .persona-wrap{
    grid-template-columns:minmax(370px,405px) 82px minmax(720px,1fr) !important;
    gap:10px !important;
    align-items:stretch !important;
  }
  #ruoli .persona-buttons{
    gap:8px !important;
    align-content:stretch !important;
    grid-auto-rows:70px !important;
  }
  #ruoli .persona-buttons .pbtn,
  #ruoli .persona-buttons .pbtn:hover,
  #ruoli .persona-buttons .pbtn:focus,
  #ruoli .persona-buttons .pbtn:focus-visible,
  #ruoli .persona-buttons .pbtn.active{
    height:70px !important;
    min-height:70px !important;
    max-height:70px !important;
    padding:8px 14px !important;
    margin:0 !important;
    transform:none !important;
    border-width:1px !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
  }
  #ruoli .persona-buttons .pbtn .role-stack{
    min-height:0 !important;
    justify-content:center !important;
    gap:2px !important;
  }
  #ruoli .persona-buttons .pbtn .role-part{
    line-height:1.02 !important;
  }
  #ruoli .persona-buttons .pbtn .role-divider{
    margin:2px 0 !important;
  }
  #ruoli .persona-buttons .pbtn .pbtn-desc{
    height:100% !important;
    min-height:100% !important;
    align-items:center !important;
    line-height:1.12 !important;
  }
  /* Il pulsante Studio è quello che faceva crescere il blocco: lo teniamo nello stesso ingombro degli altri. */
  #ruoli .persona-buttons .pbtn[data-persona="studio"] .role-part{
    font-size:12.6px !important;
    letter-spacing:.045em !important;
  }
  #ruoli .persona-panel,
  #ruoli #personaPanel{
    height:538px !important;
    min-height:538px !important;
    max-height:538px !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
  }
  #ruoli .persona-arrows,
  #ruoli #personaArrows{
    width:82px !important;
    height:48px !important;
  }
}

/* ===== ruoli-v30-frecce-stabili-header-allineato ===== */
@media (min-width: 921px){
  /* Testo "Qual è il tuo ruolo": centrato sulla stessa larghezza dei pulsanti */
  #ruoli .ruoli-cta-head{
    grid-column:1 / 2 !important;
    width:100% !important;
    max-width:none !important;
    justify-self:stretch !important;
    align-self:end !important;
    text-align:center !important;
    padding:0 !important;
    padding-right:0 !important;
    margin:0 0 18px 0 !important;
    box-sizing:border-box !important;
  }
  #ruoli .ruoli-cta-rule{
    width:100% !important;
    max-width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
    justify-content:center !important;
  }
  #ruoli .ruoli-cta-title{
    width:100% !important;
    max-width:100% !important;
    margin:10px auto 12px !important;
    text-align:center !important;
    font-size:clamp(42px, 4.2vw, 58px) !important;
    line-height:1.03 !important;
    letter-spacing:-.028em !important;
  }
  #ruoli .ruoli-cta-sub{
    width:100% !important;
    max-width:100% !important;
    margin:0 auto !important;
    text-align:center !important;
    font-size:18px !important;
    line-height:1.42 !important;
  }
  #ruoli .ruoli-cta-arrow{
    margin:18px auto 0 !important;
  }

  /* Frecce: posizione assoluta calcolata sul layout, non sul viewport. */
  #ruoli .persona-wrap{
    position:relative !important;
  }
  #ruoli #personaArrows,
  #ruoli .persona-arrows{
    position:absolute !important;
    width:82px !important;
    height:48px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    z-index:8 !important;
    pointer-events:none !important;
    overflow:visible !important;
    transform:none !important;
    transition:top .16s ease-out, left .16s ease-out !important;
  }
  #ruoli #personaArrows span,
  #ruoli .persona-arrows span{
    width:0 !important;
    height:0 !important;
    border-top:12px solid transparent !important;
    border-bottom:12px solid transparent !important;
    border-left:17px solid rgba(124,58,237,.92) !important;
    opacity:.35 !important;
    transform:none !important;
    animation:ibRoleArrowWaveV30 1.15s ease-in-out infinite !important;
  }
  #ruoli #personaArrows span:nth-child(1),
  #ruoli .persona-arrows span:nth-child(1){ animation-delay:0s !important; }
  #ruoli #personaArrows span:nth-child(2),
  #ruoli .persona-arrows span:nth-child(2){ animation-delay:.15s !important; }
  #ruoli #personaArrows span:nth-child(3),
  #ruoli .persona-arrows span:nth-child(3){ animation-delay:.30s !important; }
}
@keyframes ibRoleArrowWaveV30{
  0%{opacity:.25; transform:translateX(0);}
  34%{opacity:1; transform:translateX(2px);}
  68%{opacity:.50; transform:translateX(0);}
  100%{opacity:.25; transform:translateX(0);}
}

/* ===== form-file-button-v33 ===== */
/* FORM FILE: pulsante piccolo dentro campo bianco, testo file affiancato */
.simulazione-form input[type="file"]{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
}
.simulazione-form .ib-file-ui,
.simulazione-form .ib-file-ui-static,
#fullSimulazioneForm .ib-file-ui,
#modalFullSimulazioneForm .ib-file-ui{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:14px!important;
  width:100%!important;
  max-width:100%!important;
  min-height:56px!important;
  margin:8px 0 12px!important;
  padding:10px 13px!important;
  background:#fff!important;
  border:1px solid rgba(11,16,32,.10)!important;
  border-radius:15px!important;
  box-shadow:0 8px 18px rgba(11,16,32,.035)!important;
  box-sizing:border-box!important;
}
.simulazione-form .ib-file-btn,
.simulazione-form .ib-file-ui-static .ib-file-btn,
#fullSimulazioneForm .ib-file-btn,
#modalFullSimulazioneForm .ib-file-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  width:auto!important;
  min-width:96px!important;
  max-width:none!important;
  height:34px!important;
  min-height:34px!important;
  padding:0 15px!important;
  border-radius:8px!important;
  border:1px solid rgba(11,16,32,.14)!important;
  background:#f3f5f8!important;
  color:#4f5663!important;
  box-shadow:none!important;
  font-family:Montserrat,system-ui,sans-serif!important;
  font-size:14px!important;
  line-height:1!important;
  font-weight:500!important;
  letter-spacing:0!important;
  text-transform:none!important;
  white-space:nowrap!important;
  cursor:pointer!important;
}
.simulazione-form .ib-file-name,
.simulazione-form .ib-file-ui-static .ib-file-name,
#fullSimulazioneForm .ib-file-name,
#modalFullSimulazioneForm .ib-file-name{
  display:block!important;
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
  font-family:Montserrat,system-ui,sans-serif!important;
  font-size:15px!important;
  line-height:1.25!important;
  font-weight:400!important;
  letter-spacing:.01em!important;
  color:rgba(11,16,32,.58)!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
@media (max-width:760px){
  .simulazione-form .ib-file-ui,
  .simulazione-form .ib-file-ui-static{
    min-height:56px!important;
    gap:10px!important;
    padding:10px 11px!important;
  }
  .simulazione-form .ib-file-btn,
  .simulazione-form .ib-file-ui-static .ib-file-btn{
    min-width:92px!important;
    height:34px!important;
    min-height:34px!important;
    padding:0 12px!important;
    font-size:13px!important;
  }
  .simulazione-form .ib-file-name,
  .simulazione-form .ib-file-ui-static .ib-file-name{
    font-size:14px!important;
    white-space:normal!important;
    overflow-wrap:break-word!important;
  }
}

/* ===== simulazione-v34-layout-fix ===== */
@media (min-width: 921px){
  html body #vedi-prima .copy-solution{
    padding: 16px 34px 24px !important;
    margin: 20px 0 24px !important;
    background:
      radial-gradient(circle at 0% 0%, rgba(255,122,0,.18), transparent 32%),
      linear-gradient(135deg, #171b2d 0%, #1b1b27 48%, #151827 100%) !important;
    border-left: 4px solid #ff7a1a !important;
    border-top: 1px solid rgba(255,122,0,.48) !important;
    border-right: 1px solid rgba(255,122,0,.18) !important;
    border-bottom: 1px solid rgba(255,122,0,.18) !important;
  }

  html body #vedi-prima .copy-solution p{
    margin: 0 0 10px !important;
    line-height: 1.30 !important;
    font-size: 22px !important;
    font-weight: 400 !important;
  }

  html body #vedi-prima .copy-solution p:first-child{
    margin: 0 0 18px !important;
    line-height: 1.16 !important;
  }

  html body #vedi-prima .copy-solution .sim-prova-frase{
    display: block !important;
    font-size: 21px !important;
    line-height: 1.16 !important;
    font-weight: 400 !important;
    letter-spacing: .01em !important;
    text-transform: none !important;
  }

  html body #vedi-prima .copy-solution .sim-prova-frase strong{
    font-size: inherit !important;
    line-height: inherit !important;
    font-weight: 850 !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
    color: #fff !important;
  }

  html body #vedi-prima .copy-solution .highlight{
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    white-space: nowrap !important;
    color: #ff7a1a !important;
    font-size: clamp(34px, 3.25vw, 46px) !important;
    line-height: .98 !important;
    font-weight: 850 !important;
    letter-spacing: .16em !important;
    text-transform: uppercase !important;
    margin: 0 0 24px !important;
  }

  html body #vedi-prima .copy-solution p:nth-child(2){
    margin: 0 0 14px !important;
    line-height: 1.35 !important;
  }

  html body #vedi-prima .copy-solution p:nth-child(3){
    margin: 0 0 12px !important;
    line-height: 1.28 !important;
  }

  html body #vedi-prima .copy-solution p:last-child{
    margin: 0 !important;
    line-height: 1.28 !important;
  }
}

/* ===== simulazione-e-ruoli-mobile-v35 ===== */
@media (min-width: 921px){
  html body #vedi-prima .copy-solution{
    padding-top: 12px !important;
    padding-bottom: 22px !important;
  }
  html body #vedi-prima .copy-solution p:first-child{
    margin-bottom: 10px !important;
    line-height: 1.12 !important;
  }
  html body #vedi-prima .copy-solution .sim-prova-frase{
    font-size: 21px !important;
    line-height: 1.12 !important;
  }
  html body #vedi-prima .copy-solution .sim-prova-frase strong{
    font-size: inherit !important;
    font-weight: 800 !important;
    letter-spacing: .03em !important;
  }
  html body #vedi-prima .copy-solution .highlight{
    display:block !important;
    width:100% !important;
    white-space:nowrap !important;
    font-size: clamp(34px, 3.15vw, 44px) !important;
    line-height: .96 !important;
    font-weight: 800 !important;
    letter-spacing: .095em !important;
    margin: 0 0 14px !important;
    color:#ff7a1a !important;
  }
  html body #vedi-prima .copy-solution p:nth-child(2){
    margin-bottom: 10px !important;
    line-height: 1.30 !important;
  }
  html body #vedi-prima .copy-solution p:nth-child(3){
    margin-bottom: 6px !important;
    line-height: 1.23 !important;
  }
  html body #vedi-prima .copy-solution p:last-child{
    line-height: 1.23 !important;
  }
}

/* Desktop: protegge la versione RUOLI ripristinata e nasconde SEMPRE l'accordion mobile */
@media (min-width: 921px){
  #ruoli .mobile-role-accordion,
  #ruoli .mobile-role-accordion-static{
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    height:0 !important;
    overflow:hidden !important;
    margin:0 !important;
    padding:0 !important;
    pointer-events:none !important;
  }
}

/* Mobile: ripristina l'accordion e nasconde SOLO la struttura desktop SX/DX */
@media (max-width: 920px){
  #ruoli .persona-wrap{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin-top:18px !important;
  }
  #ruoli .ruoli-cta-head{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 auto 18px !important;
    text-align:center !important;
  }
  #ruoli .ruoli-cta-title{
    font-size: clamp(42px, 13vw, 68px) !important;
    line-height:.94 !important;
    letter-spacing:.01em !important;
  }
  #ruoli .ruoli-cta-sub{
    max-width: 420px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    line-height:1.42 !important;
  }
  #ruoli .persona-buttons,
  #ruoli .persona-panel,
  #ruoli .persona-stage,
  #ruoli .persona-arrows,
  #ruoli #personaPanel,
  #ruoli #personaArrows,
  #ruoli .persona-dots{
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    height:0 !important;
    overflow:hidden !important;
    pointer-events:none !important;
  }
  #ruoli .mobile-role-accordion,
  #ruoli .mobile-role-accordion-static{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    height:auto !important;
    width:100% !important;
    max-width:520px !important;
    margin:22px auto 0 !important;
    padding:0 !important;
    position:relative !important;
    z-index:5 !important;
    pointer-events:auto !important;
  }
  #ruoli .mobile-role-accordion details{
    display:block !important;
    width:100% !important;
    margin:0 0 12px !important;
    border-radius:18px !important;
    border:1px solid rgba(11,16,32,.11) !important;
    background:#fff !important;
    overflow:hidden !important;
    box-shadow:0 14px 32px rgba(11,16,32,.08) !important;
  }
  #ruoli .mobile-role-accordion summary{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:14px !important;
    padding:18px 18px !important;
    list-style:none !important;
    cursor:pointer !important;
    color:#0b1020 !important;
    font-weight:850 !important;
    font-size:15px !important;
    line-height:1.25 !important;
    letter-spacing:.035em !important;
    text-transform:uppercase !important;
  }
  #ruoli .mobile-role-accordion summary::-webkit-details-marker{display:none !important;}
  #ruoli .mobile-role-accordion summary::after{
    content:'+' !important;
    flex:0 0 auto !important;
    font-size:26px !important;
    line-height:1 !important;
    color:#ff8a00 !important;
  }
  #ruoli .mobile-role-accordion details[open] summary::after{content:'–' !important;}
  #ruoli .mobile-role-body{
    display:block !important;
    padding:0 18px 20px !important;
    color:#3c4350 !important;
    font-size:15.5px !important;
    line-height:1.55 !important;
    text-align:left !important;
  }
  #ruoli .mobile-role-body p{margin:0 0 10px !important;}
  #ruoli .mobile-role-body .role-lead{font-weight:800 !important;color:#0b1020 !important;}
  #ruoli .mobile-role-chips{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
    margin-top:12px !important;
  }
  #ruoli .mobile-role-chips span{
    display:inline-flex !important;
    padding:7px 10px !important;
    border-radius:999px !important;
    background:rgba(255,138,0,.10) !important;
    color:#0b1020 !important;
    font-size:12px !important;
    font-weight:800 !important;
  }
}

/* ===== v36-simulazione-compact-mobile-accordion-fix ===== */
/* v36: compatta drasticamente il titolo Simulazione e ripristina accordion mobile senza toccare desktop */
html body #vedi-prima .copy-solution{
  padding-top:14px !important;
  padding-bottom:18px !important;
}
html body #vedi-prima .copy-solution .highlight{
  display:block !important;
  width:100% !important;
  white-space:nowrap !important;
  font-size:clamp(35px,3.6vw,50px) !important;
  line-height:.82 !important;
  font-weight:750 !important;
  letter-spacing:.045em !important;
  margin:2px 0 8px !important;
  padding:0 !important;
  color:#ff7a1a !important;
}
html body #vedi-prima .copy-solution p{
  margin-top:0 !important;
}
html body #vedi-prima .copy-solution p:first-child{
  margin-bottom:5px !important;
  line-height:1.18 !important;
}
html body #vedi-prima .copy-solution p:nth-child(2){
  margin-bottom:7px !important;
  line-height:1.22 !important;
}
html body #vedi-prima .copy-solution p:nth-child(3){
  margin-bottom:5px !important;
  line-height:1.20 !important;
}
html body #vedi-prima .copy-solution p:last-child{
  margin-bottom:0 !important;
  line-height:1.20 !important;
}

@media (min-width:921px){
  #ruoli .mobile-role-accordion,
  #ruoli .mobile-role-accordion-static{
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    height:0 !important;
    overflow:hidden !important;
    pointer-events:none !important;
    margin:0 !important;
    padding:0 !important;
  }
}
@media (max-width:920px){
  #ruoli .persona-buttons,
  #ruoli .persona-panel,
  #ruoli .persona-stage,
  #ruoli .persona-arrows,
  #ruoli #personaPanel,
  #ruoli #personaArrows,
  #ruoli .persona-dots{
    display:none !important;
    visibility:hidden !important;
    height:0 !important;
    overflow:hidden !important;
    pointer-events:none !important;
  }
  #ruoli .persona-wrap{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
  }
  #ruoli .mobile-role-accordion,
  #ruoli .mobile-role-accordion-static{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    height:auto !important;
    overflow:visible !important;
    pointer-events:auto !important;
    width:100% !important;
    max-width:520px !important;
    margin:22px auto 0 !important;
    padding:0 !important;
    position:relative !important;
    z-index:20 !important;
  }
  #ruoli .mobile-role-accordion details{
    display:block !important;
    background:#fff !important;
    border:1px solid rgba(11,16,32,.12) !important;
    border-radius:18px !important;
    margin:0 0 14px !important;
    overflow:hidden !important;
    box-shadow:0 14px 34px rgba(11,16,32,.08) !important;
  }
  #ruoli .mobile-role-accordion summary{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:14px !important;
    padding:20px 22px !important;
    list-style:none !important;
    cursor:pointer !important;
    color:#0b1020 !important;
    font-weight:850 !important;
    font-size:15px !important;
    line-height:1.25 !important;
    letter-spacing:.035em !important;
    text-transform:uppercase !important;
  }
  #ruoli .mobile-role-accordion summary::-webkit-details-marker{display:none !important;}
  #ruoli .mobile-role-accordion summary::after{
    content:'+' !important;
    flex:0 0 auto !important;
    font-size:26px !important;
    line-height:1 !important;
    color:#ff8a00 !important;
  }
  #ruoli .mobile-role-accordion details[open] summary::after{content:'–' !important;}
  #ruoli .mobile-role-body{
    display:block !important;
    padding:0 20px 20px !important;
    color:#3c4350 !important;
    font-size:15.5px !important;
    line-height:1.55 !important;
    text-align:left !important;
  }
  #ruoli .mobile-role-body p{margin:0 0 10px !important;}
  #ruoli .mobile-role-body .role-lead{font-weight:800 !important;color:#0b1020 !important;}
  #ruoli .mobile-role-chips{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
    margin-top:12px !important;
  }
  #ruoli .mobile-role-chips span{
    display:inline-flex !important;
    padding:7px 10px !important;
    border-radius:999px !important;
    background:rgba(255,138,0,.10) !important;
    color:#0b1020 !important;
    font-size:12px !important;
    font-weight:800 !important;
  }
}

/* ===== v37-mobile-targeted-fixes ===== */
/* v37: correzioni SOLO mobile, senza toccare la sezione RUOLI desktop */
@media (max-width:720px){
  /* SIMULAZIONE FOTOREALISTICA: obbliga le due parole a stare dentro il riquadro */
  html body #vedi-prima .copy-solution{
    max-width:100% !important;
    overflow:hidden !important;
    padding-left:26px !important;
    padding-right:26px !important;
  }
  html body #vedi-prima .copy-solution .highlight{
    display:block !important;
    max-width:100% !important;
    width:100% !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    font-size:clamp(32px, 9.7vw, 42px) !important;
    line-height:.96 !important;
    letter-spacing:.005em !important;
    margin-top:2px !important;
    margin-bottom:18px !important;
  }
  html body #vedi-prima .copy-solution .highlight .mobile-sim-word{
    display:block !important;
    white-space:nowrap !important;
  }

  /* IL PROCESSO: rende visibile e leggibile lo schema su mobile */
  html body .proc-unified,
  html body #procUnified{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    height:auto !important;
    min-height:0 !important;
    overflow:visible !important;
  }
  html body .proc-u-rows{
    display:flex !important;
    flex-direction:column !important;
    gap:16px !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
    overflow:visible !important;
    opacity:1 !important;
    visibility:visible !important;
    margin-top:28px !important;
  }
  html body .proc-u-row{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    width:100% !important;
    max-width:100% !important;
    min-height:0 !important;
    height:auto !important;
    opacity:1 !important;
    visibility:visible !important;
    overflow:visible !important;
    transform:none !important;
    position:relative !important;
    padding:22px 18px !important;
    border-radius:22px !important;
    background:rgba(255,255,255,.84) !important;
    border:1px solid rgba(11,16,32,.10) !important;
    box-shadow:0 16px 34px rgba(11,16,32,.08) !important;
  }
  html body .proc-u-left,
  html body .proc-u-right{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
    overflow:visible !important;
    transform:none !important;
    position:relative !important;
    color:#0b1020 !important;
  }
  html body .proc-u-left{ align-items:flex-start !important; gap:14px !important; margin-bottom:12px !important; }
  html body .proc-u-right{ display:block !important; }
  html body .proc-u-right p,
  html body .proc-u-right li,
  html body .proc-u-row p{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    color:rgba(11,16,32,.72) !important;
    font-size:16px !important;
    line-height:1.55 !important;
    margin:0 !important;
  }
  html body .proc-name{ color:#0b1020 !important; font-size:20px !important; line-height:1.16 !important; }
  html body .proc-phase{ color:#ff8a00 !important; }
  html body .proc-mini .mini-strong{ color:#5f6876 !important; }
  html body .proc-mini .mini-soft{ color:#0b1020 !important; }

  /* NON LAVORIAMO PER TUTTI: impaginazione centrata su mobile */
  html body #non-per-tutti,
  html body #non-per-tutti .container,
  html body #non-per-tutti .npt-wrap,
  html body #non-per-tutti .npt-header,
  html body #non-per-tutti .npt-title,
  html body #non-per-tutti .npt-sub,
  html body #non-per-tutti .npt-col,
  html body #non-per-tutti .npt-col-header,
  html body #non-per-tutti p{
    text-align:center !important;
  }
  html body #non-per-tutti .npt-grid,
  html body #non-per-tutti .npt-cols{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
    justify-items:center !important;
  }
  html body #non-per-tutti .npt-col,
  html body #non-per-tutti .npt-card{
    width:100% !important;
    max-width:640px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  html body #non-per-tutti ul,
  html body #non-per-tutti ol{
    display:inline-block !important;
    text-align:left !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}

/* ===== v38-mobile-specific-cleanups ===== */
/* v38: solo correzioni mobile richieste */
@media (max-width:720px){
  /* CONTATTACI: manda “Zero giri strani.” a capo */
  html body #contattaci .contattaci-head p .mobile-contact-line{
    display:block!important;
  }

  /* SIMULAZIONE: entrambe le parole dentro il riquadro, senza mozzature */
  html body #vedi-prima .copy-solution{
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
    padding-left:24px!important;
    padding-right:24px!important;
  }
  html body #vedi-prima .copy-solution .highlight{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
    font-size:clamp(25px,7.4vw,32px)!important;
    line-height:.98!important;
    letter-spacing:0!important;
    margin-top:2px!important;
    margin-bottom:24px!important;
    text-align:left!important;
  }
  html body #vedi-prima .copy-solution .highlight .mobile-sim-word{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
    letter-spacing:0!important;
  }

  /* IL PROCESSO: schema visibile su mobile, senza area bianca vuota */
  html body #procUnified,
  html body .proc-unified{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    margin:24px 0!important;
    padding:22px 16px!important;
    background:linear-gradient(180deg,#ffffff,#f7f9fc)!important;
    color:#0b1020!important;
  }
  html body #procUnified .proc-u-header{
    margin:0 0 18px!important;
    padding:0!important;
  }
  html body #procUnified .proc-u-rows{
    display:flex!important;
    flex-direction:column!important;
    gap:14px!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    margin:18px 0 0!important;
    padding:0!important;
    opacity:1!important;
    visibility:visible!important;
  }
  html body #procUnified .proc-u-rows::before,
  html body #procUnified .proc-u-row::after{
    display:none!important;
    content:none!important;
  }
  html body #procUnified .proc-u-row,
  html body #procUnified .proc-u-row.is-extra,
  html body #procUnified .proc-u-row.visible{
    display:block!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    position:relative!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    margin:0!important;
    padding:18px 16px!important;
    border-radius:50%!important;
    background:#fff!important;
    color:#0b1020!important;
    border:1px solid rgba(11,16,32,.10)!important;
    box-shadow:0 10px 24px rgba(11,16,32,.06)!important;
  }
  html body #procUnified .proc-u-left,
  html body #procUnified .proc-u-right,
  html body #procUnified .proc-u-meta,
  html body #procUnified .proc-mini{
    display:block!important;
    opacity:1!important;
    visibility:visible!important;
    position:relative!important;
    transform:none!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    color:#0b1020!important;
    overflow:visible!important;
  }
  html body #procUnified .proc-u-left{
    display:grid!important;
    grid-template-columns:46px minmax(0,1fr)!important;
    gap:12px!important;
    align-items:start!important;
    margin:0 0 12px!important;
  }
  html body #procUnified .proc-icon{
    display:flex!important;
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    margin:0!important;
    padding:9px!important;
    align-items:center!important;
    justify-content:center!important;
  }
  html body #procUnified .proc-u-right,
  html body #procUnified .proc-u-right p,
  html body #procUnified .proc-u-row p,
  html body #procUnified .proc-u-row li{
    color:rgba(11,16,32,.72)!important;
    font-size:16px!important;
    line-height:1.55!important;
    text-align:left!important;
  }
  html body #procUnified .proc-name{
    color:#0b1020!important;
    font-size:20px!important;
    line-height:1.16!important;
    margin:0!important;
  }
  html body #procUnified .proc-phase{
    color:#ff8a00!important;
    font-size:12px!important;
    line-height:1!important;
    margin:0 0 5px!important;
  }
}
@media (min-width:721px){
  html body #contattaci .contattaci-head p .mobile-contact-line{
    display:inline!important;
  }
}

/* ===== v39-mobile-tiny-fixes ===== */
/* v39: piccoli aggiustamenti mobile senza toccare desktop/RUOLI desktop */
@media (max-width:920px){
  /* Hero mobile: un' + INSEGNA resta sulla stessa riga */
  html body #problema .ib-new-title .mobile-un-insegna{
    display:inline-flex!important;
    align-items:baseline!important;
    justify-content:flex-start!important;
    white-space:nowrap!important;
    max-width:100%!important;
    gap:.08em!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-brescia-under{
    display:inline-block!important;
    white-space:nowrap!important;
    max-width:100%!important;
  }
}
@media (max-width:720px){
  /* Se lo spazio è molto stretto, riduce appena il gruppo per evitare il ritorno a capo dopo un' */
  html body #problema .ib-new-title .mobile-un-insegna{
    transform:scale(.95)!important;
    transform-origin:left center!important;
  }

  /* Bullet sotto il primo blocco: testo centrato nello spazio tra spunta e bordo destro */
  html body #problema .ib-chip{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:68px!important;
    padding:16px 28px 16px 82px!important;
    text-align:center!important;
  }
  html body #problema .ib-chip .ib-chip-ic{
    left:24px!important;
  }

  /* Contatti: “Zero giri strani.” va a capo e resta su una riga */
  html body #contattaci .contattaci-head p .mobile-contact-line{
    display:block!important;
    white-space:normal!important;
  }
  html body #contattaci .contattaci-head p .mobile-contact-line:first-of-type{
    white-space:nowrap!important;
  }

  /* Simulazione: titolo mobile sempre dentro il riquadro */
  html body #vedi-prima .copy-solution{
    overflow:hidden!important;
    padding-left:22px!important;
    padding-right:22px!important;
  }
  html body #vedi-prima .copy-solution .highlight{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(20px, 6vw, 26px)!important;
    line-height:1!important;
    letter-spacing:-.015em!important;
    white-space:normal!important;
    overflow:visible!important;
    text-align:left!important;
  }
  html body #vedi-prima .copy-solution .highlight .mobile-sim-word{
    display:block!important;
    white-space:nowrap!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
  }
}

/* ===== v40-mobile-request-fixes ===== */
/* v40: correzioni SOLO mobile richieste */
@media (max-width:720px){
  /* Titolo iniziale: "un'INSEGNA" sulla prima riga, "a BRESCIA" sulla seconda */
  html body #problema .ib-new-title .mobile-un-insegna{
    display:block!important;
    white-space:normal!important;
    transform:none!important;
    max-width:100%!important;
    text-align:left!important;
    line-height:.95!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .strong,
  html body #problema .ib-new-title .mobile-un-insegna .mobile-insegna-word{
    display:inline!important;
    white-space:nowrap!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-a-brescia-line{
    display:block!important;
    white-space:nowrap!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-brescia-under{
    max-width:100%!important;
    white-space:normal!important;
  }

  /* Ecco Come Nasce Insegne Brescia: riquadri più compatti, meno vuoto */
  html body #chi-sono .chi-tagline-wrap{
    margin-top:34px!important;
    margin-bottom:22px!important;
  }
  html body #chi-sono .chi-tagline{
    font-size:20px!important;
    line-height:1.25!important;
    letter-spacing:.04em!important;
    margin:0!important;
  }
  html body #chi-sono .chi-values{
    display:flex!important;
    flex-direction:column!important;
    gap:18px!important;
    margin-top:18px!important;
    margin-bottom:22px!important;
    width:100%!important;
    max-width:100%!important;
  }
  html body #chi-sono .chi-value{
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    padding:28px 22px!important;
    margin:0!important;
    display:block!important;
  }
  html body #chi-sono .chi-value-content{
    min-height:0!important;
    height:auto!important;
    gap:12px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-start!important;
  }
  html body #chi-sono .chi-value-title{
    font-size:17px!important;
    line-height:1.2!important;
    letter-spacing:.045em!important;
    margin:0 0 10px!important;
    gap:10px!important;
    justify-content:center!important;
    text-align:center!important;
  }
  html body #chi-sono .chi-value-title::before,
  html body #chi-sono .chi-value-icon{
    width:54px!important;
    height:54px!important;
    min-width:54px!important;
    max-width:54px!important;
    margin:0 auto 10px!important;
  }
  html body #chi-sono .chi-value-title .chi-value-icon{
    width:54px!important;
    height:54px!important;
    min-width:54px!important;
    margin:0!important;
  }
  html body #chi-sono .chi-value-text{
    font-size:18px!important;
    line-height:1.45!important;
    text-align:center!important;
    margin:0!important;
    max-width:92%!important;
  }
}

/* ===== v41-mobile-final-tightening ===== */
/* v41: correzioni SOLO mobile richieste */
@media (max-width:720px){
  /* Hero mobile: esattamente 2 righe: un'INSEGNA / a BRESCIA */
  html body #problema .ib-new-title .mobile-un-insegna{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    white-space:normal!important;
    transform:none!important;
    text-align:left!important;
    line-height:.92!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-insegna-line{
    display:block!important;
    white-space:nowrap!important;
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(52px, 15vw, 68px)!important;
    line-height:.92!important;
    letter-spacing:-.055em!important;
    font-weight:800!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-a-brescia-line{
    display:block!important;
    white-space:nowrap!important;
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(52px, 15vw, 68px)!important;
    line-height:.92!important;
    letter-spacing:-.055em!important;
    font-weight:800!important;
  }

  /* Ecco Come Nasce INSEGNE BRESCIA: schede compatte, senza vuoti interni */
  html body #chi-sono .chi-values{
    display:flex!important;
    flex-direction:column!important;
    gap:16px!important;
    margin-top:18px!important;
    margin-bottom:20px!important;
  }
  html body #chi-sono .chi-value{
    min-height:0!important;
    height:auto!important;
    padding:0!important;
    margin:0!important;
    display:block!important;
    overflow:visible!important;
  }
  html body #chi-sono .chi-value-content{
    min-height:0!important;
    height:auto!important;
    padding:20px 18px!important;
    margin:0!important;
    display:grid!important;
    grid-template-columns:52px 1fr!important;
    grid-template-areas:"icon title" "text text"!important;
    column-gap:14px!important;
    row-gap:12px!important;
    align-items:center!important;
    justify-content:stretch!important;
  }
  html body #chi-sono .chi-value-icon{
    grid-area:icon!important;
    position:static!important;
    transform:none!important;
    width:52px!important;
    height:52px!important;
    min-width:52px!important;
    margin:0!important;
    border-radius:15px!important;
  }
  html body #chi-sono .chi-value-icon svg{
    width:24px!important;
    height:24px!important;
  }
  html body #chi-sono .chi-value-title{
    grid-area:title!important;
    display:contents!important;
    margin:0!important;
    padding:0!important;
    font-size:20px!important;
    line-height:1.15!important;
    letter-spacing:.07em!important;
    text-align:left!important;
    justify-content:flex-start!important;
    align-items:center!important;
  }
  /* Il testo vero del titolo è un nodo testuale: questa regola mantiene l'icona nella prima colonna via display:contents */
  html body #chi-sono .chi-value-text{
    grid-area:text!important;
    margin:0!important;
    max-width:100%!important;
    font-size:20px!important;
    line-height:1.38!important;
    text-align:left!important;
  }
}

/* ===== v42-mobile-title-and-chi-cards-fix ===== */
/* v42: SOLO mobile - titolo hero su 2 righe e schede Chi Sono più piene */
@media (max-width:720px){
  /* Titolo: riga 1 = un'INSEGNA, riga 2 = a BRESCIA */
  html body #problema .ib-new-title .mobile-un-insegna{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    white-space:normal!important;
    text-align:left!important;
    line-height:.94!important;
    overflow:visible!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-insegna-line,
  html body #problema .ib-new-title .mobile-un-insegna .mobile-a-brescia-line{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
    line-height:.94!important;
    font-size:clamp(44px, 12.8vw, 56px)!important;
    letter-spacing:-.055em!important;
    font-weight:800!important;
    text-align:left!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-insegna-line span,
  html body #problema .ib-new-title .mobile-un-insegna .mobile-a-brescia-line span{
    display:inline!important;
    white-space:nowrap!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-insegna-line .strong{
    display:inline!important;
    white-space:nowrap!important;
    font-weight:800!important;
  }

  /* Schede "Ecco Come Nasce": icona + titolo sulla stessa riga, niente grandi vuoti */
  html body #chi-sono .chi-values{
    display:flex!important;
    flex-direction:column!important;
    gap:14px!important;
    margin-top:18px!important;
    margin-bottom:18px!important;
  }
  html body #chi-sono .chi-value{
    height:auto!important;
    min-height:0!important;
    padding:0!important;
    margin:0!important;
    overflow:visible!important;
  }
  html body #chi-sono .chi-value-content{
    height:auto!important;
    min-height:0!important;
    padding:18px 18px 20px!important;
    margin:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:12px!important;
    text-align:left!important;
  }
  html body #chi-sono .chi-value-title{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:14px!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
    font-size:20px!important;
    line-height:1.16!important;
    letter-spacing:.065em!important;
    white-space:normal!important;
  }
  html body #chi-sono .chi-value-icon{
    position:static!important;
    transform:none!important;
    flex:0 0 52px!important;
    width:52px!important;
    height:52px!important;
    min-width:52px!important;
    margin:0!important;
    border-radius:15px!important;
  }
  html body #chi-sono .chi-value-icon svg{
    width:24px!important;
    height:24px!important;
  }
  html body #chi-sono .chi-value-text{
    margin:0!important;
    padding:0!important;
    max-width:100%!important;
    text-align:left!important;
    font-size:20px!important;
    line-height:1.34!important;
  }
}

/* ===== v43-mobile-final-precision-fixes ===== */
/* v43: SOLO mobile, correzioni puntuali senza toccare desktop/RUOLI desktop */
@media (max-width:720px){
  /* HERO: due righe esatte: un'INSEGNA / a BRESCIA */
  html body #problema .ib-new-title .mobile-un-insegna{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    white-space:normal!important;
    text-align:left!important;
    line-height:.94!important;
    margin-bottom:2px!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-insegna-line{
    display:inline-flex!important;
    flex-wrap:nowrap!important;
    align-items:baseline!important;
    width:auto!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
    line-height:.94!important;
    font-size:clamp(38px, 10.8vw, 46px)!important;
    letter-spacing:-.035em!important;
    font-weight:800!important;
    text-align:left!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-insegna-line .strong,
  html body #problema .ib-new-title .mobile-un-insegna .mobile-insegna-line span{
    display:inline!important;
    white-space:nowrap!important;
    width:auto!important;
    max-width:none!important;
    font-weight:800!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-a-brescia-line{
    display:block!important;
    width:auto!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
    line-height:.94!important;
    font-size:clamp(38px, 10.8vw, 46px)!important;
    letter-spacing:-.035em!important;
    font-weight:800!important;
    text-align:left!important;
    margin-top:0!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-a-brescia-line span{
    display:inline!important;
    white-space:nowrap!important;
  }
  /* Avvicina “Ora devi scegliere bene...” alla sottolineatura a gradiente */
  html body #problema .ib-new-title .mobile-ora-devi{
    display:block!important;
    margin-top:8px!important;
    padding-top:0!important;
    line-height:1.02!important;
  }
  html body #problema .ib-new-title br + .mobile-ora-devi{
    margin-top:6px!important;
  }

  /* IL PROCESSO: card scure con testi chiari */
  html body #procUnified,
  html body .proc-unified{
    background:#061027!important;
    color:#f6f7fb!important;
  }
  html body #procUnified .proc-u-row,
  html body #procUnified .proc-u-row.is-extra,
  html body #procUnified .proc-u-row.visible{
    background:linear-gradient(180deg,#121b32 0%,#0b1428 100%)!important;
    border:1px solid rgba(255,255,255,.16)!important;
    box-shadow:0 16px 34px rgba(0,0,0,.22)!important;
    color:#f6f7fb!important;
  }
  html body #procUnified .proc-u-left,
  html body #procUnified .proc-u-right,
  html body #procUnified .proc-u-meta,
  html body #procUnified .proc-mini{
    color:#f6f7fb!important;
  }
  html body #procUnified .proc-name{
    color:#fff!important;
  }
  html body #procUnified .proc-phase{
    color:#ff8a00!important;
  }
  html body #procUnified .proc-mini .mini-strong,
  html body #procUnified .proc-mini .mini-soft,
  html body #procUnified .proc-u-right,
  html body #procUnified .proc-u-right p,
  html body #procUnified .proc-u-row p,
  html body #procUnified .proc-u-row li{
    color:rgba(255,255,255,.82)!important;
  }
  html body #procUnified strong{
    color:#fff!important;
  }
  html body #procUnified .proc-icon{
    background:linear-gradient(135deg,#216bff,#6738ff)!important;
    color:#fff!important;
  }
  html body #procUnified .proc-icon svg{
    stroke:#fff!important;
  }

  /* “Ecco Come Nasce”: icona e titolo allineati a sinistra, con meno vuoti */
  html body #chi-sono .chi-values{
    gap:14px!important;
    margin-top:18px!important;
  }
  html body #chi-sono .chi-value-content{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    gap:12px!important;
    padding:18px 18px 18px!important;
    min-height:0!important;
    height:auto!important;
    text-align:left!important;
  }
  html body #chi-sono .chi-value-title{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:100%!important;
    gap:14px!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
    font-size:20px!important;
    line-height:1.16!important;
    letter-spacing:.065em!important;
  }
  html body #chi-sono .chi-value-icon{
    position:static!important;
    transform:none!important;
    flex:0 0 52px!important;
    width:52px!important;
    height:52px!important;
    min-width:52px!important;
    margin:0!important;
  }
  html body #chi-sono .chi-value-text{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    text-align:left!important;
    font-size:20px!important;
    line-height:1.34!important;
  }
}

/* ===== v44-mobile-precision-fixes ===== */
/* v44: interventi mirati SOLO mobile. Desktop, RUOLI desktop e struttura generale non toccati. */
@media (max-width:720px){
  /* ATF: freccette arancio tutte a capo, all'inizio della seconda riga */
  html body .new-atf-microproof li > span:last-child,
  html body .bullets.new-atf-microproof li > span:last-child{
    display:block!important;
    width:100%!important;
  }
  html body .new-atf-microproof .bullet-title,
  html body .bullets.new-atf-microproof .bullet-title{
    display:block!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    white-space:normal!important;
    line-height:1.12!important;
  }
  html body .new-atf-microproof .bullet-sep,
  html body .bullets.new-atf-microproof .bullet-sep{
    display:inline!important;
    margin:0 .38em 0 0!important;
    padding:0!important;
    color:#ff8a00!important;
    font-weight:900!important;
    vertical-align:baseline!important;
  }
  html body .new-atf-microproof .bullet-text,
  html body .bullets.new-atf-microproof .bullet-text{
    display:inline!important;
    line-height:1.28!important;
  }

  /* Problema: “Ora devi scegliere bene” subito dopo la sottolineatura, senza aria sopra/sotto */
  html body #problema .ib-new-title{
    line-height:.98!important;
  }
  html body #problema .ib-new-title .mobile-ora-devi{
    display:block!important;
    margin-top:0!important;
    margin-bottom:-8px!important;
    padding-top:0!important;
    padding-bottom:0!important;
    line-height:.92!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna{
    margin-bottom:0!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-a-brescia-line{
    margin-bottom:0!important;
  }

  /* Il Processo / CHIAVI IN MANO: titolo fuori dal fondo scuro; solo le card restano scure */
  html body #procUnified,
  html body .proc-unified{
    background:transparent!important;
    background-color:transparent!important;
    border:none!important;
    box-shadow:none!important;
    color:#071022!important;
    padding:0!important;
    margin-left:0!important;
    margin-right:0!important;
    overflow:visible!important;
  }
  html body #procUnified .proc-u-header,
  html body .proc-unified .proc-u-header{
    background:transparent!important;
    border:none!important;
    box-shadow:none!important;
    color:#071022!important;
    padding:0!important;
    margin:0 0 22px!important;
    text-align:center!important;
  }
  html body #procUnified .proc-u-header h3,
  html body .proc-unified .proc-u-header h3,
  html body #procUnified .proc-u-header h3 span,
  html body .proc-unified .proc-u-header h3 span{
    color:#071022!important;
    background:transparent!important;
    -webkit-text-fill-color:#071022!important;
    text-shadow:none!important;
  }
  html body #procUnified .proc-u-header p,
  html body .proc-unified .proc-u-header p{
    color:#5f6672!important;
    background:transparent!important;
    text-shadow:none!important;
  }
  html body #procUnified .proc-u-rows,
  html body .proc-unified .proc-u-rows{
    display:flex!important;
    flex-direction:column!important;
    gap:16px!important;
    background:transparent!important;
    padding:0!important;
    margin:0!important;
  }
  html body #procUnified .proc-u-row,
  html body .proc-unified .proc-u-row,
  html body #procUnified .proc-u-row.is-extra,
  html body .proc-unified .proc-u-row.is-extra{
    display:block!important;
    width:100%!important;
    min-height:0!important;
    background:linear-gradient(180deg,#121b32 0%,#081126 100%)!important;
    color:#f6f7fb!important;
    border:1px solid rgba(255,255,255,.16)!important;
    border-radius:20px!important;
    box-shadow:0 16px 34px rgba(0,0,0,.22)!important;
    padding:26px 22px!important;
    overflow:hidden!important;
  }
  html body #procUnified .proc-u-left,
  html body .proc-unified .proc-u-left{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:16px!important;
    width:100%!important;
    margin:0 0 18px!important;
    color:#f6f7fb!important;
  }
  html body #procUnified .proc-u-right,
  html body .proc-unified .proc-u-right{
    display:block!important;
    width:100%!important;
    color:rgba(255,255,255,.84)!important;
    font-size:clamp(20px,5.6vw,26px)!important;
    line-height:1.42!important;
    letter-spacing:.01em!important;
    text-align:left!important;
  }
  html body #procUnified .proc-u-right strong,
  html body .proc-unified .proc-u-right strong{
    color:#fff!important;
  }
  html body #procUnified .proc-u-sep,
  html body .proc-unified .proc-u-sep{
    display:none!important;
  }
  html body #procUnified .proc-name,
  html body .proc-unified .proc-name{
    color:#fff!important;
  }
  html body #procUnified .proc-phase,
  html body .proc-unified .proc-phase{
    color:#ff8a00!important;
  }
  html body #procUnified .proc-mini,
  html body .proc-unified .proc-mini,
  html body #procUnified .proc-mini span,
  html body .proc-unified .proc-mini span{
    color:rgba(255,255,255,.78)!important;
  }
}

/* ===== v45-mobile-final-targeted-fixes ===== */
/* v45: micro-correzioni SOLO mobile richieste. Desktop e RUOLI desktop non toccati. */
@media (max-width:720px){
  /* SIMULAZIONE / FOTOREALISTICA: più grande possibile, ma sempre dentro il riquadro */
  html body #vedi-prima .copy-solution{
    overflow:hidden!important;
    padding-left:24px!important;
    padding-right:24px!important;
  }
  html body #vedi-prima .copy-solution .highlight{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    white-space:normal!important;
    text-align:left!important;
    font-size:clamp(35px, 10.25vw, 43px)!important;
    line-height:.93!important;
    letter-spacing:-.055em!important;
    font-weight:800!important;
    margin-top:6px!important;
    margin-bottom:28px!important;
  }
  html body #vedi-prima .copy-solution .highlight .mobile-sim-word{
    display:block!important;
    white-space:nowrap!important;
    max-width:none!important;
    width:116%!important;
    transform:scaleX(.86)!important;
    transform-origin:left center!important;
    overflow:visible!important;
    letter-spacing:-.055em!important;
  }

  /* ATF: freccetta arancio alla fine del titoletto, sulla prima riga */
  html body .new-atf-microproof li > span:last-child,
  html body .bullets.new-atf-microproof li > span:last-child{
    display:block!important;
    width:100%!important;
  }
  html body .new-atf-microproof .bullet-title,
  html body .bullets.new-atf-microproof .bullet-title{
    display:inline!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    white-space:normal!important;
    line-height:1.12!important;
  }
  html body .new-atf-microproof .bullet-sep,
  html body .bullets.new-atf-microproof .bullet-sep{
    display:inline!important;
    margin:0 0 0 .34em!important;
    padding:0!important;
    color:#ff8a00!important;
    font-weight:900!important;
    vertical-align:baseline!important;
  }
  html body .new-atf-microproof .bullet-text,
  html body .bullets.new-atf-microproof .bullet-text{
    display:block!important;
    margin-top:2px!important;
    line-height:1.28!important;
  }

  /* “Ecco Come Nasce”: icona + titoletto allineati a sinistra, non centrati */
  html body #chi-sono .chi-value,
  html body #chi-sono .chi-value-content{
    text-align:left!important;
  }
  html body #chi-sono .chi-value-content{
    align-items:stretch!important;
    justify-content:flex-start!important;
    padding:18px 18px 20px!important;
  }
  html body #chi-sono .chi-value-title{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    align-self:stretch!important;
    width:100%!important;
    max-width:100%!important;
    gap:14px!important;
    margin:0 0 6px 0!important;
    padding:0!important;
    text-align:left!important;
    line-height:1.12!important;
  }
  html body #chi-sono .chi-value-icon{
    position:static!important;
    transform:none!important;
    flex:0 0 58px!important;
    width:58px!important;
    height:58px!important;
    min-width:58px!important;
    margin:0!important;
  }
  html body #chi-sono .chi-value-text{
    text-align:left!important;
    margin:0!important;
    width:100%!important;
  }
}

/* ===== v46-mobile-final-resolve-recurring ===== */
/* v46: correzioni definitive SOLO mobile. Desktop e RUOLI desktop non toccati. */
@media (max-width:720px){
  /* Titolo hero: due righe esatte, senza spezzare un'INSEGNA */
  html body #problema .ib-new-title .mobile-un-insegna{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    white-space:normal!important;
    overflow:visible!important;
    line-height:.90!important;
    margin:0!important;
    padding:0!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-insegna-line{
    display:inline-flex!important;
    flex-wrap:nowrap!important;
    align-items:baseline!important;
    width:auto!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
    font-size:clamp(34px, 10.2vw, 40px)!important;
    line-height:.91!important;
    letter-spacing:-.065em!important;
    font-weight:850!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-insegna-line span,
  html body #problema .ib-new-title .mobile-un-insegna .mobile-insegna-line .strong{
    display:inline!important;
    white-space:nowrap!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    font-weight:850!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-a-brescia-line{
    display:block!important;
    width:auto!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
    font-size:clamp(34px, 10.2vw, 40px)!important;
    line-height:.91!important;
    letter-spacing:-.065em!important;
    font-weight:850!important;
    margin:0!important;
    padding:0 0 2px 0!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna .mobile-a-brescia-line span{
    display:inline!important;
    white-space:nowrap!important;
  }
  html body #problema .ib-new-title .mobile-ora-devi{
    display:block!important;
    margin:0!important;
    padding:0!important;
    line-height:.98!important;
  }

  /* SIMULAZIONE/FOTOREALISTICA: massimo ingombro senza taglio */
  html body #vedi-prima .copy-solution{
    overflow:hidden!important;
    padding-left:24px!important;
    padding-right:24px!important;
  }
  html body #vedi-prima .copy-solution .highlight{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    white-space:normal!important;
    text-align:left!important;
    font-size:clamp(35px, 10.6vw, 44px)!important;
    line-height:.92!important;
    letter-spacing:-.058em!important;
    font-weight:820!important;
    margin:6px 0 26px 0!important;
  }
  html body #vedi-prima .copy-solution .highlight .mobile-sim-word{
    display:block!important;
    white-space:nowrap!important;
    width:136%!important;          /* larghezza logica sufficiente per FOTOREALISTICA */
    max-width:none!important;
    overflow:visible!important;
    transform:scaleX(.735)!important; /* scala visivamente dentro il riquadro */
    transform-origin:left center!important;
    letter-spacing:-.058em!important;
    line-height:.92!important;
  }

  /* ATF: freccetta arancio sempre alla fine del titoletto sulla prima riga */
  html body .new-atf-microproof .bullet-head,
  html body .bullets.new-atf-microproof .bullet-head{
    display:inline-flex!important;
    align-items:baseline!important;
    gap:.34em!important;
    white-space:nowrap!important;
    width:auto!important;
    max-width:100%!important;
    line-height:1.12!important;
  }
  html body .new-atf-microproof .bullet-head .bullet-title,
  html body .bullets.new-atf-microproof .bullet-head .bullet-title{
    display:inline!important;
    white-space:nowrap!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
  }
  html body .new-atf-microproof .bullet-head .bullet-sep,
  html body .bullets.new-atf-microproof .bullet-head .bullet-sep{
    display:inline!important;
    margin:0!important;
    padding:0!important;
    color:#ff8a00!important;
    font-weight:900!important;
    line-height:1!important;
  }
  html body .new-atf-microproof .bullet-text,
  html body .bullets.new-atf-microproof .bullet-text{
    display:block!important;
    margin-top:2px!important;
    line-height:1.28!important;
  }

  /* Ecco Come Nasce: icona + titolo giustificati a sinistra, senza pseudo-spazi fantasma */
  html body #chi-sono .chi-value-title::before{
    display:none!important;
    content:none!important;
    width:0!important;
    height:0!important;
    margin:0!important;
    padding:0!important;
  }
  html body #chi-sono .chi-value-content{
    align-items:flex-start!important;
    text-align:left!important;
    padding:18px 18px 20px!important;
  }
  html body #chi-sono .chi-value-title{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:100%!important;
    max-width:100%!important;
    gap:14px!important;
    margin:0 0 8px 0!important;
    padding:0!important;
    text-align:left!important;
  }
  html body #chi-sono .chi-value-icon{
    position:static!important;
    transform:none!important;
    flex:0 0 58px!important;
    width:58px!important;
    height:58px!important;
    min-width:58px!important;
    margin:0!important;
  }
  html body #chi-sono .chi-value-text{
    text-align:left!important;
    margin:0!important;
    width:100%!important;
  }
}

/* ===== v47-mobile-hero-tighten-only ===== */
@media (max-width:720px){
  /* Avvicinamento definitivo: Ora devi subito sotto la riga gradiente */
  html body #problema .ib-new-title .mobile-ora-devi{
    margin-top:-8px!important;
    margin-bottom:-2px!important;
    padding-top:0!important;
    padding-bottom:0!important;
    line-height:.94!important;
  }
}

/* ===== v48-mobile-final-tight-sim-and-ora ===== */
/* v48: correzioni finali mirate SOLO mobile. Desktop invariato. */
@media (max-width:720px){
  /* Hero: elimina il vuoto creato dai <br> attorno a "Ora devi scegliere bene" */
  html body #problema .ib-new-title > br:nth-of-type(2),
  html body #problema .ib-new-title > br:nth-of-type(3){
    display:none!important;
  }
  html body #problema .ib-new-title{
    line-height:.92!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna{
    display:block!important;
    margin:0!important;
    padding:0!important;
    line-height:.88!important;
  }
  html body #problema .ib-new-title .mobile-ora-devi{
    display:block!important;
    margin:-3px 0 -3px 0!important;
    padding:0!important;
    line-height:.86!important;
  }
  html body #problema .ib-new-title .strong,
  html body #problema .ib-new-title .ib-new-grad{
    line-height:.92!important;
  }

  /* SIMULAZIONE / FOTOREALISTICA: grande, ma fisicamente dentro il riquadro */
  html body #vedi-prima .copy-solution{
    overflow:hidden!important;
    padding-left:22px!important;
    padding-right:22px!important;
  }
  html body #vedi-prima .copy-solution .highlight{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    text-align:left!important;
    white-space:normal!important;
    font-size:clamp(39px, 11.4vw, 46px)!important;
    line-height:.88!important;
    letter-spacing:-.07em!important;
    font-weight:820!important;
    margin:6px 0 30px 0!important;
  }
  html body #vedi-prima .copy-solution .highlight .mobile-sim-word{
    display:block!important;
    width:max-content!important;
    max-width:none!important;
    white-space:nowrap!important;
    overflow:visible!important;
    transform-origin:left center!important;
    letter-spacing:-.07em!important;
    line-height:.88!important;
  }
  html body #vedi-prima .copy-solution .highlight .mobile-sim-word:nth-child(1){
    transform:scaleX(.78)!important;
  }
  html body #vedi-prima .copy-solution .highlight .mobile-sim-word:nth-child(2){
    transform:scaleX(.60)!important;
    margin-top:-1px!important;
  }
}

/* ===== v49-mobile-definitive-fixes ===== */
/* v49: correzioni SOLO mobile, lasciando invariato desktop e RUOLI desktop */
@media (max-width:720px){
  /* Hero: due righe robuste e spazio controllato dopo “Ora devi scegliere bene” */
  html body #problema .ib-new-title{
    line-height:.94!important;
  }
  html body #problema .ib-new-title .mobile-un-insegna{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    line-height:.90!important;
    overflow:visible!important;
  }
  html body #problema .ib-new-title .mobile-insegna-line,
  html body #problema .ib-new-title .mobile-a-brescia-line{
    display:block!important;
    white-space:nowrap!important;
    overflow:visible!important;
    max-width:100%!important;
    line-height:.92!important;
    font-size:clamp(34px,10.2vw,40px)!important;
    letter-spacing:-.065em!important;
    font-weight:850!important;
    text-align:left!important;
  }
  html body #problema .ib-new-title .mobile-insegna-line span,
  html body #problema .ib-new-title .mobile-a-brescia-line span{
    display:inline!important;
    white-space:nowrap!important;
  }
  html body #problema .ib-new-title .mobile-ora-devi{
    display:block!important;
    margin-top:2px!important;
    margin-bottom:16px!important;
    padding:0!important;
    line-height:.98!important;
  }

  /* SIMULAZIONE/FOTOREALISTICA: layout fisso a due righe, poi JS calcola il font massimo che non taglia */
  html body #vedi-prima .copy-solution{
    overflow:hidden!important;
    padding-left:22px!important;
    padding-right:22px!important;
  }
  html body #vedi-prima .copy-solution .highlight{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-align:left!important;
    white-space:normal!important;
    line-height:.90!important;
    letter-spacing:-.055em!important;
    font-weight:820!important;
    margin:6px 0 24px 0!important;
  }
  html body #vedi-prima .copy-solution .highlight .mobile-sim-word{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
    transform:none!important;
    letter-spacing:-.055em!important;
    line-height:.90!important;
  }

  /* Ecco Come Nasce: titolo grande su 2 righe + card con icona/titolo giustificati a SX */
  html body #chi-sono .chi-tagline{
    display:block!important;
    max-width:100%!important;
    text-align:center!important;
    font-size:clamp(28px,7.2vw,34px)!important;
    line-height:1.18!important;
    letter-spacing:.085em!important;
    font-weight:800!important;
    margin:20px auto 30px!important;
  }
  html body #chi-sono .chi-values{
    gap:16px!important;
    margin-top:18px!important;
  }
  html body #chi-sono .chi-value,
  html body #chi-sono .chi-value-content{
    text-align:left!important;
  }
  html body #chi-sono .chi-value-content{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    padding:18px 18px 20px!important;
    min-height:0!important;
    height:auto!important;
    gap:14px!important;
  }
  html body #chi-sono .chi-value-title{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:100%!important;
    max-width:100%!important;
    gap:14px!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
    line-height:1.12!important;
    font-size:clamp(21px,5.7vw,26px)!important;
    letter-spacing:.07em!important;
  }
  html body #chi-sono .chi-value-title::before{display:none!important;content:none!important;}
  html body #chi-sono .chi-value-icon{
    position:static!important;
    transform:none!important;
    flex:0 0 56px!important;
    width:56px!important;
    height:56px!important;
    min-width:56px!important;
    margin:0!important;
  }
  html body #chi-sono .chi-value-text{
    text-align:left!important;
    margin:0!important;
    width:100%!important;
    font-size:clamp(20px,5.4vw,26px)!important;
    line-height:1.32!important;
  }

  /* Cosa succede dopo: titolo molto più visibile */
  html body .cosa-succede-dopo .csd-eyebrow{
    display:block!important;
    text-align:center!important;
    font-size:clamp(25px,6.8vw,32px)!important;
    line-height:1.12!important;
    letter-spacing:.055em!important;
    font-weight:900!important;
    margin:0 auto 26px!important;
    color:#071022!important;
  }
}

/* ===== v50-mobile-final-targeted-fixes ===== */
@media (max-width:720px){
  /* Titolo processo: scrittura richiesta, senza uppercase forzato */
  html body .cosa-succede-dopo .csd-eyebrow{
    text-transform:none!important;
    font-size:clamp(26px,7.2vw,34px)!important;
    line-height:1.12!important;
    letter-spacing:.01em!important;
    font-weight:650!important;
    margin:0 auto 26px!important;
    color:#071022!important;
  }
  html body .cosa-succede-dopo .csd-eyebrow strong{
    font-weight:900!important;
    letter-spacing:.025em!important;
  }

  /* Spazio controllato dopo “Ora devi scegliere bene”: non troppo attaccato, non largo */
  html body #problema .ib-new-title .mobile-ora-devi{
    margin-top:0!important;
    margin-bottom:10px!important;
    line-height:.96!important;
  }

  /* Simulazione: impedisce tagli orizzontali in modo definitivo */
  html body #vedi-prima .copy-solution{
    overflow:hidden!important;
    box-sizing:border-box!important;
    padding-left:20px!important;
    padding-right:20px!important;
  }
  html body #vedi-prima .copy-solution .highlight{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    text-align:left!important;
    white-space:normal!important;
    line-height:.90!important;
    letter-spacing:-.075em!important;
    font-weight:850!important;
    margin:4px 0 22px 0!important;
    box-sizing:border-box!important;
  }
  html body #vedi-prima .copy-solution .highlight .mobile-sim-word{
    display:block!important;
    width:auto!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
    transform:none!important;
    letter-spacing:-.075em!important;
    line-height:.90!important;
  }
}

/* ===== v51-desktop-counter-sim-space-fix ===== */
/* v51: correzioni desktop mirate */
@media (min-width:721px){
  /* SIMULAZIONE FOTOREALISTICA: se il titolo è stato spezzato dallo script mobile, su desktop torna in riga con spazio reale */
  html body #vedi-prima .copy-solution .highlight .mobile-sim-word{
    display:inline!important;
    white-space:nowrap!important;
  }
  html body #vedi-prima .copy-solution .highlight .mobile-sim-word + .mobile-sim-word::before{
    content:" "!important;
  }

  /* Counter insegne: usa lo stesso odometer originale del counter ANNI */
  html body #badgeInsegne{
    display:flex!important;
    align-items:center!important;
    gap:0!important;
  }
}

/* ===== v53-desktop-counter-match-anni ===== */
@media (min-width:721px){
  html body #badgeInsegne.badge-num,
  html body #badgeInsegne{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:0!important;
    overflow:hidden!important;
  }
  html body #badgeInsegne .digit-roller{
    height:1em!important;
  }
}

/* ===== desktop-v54-simulazione-spacing ===== */
/* v54 - Desktop: spaziatura interna riquadro SIMULAZIONE FOTOREALISTICA */
@media (min-width: 761px){
  #vedi-prima .copy-solution p:nth-of-type(2){
    margin-bottom: 1.35em !important;
  }
  #vedi-prima .copy-solution p:nth-of-type(4){
    margin-bottom: 1.35em !important;
  }
}

/* ===== desktop-v55-simulazione-bottom-spacing ===== */
/* v55 - Desktop: spazio finale nel riquadro SIMULAZIONE FOTOREALISTICA */
@media (min-width: 761px){
  html body #vedi-prima .copy-solution{
    padding-bottom: 42px !important;
  }
  html body #vedi-prima .copy-solution p:nth-of-type(4){
    margin-bottom: 0 !important;
  }
}

/* ===== atf-rotator-mobile-v56-css ===== */
@media (max-width:760px){
  #heroRot{
    display:inline-block!important;
    min-width:18ch!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
  }
  #heroRot::after{
    content:""!important;
    display:inline-block!important;
    width:3px!important;
    height:.9em!important;
    margin-left:6px!important;
    transform:translateY(2px)!important;
    background:var(--orange,#ff7a1a)!important;
    border-radius:2px!important;
    animation:caretBlink .85s infinite!important;
  }
  .hero-rot{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
  }
}

/* ===== v58-motion-performance ===== */
:root{
  --v58-ease:cubic-bezier(.16,1,.3,1);
  --v58-ease-soft:cubic-bezier(.22,.8,.22,1);
}

/* Anchor navigation lands with a little breathing room. */
#problema,#criteri-scelta,#regia,#procUnified,#vedi-prima,#garanzia,#ruoli,
#chi-sono,#galleria,#testimonianze,#faq,#non-per-tutti,#simulazione,#contattaci{
  scroll-margin-top:26px;
}

/* Old enhancement cards used to animate immediately, even while off-screen.
   v58 lets the observer below trigger them only when the user actually reaches them. */
.cards .card,
.chi-values .chi-value,
.hero-cols .hero-col,
.camp-cards .camp-card,
.npt-grid .npt-col{
  animation:none!important;
  opacity:1;
}

/* Infinite decorative motion is paused while its section is off-screen. */
@media (prefers-reduced-motion:no-preference){
  .band.dark::before,
  .band.darkish::before{
    animation-play-state:paused!important;
  }
  .band.dark.v58-section-active::before,
  .band.darkish.v58-section-active::before{
    animation-play-state:running!important;
  }

  .accent,.h1b,.rainbow-strong,.rainbow-black-strong,hr.rainbow-sep,
  #testimonianze .testi-particle,
  #ruoli .ruoli-cta-arrow{
    animation-play-state:paused!important;
  }
  .v58-section-active .accent,
  .v58-section-active .h1b,
  .v58-section-active .rainbow-strong,
  .v58-section-active .rainbow-black-strong,
  .v58-section-active hr.rainbow-sep,
  #testimonianze.v58-section-active .testi-particle,
  #ruoli.v58-section-active .ruoli-cta-arrow{
    animation-play-state:running!important;
  }

  /* Unified premium entrance motion. JS only enables this system when available. */
  html.v58-motion-ready .v58-enter{
    opacity:0!important;
    transform:translate3d(0,22px,0) scale(.992)!important;
    filter:blur(3px);
    transition:
      opacity .62s var(--v58-ease),
      transform .76s var(--v58-ease),
      filter .62s var(--v58-ease),
      box-shadow .4s var(--v58-ease),
      border-color .4s var(--v58-ease)!important;
    transition-delay:var(--v58-delay,0ms)!important;
    will-change:opacity,transform,filter;
  }
  html.v58-motion-ready .v58-enter.v58-in{
    opacity:1!important;
    transform:translate3d(0,0,0) scale(1)!important;
    filter:blur(0);
    will-change:auto;
  }

  /* The little rule preceding each section now draws in with the section. */
  .v58-rule-line{
    transform:scaleX(.12);
    transform-origin:left center;
    opacity:.28;
    transition:transform .9s var(--v58-ease),opacity .7s ease!important;
  }
  .v58-section-active .v58-rule-line{
    transform:scaleX(1);
    opacity:1;
  }
}

/* More tactile buttons without changing their visual language. */
.landing-cta-btn,.btn,.cta-btn,.pbtn,.enh-nav-dot{
  -webkit-tap-highlight-color:transparent;
}
.landing-cta-btn:focus-visible,.btn:focus-visible,.cta-btn:focus-visible,.pbtn:focus-visible{
  outline:3px solid rgba(255,138,0,.78)!important;
  outline-offset:4px!important;
}
.landing-cta-btn:active,.btn:active,.cta-btn:active{
  transform:translateY(1px) scale(.985)!important;
  transition-duration:90ms!important;
}

/* Fine-pointer polish only: no sticky hover effects on phones/tablets. */
@media (hover:hover) and (pointer:fine){
  .landing-cta-btn:hover,.btn:hover,.cta-btn:hover{
    filter:brightness(1.045) saturate(1.04);
  }
  #galleria .gallery-item:hover{
    transform:translateY(-3px) scale(1.025)!important;
  }
}

/* Mobile: keep the site lively, but remove the costly always-running background drift. */
@media (max-width:760px){
  .band.dark::before,.band.darkish::before{
    animation:none!important;
    transform:none!important;
    opacity:.82!important;
  }
  html.v58-motion-ready .v58-enter{
    transform:translate3d(0,14px,0) scale(.996)!important;
    filter:none!important;
    transition-duration:.52s,.6s,.01s,.35s,.35s!important;
  }
  html.v58-motion-ready .v58-enter.v58-in{
    transform:translate3d(0,0,0) scale(1)!important;
  }
}

/* Accessibility: motion is decorative, never required to understand/use the page. */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important;}
  .band.dark::before,.band.darkish::before,
  .accent,.h1b,.rainbow-strong,.rainbow-black-strong,hr.rainbow-sep,
  #testimonianze .testi-particle,#ruoli .ruoli-cta-arrow,
  .section-rule .dot,.npt-rule .dot,.section-pre .dot{
    animation:none!important;
  }
  .v58-enter,.v58-rule-line{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    transition:none!important;
  }
}

/* ===== v61-logo-reviewer-photos ===== */
/* v62 — logo leggermente rialzato; foto recensioni in contenitore circolare */
.topbar-brand{
  min-width:0;
  line-height:0;
  display:flex;
  align-items:center;
}
.topbar-logo-switch{
  position:relative;
  display:block;
  height:40px;
  width:min(292px,31vw);
  max-width:292px;
  flex:0 0 auto;
  transform:translateY(1px);
}
.topbar-logo{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:left center;
  pointer-events:none;
}
.topbar-logo--on{
  opacity:1;
  filter:drop-shadow(0 2px 8px rgba(255,255,255,.08));
  animation:ibLogoOnRegular 2.8s infinite steps(1,end);
}
.topbar-logo--off{
  opacity:0;
  animation:ibLogoOffRegular 2.8s infinite steps(1,end);
}
@keyframes ibLogoOnRegular{
  0%,49.99%{opacity:1;}
  50%,100%{opacity:0;}
}
@keyframes ibLogoOffRegular{
  0%,49.99%{opacity:0;}
  50%,100%{opacity:1;}
}
.topbar-badge,.topbar-name{display:none!important;}

#testimonianze .testi-author{gap:16px;align-items:center;}
#testimonianze .testi-avatar{
  overflow:hidden;
  position:relative;
  background:linear-gradient(135deg,var(--blue),var(--violet));
  box-shadow:0 8px 24px rgba(0,0,0,.22);
}
#testimonianze .testi-avatar--photo{
  width:96px!important;
  height:96px!important;
  border-radius:50%!important;
  border:2px solid rgba(255,255,255,.22);
  background:#fff;
}
#testimonianze .testi-avatar--photo img{
  width:100%;height:100%;display:block;object-fit:cover;object-position:center;
  border-radius:inherit;transform:scale(1.02);
}
#testimonianze .testi-avatar--initials{
  width:82px!important;height:82px!important;font-size:24px!important;
  border:2px solid rgba(255,255,255,.10);
}
@media(max-width:980px){
  .topbar-logo-switch{height:36px;width:min(252px,34vw);max-width:252px;transform:translateY(1px);}
}
@media(max-width:780px){
  .topbar-logo-switch{height:30px;width:min(202px,44vw);max-width:202px;transform:translateY(0px);}
  #testimonianze .testi-avatar--photo{width:84px!important;height:84px!important;}
  #testimonianze .testi-avatar--initials{width:70px!important;height:70px!important;font-size:21px!important;}
}
@media(max-width:420px){
  .topbar-logo-switch{height:24px;width:min(158px,48vw);max-width:158px;transform:translateY(0px);}
  .topbar-cta{padding:9px 10px!important;font-size:12px!important;}
  #testimonianze .testi-avatar--photo{width:74px!important;height:74px!important;border-radius:50%!important;}
  #testimonianze .testi-avatar--initials{width:64px!important;height:64px!important;font-size:19px!important;}
}
@media (prefers-reduced-motion: reduce){
  .topbar-logo--on{animation:none!important;opacity:1!important;}
  .topbar-logo--off{animation:none!important;opacity:0!important;}
}

/* ===== v64: consenso privacy, anti-spam, WhatsApp, footer ===== */
/* specificità e !important necessari: i form della v63 forzano label a blocco e input a larghezza piena */
.simulazione-form .privacy-consent{display:flex!important;gap:.6em;align-items:flex-start;width:100%;font-size:.82rem!important;font-weight:400!important;line-height:1.4!important;letter-spacing:0!important;text-transform:none!important;color:inherit;opacity:.9;margin:.4rem 0 1.1rem!important;text-align:left!important;cursor:pointer}
.simulazione-form .privacy-consent input[type="checkbox"]{flex:0 0 auto;width:18px!important;height:18px!important;min-height:0!important;margin:.1em 0 0!important;padding:0!important;accent-color:var(--orange,#ff8a00)}
.simulazione-form .privacy-consent a{color:inherit;text-decoration:underline}
.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.site-footer{background:#070d1f;color:rgba(255,255,255,.7);font-family:'Montserrat',sans-serif;font-size:.8rem;text-align:center;padding:22px 16px 26px;line-height:1.6}
.site-footer a{color:rgba(255,255,255,.85);text-decoration:underline;margin:0 .35em}
