/* v3 — font/colori titoli sezioni scure
   ══════════════════════════════════════════════════════════════════════════
   Intesa Grandi Impianti — Home redesign ("Slider Intesa")
   Porting del design Claude → template baresto (tenant intesagrandimpianti).
   Il layout delle sezioni resta inline nel PHP (fedele al design, clamp fluido);
   qui: font, keyframes, meccanica slider, header/footer, hover-expand, mobile.
   ══════════════════════════════════════════════════════════════════════════ */
@import url("https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,400;0,500;0,600;0,700;0,800;1,700&family=Barlow+Semi+Condensed:wght@500;600;700&display=swap");

:root { --igi-accent: #2CA24E; --igi-accent-d: #1c7a38; --igi-ink: #10211a; }

/* ─────────────────────────────────────────────────────────────────────────
   BASE RESET — la home Intesa è STANDALONE (nessun CSS baresto/bootstrap).
   Questi default (box-sizing, margini, link, button) prima li dava bootstrap;
   ora vanno forniti qui. Scoped il più possibile ma box-sizing è globale perché
   il markup inline usa ovunque width:100%+padding assumendo border-box.
   ───────────────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
.igi-home a, .igi-header a, .igi-footer a, .igi-mobmenu a { text-decoration: none; }
.igi-header button, .igi-mobmenu button, .igi-home button {
  margin: 0; padding: 0; background: none; border: 0; font: inherit; color: inherit; cursor: pointer;
}
img { border: 0; }

/* ─────────────────────────────────────────────────────────────────────────
   RESET SCOPED — neutralizza il CSS globale di baresto DENTRO il redesign,
   così il risultato è identico al design Claude (self-contained). Senza questo,
   style.css/de_light di baresto forzano font Montserrat, titoli scuri/uppercase,
   colori link, ecc. Tutti gli override sono scoped a .igi-home/.igi-header/.igi-footer.
   ───────────────────────────────────────────────────────────────────────── */
/* font Barlow (baresto usa var(--body/title-font)=Montserrat) */
.igi-home, .igi-header, .igi-footer {
  --body-font: 'Barlow';
  --title-font: 'Barlow', sans-serif;
  --deco-font-1: 'Barlow Semi Condensed';
  font-family: 'Barlow', sans-serif;
}
/* titoli: baresto forza font deco, UPPERCASE, letter-spacing 10px, bordi, colore scuro.
   Li riporto a neutro; il COLORE lo eredita dalla sezione (bianco su scuro, scuro su chiaro). */
.igi-home h1, .igi-home h2, .igi-home h3, .igi-home h4, .igi-home h5, .igi-home h6,
.igi-footer h1, .igi-footer h2, .igi-footer h3, .igi-footer h4 {
  color: inherit !important;
  font-family: 'Barlow', sans-serif !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0;
  font-weight: 700;
  line-height: 1.1;
}
/* link: baresto forza a,a:hover{color:var(--title-font-color)=#111}. Nel redesign
   il colore dei link lo decidono le classi/inline (nav bianco, footer, bottoni...). */
.igi-home a, .igi-header a, .igi-footer a { color: inherit; }
/* paragrafi: baresto mette margin-bottom:20px */
.igi-home p, .igi-footer p { margin: 0; }
/* titoli su sezioni a fondo scuro: baresto `.de_light h2{color:#000}` vince sul reset
   `color:inherit` (l'inherit qui non risolve al bianco). Override esplicito ad alta
   specificità sulle sezioni scure (recensioni + CTA finale). */
.igi-home #reviews h2, .igi-home .igi-cta-final h2 { color:#fff !important; }

/* keyframes ---------------------------------------------------------------- */
@keyframes igiFadeUp   { from { opacity:0; transform:translateY(26px); } to { opacity:1; transform:translateY(0); } }
@keyframes igiFadeIn   { from { opacity:0; } to { opacity:1; } }
@keyframes igiGrowLine { from { opacity:0; width:0; } to { opacity:1; width:64px; } }
@keyframes igiKenBurns { from { transform:scale(1.0); } to { transform:scale(1.07); } }
@keyframes igiSelPulse { 0%,100% { transform:scale(1); opacity:1; } 50% { transform:scale(1.6); opacity:.45; } }

/* Intesa Selection — teaser pre-lancio + waitlist */
.igi-sel-pulse { display:inline-block; animation:igiSelPulse 1.6s ease infinite; }
.igi-sel-waitlist .igi-sel-form input { background:rgba(255,255,255,.14) !important; border-color:rgba(255,255,255,.45) !important; }
.igi-sel-waitlist .igi-sel-form input::placeholder { color:rgba(255,255,255,.78); opacity:1; }
.igi-sel-waitlist .igi-sel-form input:focus { border-color:#3dbb61 !important; background:rgba(255,255,255,.2) !important; }
.igi-sel-waitlist .igi-sel-submit { background-image:linear-gradient(#1c7a38,#1c7a38); background-repeat:no-repeat; background-size:0% 100%; background-position:left center; transition:background-size .45s cubic-bezier(.4,0,.2,1); }
.igi-sel-waitlist .igi-sel-submit:hover { background-size:100% 100%; }
.igi-sel-waitlist.is-sent .igi-sel-ok { display:flex !important; }
.igi-sel-waitlist.is-sent .igi-sel-fields { display:none; }
@media (prefers-reduced-motion: reduce) {
  .igi-sel-pulse { animation:none; }
}

/* base scoping ------------------------------------------------------------- */
.igi-home { font-family:'Barlow',sans-serif; color:#10211a; overflow-x:hidden; }
.igi-home img { max-width:100%; }
.igi-home section[id] { scroll-margin-top:88px; }

/* ══════════ HEADER (nav trasparente sopra hero, solido allo scroll) ══════ */
.igi-header {
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:clamp(14px,1.4vw,26px) clamp(24px,5.2vw,100px);
  font-family:'Barlow Semi Condensed',sans-serif;
  transition:background .35s ease, box-shadow .35s ease, padding .35s ease;
  animation:igiFadeIn 1s ease both;
}
.igi-header.is-scrolled { background:#0a140f; box-shadow:0 8px 30px rgba(0,0,0,.35); padding-top:12px; padding-bottom:12px; }
.igi-header .igi-logo img { height:clamp(40px,3.4vw,60px); width:auto; display:block; }
.igi-nav { display:flex; align-items:center; gap:clamp(16px,2vw,36px); }
.igi-nav a {
  color:#fff; text-decoration:none; font-weight:600;
  font-size:clamp(12px,.88vw,16px); letter-spacing:1.6px; text-transform:uppercase;
  transition:color .25s ease; white-space:nowrap;
}
.igi-nav a:hover { color:#3dbb61; }
.igi-nav a.igi-area-riservata { color:#3dbb61; }
.igi-cta-head {
  display:inline-flex; align-items:center; gap:12px;
  background:var(--igi-accent); color:#fff !important; text-decoration:none;
  font-weight:700; font-size:clamp(12px,.88vw,16px); letter-spacing:1.4px; text-transform:uppercase;
  padding:clamp(12px,1.05vw,18px) clamp(18px,1.6vw,28px); border-radius:6px; white-space:nowrap;
  background-image:linear-gradient(var(--igi-accent-d),var(--igi-accent-d));
  background-repeat:no-repeat; background-size:0% 100%; background-position:left center;
  transition:background-size .45s cubic-bezier(.4,0,.2,1);
}
.igi-cta-head:hover { background-size:100% 100%; }
.igi-burger { display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px; }
.igi-burger span { display:block; width:26px; height:2px; background:#fff; transition:.3s; }

/* ══════════ HERO SLIDER ══════════════════════════════════════════════════ */
.igi-hero { position:relative; width:100%; height:100vh; min-height:640px; overflow:hidden; background:#0a100d; color:#fff; font-family:'Barlow',sans-serif; }
.igi-hero .igi-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .9s ease; animation:igiKenBurns 18s ease-in-out infinite alternate; }
.igi-hero .igi-bg.is-active { opacity:1; }
.igi-hero .igi-photo { position:absolute; top:0; right:0; bottom:0; width:68%; overflow:hidden; }

.igi-hero .igi-slide { position:absolute; left:clamp(24px,5.2vw,100px); top:clamp(72px,min(6vw,9vh),110px); bottom:clamp(180px,21vh,300px); display:none; flex-direction:column; justify-content:center; max-width:clamp(420px,45vw,860px); z-index:4; transition:opacity .35s ease; }
.igi-hero .igi-slide.is-active { display:flex; }
.igi-hero.is-svc-hover .igi-slide.is-active p,
.igi-hero.is-svc-hover .igi-slide.is-active .igi-rule,
.igi-hero.is-svc-hover .igi-slide.is-active .igi-slide-cta,
.igi-hero:has(.igi-svc.is-open) .igi-slide.is-active p,
.igi-hero:has(.igi-svc.is-open) .igi-slide.is-active .igi-rule,
.igi-hero:has(.igi-svc.is-open) .igi-slide.is-active .igi-slide-cta { opacity:0; visibility:hidden; pointer-events:none; transition:none; }
.igi-hero .igi-slide h1 { margin:0; color:#fff !important; font-family:'Barlow',sans-serif !important; text-transform:none !important; border:none !important; padding:0 !important; display:block; font-size:clamp(38px,min(4.6vw,7.6vh),82px); font-weight:700; line-height:1.05; letter-spacing:-1px; animation:igiFadeUp .8s cubic-bezier(.22,.8,.3,1) .1s both; }
.igi-hero .igi-slide h1 .igi-accent, .igi-hero .igi-slide .igi-accent { color:var(--igi-accent) !important; }
.igi-hero .igi-slide .igi-eyebrow { color:var(--igi-accent); font-family:'Barlow Semi Condensed',sans-serif; font-weight:700; font-size:clamp(15px,1.15vw,22px); letter-spacing:2.5px; animation:igiFadeUp .8s cubic-bezier(.22,.8,.3,1) both; }
.igi-hero .igi-slide .igi-eyebrow-line { height:4px; width:56px; background:var(--igi-accent); border-radius:2px; margin:12px 0 22px; }
.igi-hero .igi-slide .igi-rule { height:6px; width:64px; background:var(--igi-accent); border-radius:3px; margin:clamp(16px,2.6vh,34px) 0 clamp(14px,2.3vh,30px); animation:igiGrowLine .7s ease .5s both; }
.igi-hero .igi-slide p { margin:0; font-size:clamp(15px,min(1.25vw,2.2vh),22px); line-height:1.5; color:rgba(255,255,255,.92); max-width:clamp(390px,29vw,540px); animation:igiFadeUp .8s cubic-bezier(.22,.8,.3,1) .35s both; }
.igi-hero .igi-slide .igi-slide-cta { margin-top:clamp(16px,2.4vh,36px); animation:igiFadeUp .8s cubic-bezier(.22,.8,.3,1) .55s both; }
.igi-hero .igi-slide .igi-accent { color:var(--igi-accent); }

/* Ghost: size DEFAULT = bottone di sezione (design ALTRI PROGETTI / SCOPRI ALTRE
   RECENSIONI / SCOPRI DI PIÙ). Le CTA hero (più grandi) hanno override sotto. */
.igi-btn-ghost {
  display:inline-flex; align-items:center; gap:14px; border:2px solid rgba(255,255,255,.85); color:#fff; text-decoration:none;
  font-family:'Barlow Semi Condensed',sans-serif; font-weight:700; font-size:clamp(12px,.85vw,15px); letter-spacing:1.6px; text-transform:uppercase;
  padding:15px 24px; border-radius:6px;
  background-image:linear-gradient(var(--igi-accent),var(--igi-accent)); background-repeat:no-repeat; background-size:0% 100%; background-position:left center;
  transition:background-size .45s cubic-bezier(.4,0,.2,1), border-color .45s ease;
}
.igi-btn-ghost:hover { background-size:100% 100%; border-color:var(--igi-accent); color:#fff; }
/* CTA hero (slide): dimensione grande come nel design (L132). */
.igi-hero .igi-slide-cta .igi-btn-ghost { gap:16px; font-size:clamp(14px,.95vw,18px); letter-spacing:1.8px; padding:clamp(15px,1.15vw,22px) clamp(24px,1.9vw,36px); }
/* varianti ghost su sezioni chiare (testo/bordo scuri o accent in stato normale) */
.igi-btn-ghost.igi-ghost-dark   { color:var(--igi-ink); border-color:var(--igi-ink); }
.igi-btn-ghost.igi-ghost-accent { color:var(--igi-accent); border-color:var(--igi-accent); }
.igi-btn-ghost.igi-ghost-dark:hover, .igi-btn-ghost.igi-ghost-accent:hover { color:#fff; border-color:var(--igi-accent); }

/* frecce */
.igi-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:6; width:52px; height:52px; display:flex; align-items:center; justify-content:center; cursor:pointer; color:rgba(255,255,255,.85); font-size:34px; user-select:none; transition:color .25s ease; }
.igi-arrow:hover { color:#fff; }
.igi-arrow.prev { left:14px; } .igi-arrow.next { right:14px; }

/* strip servizi */
.igi-svcstrip { position:absolute; left:0; right:0; bottom:clamp(30px,2.7vw,52px); display:grid; grid-template-columns:repeat(4,1fr); align-items:end; padding:0 clamp(24px,4.7vw,90px); z-index:5; animation:igiFadeUp .9s cubic-bezier(.22,.8,.3,1) .7s both; }
.igi-svc { position:relative; display:flex; flex-direction:column; padding:6px clamp(12px,1.5vw,28px); border-right:1px solid rgba(255,255,255,.28); cursor:pointer; transform:translateY(0); transition:transform .35s cubic-bezier(.22,.8,.3,1); }
.igi-svc:last-child { border-right:0; }
.igi-svc.is-open { transform:translateY(-10px); z-index:2; background:rgba(8,14,11,.94); border-radius:12px; border-right-color:transparent; box-shadow:0 -8px 34px rgba(0,0,0,.5); }
.igi-svc .igi-svc-head { display:flex; align-items:flex-start; gap:clamp(12px,1.05vw,20px); }
.igi-svc svg { flex-shrink:0; width:clamp(38px,2.9vw,56px); height:clamp(38px,2.9vw,56px); stroke:#fff; transition:stroke .3s ease; }
.igi-svc.is-open svg { stroke:var(--igi-accent); }
.igi-svc .igi-svc-title { font-family:'Barlow Semi Condensed',sans-serif; font-weight:700; font-size:clamp(14px,1.05vw,20px); letter-spacing:1.5px; color:#fff; transition:color .3s ease; }
.igi-svc.is-open .igi-svc-title { color:var(--igi-accent); }
.igi-svc .igi-svc-sub { font-size:clamp(13px,.92vw,17px); line-height:1.4; color:rgba(255,255,255,.85); margin-top:6px; }
.igi-svc .igi-svc-detail { display:grid; grid-template-rows:0fr; opacity:0; overflow:hidden; transition:grid-template-rows .4s ease, opacity .35s ease; font-size:clamp(13px,.92vw,16px); line-height:1.6; color:rgba(255,255,255,.9); }
.igi-svc.is-open .igi-svc-detail { grid-template-rows:1fr; opacity:1; }
.igi-svc .igi-svc-detail > div { overflow:hidden; min-height:0; border-top:1px solid rgba(255,255,255,.18); margin-top:14px; padding-top:12px; }

/* dots */
.igi-dots { position:absolute; left:0; right:0; bottom:16px; display:flex; justify-content:center; gap:14px; z-index:6; }
.igi-dot { width:20px; height:5px; background:rgba(255,255,255,.85); border-radius:3px; cursor:pointer; overflow:hidden; transition:width .4s ease; }
.igi-dot.is-active { width:52px; }
.igi-dot-fill { width:0; height:100%; background:var(--igi-accent); border-radius:3px; }

/* recensioni: card = slot (flip), box interno = riquadro visivo (bg/bordo/padding).
   Struttura a 2 livelli così su mobile la card è slide a piena larghezza e il box
   resta centrato con margini (i vicini restano fuori schermo, non tagliati). */
.igi-grid-rev { perspective:1200px; }
.igi-rev-card { display:flex; opacity:0; transform:rotateY(-90deg); transform-origin:left center; will-change:transform, opacity; transition:transform .6s cubic-bezier(.22,.8,.3,1), opacity .5s ease; }
.igi-rev-card.is-in { opacity:1; transform:rotateY(0); }
.igi-rev-box { flex:1 1 auto; width:100%; }
@media (prefers-reduced-motion:reduce) { .igi-rev-card { transition:none; transform:none; opacity:1; } }
/* dots carosello recensioni (solo mobile) */
.igi-rev-dots { display:none; justify-content:center; align-items:center; gap:14px; margin-top:24px; }
.igi-rev-dot { flex:0 0 auto; width:20px; height:5px; border-radius:3px; background:rgba(255,255,255,.85); cursor:pointer; transition:width .4s ease, background .4s ease; }
.igi-rev-dot:hover { background:#fff; }
.igi-rev-dot.is-active { width:52px; background:var(--igi-accent); }
/* nudge ripetuto della card attiva: suggerisce lo swipe verso sinistra.
   Nudge rapido a inizio ciclo poi pausa lunga → ammicca in loop finché resti lì
   (si ferma quando l'utente fa swipe: la classe viene rimossa da JS). */
/* intermittente: doppio colpetto a sinistra (tap-tap) poi pausa breve, in loop */
@keyframes igiRevNudge {
  0%, 6% { transform:translate3d(0,0,0); }
  15%    { transform:translate3d(-15px,0,0); }
  24%    { transform:translate3d(0,0,0); }
  33%    { transform:translate3d(-15px,0,0); }
  42%, 100% { transform:translate3d(0,0,0); }
}
.igi-rev-card.igi-nudge .igi-rev-box { animation:igiRevNudge 2.1s ease-in-out infinite; will-change:transform; backface-visibility:hidden; }
@media (prefers-reduced-motion:reduce) { .igi-rev-card.igi-nudge .igi-rev-box { animation:none; } }

/* generico bottone "fill" scuro (CTA verdi) */
.igi-btn-solid {
  display:inline-flex; align-items:center; gap:12px; background:var(--igi-accent); color:#fff !important; text-decoration:none;
  font-family:'Barlow Semi Condensed',sans-serif; font-weight:700; letter-spacing:1.4px; text-transform:uppercase; border-radius:6px;
  background-image:linear-gradient(var(--igi-accent-d),var(--igi-accent-d)); background-repeat:no-repeat; background-size:0% 100%; background-position:left center;
  transition:background-size .45s cubic-bezier(.4,0,.2,1);
}
.igi-btn-solid:hover { background-size:100% 100%; }

/* ══════════ FOOTER ═══════════════════════════════════════════════════════ */
.igi-footer { background:#07110c; color:rgba(255,255,255,.8); font-family:'Barlow',sans-serif; padding:clamp(44px,4vw,70px) clamp(24px,4.7vw,90px) 28px; }
.igi-footer .igi-foot-grid { display:grid; grid-template-columns:minmax(180px,240px) repeat(4,1fr); gap:clamp(24px,3vw,56px); align-items:start; }
.igi-footer .igi-foot-grid > div:first-child { align-self:center; }
.igi-footer .igi-foot-brand { display:inline-block; text-align:center; }
.igi-footer img.igi-foot-logo { height:120px; width:auto; display:block; filter:brightness(0) invert(1); }
.igi-footer .igi-foot-tag { font-family:'Barlow Semi Condensed',sans-serif; font-size:14px; color:var(--igi-accent); margin-top:10px; }
.igi-footer .igi-foot-social { display:flex; justify-content:center; gap:12px; margin-top:18px; }
.igi-footer .igi-foot-social a { display:flex; align-items:center; justify-content:center; width:34px; height:34px; border:1px solid rgba(255,255,255,.3); border-radius:50%; color:#fff; transition:border-color .3s ease, color .3s ease; }
.igi-footer .igi-foot-social a:hover { border-color:var(--igi-accent); color:var(--igi-accent); }
.igi-footer .igi-foot-h { font-family:'Barlow Semi Condensed',sans-serif; font-weight:700; font-size:13px; letter-spacing:1.8px; color:#fff; margin-bottom:16px; text-transform:uppercase; }
.igi-footer .igi-foot-col { display:flex; flex-direction:column; gap:10px; font-size:14px; line-height:1.5; }
.igi-footer .igi-foot-col a { color:rgba(255,255,255,.8); text-decoration:none; transition:color .3s ease; }
.igi-footer .igi-foot-col a:hover { color:var(--igi-accent); }
.igi-footer .igi-foot-bottom { border-top:1px solid rgba(255,255,255,.12); margin-top:clamp(30px,3vw,48px); padding-top:20px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:12px; color:rgba(255,255,255,.5); }

/* card realizzazioni: B&W di default, colore + espansione su hover (come design Homepage) */
.igi-real-item { position:relative; flex:1 1 0; min-width:0; transition:flex-grow .55s cubic-bezier(.22,.8,.3,1); }
.igi-real-item:hover { flex-grow:2.6; }
.igi-grid-real .igi-real-item img { filter:grayscale(1); transition:filter .5s ease; }
.igi-grid-real .igi-real-item:hover img { filter:none; }

/* ══════════ RESPONSIVE ═══════════════════════════════════════════════════ */
/* menu mobile fullscreen (come design Homepage) */
.igi-mobmenu { display:none; position:fixed; inset:0; z-index:300; background:rgba(8,16,12,.98); color:#fff; flex-direction:column; padding:70px 30px 40px; animation:igiFadeIn .25s ease both; }
.igi-mobmenu.is-open { display:flex; }
.igi-mobmenu-close { position:absolute; top:58px; right:16px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.4); border-radius:50%; background:none; color:#fff; font-size:20px; cursor:pointer; }
.igi-mobmenu-logo { height:44px; width:auto; max-width:220px; object-fit:contain; align-self:flex-start; display:block; margin-bottom:40px; }
.igi-mobmenu-nav { display:flex; flex-direction:column; gap:4px; font-family:'Barlow Semi Condensed',sans-serif; font-weight:600; font-size:20px; letter-spacing:2px; }
.igi-mobmenu-nav a { color:#fff; text-decoration:none; text-transform:uppercase; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.14); }
.igi-mobmenu-nav a.igi-area-riservata { color:#3dbb61; }
.igi-mobmenu-cta { margin-top:auto; display:flex; align-items:center; justify-content:center; gap:12px; background:var(--igi-accent); color:#fff; text-decoration:none; font-family:'Barlow Semi Condensed',sans-serif; font-weight:700; font-size:15px; letter-spacing:1.5px; text-transform:uppercase; padding:17px 20px; border-radius:6px; }
body.igi-menu-open { overflow:hidden; }

/* overlay pilastri su mobile (tap → dettaglio fullscreen, come design) */
.igi-mob-ov { display:none; position:fixed; inset:0; z-index:250; background:rgba(8,16,12,.97); flex-direction:column; justify-content:center; padding:32px 26px; animation:igiFadeIn .3s ease both; color:#fff; }
.igi-mob-ov.is-open { display:flex; }
.igi-mob-ov .igi-mob-ov-close { position:absolute; top:18px; right:18px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.4); border-radius:50%; color:#fff; font-size:22px; cursor:pointer; background:none; }
.igi-mob-ov .igi-mob-ov-title { color:var(--igi-accent); font-family:'Barlow Semi Condensed',sans-serif; font-weight:700; font-size:18px; letter-spacing:2px; text-transform:uppercase; }
.igi-mob-ov .igi-mob-ov-rule { height:4px; width:52px; background:var(--igi-accent); border-radius:2px; margin:14px 0 20px; }
.igi-mob-ov .igi-mob-ov-text { color:rgba(255,255,255,.92); font-size:16px; line-height:1.7; }

/* frecce carosello recensioni (solo mobile) */
.igi-rev-arrow { display:none; position:absolute; top:50%; transform:translateY(-50%); z-index:6; width:44px; height:44px; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.4); border-radius:50%; background:rgba(8,16,12,.55); color:#fff; font-size:22px; cursor:pointer; }
.igi-rev-arrow.prev { left:-4px; } .igi-rev-arrow.next { right:-4px; }

/* SELECTION: card selezionabili (evidenza/colore spostabile al click) */
.igi-grid-sel > .igi-sel-card { cursor:pointer; transition:background .3s ease, border-color .3s ease, box-shadow .3s ease, transform .3s ease, opacity .3s ease; }
.igi-grid-sel > .igi-sel-card.igi-sel-active { background:#fff !important; border:2px solid var(--igi-accent) !important; box-shadow:0 18px 36px rgba(16,33,26,.16) !important; transform:scale(1.03); opacity:1 !important; }
.igi-sel-chev { display:none; } /* affordance accordion solo su mobile */
.igi-sel-card > .igi-sel-body { flex:1; display:flex; flex-direction:column; }
.igi-sel-card > .igi-sel-body > .igi-sel-body-in { flex:1; }

/* ═══════════════════════════════════════════════════════════════════════════
   MOBILE — porting fedele del design Claude (@media max-width:860px, breakpoint
   unico). Hero a piena foto con una slide in overlay, pilastri tap→overlay,
   caroselli scroll-snap per realizzazioni/recensioni, selection impilata.
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width:860px) {
  /* NAV → hamburger + menu; allo scroll nav bianca con accent verde */
  .igi-nav, .igi-cta-head { display:none !important; }
  /* hamburger a sinistra (fuori flusso), logo centrato — come design */
  .igi-header { padding:clamp(14px,4vw,22px) 16px; }
  .igi-burger { display:flex !important; position:absolute; left:12px; top:50%; transform:translateY(-50%); }
  /* logo largo quanto l'immagine (non flex:1) → l'<a href="/"> non copre tutta
     la barra: prima un tap ovunque nell'header ricaricava la home. Centrato via margin auto. */
  .igi-header .igi-logo { flex:0 1 auto; margin:0 auto; text-align:center; }
  .igi-header .igi-logo img { height:40px !important; display:inline-block; }
  .igi-header.is-scrolled { background:#fff !important; border-bottom:3px solid var(--igi-accent); box-shadow:0 6px 18px rgba(16,33,26,.12); }
  .igi-header.is-scrolled .igi-burger span { background:var(--igi-accent) !important; }
  .igi-header.is-scrolled .igi-logo img { filter:brightness(0) saturate(100%) invert(48%) sepia(61%) saturate(546%) hue-rotate(87deg) brightness(93%) contrast(88%); }

  /* HERO — foto a piena larghezza dietro, UNA slide in overlay sopra.
     Si tiene 100vh + #igiHero absolute (base): niente collasso a 0. */
  .igi-hero .igi-photo { width:100% !important; }
  .igi-hero .igi-slide { left:22px !important; right:22px !important; max-width:none !important; top:100px !important; bottom:230px !important; }
  .igi-hero .igi-slide h1 { font-size:40px !important; }
  .igi-hero .igi-slide p { font-size:15px !important; max-width:none !important; }
  .igi-arrow { display:none !important; }

  /* STRIP pilastri: 2×2, solo titolo (sub/detail via overlay al tap) */
  .igi-svcstrip { grid-template-columns:1fr 1fr !important; padding:0 14px !important; bottom:26px !important; gap:4px 0 !important; }
  .igi-svc { border-right:none !important; padding:4px 10px !important; transform:none !important; background:none !important; box-shadow:none !important; }
  .igi-svc svg { width:26px !important; height:26px !important; }
  .igi-svc .igi-svc-sub, .igi-svc .igi-svc-detail { display:none !important; }
  /* sub nascosta su mobile → centra icona col titolo (niente top-align che fa penzolare l'icona) */
  .igi-svc .igi-svc-head { align-items:center !important; }
  /* colonna destra (Fornitura, Assistenza): icona a destra del testo, simmetrica */
  .igi-svc:nth-child(2), .igi-svc:nth-child(4) { align-items:flex-end !important; }
  .igi-svc:nth-child(2) .igi-svc-head, .igi-svc:nth-child(4) .igi-svc-head { flex-direction:row-reverse !important; }
  .igi-svc:nth-child(2) .igi-svc-title, .igi-svc:nth-child(4) .igi-svc-title { text-align:right; }

  /* SEZIONI 2-col → 1-col */
  .igi-sec-2col { grid-template-columns:1fr !important; gap:28px !important; padding-left:22px !important; padding-right:22px !important; }

  /* INTESA SELECTION teaser: form 1-col (evita il 4-in-riga stretto 641-860px)
     + card scura con padding più leggero sugli schermi stretti */
  .igi-sec-sel-teaser > div:last-child { padding:clamp(26px,6vw,40px) clamp(20px,5vw,32px) !important; }
  .igi-sel-waitlist .igi-sel-form { grid-template-columns:1fr !important; gap:10px !important; }
  .igi-sel-waitlist .igi-sel-submit { padding:16px 26px !important; }

  /* REALIZZAZIONI: carosello scroll-snap (card centrata a colori via .igi-real-focus) */
  .igi-grid-real { flex-wrap:nowrap !important; overflow-x:auto !important; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding-bottom:10px; scrollbar-width:none; -ms-overflow-style:none; }
  .igi-grid-real::-webkit-scrollbar { display:none; }
  .igi-grid-real .igi-real-item { flex:0 0 76% !important; scroll-snap-align:center; }
  .igi-grid-real .igi-real-item:hover { flex-grow:0 !important; }
  .igi-grid-real .igi-real-item img { height:380px !important; }
  .igi-grid-real .igi-real-item.igi-real-focus img { filter:none !important; }

  /* SERVIZI 2 col */
  .igi-grid-serv { grid-template-columns:1fr 1fr !important; row-gap:34px !important; }
  .igi-grid-serv > div { border-left:none !important; }

  /* ══ RECENSIONI mobile — carosello robusto (una card alla volta + dots) ══════
     FIX CHIAVE (grid blowout): la colonna recensioni è una traccia grid 1fr con
     min=auto → il carosello (largo 300%) allargava la traccia invece di scrollare,
     e .igi-home{overflow-x:hidden} lo tagliava = layout rotto. min-width:0 ovunque
     lungo la catena (colonna → wrap → grid → card) lascia scrollare il carosello.
     Niente flip 3D su mobile (fragile in overflow+perspective): card piatte/stabili. */
  #reviews .igi-sec-2col { grid-template-columns:minmax(0,1fr) !important; }
  .igi-rev-wrap { min-width:0; }
  .igi-grid-rev {
    display:flex !important; grid-template-columns:none !important; min-width:0;
    gap:0 !important; overflow-x:auto !important; scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch; padding-bottom:4px; perspective:none;
    scrollbar-width:none; -ms-overflow-style:none;
  }
  .igi-grid-rev::-webkit-scrollbar { display:none; }
  .igi-grid-rev > .igi-rev-card {
    flex:0 0 100% !important; min-width:0; scroll-snap-align:center;
    padding:0 clamp(16px,5vw,32px); box-sizing:border-box;
    opacity:1 !important; transform:none !important;
  }
  .igi-rev-arrow { display:none !important; } /* niente frecce su mobile: swipe (nudge) + dots */
  .igi-rev-dots { display:flex !important; }

  /* ══ SELECTION mobile (Opzione A) — offerta attiva in evidenza + timeline ══════
     La card del trimestre corrente (.igi-sel-active) è l'EROE: pinnata in cima
     (order:-1), sempre aperta, verde, con foto+benefici+CTA. Le altre 3 sono una
     strip di CONTESTO compatta (riga stagione + stato). Restano MUTE e mai verdi,
     ma sono tappabili: si aprono in un teaser (foto+titolo+stato) — accordion, una
     alla volta — così si possono rivedere le passate/future senza confondere quale
     sia l'attuale. Il JS gestisce l'espansione su mobile (classe .igi-sel-open),
     senza mai toccare .igi-sel-active. */
  .igi-grid-sel { display:flex !important; grid-template-columns:none !important; flex-direction:column !important; gap:10px !important; }
  .igi-grid-sel > .igi-sel-card { transform:none !important; position:relative; margin:0 !important; opacity:1 !important; }

  /* EROE: la selection attiva, in cima, sempre aperta e prominente (non collassa) */
  .igi-grid-sel > .igi-sel-card.igi-sel-active {
    order:-1; border:2px solid var(--igi-accent) !important; border-radius:14px !important;
    box-shadow:0 16px 34px rgba(16,33,26,.18) !important; margin-bottom:4px !important;
  }
  .igi-grid-sel > .igi-sel-card.igi-sel-active > .igi-sel-body { display:block !important; }
  /* Foto prodotto: sorgente 3/4 verticale. Su mobile il box è ~quadrato → con
     object-fit:cover il prodotto verrebbe tagliato. Box 1/1 + contain = prodotto
     INTERO, centrato, con lo sfondo neutro (#eef1ef inline) attorno. */
  .igi-sel-photo { aspect-ratio:1/1 !important; max-height:260px; }
  .igi-sel-photo img { object-fit:contain !important; }

  /* CONTESTO: header compatto tappabile (stagione sx, stato dx, chevron), corpo
     teaser espandibile via .igi-sel-open — MAI stile "attiva" (niente verde). */
  .igi-grid-sel > .igi-sel-card:not(.igi-sel-active) {
    border:1px solid #dbe4de !important; border-radius:10px !important;
    box-shadow:none !important; cursor:pointer;
  }
  .igi-grid-sel > .igi-sel-card:not(.igi-sel-active) > .igi-sel-head {
    position:relative; display:flex !important; align-items:center; justify-content:space-between;
    gap:12px; padding:11px 40px 11px 16px !important; text-align:left !important;
  }
  .igi-grid-sel > .igi-sel-card:not(.igi-sel-active) > .igi-sel-body {
    display:grid !important; grid-template-rows:0fr;
    transition:grid-template-rows .4s cubic-bezier(.4,0,.2,1);
  }
  .igi-grid-sel > .igi-sel-card:not(.igi-sel-active).igi-sel-open > .igi-sel-body { grid-template-rows:1fr; }
  .igi-grid-sel > .igi-sel-card:not(.igi-sel-active) > .igi-sel-body > .igi-sel-body-in { min-height:0; overflow:hidden; }

  /* chevron affordance solo sulle card di contesto (l'eroe non ce l'ha) */
  .igi-sel-chev { display:none; }
  .igi-grid-sel > .igi-sel-card:not(.igi-sel-active) .igi-sel-chev {
    display:block; position:absolute; right:14px; top:50%; transform:translateY(-50%);
    font-size:13px; line-height:1; opacity:.8; transition:transform .3s ease;
  }
  .igi-grid-sel > .igi-sel-card:not(.igi-sel-active).igi-sel-open .igi-sel-chev { transform:translateY(-50%) rotate(180deg); }

  /* STAFF 2 col */
  .igi-grid-staff { grid-template-columns:1fr 1fr !important; row-gap:22px !important; }

  /* FOOTER (fedele al design): brand + Contatti full-width centrati; Link rapidi +
     Servizi principali nascosti; Azienda (5ª) full-width con link in riga orizzontale */
  .igi-footer { padding:44px 22px 24px; }
  .igi-footer .igi-foot-grid { grid-template-columns:1fr 1fr !important; gap:32px 20px !important; }
  .igi-footer .igi-foot-grid > div:nth-child(1) { grid-column:1 / -1; text-align:center; }
  .igi-footer .igi-foot-grid > div:nth-child(1) .igi-foot-social { justify-content:center; }
  .igi-footer .igi-foot-grid > div:nth-child(2) { grid-column:1 / -1; text-align:center; }
  .igi-footer .igi-foot-grid > div:nth-child(3),
  .igi-footer .igi-foot-grid > div:nth-child(4) { display:none !important; }
  .igi-footer .igi-foot-grid > div:nth-child(5) { grid-column:1 / -1; }
  .igi-footer .igi-foot-grid > div:nth-child(5) .igi-foot-h { text-align:center; }
  .igi-footer .igi-foot-grid > div:nth-child(5) .igi-foot-col { flex-direction:row !important; flex-wrap:wrap; gap:8px 22px !important; justify-content:center; }
  .igi-footer .igi-foot-bottom { flex-direction:column; align-items:center; text-align:center; gap:6px; }

  /* CTA finale in colonna */
  .igi-cta-final { flex-direction:column !important; align-items:flex-start !important; }

  /* NOLEGGIO OPERATIVO: la card stat sporge sotto la foto (bottom negativo) →
     dà spazio alla colonna testi impilata sotto (come design, media-query). */
  .igi-sec-noleggio > div:last-child { margin-top:30px; }
}

/* ── STAFF: card flip 3D al passaggio del mouse (fronte→retro) ──────────────── */
.igi-staff-flip { perspective:1200px; }
.igi-staff-flip-inner { position:relative; width:100%; height:clamp(150px,13vw,210px); transform-style:preserve-3d; transition:transform .6s cubic-bezier(.2,.8,.2,1); }
.igi-staff-flip.has-flip:hover .igi-staff-flip-inner { transform:rotateY(180deg); }
.igi-staff-face { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; border-radius:12px; display:block; backface-visibility:hidden; -webkit-backface-visibility:hidden; }
.igi-staff-back { transform:rotateY(180deg); }
