/* ═══════════════════════════════════════════════════════════════════════════════════════════════
   KIT "IC" — Colorificio Italcover. Estetica "marca di pitture premium": bianco e carta azzurrina con
   velature di pigmento (pennellate), blu navy del marchio, rosso Italcover per le azioni, bande blu notte
   (hero scuro, CTA, footer) come accento. Sito CHIARO. Tutto scoped su .kit-ic.
   Restyle anche l'header/footer/negozio del CORE (siti che usano TopBar+NavBar+commerce) — vedi in fondo.
   ═══════════════════════════════════════════════════════════════════════════════════════════════ */
/* Font self-hosted (Outfit + DM Sans, SIL Open Font License), file VARIABILI, latin + latin-ext. */
@font-face { font-family: 'Outfit'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(fonts/outfit-vf-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Outfit'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(fonts/outfit-vf-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(fonts/dmsans-vf-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(fonts/dmsans-vf-latin.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; }

.kit-ic {
  /* ── marchio ── (i nomi delle variabili vengono dal kit padre: "blu" = colore di marca, "cu" = accento/CTA, "cy" = secondario) */
  --ic-blu: #1B2A72; --ic-blu-d: #1B2450; --ic-blu-l: #7C8CD9; --ic-blu-w: #E9EDF9;
  --ic-cu: #E2001A; --ic-cu-l: #FF6B78; --ic-red-d: #B60016; --ic-cy: #3C4FA8; --ic-cy-l: #AAB8F5;
  /* ── fondi ── bianco e carta azzurrina di regola, blu notte come accento ── */
  --ic-white: #ffffff; --ic-white2: #F1F4FB; --ic-sand: #F6F8FD;
  --ic-ink: #141C47; --ic-ink2: #1B2A72; --ic-panel: #1F2C6E; --ic-panel2: #26358A; --ic-anth: #2E3D8F;
  --ic-inkl: #131A3A; --ic-mutel: #4A5273; --ic-diml: #5E6889;
  --ic-text: #EEF1FB; --ic-mute: #B7C0E6; --ic-dim: #8D98C9;
  --ic-line: rgba(255,255,255,.12); --ic-line2: rgba(255,255,255,.24);
  --ic-linel: #DDE3F2; --ic-linel2: #C3CCE6;
  --ic-led: var(--ic-cu); --ic-led2: var(--ic-cu-l); --ic-rec: var(--ic-cu);
  --ic-card: #fff; --ic-card2: var(--ic-white2); --ic-cardline: var(--ic-linel); --ic-cardsh: 0 22px 54px -34px rgba(20,28,71,.35);
  --ic-accRGB: 226,0,26; --ic-inkRGB: 20,28,71; --ic-bluRGB: 27,42,114; --ic-cyRGB: 60,79,168;
  --ic-r: 16px; --ic-r2: 26px; --ic-frame: 0px;
  --ic-ease: cubic-bezier(.2,.7,.1,1); --ic-ease2: cubic-bezier(.65,0,.35,1);
  --ic-fd: 'Outfit', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ic-fb: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ic-fm: 'DM Sans', system-ui, sans-serif;
  --ic-wrap: min(1300px, 100% - 2*var(--ic-gut)); --ic-gut: clamp(18px, 4vw, 48px);
  --ic-hh: 76px;
  /* velature di pigmento: pennellate SVG leggerissime per le sezioni carta (niente richieste di rete) */
  --ic-wash: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='720' viewBox='0 0 720 720'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M40 120c120-30 220 10 340-20s200-40 300-10' stroke='%231B2A72' stroke-opacity='.07' stroke-width='26'/%3E%3Cpath d='M-20 560c140 20 240-40 380-10s220 30 380 0' stroke='%231B2A72' stroke-opacity='.055' stroke-width='34'/%3E%3Cpath d='M80 330c110-40 210-10 330 10' stroke='%23E2001A' stroke-opacity='.045' stroke-width='22'/%3E%3Cpath d='M420 250c90 20 170-20 280 10' stroke='%231B2A72' stroke-opacity='.05' stroke-width='16'/%3E%3Cpath d='M300 660c80-30 150 10 250-20' stroke='%23E2001A' stroke-opacity='.035' stroke-width='28'/%3E%3Cpath d='M560 460c60-20 110 10 180-10' stroke='%231B2A72' stroke-opacity='.045' stroke-width='18'/%3E%3C/g%3E%3C/svg%3E");
  /* i blocchi del core usano i font del kit */
  --fz-display: var(--ic-fd); --fz-body: var(--ic-fb);
  margin: 0; background: var(--ic-white); color: var(--ic-inkl); font-family: var(--ic-fb);
  font-size: clamp(16px, .25vw + 15px, 17.5px); line-height: 1.68;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip;
}
.kit-ic *, .kit-ic *::before, .kit-ic *::after { box-sizing: border-box; }
.kit-ic img, .kit-ic video, .kit-ic canvas { max-width: 100%; display: block; }
.kit-ic img { height: auto; }
.kit-ic a { color: inherit; }
.kit-ic ::selection { background: var(--ic-blu); color: #fff; }
.kit-ic :focus-visible { outline: 2px solid var(--ic-blu); outline-offset: 3px; border-radius: 4px; }
.kit-ic .ic-t-dark :focus-visible { outline-color: var(--ic-cu-l); }
.kit-ic [hidden] { display: none !important; }
.kit-ic .sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.kit-ic #progress, body.kit-ic:has(.ic-crumbs) > .breadcrumb { display: none !important; }
.kit-ic .ic-wrap { width: var(--ic-wrap); margin-inline: auto; }

/* Velature di pigmento: base comune delle sezioni carta (SVG in data-URI, nessuna richiesta) */
.kit-ic .ic-grid-bg { background-image: var(--ic-wash); background-size: 720px 720px; opacity: 1; }
/* ─────────── Tipografia ─────────── */
.kit-ic h1, .kit-ic h2, .kit-ic h3, .kit-ic h4 { font-family: var(--ic-fd); font-weight: 600; letter-spacing: -.028em; line-height: 1.06; margin: 0 0 .5em; color: inherit; text-wrap: balance; }
.kit-ic .ic-title, .kit-ic .ic-head h2 { font-size: clamp(2rem, 4.1vw, 3.9rem); }
.kit-ic h3 { font-size: clamp(1.2rem, 1.2vw + .9rem, 1.6rem);  letter-spacing: -.01em; line-height: 1.15; }
.kit-ic p { margin: 0 0 1em; }
.kit-ic em { font-style: normal; }
.kit-ic em { color: var(--ic-blu); }
.kit-ic .ic-t-dark em{ color: var(--ic-cu-l); }
.kit-ic .ic-eyebrow { display: inline-flex; align-items: center; gap: 10px; font: 600 .73rem/1 var(--ic-fm); letter-spacing: .17em; text-transform: uppercase; color: var(--ic-blu); margin: 0 0 22px; }
.kit-ic .ic-t-dark .ic-eyebrow{ color: var(--ic-cy-l); }
.kit-ic .ic-rec { position: relative; width: 9px; height: 9px; border-radius: 50%; background: var(--ic-rec); flex: none; }
/* pulsazione composita (transform + opacity: niente ridisegni, a differenza del box-shadow animato) */
.kit-ic .ic-rec::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: rgba(var(--ic-accRGB),.55); animation: ic-rec 1.8s ease-out infinite; }
@keyframes ic-rec { 0% { transform: scale(1); opacity: .9; } 70% { transform: scale(3.2); opacity: 0; } 100% { transform: scale(3.2); opacity: 0; } }
.kit-ic .ic-intro { font-size: clamp(1.02rem, .5vw + .9rem, 1.22rem); color: var(--ic-mutel); max-width: 62ch; }
.kit-ic .ic-t-dark .ic-intro{ color: var(--ic-mute); }
.kit-ic .ic-head { margin-bottom: clamp(36px, 5vw, 64px); max-width: 900px; }
.kit-ic .ic-head--center { margin-inline: auto; text-align: center; }
.kit-ic .ic-head--center .ic-eyebrow { justify-content: center; }
.kit-ic .ic-head--center .ic-intro { margin-inline: auto; }
.kit-ic .ic-rich { color: var(--ic-mutel); }
.kit-ic .ic-rich p, .kit-ic .ic-rich li { max-width: 68ch; }
.kit-ic .ic-rich strong { color: var(--ic-inkl); font-weight: 600; }
.kit-ic .ic-t-dark .ic-rich{ color: var(--ic-mute); }
.kit-ic .ic-t-dark .ic-rich strong{ color: var(--ic-text); }
.kit-ic .ic-rich a { color: var(--ic-blu); text-underline-offset: 3px; }
.kit-ic .ic-t-dark .ic-rich a{ color: var(--ic-cu-l); }
.kit-ic .ic-note { font-size: .86rem; color: var(--ic-diml); margin-top: 18px; }
.kit-ic .ic-t-dark .ic-note{ color: var(--ic-dim); }
.kit-ic .ic-ic { width: 1.25em; height: 1.25em; flex: none; }
.kit-ic .ic-ic-s { width: 1em; height: 1em; }

/* ─────────── Temi di sezione ─────────── */
.kit-ic .ic-sec { position: relative; padding-block: clamp(80px, 11vw, 160px); }
.kit-ic .ic-t-light { background: var(--ic-white); color: var(--ic-inkl); }
/* "panel" = carta azzurrina con velature di pigmento, il respiro tra due sezioni bianche. È un tema CHIARO:
   eredita i colori del chiaro (nel kit E80 era trattato come scuro → testi illeggibili). */
.kit-ic .ic-t-panel { background: var(--ic-white2) var(--ic-wash); background-size: auto, 720px 720px; color: var(--ic-inkl); --ic-led: var(--ic-cu); --ic-led2: var(--ic-cu-l); }
/* "dark" = blu notte (sfumatura navy): hero scuro, CTA, footer e le poche bande di enfasi */
.kit-ic .ic-t-dark { background: var(--ic-ink) linear-gradient(155deg, #141C47 0%, #1B2A72 100%); color: var(--ic-text); --ic-led: var(--ic-cu-l); --ic-led2: #FF8B96; --ic-accRGB: 255,107,120; --ic-rec: var(--ic-cu-l); --ic-card: var(--ic-panel); --ic-card2: var(--ic-panel2); --ic-cardline: var(--ic-line); --ic-cardsh: 0 20px 46px -28px rgba(0,0,0,.55); }
.kit-ic .ic-t-dark h1, .kit-ic .ic-t-dark h2, .kit-ic .ic-t-dark h3, .kit-ic .ic-t-dark h4 { color: #fff; }
/* filo sottile tra due sezioni chiare consecutive */
.kit-ic .ic-t-light + .ic-t-light, .kit-ic .ic-t-panel + .ic-t-panel { border-top: 1px solid var(--ic-linel); }
.kit-ic .ic-t-dark + .ic-t-dark::before {
  content: ""; position: absolute; top: 0; left: 50%; width: min(1320px, 92%); height: 1px; transform: translateX(-50%);
  background: linear-gradient(90deg, transparent, rgba(var(--ic-accRGB),.55), transparent); box-shadow: 0 0 18px rgba(var(--ic-accRGB),.35); }

/* ─────────── Pulsanti ─────────── */
.kit-ic .ic-btn { --mx: 0px; --my: 0px; position: relative; display: inline-flex; align-items: center; gap: 14px; min-height: 54px; padding: 0 16px 0 26px; border-radius: 999px;
  font: 650 1rem/1 var(--ic-fb); text-decoration: none; letter-spacing: .005em; transform: translate(var(--mx), var(--my)); transition: transform .35s var(--ic-ease), background .3s, color .3s, box-shadow .3s; isolation: isolate; overflow: hidden; }
.kit-ic .ic-btn-i { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; transition: transform .45s var(--ic-ease); }
.kit-ic .ic-btn:hover .ic-btn-i { transform: rotate(-45deg); }
.kit-ic .ic-btn--primary { background: var(--ic-cu); color: #fff; box-shadow: 0 12px 34px -14px rgba(var(--ic-accRGB),.85); }
.kit-ic .ic-btn--primary .ic-btn-i { background: rgba(255,255,255,.18); color: #fff; }
.kit-ic .ic-btn--primary:hover { background: var(--ic-red-d); }
.kit-ic .ic-btn--primary::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.55) 50%, transparent 70%); transform: translateX(-120%); transition: transform .9s var(--ic-ease); }
.kit-ic .ic-btn--primary:hover::before { transform: translateX(120%); }
.kit-ic .ic-btn--ghost { color: var(--ic-inkl); box-shadow: inset 0 0 0 1px var(--ic-linel2); padding-left: 24px; }
.kit-ic .ic-btn--ghost .ic-btn-i { background: var(--ic-blu-w); color: var(--ic-blu); }
.kit-ic .ic-btn--ghost:hover { box-shadow: inset 0 0 0 1px var(--ic-blu); color: var(--ic-blu); }
.kit-ic .ic-t-dark .ic-btn--primary { background: var(--ic-cu); color: #fff; box-shadow: 0 12px 38px -14px rgba(226,0,26,.6); }
.kit-ic .ic-t-dark .ic-btn--primary .ic-btn-i { background: rgba(255,255,255,.18); color: #fff; }
.kit-ic .ic-t-dark .ic-btn--primary:hover { background: #FF2D42; }
.kit-ic .ic-t-dark .ic-btn--ghost { color: var(--ic-text); box-shadow: inset 0 0 0 1px var(--ic-line2); }
.kit-ic .ic-t-dark .ic-btn--ghost .ic-btn-i { background: rgba(255,255,255,.1); color: inherit; }
.kit-ic .ic-t-dark .ic-btn--ghost:hover { box-shadow: inset 0 0 0 1px var(--ic-cu-l); color: var(--ic-cu-l); }
.kit-ic .ic-ctas, .kit-ic .ic-hero-ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.kit-ic .ic-ctas.is-center { justify-content: center; }

/* ─────────── Header (bianco, sempre leggibile: il sito è chiaro dalla prima piega) ─────────── */
.kit-ic .ic-header { position: fixed; inset: 0 0 auto; z-index: 900; height: var(--ic-hh); background: #fff;
  border-bottom: 1px solid var(--ic-linel); transition: transform .5s var(--ic-ease), box-shadow .35s, height .35s; }
.kit-ic.has-adminbar .ic-header { top: 44px; }

.kit-ic .ic-header.is-hidden { transform: translateY(-110%); }
.kit-ic .ic-header-in { height: 100%; width: min(1480px, 100% - 2*var(--ic-gut)); margin-inline: auto; display: flex; align-items: center; gap: 24px; }
.kit-ic .ic-logo { display: flex; align-items: center; gap: 11px; text-decoration: none; flex: none; }
.kit-ic .ic-logo-img { height: auto; width: var(--logo-w, 168px); max-height: 46px; object-fit: contain; object-position: left center; transition: width .35s var(--ic-ease); }
.kit-ic .ic-header.is-scrolled .ic-logo-img { width: calc(var(--logo-w, 168px) * .88); }
/* marchio di scorta se manca il logo: goccia di pittura navy con la stella rossa */
.kit-ic .ic-logo-mark { position: relative; width: 30px; height: 30px; border-radius: 50%; background: radial-gradient(circle at 34% 30%, var(--ic-blu-l), var(--ic-blu) 62%, var(--ic-blu-d)); flex: none; }
.kit-ic .ic-logo-mark::after { content: ""; position: absolute; right: -4px; top: -2px; width: 10px; height: 10px; border-radius: 50%; background: radial-gradient(circle at 34% 30%, #FF8B96, var(--ic-cu)); }
.kit-ic .ic-logo-t { font: 700 1.06rem/1 var(--ic-fd); letter-spacing: -.012em; color: var(--ic-blu); }
.kit-ic .ic-nav { margin-left: auto; }
.kit-ic .ic-nav-l { list-style: none; display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; }
.kit-ic .ic-nav-a { display: inline-flex; align-items: center; gap: 6px; padding: 10px 14px; border-radius: 10px; font: 500 .95rem/1 var(--ic-fb); color: var(--ic-inkl); text-decoration: none; background: none; border: 0; cursor: pointer; transition: background .22s, color .22s; }
.kit-ic .ic-nav-a:hover, .kit-ic .ic-nav-i.is-open > .ic-nav-a { background: var(--ic-blu-w); color: var(--ic-blu); }
.kit-ic .ic-nav-hl > .ic-nav-a { color: var(--ic-cu); font-weight: 600; }
.kit-ic .ic-nav-i { position: relative; }
.kit-ic .ic-sub { position: absolute; top: calc(100% + 10px); left: 50%; min-width: 620px; transform: translate(-50%, 10px); opacity: 0; visibility: hidden; transition: .3s var(--ic-ease); }
.kit-ic .ic-nav-i.is-open > .ic-sub, .kit-ic .ic-nav-i.has-sub:hover > .ic-sub, .kit-ic .ic-nav-i.has-sub:focus-within > .ic-sub { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.kit-ic .ic-sub-in { position: relative; background: #fff; border: 1px solid var(--ic-linel); border-radius: 16px; padding: 12px; box-shadow: 0 36px 80px -34px rgba(var(--ic-inkRGB),.45); }
.kit-ic .ic-sub-in::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; border-radius: 16px 16px 0 0; background: linear-gradient(90deg, var(--ic-blu), var(--ic-cy) 55%, var(--ic-cu)); }
.kit-ic .ic-sub-all { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-radius: 10px; font: 600 .9rem/1 var(--ic-fb); color: var(--ic-blu); text-decoration: none; }
.kit-ic .ic-sub-all:hover { background: var(--ic-blu-w); }
.kit-ic .ic-sub-g { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.kit-ic .ic-sub-g a { display: block; padding: 12px 14px; border-radius: 10px; text-decoration: none; transition: background .2s; }
.kit-ic .ic-sub-g a:hover { background: var(--ic-white2); }
.kit-ic .ic-sub-g strong { display: block; font: 600 .95rem/1.3 var(--ic-fb); color: var(--ic-inkl); }
.kit-ic .ic-sub-g a:hover strong { color: var(--ic-blu); }
.kit-ic .ic-sub-g span { display: block; font-size: .8rem; color: var(--ic-mutel); line-height: 1.45; margin-top: 3px; }
.kit-ic .ic-header-cta { display: flex; align-items: center; gap: 8px; }
.kit-ic .ic-header-cta .ic-btn { min-height: 46px; padding-left: 20px; font-size: .92rem; }
.kit-ic .ic-header-cta .ic-btn-i { width: 32px; height: 32px; }
.kit-ic .ic-hicon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; color: var(--ic-blu); box-shadow: inset 0 0 0 1px var(--ic-linel2); transition: .22s; }
.kit-ic .ic-hicon:hover { color: #fff; background: var(--ic-blu); box-shadow: none; }
.kit-ic .ic-burger { display: none; width: 46px; height: 46px; border-radius: 12px; border: 0; background: var(--ic-blu-w); cursor: pointer; position: relative; }
.kit-ic .ic-burger span { position: absolute; left: 14px; right: 14px; height: 2px; background: var(--ic-blu); border-radius: 2px; transition: .4s var(--ic-ease); }
.kit-ic .ic-burger span:first-child { top: 19px; } .kit-ic .ic-burger span:last-child { top: 26px; }
.kit-ic.nav-open .ic-burger span:first-child { top: 22px; transform: rotate(45deg); } .kit-ic.nav-open .ic-burger span:last-child { top: 22px; transform: rotate(-45deg); }
.kit-ic .ic-progress { position: absolute; left: 0; bottom: -1px; height: 2px; width: 100%; transform-origin: 0 50%; transform: scaleX(var(--p, 0)); background: linear-gradient(90deg, var(--ic-blu), var(--ic-cy) 60%, var(--ic-cu)); }

@media (max-width: 1080px) {
  .kit-ic { --ic-hh: 64px; }
  .kit-ic .ic-burger { display: block; margin-left: auto; }
  .kit-ic .ic-header-cta { margin-left: auto; }
  .kit-ic .ic-header-cta .ic-btn { display: none; }
  .kit-ic .ic-nav { position: fixed; inset: 0; z-index: -1; margin: 0; padding: calc(var(--ic-hh) + 22px) var(--ic-gut) 120px; background: #fff; overflow-y: auto;
    clip-path: circle(0% at calc(100% - 44px) 32px); transition: clip-path .7s var(--ic-ease2); visibility: hidden; }
  .kit-ic.nav-open .ic-nav { clip-path: circle(150% at calc(100% - 44px) 32px); visibility: visible; }
  .kit-ic.nav-open { overflow: hidden; }
  .kit-ic .ic-nav-l { flex-direction: column; align-items: stretch; gap: 0; }
  .kit-ic .ic-nav-i { border-bottom: 1px solid var(--ic-linel); }
  .kit-ic .ic-nav-a { width: 100%; justify-content: space-between; padding: 18px 4px; font: 600 1.35rem/1.15 var(--ic-fd); border-radius: 0; }
  .kit-ic .ic-nav-a:hover { background: none; }
  .kit-ic .ic-sub { position: static; min-width: 0; transform: none; opacity: 1; visibility: visible; display: none; }
  .kit-ic .ic-nav-i.is-open > .ic-sub { display: block; transform: none; }
  .kit-ic .ic-nav-i.has-sub:hover > .ic-sub { transform: none; }
  .kit-ic .ic-sub-in { background: none; border: 0; padding: 0 0 14px; box-shadow: none; }
  .kit-ic .ic-sub-in::before { display: none; }
  .kit-ic .ic-sub-g { grid-template-columns: 1fr; }
  .kit-ic.nav-open .ic-nav-i { animation: ic-navin .55s var(--ic-ease) both; }
  .kit-ic.nav-open .ic-nav-i:nth-child(2) { animation-delay: .05s } .kit-ic.nav-open .ic-nav-i:nth-child(3) { animation-delay: .1s }
  .kit-ic.nav-open .ic-nav-i:nth-child(4) { animation-delay: .15s } .kit-ic.nav-open .ic-nav-i:nth-child(5) { animation-delay: .2s }
  .kit-ic.nav-open .ic-nav-i:nth-child(6) { animation-delay: .25s } .kit-ic.nav-open .ic-nav-i:nth-child(7) { animation-delay: .3s } .kit-ic.nav-open .ic-nav-i:nth-child(8) { animation-delay: .35s }
}
@keyframes ic-navin { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }

/* ─────────── Hero (CHIARO: foglio bianco con velature di pigmento e colata di pittura WebGL) ─────────── */
.kit-ic .ic-hero { position: relative; overflow: clip; isolation: isolate; display: flex; align-items: center; background: var(--ic-white);
  color: var(--ic-inkl); --ic-led: var(--ic-cu); --ic-led2: var(--ic-cu-l); }
.kit-ic .ic-hero::before { content: ""; position: absolute; inset: 0; z-index: -5; background:
  radial-gradient(90% 70% at 76% 18%, var(--ic-blu-w), transparent 62%),
  radial-gradient(60% 60% at 8% 96%, #FDEEF0, transparent 65%),
  linear-gradient(180deg, #fff 0%, var(--ic-white2) 100%); }
/* pennellate di pigmento, in dissolvenza verso il basso */
.kit-ic .ic-hero::after { content: ""; position: absolute; inset: 0; z-index: -4; pointer-events: none; opacity: .9;
  background-image: var(--ic-wash); background-size: 720px 720px;
  -webkit-mask-image: linear-gradient(180deg, #000 12%, transparent 88%); mask-image: linear-gradient(180deg, #000 12%, transparent 88%); }
.kit-ic .ic-hero--home { min-height: min(100svh, 880px); padding: calc(var(--ic-hh0, var(--ic-hh)) + 56px) 0 clamp(56px, 8vh, 96px); }
.kit-ic .ic-hero--page { min-height: clamp(380px, 56svh, 560px); padding: calc(var(--ic-hh0, var(--ic-hh)) + 52px) 0 clamp(44px, 6vh, 72px); align-items: flex-end; }
.kit-ic .ic-hero--split { min-height: clamp(520px, 78svh, 820px); padding: calc(var(--ic-hh0, var(--ic-hh)) + 40px) 0 70px; }
/* immagine: pannello a destra con cornice, non fondale scurito */
.kit-ic .ic-hero-media { position: absolute; z-index: -3; inset: calc(var(--ic-hh) + 26px) var(--ic-gut) 26px 52%; border-radius: var(--ic-r2); overflow: clip;
  box-shadow: 0 50px 90px -46px rgba(var(--ic-inkRGB),.55), inset 0 0 0 1px rgba(255,255,255,.5); }
.kit-ic .ic-hero-media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); }
.kit-ic.is-ready .ic-hero-media img { animation: ic-kb 18s var(--ic-ease) both; }
@keyframes ic-kb { from { transform: scale(1.14); } to { transform: scale(1.03); } }
.kit-ic .ic-hero--page .ic-hero-media { opacity: .9; }
.kit-ic .ic-gl { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -2; pointer-events: none; opacity: 0; transition: opacity 1.4s var(--ic-ease); }
.kit-ic .ic-gl.is-on { opacity: 1; }
.kit-ic .ic-hero-shade { position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(90deg, #fff 22%, rgba(255,255,255,.86) 42%, transparent 62%); }
.kit-ic .ic-hero--home .ic-hero-shade { background: linear-gradient(90deg, #fff 14%, rgba(255,255,255,.8) 38%, transparent 58%); }
.kit-ic .ic-hero--page .ic-hero-shade { background: linear-gradient(90deg, #fff 30%, rgba(255,255,255,.9) 52%, transparent 70%); }
/* .ic-hero-in è anche .ic-wrap: tiene la larghezza della pagina e parte dal margine, come tutte le altre
   sezioni. A limitare la riga ci pensano i figli (regole più sotto). */
.kit-ic .ic-hero-in { position: relative; }
.kit-ic .ic-hero-title { font-size: clamp(2.5rem, 5.6vw, 5.2rem); font-weight: 650; line-height: 1.03; letter-spacing: -.028em; max-width: 15ch; margin-bottom: 24px; color: var(--ic-inkl); }
.kit-ic .ic-hero-title em { color: var(--ic-blu); }
.kit-ic .ic-hero--page .ic-hero-title, .kit-ic .ic-hero--split .ic-hero-title { font-size: clamp(2.1rem, 4.2vw, 3.6rem); max-width: 18ch; }
.kit-ic .ic-hero-sub { font-size: clamp(1.02rem, .6vw + .9rem, 1.28rem); color: var(--ic-mutel); max-width: 52ch; margin: 0; }
.kit-ic .ic-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 28px 0 0; }
.kit-ic .ic-chips li { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; background: rgba(255,255,255,.75); font: 500 .85rem/1 var(--ic-fb); color: var(--ic-inkl); box-shadow: inset 0 0 0 1px var(--ic-linel2); }
.kit-ic .ic-chips .ic-ic { color: var(--ic-cu); }
.kit-ic .ic-t-dark .ic-chips li { background: rgba(255,255,255,.08); color: var(--ic-text); box-shadow: inset 0 0 0 1px var(--ic-line); }
.kit-ic .ic-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; padding: 0; font: 500 .76rem/1.2 var(--ic-fm); letter-spacing: .07em; text-transform: uppercase; color: var(--ic-diml); }
.kit-ic .ic-crumbs li + li::before { content: "/"; margin-right: 8px; color: var(--ic-linel2); }
.kit-ic .ic-crumbs a { text-decoration: none; } .kit-ic .ic-crumbs a:hover { color: var(--ic-blu); }
.kit-ic .ic-scrollcue { position: absolute; right: var(--ic-gut); bottom: 34px; width: 28px; height: 46px; border-radius: 20px; box-shadow: inset 0 0 0 1.5px var(--ic-linel2); }
.kit-ic .ic-scrollcue span { position: absolute; left: 50%; top: 9px; width: 4px; height: 9px; margin-left: -2px; border-radius: 3px; background: var(--ic-cu); animation: ic-cue 1.8s var(--ic-ease) infinite; }
@keyframes ic-cue { 0%{opacity:0;transform:translateY(0)} 30%{opacity:1} 100%{opacity:0;transform:translateY(16px)} }
@media (max-width: 900px) {
  .kit-ic .ic-hero-media { position: relative; inset: auto; margin: 30px 0 0; aspect-ratio: 16/10; }
  .kit-ic .ic-hero { display: block; }
  .kit-ic .ic-hero-shade { display: none; }
  .kit-ic .ic-hero--home { min-height: 0; padding-bottom: 52px; }
  .kit-ic .ic-hero--page { min-height: 0; padding-top: calc(var(--ic-hh) + 34px); padding-bottom: 40px; }
  .kit-ic .ic-scrollcue { display: none; }
}

/* ─────────── Split testo + immagine ─────────── */
.kit-ic .ic-split-in { display: grid; grid-template-columns: 1.02fr 1fr; gap: clamp(40px, 7vw, 110px); align-items: center; }
.kit-ic .ic-split.is-rev .ic-split-media { order: -1; }
.kit-ic .ic-split.no-media .ic-split-in { grid-template-columns: 1fr; max-width: 920px; }
.kit-ic .ic-split-media { position: relative; margin: 0; }
.kit-ic .ic-frame { position: relative; border-radius: var(--ic-r); overflow: clip; background: var(--ic-white2); transform-style: preserve-3d;
  box-shadow: 0 34px 80px -40px rgba(var(--ic-inkRGB),.5), inset 0 0 0 1px var(--ic-cardline); }
.kit-ic .ic-t-dark .ic-frame { background: var(--ic-panel); }
.kit-ic .ic-frame .ic-cover { width: 100%; aspect-ratio: 4/3.2; object-fit: cover; }
.kit-ic .ic-frame--float { position: absolute; width: 42%; right: -6%; bottom: -12%; }
.kit-ic .ic-frame--float .ic-cover { aspect-ratio: 1; }
.kit-ic .ic-split-media figcaption { margin-top: 18px; font: 500 .78rem/1.4 var(--ic-fm); color: var(--ic-diml); letter-spacing: .04em; }
.kit-ic .ic-t-dark .ic-split-media figcaption { color: var(--ic-dim); }
.kit-ic .ic-bullets { list-style: none; padding: 0; margin: 26px 0 0; display: grid; gap: 12px; }
.kit-ic .ic-bullets li { display: flex; gap: 12px; align-items: flex-start; }
.kit-ic .ic-bullets .ic-ic { color: var(--ic-cu); margin-top: .22em; }
.kit-ic .ic-t-dark .ic-bullets .ic-ic { color: var(--ic-cu-l); }
@media (max-width: 900px) { .kit-ic .ic-split-in { grid-template-columns: 1fr; } .kit-ic .ic-split.is-rev .ic-split-media { order: 0; } .kit-ic .ic-frame--float { width: 38%; right: -2%; } }

/* ─────────── Modelli ─────────── */
.kit-ic .ic-models-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(265px, 1fr)); gap: 18px; perspective: 1400px; }
.kit-ic .ic-model { --rx: 0deg; --ry: 0deg; position: relative; border-radius: var(--ic-r2); background: linear-gradient(165deg, var(--ic-card) 0%, var(--ic-card2) 100%); overflow: clip; transform: rotateX(var(--rx)) rotateY(var(--ry)); transition: transform .5s var(--ic-ease), box-shadow .5s; box-shadow: inset 0 0 0 1px var(--ic-cardline), var(--ic-cardsh); display: flex; flex-direction: column; }
.kit-ic .ic-model:hover { box-shadow: inset 0 0 0 1px var(--ic-blu), 0 34px 70px -30px rgba(var(--ic-bluRGB),.4); }
.kit-ic .ic-t-dark .ic-model:hover { box-shadow: inset 0 0 0 1px var(--ic-cu-l), 0 34px 70px -30px rgba(var(--ic-accRGB),.35); }
.kit-ic .ic-model::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(500px circle at var(--gx, 50%) var(--gy, 0%), rgba(var(--ic-bluRGB),.07), transparent 45%); opacity: 0; transition: opacity .4s; }
.kit-ic .ic-model:hover::after { opacity: 1; }
.kit-ic .ic-model-media { overflow: hidden; }
.kit-ic .ic-model-media img { width: 100%; aspect-ratio: 4/3.4; object-fit: cover; transition: transform 1.2s var(--ic-ease); }
.kit-ic .ic-model:hover .ic-model-media img { transform: scale(1.06); }
.kit-ic .ic-model-body { padding: 26px 26px 28px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.kit-ic .ic-model-name { margin: 0; font-size: clamp(1.35rem, 1.7vw, 1.75rem); }
.kit-ic .ic-model-name a { text-decoration: none; }
.kit-ic .ic-model-name a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.kit-ic .ic-model p { color: var(--ic-mutel); margin: 0; }
.kit-ic .ic-t-dark .ic-model p { color: var(--ic-mute); }
.kit-ic .ic-tag { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; padding: 6px 11px; border-radius: 6px; font: 600 .67rem/1 var(--ic-fm); letter-spacing: .13em; text-transform: uppercase; color: var(--ic-blu); background: var(--ic-blu-w); }
.kit-ic .ic-t-dark .ic-tag { color: var(--ic-cu-l); background: rgba(var(--ic-accRGB),.13); }
.kit-ic .ic-meter { display: flex; align-items: center; gap: 12px; font: 600 .7rem/1 var(--ic-fm); letter-spacing: .12em; text-transform: uppercase; color: var(--ic-diml); }
.kit-ic .ic-t-dark .ic-meter { color: var(--ic-dim); }
.kit-ic .ic-meter i { display: flex; gap: 4px; }
.kit-ic .ic-meter b { width: 22px; height: 6px; border-radius: 3px; background: var(--ic-linel); }
.kit-ic .ic-t-dark .ic-meter b { background: rgba(255,255,255,.12); }
.kit-ic .ic-meter b.on { background: linear-gradient(90deg, var(--ic-led), var(--ic-rec)); box-shadow: 0 0 10px rgba(var(--ic-accRGB),.5); }
.kit-ic .ic-specs { margin: 6px 0 0; display: grid; gap: 0; border-top: 1px solid var(--ic-cardline); }
.kit-ic .ic-specs div { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--ic-cardline); font-size: .9rem; }
.kit-ic .ic-specs dt { color: var(--ic-diml); font: 500 .74rem/1.6 var(--ic-fm); letter-spacing: .06em; text-transform: uppercase; }
.kit-ic .ic-t-dark .ic-specs dt { color: var(--ic-dim); }
.kit-ic .ic-specs dd { margin: 0; text-align: right; }
.kit-ic .ic-model-go { margin-top: auto; padding-top: 10px; display: inline-flex; align-items: center; gap: 10px; font-weight: 600; color: var(--ic-blu); }
.kit-ic .ic-t-dark .ic-model-go { color: var(--ic-cu-l); }
.kit-ic .ic-model-go .ic-ic { transition: transform .4s var(--ic-ease); }
.kit-ic .ic-model:hover .ic-model-go .ic-ic { transform: translateX(6px); }
@media (max-width: 980px) { .kit-ic .ic-models-g { grid-template-columns: 1fr; } .kit-ic .ic-model { transform: none !important; } }

/* ─────────── Funzioni ─────────── */
.kit-ic .ic-feat-g { display: grid; gap: 16px; }
.kit-ic .ic-feat-g.cols-2 { grid-template-columns: repeat(2, 1fr); } .kit-ic .ic-feat-g.cols-3 { grid-template-columns: repeat(3, 1fr); } .kit-ic .ic-feat-g.cols-4 { grid-template-columns: repeat(4, 1fr); }
.kit-ic .ic-feat { position: relative; padding: 30px 28px; border-radius: var(--ic-r2); background: linear-gradient(165deg, var(--ic-card) 0%, var(--ic-card2) 100%); box-shadow: inset 0 0 0 1px var(--ic-cardline), var(--ic-cardsh); overflow: clip; transition: box-shadow .35s, transform .35s var(--ic-ease); }
.kit-ic .ic-feat:hover { transform: translateY(-3px); }
.kit-ic [data-glow]::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; padding: 1px; background: radial-gradient(360px circle at var(--gx, -100px) var(--gy, -100px), rgba(var(--ic-bluRGB),.85), transparent 60%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity .3s; }
.kit-ic [data-glow]:hover::before { opacity: 1; }
.kit-ic .ic-feat-n { position: absolute; top: 22px; right: 24px; font: 600 .8rem/1 var(--ic-fm); color: var(--ic-linel2); }
.kit-ic .ic-t-dark .ic-feat-n { color: var(--ic-dim); }
.kit-ic .ic-feat-ic { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 12px; margin-bottom: 22px; color: var(--ic-blu); background: var(--ic-blu-w); }
.kit-ic .ic-t-dark .ic-feat-ic { color: var(--ic-cy-l); background: rgba(var(--ic-cyRGB),.14); }
.kit-ic .ic-feat-ic .ic-ic { width: 26px; height: 26px; }
.kit-ic .ic-feat h3 { margin-bottom: 10px; }
.kit-ic .ic-feat p { color: var(--ic-mutel); margin: 0; font-size: .96rem; }
.kit-ic .ic-t-dark .ic-feat p { color: var(--ic-mute); }
@media (max-width: 1080px) { .kit-ic .ic-feat-g.cols-4 { grid-template-columns: repeat(2, 1fr); } .kit-ic .ic-feat-g.cols-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .kit-ic .ic-feat-g.cols-2, .kit-ic .ic-feat-g.cols-3, .kit-ic .ic-feat-g.cols-4 { grid-template-columns: 1fr; } }

/* ─────────── Passi (linea LED che si accende scorrendo) ─────────── */
.kit-ic .ic-steps-l { list-style: none; margin: 0; padding: 0 0 0 64px; position: relative; display: grid; gap: clamp(40px, 6vw, 80px); }
.kit-ic .ic-steps-line { position: absolute; left: 21px; top: 8px; bottom: 8px; width: 2px; background: rgba(0,0,0,.1); }
.kit-ic .ic-t-dark .ic-steps-line { background: var(--ic-line); }
.kit-ic .ic-steps-line i { position: absolute; inset: 0; transform-origin: top; transform: scaleY(var(--sp, 0)); background: linear-gradient(var(--ic-cy), var(--ic-blu)); box-shadow: 0 0 14px rgba(var(--ic-cyRGB),.6); }
.kit-ic .ic-t-dark .ic-steps-line i { background: linear-gradient(var(--ic-cy-l), var(--ic-cu-l)); }
.kit-ic .ic-step { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.kit-ic .ic-step-n { position: absolute; left: -64px; top: 0; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font: 600 1rem/1 var(--ic-fm); background: #fff; color: var(--ic-inkl); box-shadow: 0 0 0 1px var(--ic-linel2); transition: .5s; }
.kit-ic .ic-t-dark .ic-step-n { background: var(--ic-ink); color: var(--ic-text); box-shadow: 0 0 0 2px var(--ic-line2); }
.kit-ic .ic-step.is-lit .ic-step-n { background: var(--ic-blu); color: #fff; box-shadow: 0 0 0 1px var(--ic-blu), 0 0 24px rgba(var(--ic-bluRGB),.45); }
.kit-ic .ic-t-dark .ic-step.is-lit .ic-step-n { background: var(--ic-cu-l); color: #fff; box-shadow: 0 0 0 1px var(--ic-cu-l), 0 0 24px rgba(var(--ic-accRGB),.5); }
.kit-ic .ic-step-c h3 { font-size: clamp(1.5rem, 2.2vw, 2.1rem); }
.kit-ic .ic-step-c p { color: var(--ic-mutel); max-width: 52ch; }
.kit-ic .ic-t-dark .ic-step-c p { color: var(--ic-mute); }
.kit-ic .ic-step-m .ic-cover { aspect-ratio: 16/10; }
.kit-ic .ic-step:not(:has(.ic-step-m)) { grid-template-columns: 1fr; }
@media (max-width: 900px) { .kit-ic .ic-step { grid-template-columns: 1fr; gap: 20px; } .kit-ic .ic-steps-l { padding-left: 56px; } .kit-ic .ic-step-n { left: -56px; } }

/* ─────────── Numeri ─────────── */
.kit-ic .ic-stats { padding-block: clamp(60px, 8vw, 110px); }
.kit-ic .ic-stats-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0; margin: 0; }
.kit-ic .ic-stat { padding: 18px 26px; border-left: 1px solid var(--ic-cardline); display: flex; flex-direction: column-reverse; gap: 12px; }
.kit-ic .ic-stat:first-child { border-left: 0; }
.kit-ic .ic-stat dd { margin: 0; font: 600 clamp(2.7rem, 5.4vw, 4.6rem)/.92 var(--ic-fd); letter-spacing: -.035em; color: var(--ic-blu); font-variant-numeric: tabular-nums; }
.kit-ic .ic-t-dark .ic-stat dd { color: var(--ic-cu-l); }
.kit-ic .ic-stat-s { color: var(--ic-cu); }
.kit-ic .ic-t-dark .ic-stat-s { color: var(--ic-cy-l); }
.kit-ic .ic-stat-s { font-size: .45em; margin-left: .08em; }
.kit-ic .ic-stat dt { color: var(--ic-mutel); font-size: .93rem; max-width: 24ch; }
.kit-ic .ic-t-dark .ic-stat dt { color: var(--ic-mute); }
@media (max-width: 640px) {
  .kit-ic .ic-stats-g { grid-template-columns: 1fr 1fr; gap: 0; }
  .kit-ic .ic-stat { border-left: 0; border-top: 1px solid var(--ic-cardline); padding: 20px 14px 18px 0; gap: 8px; }
  .kit-ic .ic-stat:nth-child(even) { border-left: 1px solid var(--ic-cardline); padding-left: 16px; padding-right: 0; }
  .kit-ic .ic-stat:nth-child(-n+2) { border-top: 0; }
  .kit-ic .ic-stat dd { font-size: clamp(2.4rem, 12vw, 3.2rem); }
  .kit-ic .ic-stat dt { font-size: .84rem; line-height: 1.4; }
}

/* ─────────── Usi (scorrimento orizzontale) ─────────── */
.kit-ic .ic-uses { padding-block: 0; }
.kit-ic .ic-uses-pin { padding-block: clamp(80px, 11vw, 150px); overflow: hidden; }
.kit-ic .ic-uses-track { display: flex; gap: 20px; padding-inline: max(var(--ic-gut), (100% - 1320px) / 2); will-change: transform; }
.kit-ic .ic-use { position: relative; flex: 0 0 clamp(280px, 30vw, 420px); border-radius: var(--ic-r2); overflow: clip; text-decoration: none; background: var(--ic-panel); color: var(--ic-text); isolation: isolate; min-height: 500px; display: flex; flex-direction: column; justify-content: flex-end; }
.kit-ic .ic-use-m { position: absolute; inset: 0; z-index: -2; }
.kit-ic .ic-use-m img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ic-ease), filter .6s; filter: saturate(.85) brightness(.85); }
.kit-ic .ic-use:hover .ic-use-m img { transform: scale(1.07); filter: none; }
.kit-ic .ic-use::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(var(--ic-inkRGB),.96) 0%, rgba(var(--ic-inkRGB),.45) 46%, rgba(var(--ic-inkRGB),.06) 72%); }
.kit-ic .ic-use-b { padding: 26px; }
.kit-ic .ic-use h3 { font-size: clamp(1.5rem, 2vw, 2rem); margin: 12px 0 8px; }
.kit-ic .ic-use h3 { color: #fff; }
.kit-ic .ic-use p { color: var(--ic-mute); font-size: .94rem; margin: 0; max-width: 34ch; }
.kit-ic .ic-use-go { position: absolute; top: 20px; right: 20px; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.1); backdrop-filter: blur(8px); transition: .4s var(--ic-ease); }
.kit-ic .ic-use:hover .ic-use-go { background: var(--ic-cu-l); color: #fff; transform: rotate(45deg); }
@media (max-width: 900px) {
  .kit-ic .ic-uses-track { overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; scrollbar-width: none; transform: none !important; }
  .kit-ic .ic-uses-track::-webkit-scrollbar { display: none; }
  .kit-ic .ic-uses-track.is-drift { scroll-snap-type: none; scroll-behavior: auto; }
  .kit-ic .ic-use { flex-basis: 78vw; min-height: 440px; scroll-snap-align: center; }
}

/* ─────────── Marquee ─────────── */
.kit-ic .ic-marquee { overflow: clip; padding-block: clamp(18px, 2.6vw, 34px); border-block: 1px solid var(--ic-cardline); }
.kit-ic .ic-marquee-t { display: flex; width: max-content; gap: 0; animation: ic-mq 38s linear infinite; }
.kit-ic .ic-marquee span { font: 600 clamp(2.4rem, 7vw, 6rem)/1 var(--ic-fd); letter-spacing: -.035em; white-space: nowrap; padding: 0 .32em; color: var(--ic-inkl); }
.kit-ic .ic-marquee.is-outline span { color: transparent; -webkit-text-stroke: 1.2px var(--ic-linel2); }
.kit-ic .ic-marquee.is-outline span:nth-of-type(3n+2) { -webkit-text-stroke-color: var(--ic-cu); }
.kit-ic .ic-t-dark.ic-marquee span { color: #fff; }
.kit-ic .ic-t-dark.ic-marquee.is-outline span { -webkit-text-stroke-color: rgba(255,255,255,.3); }
.kit-ic .ic-marquee i { width: .32em; height: .32em; align-self: center; border-radius: 50%; background: var(--ic-cu); flex: none; font-size: clamp(2.4rem, 7vw, 6rem); }

@keyframes ic-mq { to { transform: translateX(-33.333%); } }

/* ─────────── Gallery ─────────── */
.kit-ic .ic-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: -20px 0 34px; }
.kit-ic .ic-filters button { padding: 10px 16px; border-radius: 8px; border: 0; background: #fff; color: var(--ic-inkl); font: 500 .88rem/1 var(--ic-fb); cursor: pointer; box-shadow: inset 0 0 0 1px var(--ic-linel2); transition: .22s; }
.kit-ic .ic-filters button.is-on, .kit-ic .ic-filters button:hover { background: var(--ic-blu); color: #fff; box-shadow: none; }
.kit-ic .ic-t-dark .ic-filters button { background: rgba(255,255,255,.07); color: var(--ic-text); box-shadow: inset 0 0 0 1px var(--ic-line); }
.kit-ic .ic-t-dark .ic-filters button.is-on, .kit-ic .ic-t-dark .ic-filters button:hover { background: var(--ic-cu-l); color: #fff; }
.kit-ic .ic-masonry { columns: 3 280px; column-gap: 16px; }
.kit-ic .ic-gi { position: relative; display: block; margin-bottom: 16px; border-radius: var(--ic-r); overflow: clip; break-inside: avoid; box-shadow: inset 0 0 0 1px var(--ic-cardline); background: #fff; }
.kit-ic .ic-gi img { width: 100%; transition: transform 1s var(--ic-ease), filter .5s; }
.kit-ic .ic-gi:hover img { transform: scale(1.05); }
.kit-ic .ic-gi.is-hidden { display: none; }
.kit-ic .ic-gi-cap { position: absolute; left: 12px; right: 12px; bottom: 12px; padding: 8px 12px; border-radius: 10px; font-size: .8rem; background: rgba(var(--ic-inkRGB),.82); color: #fff; backdrop-filter: blur(8px); transform: translateY(8px); opacity: 0; transition: .35s var(--ic-ease); }
.kit-ic .ic-gi:hover .ic-gi-cap { transform: none; opacity: 1; }
.kit-ic .ic-lb { position: fixed; inset: 0; z-index: 9995; display: grid; place-items: center; background: rgba(var(--ic-inkRGB),.95); backdrop-filter: blur(12px); opacity: 0; transition: opacity .35s; }
.kit-ic .ic-lb.is-on { opacity: 1; }
.kit-ic .ic-lb img { max-width: 92vw; max-height: 84vh; border-radius: 10px; background: #fff; }
.kit-ic .ic-lb p { position: absolute; bottom: 24px; left: 0; right: 0; text-align: center; color: var(--ic-mute); font-size: .9rem; }
.kit-ic .ic-lb button { position: absolute; top: 20px; width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255,255,255,.1); color: #fff; cursor: pointer; display: grid; place-items: center; }
.kit-ic .ic-lb .x { right: 20px; } .kit-ic .ic-lb .pv { left: 20px; top: 50%; } .kit-ic .ic-lb .nx { right: 20px; top: 50%; }

/* ─────────── CTA ─────────── */
.kit-ic .ic-cta { position: relative; overflow: clip; isolation: isolate; padding-block: clamp(96px, 12vw, 180px); text-align: center; background: var(--ic-ink) linear-gradient(155deg, #141C47, #1B2A72); }
.kit-ic .ic-cta-media { position: absolute; inset: -12% 0; z-index: -3; }
.kit-ic .ic-cta-media img { width: 100%; height: 100%; object-fit: cover; }
.kit-ic .ic-cta-shade { position: absolute; inset: 0; z-index: -1; background: radial-gradient(75% 80% at 50% 45%, rgba(27,42,114,.78), rgba(var(--ic-inkRGB),.97)); }
.kit-ic .ic-cta-in { max-width: 980px; }
.kit-ic .ic-cta-in .ic-eyebrow { justify-content: center; }
.kit-ic .ic-cta-title { font-size: clamp(2.2rem, 5vw, 4.4rem); font-weight: 650; line-height: 1; letter-spacing: -.03em; color: #fff; }
.kit-ic .ic-cta-title em { color: var(--ic-cu-l); }
.kit-ic .ic-cta p { color: var(--ic-mute); font-size: clamp(1.02rem, .6vw + .9rem, 1.24rem); max-width: 56ch; margin-inline: auto; }
.kit-ic .ic-cta .ic-ctas { justify-content: center; }

/* ─────────── Testimonianze ─────────── */
.kit-ic .ic-quotes-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; }
.kit-ic .ic-quote { position: relative; margin: 0; padding: 30px; border-radius: var(--ic-r2); background: var(--ic-card); box-shadow: inset 0 0 0 1px var(--ic-cardline), var(--ic-cardsh); overflow: clip; }
.kit-ic .ic-quote-v { margin: -30px -30px 26px; background: #000; }
.kit-ic .ic-quote-v video { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.kit-ic .ic-quote-ic { width: 32px; height: 32px; color: var(--ic-blu-l); margin-bottom: 14px; }
.kit-ic .ic-quote blockquote { margin: 0 0 20px; font-size: 1.08rem; line-height: 1.6; }
.kit-ic .ic-quote figcaption strong { display: block; font-family: var(--ic-fd);  }
.kit-ic .ic-quote figcaption span { color: var(--ic-mutel); font-size: .88rem; }
.kit-ic .ic-t-dark .ic-quote figcaption span { color: var(--ic-mute); }

/* ─────────── Loghi ─────────── */
.kit-ic .ic-logos { padding-block: clamp(70px, 9vw, 120px); }
.kit-ic .ic-logos-wall { max-width: 1100px; margin-inline: auto; mix-blend-mode: multiply; filter: grayscale(1) contrast(1.1); opacity: .85; transition: filter .6s, opacity .6s; }
.kit-ic .ic-logos-wall:hover { filter: none; opacity: 1; }
.kit-ic .ic-logos-wall img { width: 100%; }
.kit-ic .ic-logos-names { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding: 0; margin: 30px 0 0; }
.kit-ic .ic-logos-names li { padding: 10px 16px; border-radius: 8px; background: #fff; box-shadow: inset 0 0 0 1px var(--ic-linel2); font: 500 .9rem/1 var(--ic-fb); color: var(--ic-mutel); }
.kit-ic .ic-t-dark .ic-logos-names li { background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1px var(--ic-line); color: var(--ic-mute); }

/* ─────────── Tabella ─────────── */
.kit-ic .ic-table-w { overflow-x: auto; border-radius: var(--ic-r2); box-shadow: inset 0 0 0 1px var(--ic-cardline), var(--ic-cardsh); background: var(--ic-card); }
.kit-ic .ic-table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: .96rem; }
.kit-ic .ic-table th, .kit-ic .ic-table td { padding: 16px 22px; text-align: left; border-bottom: 1px solid var(--ic-cardline); vertical-align: top; }
.kit-ic .ic-table thead th { font: 600 1.06rem/1.2 var(--ic-fd); background: var(--ic-white2); color: var(--ic-inkl); }
.kit-ic .ic-t-dark .ic-table thead th { color: #fff; }
.kit-ic .ic-table tbody th { font: 600 .76rem/1.5 var(--ic-fm); letter-spacing: .06em; text-transform: uppercase; color: var(--ic-mutel); width: 24%; }
.kit-ic .ic-table .is-hl { background: var(--ic-blu-w); }
.kit-ic .ic-table thead .is-hl { background: var(--ic-blu); color: #fff; }
.kit-ic .ic-t-dark .ic-table .is-hl { background: rgba(var(--ic-accRGB),.12); }
.kit-ic .ic-yes { color: #1F8A4C; } .kit-ic .ic-no { color: var(--ic-linel2); }
.kit-ic .ic-t-dark .ic-table-w { background: var(--ic-panel); }
.kit-ic .ic-t-dark .ic-table th, .kit-ic .ic-t-dark .ic-table td { border-color: var(--ic-line); }
.kit-ic .ic-t-dark .ic-table thead th { background: var(--ic-panel2); }
/* ─────────── Sedi ─────────── */
.kit-ic .ic-locs-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 18px; }
.kit-ic .ic-loc { position: relative; border-radius: var(--ic-r2); background: var(--ic-card); box-shadow: inset 0 0 0 1px var(--ic-cardline), var(--ic-cardsh); overflow: clip; display: flex; flex-direction: column; }
.kit-ic .ic-loc-m img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.kit-ic .ic-loc-b { padding: 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.kit-ic .ic-loc h3 { margin: 6px 0 0; }
.kit-ic .ic-loc-a { color: var(--ic-mutel); margin: 0; font-size: .95rem; }
.kit-ic .ic-t-dark .ic-loc-a { color: var(--ic-mute); }
.kit-ic .ic-loc-has { display: flex; gap: 8px; align-items: flex-start; font-size: .9rem; margin: 4px 0 0; }
.kit-ic .ic-loc-has .ic-ic { color: var(--ic-cu); margin-top: .25em; }
.kit-ic .ic-loc-l { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: auto; padding-top: 14px; }
.kit-ic .ic-loc-l a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: .9rem; text-decoration: none; color: var(--ic-blu); position: relative; z-index: 1; }
.kit-ic .ic-t-dark .ic-loc-l a { color: var(--ic-cu-l); }
/* ─────────── Testo lungo ─────────── */
.kit-ic .ic-prose-in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 60px; }
.kit-ic .ic-prose.has-toc .ic-prose-in { grid-template-columns: 260px minmax(0, 1fr); }
.kit-ic .ic-toc { position: sticky; top: calc(var(--ic-hh) + 30px); align-self: start; }
.kit-ic .ic-toc p { font: 600 .72rem/1 var(--ic-fm); letter-spacing: .16em; text-transform: uppercase; color: var(--ic-mutel); }
.kit-ic .ic-toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; border-left: 2px solid rgba(0,0,0,.08); }
.kit-ic .ic-toc a { display: block; padding: 8px 14px; margin-left: -2px; border-left: 2px solid transparent; text-decoration: none; font-size: .9rem; color: var(--ic-mutel); transition: .2s; }
.kit-ic .ic-toc a.is-on, .kit-ic .ic-toc a:hover { color: var(--ic-inkl); border-color: var(--ic-cu); }
.kit-ic .ic-article { max-width: 760px; }
.kit-ic .ic-article-meta { font: 500 .8rem/1.4 var(--ic-fm); color: var(--ic-mutel); letter-spacing: .04em; }
.kit-ic .ic-rich--long { font-size: 1.08rem; line-height: 1.8; color: #2E3452; }
.kit-ic .ic-rich--long h2 { font-size: clamp(1.6rem, 2.6vw, 2.3rem); margin: 1.8em 0 .6em; scroll-margin-top: calc(var(--ic-hh) + 20px); color: var(--ic-inkl); }
.kit-ic .ic-rich--long h3 { margin: 1.5em 0 .5em; color: var(--ic-inkl); }
.kit-ic .ic-rich--long ul, .kit-ic .ic-rich--long ol { padding-left: 1.2em; }
.kit-ic .ic-rich--long li { margin-bottom: .5em; }
.kit-ic .ic-rich--long blockquote { margin: 1.6em 0; padding: 20px 24px; border-left: 4px solid var(--ic-cu); background: #fff; border-radius: 0 12px 12px 0; }
.kit-ic .ic-rich--long table { width: 100%; border-collapse: collapse; margin: 1.4em 0; font-size: .95rem; background: #fff; border-radius: 12px; overflow: hidden; }
.kit-ic .ic-rich--long th, .kit-ic .ic-rich--long td { padding: 12px 14px; border-bottom: 1px solid rgba(0,0,0,.08); text-align: left; }
.kit-ic .ic-rich--long th { background: var(--ic-white2); }
.kit-ic .ic-rich--long .ic-box-note { padding: 20px 24px; border-radius: 14px; background: var(--ic-inkl); color: var(--ic-white); }
.kit-ic .ic-rich--long .ic-box-note strong { color: var(--ic-led); }
@media (max-width: 1000px) { .kit-ic .ic-prose.has-toc .ic-prose-in { grid-template-columns: 1fr; } .kit-ic .ic-toc { position: static; } }

/* ─────────── Video ─────────── */
.kit-ic .ic-video-f video { width: 100%; aspect-ratio: 16/9; background: #000; }

/* ─────────── Footer ─────────── */
.kit-ic .ic-footer { position: relative; overflow: clip; padding: clamp(74px, 9vw, 124px) 0 0; background: var(--ic-ink) linear-gradient(165deg, #141C47, #1B2A72); }
.kit-ic .ic-footer-glow { position: absolute; left: 50%; top: -34%; width: 84vw; height: 62vw; transform: translateX(-50%); background: radial-gradient(closest-side, rgba(var(--ic-accRGB),.12), transparent); pointer-events: none; }
.kit-ic .ic-footer-claim { font: 650 clamp(1.9rem, 4vw, 3.4rem)/1.05 var(--ic-fd); letter-spacing: -.03em; max-width: 20ch; margin: 0 0 clamp(46px, 6vw, 76px); color: #fff; }
.kit-ic .ic-footer-claim em { color: var(--ic-cu-l); }
/* Footer su due fasce: 1) marchio a sinistra e contatti a destra, a tutta larghezza — 2) le colonne di link */
.kit-ic .ic-footer-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; padding-bottom: 60px; }
.kit-ic .ic-footer-brand { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "logo contatti" "testo contatti"; gap: 18px 60px; align-items: start;
  padding-bottom: 42px; margin-bottom: 8px; border-bottom: 1px solid var(--ic-line); }
.kit-ic .ic-footer-logo { grid-area: logo; margin-bottom: 0; }
.kit-ic .ic-footer-brand p { grid-area: testo; margin: 0; }
.kit-ic .ic-footer-contact { grid-area: contatti; justify-self: end; align-self: center; text-align: right; margin-top: 0; gap: 12px; }
.kit-ic .ic-footer-contact > * { justify-content: flex-end; }
.kit-ic .ic-footer-brand p { color: var(--ic-mute); max-width: 40ch; font-size: .95rem; }
.kit-ic .ic-footer-logo { height: 40px; width: auto; margin-bottom: 20px; }
.kit-ic .ic-footer-contact { font-style: normal; display: grid; gap: 10px; margin-top: 20px; }
.kit-ic .ic-footer-contact > * { display: inline-flex; gap: 10px; align-items: flex-start; font-size: .95rem; text-decoration: none; color: var(--ic-text); }
.kit-ic .ic-footer-contact .ic-ic { color: var(--ic-cy-l); margin-top: .2em; }
.kit-ic .ic-footer-contact a:hover { color: var(--ic-led); }
.kit-ic .ic-footer-h { font: 600 .72rem/1 var(--ic-fm); letter-spacing: .16em; text-transform: uppercase; color: var(--ic-dim); margin-bottom: 18px; }
.kit-ic .ic-footer-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.kit-ic .ic-footer-col a { text-decoration: none; color: var(--ic-mute); font-size: .95rem; transition: color .2s; }
.kit-ic .ic-footer-col a:hover { color: var(--ic-led); }
.kit-ic .ic-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; padding: 26px 0; border-top: 1px solid var(--ic-line); font-size: .82rem; color: var(--ic-dim); }
.kit-ic .ic-footer-bottom p { margin: 0; }
.kit-ic .ic-footer-bottom ul { list-style: none; display: flex; gap: 18px; margin: 0; padding: 0; }
.kit-ic .ic-footer-bottom a { text-decoration: none; } .kit-ic .ic-footer-bottom a:hover { color: var(--ic-text); }
/* scritta gigante in fondo: solo contorno, tinta unita. Il riempimento a gradiente clippato sul testo
   lasciava bande nette su alcuni motori di rendering. */
.kit-ic .ic-footer-mega { font: 700 clamp(4rem, 17vw, 18rem)/.8 var(--ic-fd); letter-spacing: -.045em;
  text-align: center; white-space: nowrap; color: rgba(255,255,255,.035);
  -webkit-text-stroke: 1px rgba(255,255,255,.085); margin-bottom: -.12em; user-select: none; overflow: clip; }
@media (max-width: 900px) {
  .kit-ic .ic-footer-grid { grid-template-columns: 1fr 1fr; }
  .kit-ic .ic-footer-brand { grid-template-columns: 1fr; grid-template-areas: "logo" "testo" "contatti"; }
  .kit-ic .ic-footer-contact { justify-self: start; text-align: left; }
  .kit-ic .ic-footer-contact > * { justify-content: flex-start; }
}
@media (max-width: 520px) {
  /* footer mobile compatto: colonne di link affiancate, la terza a tutta larghezza su due colonne */
  .kit-ic .ic-footer { padding-top: 56px; }
  .kit-ic .ic-footer-claim { font-size: clamp(1.7rem, 8vw, 2.2rem); margin-bottom: 32px; }
  .kit-ic .ic-footer-grid { grid-template-columns: 1fr 1fr; gap: 26px 18px; padding-bottom: 30px; }
  .kit-ic .ic-footer-logo { height: 32px; margin-bottom: 12px; }
  .kit-ic .ic-footer-brand p { font-size: .86rem; margin: 0; }
  .kit-ic .ic-footer-contact { margin-top: 14px; gap: 7px; }
  .kit-ic .ic-footer-contact > * { font-size: .86rem; }
  .kit-ic .ic-footer-h { margin-bottom: 12px; }
  .kit-ic .ic-footer-col ul { gap: 7px; }
  .kit-ic .ic-footer-col a { font-size: .86rem; }
  .kit-ic .ic-footer-col:last-child { grid-column: 1 / -1; }
  .kit-ic .ic-footer-col:last-child ul { display: block; columns: 2; column-gap: 18px; }
  .kit-ic .ic-footer-col:last-child li { break-inside: avoid; margin-bottom: 7px; }
  .kit-ic .ic-footer-bottom { padding: 18px 0; gap: 8px; font-size: .74rem; }
  .kit-ic .ic-footer-logo { display: none; }
  .kit-ic .ic-footer-claim { font-size: 1.6rem; margin-bottom: 24px; }
  .kit-ic .ic-footer-brand p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .kit-ic .ic-footer-contact { display: flex; flex-wrap: wrap; gap: 9px 18px; }
  .kit-ic .ic-footer-contact > * { font-size: .82rem; gap: 7px; white-space: nowrap; }
  .kit-ic .ic-footer-contact > :first-child { flex-basis: 100%; white-space: normal; }
  .kit-ic .ic-footer-contact .ic-ic { width: 16px; height: 16px; }
  .kit-ic .ic-footer-h { font-size: .64rem; }
  .kit-ic .ic-footer-col li { line-height: 1.35; }
  .kit-ic .ic-footer-col ul { gap: 9px; }
  .kit-ic .ic-footer-col:last-child li { margin-bottom: 9px; }
}

/* barra azioni mobile */
.kit-ic .ic-mbar { display: none; }
@media (max-width: 760px) {
  .kit-ic .ic-mbar { position: fixed; left: 10px; right: 10px; bottom: max(10px, env(safe-area-inset-bottom)); z-index: 880; display: flex; gap: 6px; padding: 6px; border-radius: 20px; background: rgba(20,28,71,.9); backdrop-filter: blur(16px); box-shadow: 0 0 0 1px var(--ic-line), 0 20px 50px -10px rgba(0,0,0,.7); transform: translateY(140%); transition: transform .5s var(--ic-ease); }
  .kit-ic.show-mbar .ic-mbar { transform: none; }
  .kit-ic .ic-mbar a { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 9px 4px; border-radius: 14px; text-decoration: none; font: 600 .72rem/1 var(--ic-fb); color: var(--ic-text); }
  .kit-ic .ic-mbar a.is-accent { background: var(--ic-led); color: #fff; }
  /* icona accanto al testo: pulsanti più bassi e stretti */
  .kit-ic .ic-mbar a { flex: 1 1 auto; flex-direction: row; justify-content: center; gap: 5px; padding: 12px 6px; font-size: .76rem; letter-spacing: -.01em; white-space: nowrap; min-width: 0; }
  html.has-xlive .kit-ic .ic-mbar { gap: 3px; padding: 5px; }
  .kit-ic .ic-mbar a span { overflow: visible; text-overflow: clip; }
  .kit-ic .ic-mbar a svg { width: 16px; height: 16px; flex: none; }
  /* assistente vocale: il globo entra accanto alla barra, allineato; il fumetto sale sopra */
  html.has-xlive .kit-ic .ic-mbar { right: 76px; }
  html.has-xlive .kit-ic .xl-fab { width: 54px; height: 54px; right: 12px; bottom: max(10px, env(safe-area-inset-bottom)); }
  html.has-xlive .kit-ic .xl-fab .xl-orb { width: 30px; height: 30px; }
  html.has-xlive .kit-ic .xl-teaser { right: 76px; bottom: calc(max(10px, env(safe-area-inset-bottom)) + 8px); }
  /* appena compare la barra azioni il fumetto si toglie (resta il globo) */
  html.has-xlive .kit-ic.show-mbar .xl-teaser { opacity: 0 !important; transform: translateX(10px) scale(.96) !important; pointer-events: none !important; }
  .kit-ic .ic-footer { padding-bottom: 90px; }
}

/* ─────────── Blocchi core ristilizzati (FAQ, risposta breve, form, recensioni, blog, chat) ─────────── */
.kit-ic .sec { padding-block: clamp(70px, 9vw, 130px); background: var(--ic-ink); color: var(--ic-text); }
.kit-ic .sec.alt { background: var(--ic-ink2); }
.kit-ic .sec .wrap { width: var(--ic-wrap); max-width: none; margin-inline: auto; }
.kit-ic .sec h2 { font-size: clamp(2rem, 4vw, 3.6rem); }
.kit-ic .sec-head p, .kit-ic .sec p.note { color: var(--ic-mute); }
.kit-ic .eyebrow { font: 600 .74rem/1 var(--ic-fm); letter-spacing: .18em; text-transform: uppercase; color: var(--ic-mute); }
.kit-ic .pick { color: var(--ic-rec); }
/* Risposta breve (AnswerBox) → "scheda tecnica" luminosa */
.kit-ic .answer-box { position: relative; background: var(--ic-ink) !important; color: var(--ic-text) !important; border: 0 !important; border-radius: var(--ic-r2) !important; box-shadow: 0 30px 80px -46px rgba(var(--ic-inkRGB),.7) !important; padding: clamp(26px, 4vw, 44px) !important; }
.kit-ic .answer-box::before { content: ""; position: absolute; left: 0; top: 26px; bottom: 26px; width: 3px; border-radius: 3px; background: linear-gradient(var(--ic-cy-l), var(--ic-cu-l)); }
.kit-ic .answer-box .ab-text { font-size: clamp(1.08rem, .6vw + .95rem, 1.3rem); line-height: 1.6; color: var(--ic-text) !important; }
.kit-ic .answer-box * { color: inherit; }
.kit-ic .answer-box dl, .kit-ic .answer-box .ab-facts { border-color: var(--ic-line) !important; }
/* FAQ */
.kit-ic .faq { display: grid; gap: 10px; max-width: 980px; margin-inline: auto; }
.kit-ic .faq-item { background: #fff !important; border: 0 !important; border-radius: 14px !important; box-shadow: inset 0 0 0 1px var(--ic-linel); overflow: clip; transition: box-shadow .3s, transform .3s var(--ic-ease); }
.kit-ic .faq-item[open] { box-shadow: inset 0 0 0 1px var(--ic-blu), 0 20px 44px -24px rgba(20,28,71,.4); transform: translateY(-3px); }
.kit-ic .faq-item summary { padding: 18px 22px !important; font: 600 1.02rem/1.3 var(--ic-fb) !important; color: var(--ic-inkl) !important; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.kit-ic .faq-item summary::-webkit-details-marker { display: none; }
.kit-ic .faq-item summary .faq-ic, .kit-ic .faq-item summary::before { display: none !important; }
.kit-ic .faq-item summary { align-items: center; }
.kit-ic .faq-item summary::after { content: "+"; margin-left: auto; font: 300 2.1rem/1 var(--ic-fb); color: var(--ic-blu); transition: transform .35s var(--ic-ease); flex: none; }
.kit-ic .faq-item[open] summary::after { transform: rotate(45deg); }
.kit-ic .faq-item > div, .kit-ic .faq-item .faq-a { padding: 0 26px 24px !important; color: var(--ic-mutel) !important; }
/* Form (FormBuilder / ContactForm) */
.kit-ic .cform-card { background: #fff !important; border: 0 !important; border-radius: var(--ic-r2) !important; box-shadow: inset 0 0 0 1px var(--ic-linel), 0 40px 90px -54px rgba(var(--ic-inkRGB),.6) !important; padding: clamp(26px, 4vw, 50px) !important; max-width: 900px; margin-inline: auto; color: var(--ic-inkl); }
.kit-ic .cform label { color: var(--ic-mutel) !important; font: 600 .8rem/1.3 var(--ic-fm) !important; letter-spacing: .04em; }
.kit-ic .cform input:not([type=checkbox]):not([type=radio]), .kit-ic .cform select, .kit-ic .cform textarea { background: var(--ic-white2) !important; color: var(--ic-inkl) !important; border: 1px solid var(--ic-linel2) !important; border-radius: 10px !important; padding: 14px 16px !important; font: 400 1rem/1.4 var(--ic-fb) !important; transition: border-color .2s, box-shadow .2s; margin-top: 6px; width: 100%; }
.kit-ic .cform input:focus, .kit-ic .cform select:focus, .kit-ic .cform textarea:focus { outline: none; border-color: var(--ic-blu) !important; box-shadow: 0 0 0 4px rgba(var(--ic-bluRGB),.14); }
.kit-ic .cform .consent { font: 400 .88rem/1.5 var(--ic-fb) !important; color: var(--ic-mutel) !important; }
.kit-ic .cform .consent a { color: var(--ic-blu); }
.kit-ic .cform button[type=submit] { background: var(--ic-cu) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important; min-height: 54px; padding: 0 30px !important; font: 600 1rem/1 var(--ic-fb) !important; cursor: pointer; box-shadow: 0 12px 34px -14px rgba(var(--ic-accRGB),.85); transition: transform .3s var(--ic-ease), background .25s; }
.kit-ic .cform button[type=submit]:hover { transform: translateY(-2px); }
.kit-ic .cform-status { color: var(--ic-blu); }
/* Blog index / recensioni core */
.kit-ic .blog-grid a, .kit-ic .bi-card, .kit-ic .rv-card, .kit-ic .review-card { background: var(--ic-panel) !important; color: var(--ic-text) !important; border-color: var(--ic-line) !important; border-radius: var(--ic-r2) !important; }
.kit-ic .rv-card p, .kit-ic .review-card p { color: var(--ic-mute) !important; }
/* chat AI: pulsante in stile kit, sopra la barra mobile */
.kit-ic #rkc-fab, .kit-ic .rkc-fab { box-shadow: 0 0 0 2px var(--ic-led), 0 16px 40px -10px rgba(0,0,0,.8) !important; }
@media (max-width: 760px) { .kit-ic #rkc-btn, .kit-ic #rkc-fab { bottom: calc(96px + env(safe-area-inset-bottom)) !important; right: 14px !important; } .kit-ic #rkc { bottom: calc(160px + env(safe-area-inset-bottom)) !important; } }
.kit-ic #rkc-btn { box-shadow: 0 0 0 2px var(--ic-led), 0 16px 40px -10px rgba(0,0,0,.8) !important; }

/* ─────────── Configuratore (UI) ─────────── */
.kit-ic .ic-conf { padding: calc(var(--ic-hh0, var(--ic-hh)) + 40px) 0 60px; min-height: 100svh; }
.kit-ic .ic-conf-title { font-size: clamp(2.2rem, 5vw, 4.6rem); font-weight: 800;  line-height: .95; }
.kit-ic .ic-conf-head { margin-bottom: 30px; }
.kit-ic .ic-conf-loading { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 60vh; color: var(--ic-mute); font: 500 .9rem/1 var(--ic-fm); }


/* ─────────── Articoli ─────────── */
.kit-ic .ic-posts-g { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; perspective: 1400px; }
.kit-ic .ic-post { --rx: 0deg; --ry: 0deg; position: relative; border-radius: var(--ic-r2); overflow: clip; background: var(--ic-card); box-shadow: inset 0 0 0 1px var(--ic-cardline), var(--ic-cardsh); display: flex; flex-direction: column; transform: rotateX(var(--rx)) rotateY(var(--ry)); transition: transform .5s var(--ic-ease), box-shadow .4s; }
.kit-ic .ic-post:hover { box-shadow: inset 0 0 0 1px var(--ic-blu), 0 30px 64px -30px rgba(var(--ic-bluRGB),.4); }
.kit-ic .ic-post.is-feature { grid-column: span 2; grid-row: span 2; }
.kit-ic .ic-post-m { overflow: hidden; }
.kit-ic .ic-post-m img { width: 100%; aspect-ratio: 16/10; object-fit: cover; transition: transform 1.1s var(--ic-ease); }
.kit-ic .ic-post.is-feature .ic-post-m img { aspect-ratio: 16/9.4; }
.kit-ic .ic-post:hover .ic-post-m img { transform: scale(1.05); }
.kit-ic .ic-post-b { padding: 22px 24px 26px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.kit-ic .ic-post-meta { font: 500 .72rem/1 var(--ic-fm); letter-spacing: .1em; text-transform: uppercase; color: var(--ic-diml); margin: 0; }
.kit-ic .ic-post h3 { margin: 0; font-size: clamp(1.15rem, 1.1vw + .9rem, 1.45rem); }
.kit-ic .ic-post.is-feature h3 { font-size: clamp(1.6rem, 2.4vw, 2.4rem); }
.kit-ic .ic-post h3 a { text-decoration: none; }
.kit-ic .ic-post h3 a::after { content: ""; position: absolute; inset: 0; }
.kit-ic .ic-post p { color: var(--ic-mutel); margin: 0; font-size: .94rem; }
.kit-ic .ic-t-light .ic-post { background: #fff; box-shadow: inset 0 0 0 1px rgba(0,0,0,.07); }
.kit-ic .ic-t-dark .ic-post p { color: var(--ic-mute); }
@media (max-width: 980px) { .kit-ic .ic-posts-g { grid-template-columns: 1fr 1fr; } .kit-ic .ic-post.is-feature { grid-column: span 2; grid-row: auto; } }
@media (max-width: 640px) { .kit-ic .ic-posts-g { grid-template-columns: 1fr; } .kit-ic .ic-post.is-feature { grid-column: auto; } .kit-ic .ic-post { transform: none !important; } }
.kit-ic [data-tilt]:not(.ic-model):not(.ic-sw):not(.ic-post) { transform: perspective(1100px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .5s var(--ic-ease); }

/* ─────────── Cursore custom (desktop) ─────────── */
.kit-ic .ic-cursor { opacity: 0; position: fixed; left: 0; top: 0; z-index: 9998; pointer-events: none; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: var(--ic-cu); transition: width .35s var(--ic-ease), height .35s var(--ic-ease), margin .35s var(--ic-ease), background .3s; display: grid; place-items: center; }
.kit-ic .ic-cursor span { font: 700 .7rem/1 var(--ic-fb); color: #111; letter-spacing: .04em; opacity: 0; transition: opacity .2s; text-transform: uppercase; }
.kit-ic .ic-cursor.is-big { width: 84px; height: 84px; margin: -42px 0 0 -42px; background: var(--ic-blu); color: #fff; }
.kit-ic .ic-cursor.is-big span { opacity: 1; }
.kit-ic .ic-cursor.is-link { width: 42px; height: 42px; margin: -21px 0 0 -21px; background: rgba(var(--ic-bluRGB),.16); box-shadow: inset 0 0 0 1px var(--ic-blu); }
@media (hover: none), (pointer: coarse) { .kit-ic .ic-cursor { display: none; } }

/* ─────────── Transizione tra pagine: la porta del box si chiude e si riapre ─────────── */
.kit-ic .ic-door { position: fixed; inset: 0; z-index: 9996; pointer-events: none; display: flex; }
.kit-ic .ic-door i { flex: 1; background: #fff; transform: scaleX(0); }
.kit-ic .ic-door i:first-child { transform-origin: left; } .kit-ic .ic-door i:last-child { transform-origin: right; }
.kit-ic .ic-door b { position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; margin-left: -1px; background: linear-gradient(180deg, transparent, var(--ic-cu) 30%, var(--ic-cy) 70%, transparent); box-shadow: 0 0 26px 4px rgba(var(--ic-cyRGB),.45); opacity: 0; }
.kit-ic .ic-door.is-closing i { transform: scaleX(1); transition: transform .5s var(--ic-ease2); }
.kit-ic .ic-door.is-closing b { opacity: 1; transition: opacity .2s .4s; }
.kit-ic .ic-door.is-opening i { transform: scaleX(0); transition: transform .8s var(--ic-ease2) .08s; }
.kit-ic .ic-door.is-closed i { transform: scaleX(1); }
.kit-ic .ic-door.is-closed b { opacity: 1; }
.kit-ic .ic-door.is-opening b { opacity: 0; transition: opacity .3s; }

/* ─────────── Stati delle animazioni d'ingresso (solo con JS: html.js) ─────────── */
html.js .kit-ic [data-reveal] { opacity: 0; transform: translateY(28px); filter: blur(6px); transition: opacity 1s var(--ic-ease), transform 1s var(--ic-ease), filter 1s var(--ic-ease); transition-delay: var(--d, 0ms); }
html.js .kit-ic [data-reveal].is-in { opacity: 1; transform: none; filter: none; }
html.js .kit-ic [data-stagger] > * { opacity: 0; transform: translateY(40px) scale(.98); transition: opacity .9s var(--ic-ease), transform .9s var(--ic-ease); transition-delay: calc(var(--i, 0) * 90ms); }
html.js .kit-ic [data-stagger].is-in > * { opacity: 1; transform: none; }
html.js .kit-ic [data-stagger].ic-stagger-each > * { opacity: 0; transform: translateY(30px) scale(.98); }
html.js .kit-ic [data-stagger].ic-stagger-each > .is-shown, html.js .kit-ic [data-stagger].ic-stagger-each > .is-hidden { opacity: 1; transform: none; }
html.js .kit-ic [data-split] .ic-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
html.js .kit-ic [data-split] .ic-w > span { display: inline-block; transform: translateY(105%) rotate(4deg); transition: transform 1.05s var(--ic-ease); transition-delay: calc(var(--i, 0) * 55ms + var(--d, 0ms)); }
html.js .kit-ic [data-split].is-in .ic-w > span { transform: none; }
html.js .kit-ic [data-imgreveal] .ic-frame, html.js .kit-ic [data-imgreveal].ic-frame { clip-path: inset(18% 18% 18% 18% round 24px); transition: clip-path 1.4s var(--ic-ease); }
html.js .kit-ic [data-imgreveal] .ic-frame img, html.js .kit-ic [data-imgreveal].ic-frame video { transform: scale(1.25); transition: transform 1.8s var(--ic-ease); }
html.js .kit-ic [data-imgreveal].is-in .ic-frame, html.js .kit-ic [data-imgreveal].ic-frame.is-in { clip-path: inset(0 0 0 0 round var(--ic-r)); }
html.js .kit-ic [data-imgreveal].is-in .ic-frame img, html.js .kit-ic [data-imgreveal].is-in.ic-frame video { transform: none; }
.kit-ic [data-tilt] { transform-style: preserve-3d; }

/* ─────────── Movimento ridotto: tutto statico e leggibile ─────────── */
@media (prefers-reduced-motion: reduce) {
  .kit-ic *, .kit-ic *::before, .kit-ic *::after { animation: none !important; transition: none !important; }
  html.js .kit-ic [data-reveal], html.js .kit-ic [data-stagger] > *, html.js .kit-ic [data-split] .ic-w > span, html.js .kit-ic .ic-card-in { opacity: 1 !important; transform: none !important; filter: none !important; }
  .kit-ic .ic-strata { --k: 1 !important; }
  html.js .kit-ic [data-imgreveal] .ic-frame, html.js .kit-ic [data-imgreveal].ic-frame { clip-path: none !important; }
  html.js .kit-ic [data-imgreveal] img { transform: none !important; }
  body.kit-ic::after { display: none; }
  .kit-ic .ic-marquee-t { animation: none; }
}
/* ═════════════ HERO A SLIDE ═════════════ */
.kit-ic .ic-hero--slides { align-items: flex-end; }
/* ── Barra dei chip di fiducia sotto l'hero a slide (fuori dalla sezione scura del carosello): stesso navy di prima
      a colpo d'occhio; su mobile diventa piatta/chiara (vedi sotto), per uscire davvero dalla slide. ── */
.kit-ic .ic-hero-chipbar { padding: 12px 0 clamp(48px, 7vh, 76px); }
.kit-ic .ic-hero-chipbar .ic-chips { margin-top: 0; }
.kit-ic .ic-slides-media { position: absolute; inset: 0; z-index: -3; overflow: hidden; }
.kit-ic .ic-slide-m { position: absolute; inset: 0; opacity: 0; transition: opacity 1.4s var(--ic-ease2); }
.kit-ic .ic-slide-m.is-on { opacity: 1; z-index: 2; }
.kit-ic .ic-slide-m.was-on { z-index: 1; opacity: 1; }
.kit-ic .ic-slide-m img, .kit-ic .ic-slide-m video { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); }
.kit-ic .ic-slide-m.is-on img, .kit-ic .ic-slide-m.is-on video { animation: ic-kb2 var(--kb, 9s) linear both; }
@keyframes ic-kb2 { from { transform: scale(1.14) translate3d(1.5%, 1%, 0); } to { transform: scale(1.02) translate3d(0, 0, 0); } }
.kit-ic .ic-hero--slides .ic-hero-shade { background: linear-gradient(0deg, rgba(var(--ic-inkRGB),.7) 0%, rgba(var(--ic-inkRGB),.28) 36%, rgba(var(--ic-inkRGB),.04) 64%, rgba(var(--ic-inkRGB),.18) 100%), radial-gradient(70% 80% at 0% 100%, rgba(var(--ic-inkRGB),.55), transparent 58%); }   /* velo leggero, stile E80: la foto resta leggibile */
.kit-ic .ic-hero--slides .ic-hero-in { display: grid; }
.kit-ic .ic-slide-t { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(24px); transition: opacity .9s var(--ic-ease), transform .9s var(--ic-ease), visibility 0s .9s; }
.kit-ic .ic-slide-t.is-on { opacity: 1; visibility: visible; transform: none; transition: opacity 1s var(--ic-ease) .25s, transform 1s var(--ic-ease) .25s, visibility 0s; }
.kit-ic .ic-slide-t .ic-hero-title { margin-bottom: 22px; }
.kit-ic .ic-slide-nav { display: flex; gap: 10px; margin-top: 34px; }
.kit-ic .ic-slide-nav button { --p: 0; flex: 1; max-width: 160px; border: 0; background: none; padding: 10px 0 0; cursor: pointer; text-align: left; color: var(--ic-mute); font: 600 .72rem/1 var(--ic-fm); letter-spacing: .1em; }
.kit-ic .ic-slide-nav i { display: block; height: 3px; border-radius: 2px; background: rgba(255,255,255,.2); overflow: hidden; margin-bottom: 10px; position: relative; }
.kit-ic .ic-slide-nav i::after { content: ""; position: absolute; inset: 0; transform-origin: 0 50%; transform: scaleX(var(--p)); background: var(--ic-led); box-shadow: 0 0 10px var(--ic-led); }
.kit-ic .ic-slide-nav button[aria-selected="true"] { color: var(--ic-text); }
@media (max-width: 760px) { .kit-ic .ic-slide-nav span { display: none; } .kit-ic .ic-slide-nav { margin-top: 24px; } }
/* ═════════════ HEADER ═════════════
   Una riga sola, carta semitrasparente con sfocatura ("vetro"); allo scorrimento si compatta e prende l'ombra. */
@media (min-width: 1081px) { .kit-ic { --ic-hh: 84px; } }
.kit-ic .ic-header { background: rgba(255,255,255,.86); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
  transition: transform .5s var(--ic-ease), background .35s, box-shadow .35s, height .45s var(--ic-ease); }
.kit-ic .ic-header.is-scrolled { height: 70px; background: rgba(255,255,255,.94); box-shadow: 0 10px 30px -18px rgba(var(--ic-inkRGB),.35); }
.kit-ic .ic-logo-img { width: var(--logo-w, 196px); max-height: 46px; transition: width .45s var(--ic-ease); }
.kit-ic .ic-header.is-scrolled .ic-logo-img { width: calc(var(--logo-w, 196px) * .86); }
html.ic-lite .kit-ic .ic-header { -webkit-backdrop-filter: none; backdrop-filter: none; background: #fff; }

/* voci del menu: blu inchiostro, navy sull'attiva e al passaggio; sottolineatura rossa animata */
.kit-ic .ic-nav-a { color: var(--ic-inkl); font-weight: 550; }
.kit-ic .ic-nav-a:hover, .kit-ic .ic-nav-i.is-open > .ic-nav-a { background: transparent; color: var(--ic-blu); }
.kit-ic .ic-nav-hl > .ic-nav-a { color: var(--ic-cu); font-weight: 650; }
.kit-ic .ic-nav-i > .ic-nav-a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 2px; border-radius: 2px;
  background: var(--ic-cu); transform: scaleX(0); transform-origin: 0 50%; transition: transform .32s var(--ic-ease); }
.kit-ic .ic-nav-a { position: relative; }
.kit-ic .ic-nav-i:hover > .ic-nav-a::after, .kit-ic .ic-nav-i.is-open > .ic-nav-a::after { transform: scaleX(1); }

/* pulsante telefono: icona chiara su fondo scuro */
.kit-ic .ic-hicon { background: var(--ic-blu-w); color: var(--ic-blu-d); box-shadow: none; }
.kit-ic .ic-hicon:hover { background: var(--ic-blu); color: #fff; }

.kit-ic .ic-header.is-scrolled { box-shadow: 0 10px 30px -20px rgba(var(--ic-inkRGB),.55); }

/* mobile: hamburger a destra, voci più grandi */
@media (max-width: 1080px) {
  .kit-ic .ic-header-cta { margin-left: auto; }
  .kit-ic .ic-nav-a { font-size: 1.2rem; padding: 16px 4px; }
  .kit-ic .ic-nav-a::after { display: none; }
  .kit-ic .ic-nav-hl { order: 99; border-bottom: 0; }
  .kit-ic .ic-nav-hl > .ic-nav-a { justify-content: flex-start; gap: 10px; }
  .kit-ic .ic-sub-g strong { font-size: .95rem; }
}
html.ic-lite body.kit-ic::after { display: none; }
/* ═════════════ PRELOADER: porta chiusa con logo e onde, poi si apre (solo transform/opacity: leggerissimo) ═════════════ */
.kit-ic .ic-pre { position: fixed; inset: 0; z-index: 9997; display: flex; pointer-events: none; animation: ic-pre-safe 0s 4s forwards; }
html.no-pre .kit-ic .ic-pre { display: none; }
.kit-ic .ic-pre > i { flex: 1; background: #fff; transition: transform .9s var(--ic-ease2, cubic-bezier(.77,0,.18,1)); }
.kit-ic .ic-pre > i:first-child { transform-origin: left; } .kit-ic .ic-pre > i:nth-child(2) { transform-origin: right; }
.kit-ic .ic-pre-c { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: grid; justify-items: center; gap: 26px; transition: opacity .35s, transform .5s; }
.kit-ic .ic-pre-logo { width: min(240px, 60vw); height: auto; animation: ic-pre-in .7s var(--ic-ease, ease) both; }
.kit-ic .ic-pre-w { display: flex; align-items: center; gap: 4px; height: 46px; }
.kit-ic .ic-pre-w b { width: 4px; height: 100%; border-radius: 3px; background: linear-gradient(180deg, var(--ic-cu), var(--ic-blu)); transform: scaleY(.12); animation: ic-pre-wave 1.1s ease-in-out infinite; box-shadow: none; }
.kit-ic .ic-pre-w b:nth-child(1) { animation-delay: 0.00s; }
.kit-ic .ic-pre-w b:nth-child(2) { animation-delay: 1.03s; }
.kit-ic .ic-pre-w b:nth-child(3) { animation-delay: 0.96s; }
.kit-ic .ic-pre-w b:nth-child(4) { animation-delay: 0.89s; }
.kit-ic .ic-pre-w b:nth-child(5) { animation-delay: 0.82s; }
.kit-ic .ic-pre-w b:nth-child(6) { animation-delay: 0.75s; }
.kit-ic .ic-pre-w b:nth-child(7) { animation-delay: 0.68s; }
.kit-ic .ic-pre-w b:nth-child(8) { animation-delay: 0.61s; }
.kit-ic .ic-pre-w b:nth-child(9) { animation-delay: 0.54s; }
.kit-ic .ic-pre-w b:nth-child(10) { animation-delay: 0.47s; }
.kit-ic .ic-pre-w b:nth-child(11) { animation-delay: 0.40s; }
.kit-ic .ic-pre-w b:nth-child(12) { animation-delay: 0.33s; }
.kit-ic .ic-pre-w b:nth-child(13) { animation-delay: 0.26s; }
.kit-ic .ic-pre-w b:nth-child(14) { animation-delay: 0.19s; }
.kit-ic .ic-pre-w b:nth-child(15) { animation-delay: 0.12s; }
.kit-ic .ic-pre-w b:nth-child(16) { animation-delay: 0.05s; }
.kit-ic .ic-pre-w b:nth-child(17) { animation-delay: 1.08s; }
.kit-ic .ic-pre-w b:nth-child(18) { animation-delay: 1.01s; }
.kit-ic .ic-pre-w b:nth-child(19) { animation-delay: 0.94s; }
.kit-ic .ic-pre-w b:nth-child(20) { animation-delay: 0.87s; }
.kit-ic .ic-pre-w b:nth-child(21) { animation-delay: 0.80s; }
.kit-ic .ic-pre-w b:nth-child(22) { animation-delay: 0.73s; }
.kit-ic .ic-pre-w b:nth-child(23) { animation-delay: 0.66s; }
.kit-ic .ic-pre-w b:nth-child(24) { animation-delay: 0.59s; }
.kit-ic .ic-pre-w b:nth-child(25) { animation-delay: 0.52s; }
.kit-ic .ic-pre-w b:nth-child(26) { animation-delay: 0.45s; }
.kit-ic .ic-pre-w b:nth-child(27) { animation-delay: 0.38s; }
.kit-ic .ic-pre-w b:nth-child(28) { animation-delay: 0.31s; }

@keyframes ic-pre-wave { 0%, 100% { transform: scaleY(.12); } 25% { transform: scaleY(.9); } 50% { transform: scaleY(.35); } 75% { transform: scaleY(.7); } }
@keyframes ic-pre-in { from { transform: translateY(8px) scale(.97); } to { transform: none; } }
@keyframes ic-pre-safe { to { visibility: hidden; } }
.kit-ic .ic-pre.is-open .ic-pre-c { opacity: 0; transform: translate(-50%, -50%) scale(.94); }
.kit-ic .ic-pre.is-open > i { transform: scaleX(0); transition-delay: .12s; }
.kit-ic .ic-pre.is-gone { display: none; }
/* barra di avanzamento delle slide: animazione CSS (fluida anche mentre la pagina carica) */
.kit-ic .ic-slide-nav i::after { transform: scaleX(0); }
.kit-ic .ic-slide-nav button.is-run i::after { animation: ic-slide-p var(--dur, 7s) linear forwards; }
.kit-ic .ic-hero.is-paused .ic-slide-nav button.is-run i::after { animation-play-state: paused; }
@keyframes ic-slide-p { from { transform: scaleX(0); } to { transform: scaleX(1); } }
html.has-pre:not(.pre-done) .xl-root { opacity: 0; pointer-events: none; }
html.has-pre .xl-root { transition: opacity .6s .5s; }

/* LCP: nell'hero il testo è visibile dal primo disegno (niente opacità 0 / sfocatura in attesa del JS);
   resta solo un leggero movimento verso l'alto. Prima il testo principale appariva ~4 s dopo su mobile lento. */
html.js .kit-ic .ic-hero [data-reveal] { opacity: 1; filter: none; transform: translateY(14px); }
html.js .kit-ic .ic-hero [data-reveal].is-in { transform: none; }
html.js .kit-ic .ic-hero [data-split] .ic-w { overflow: visible; }
html.js .kit-ic .ic-hero [data-split] .ic-w > span { transform: translateY(.22em); }
html.js .kit-ic .ic-hero [data-split].is-in .ic-w > span { transform: none; }

/* ═══════════════════════════ SCHEDE TECNICHE E LINEA DEL TEMPO (dal kit E80) ═══════════════════════════ */

.kit-ic .ic-model-sub { margin: -4px 0 0; font: 500 .82rem/1.4 var(--ic-fm); color: var(--ic-diml); letter-spacing: .01em; }
.kit-ic .ic-t-dark .ic-model-sub { color: var(--ic-dim); }

/* ─────────── Scheda tecnica (dati tecnici · caratteristiche · conformità) ─────────── */
.kit-ic .ic-specsheet-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(460px, 1fr)); gap: 16px; align-items: start; }
.kit-ic .ic-sheet { background: var(--ic-card); border-radius: var(--ic-r2); padding: 24px 26px 10px; box-shadow: inset 0 0 0 1px var(--ic-cardline), var(--ic-cardsh); }
.kit-ic .ic-sheet-h { display: flex; align-items: center; gap: 9px; margin: 0 0 14px; font: 600 .72rem/1 var(--ic-fm); letter-spacing: .15em; text-transform: uppercase; color: var(--ic-blu); }
.kit-ic .ic-t-dark .ic-sheet-h { color: var(--ic-cy-l); }
.kit-ic .ic-sheet dl { margin: 0; }
/* Riga di scheda tecnica. Valore BREVE: etichetta a sinistra, valore a destra, una riga sola.
   Valore LUNGO (marcato .is-long dal PHP): etichetta sopra in piccolo, valore sotto a tutta larghezza —
   mettere una frase nella colonna di destra strozzava entrambe le colonne. */
.kit-ic .ic-sheet dl > div { display: flex; justify-content: space-between; align-items: baseline; gap: 6px 20px;
  padding: 11px 0; border-top: 1px solid var(--ic-cardline); }
.kit-ic .ic-sheet dt { flex: 0 1 auto; min-width: 0; color: var(--ic-mutel); font-size: .9rem; line-height: 1.4; }
.kit-ic .ic-t-dark .ic-sheet dt { color: var(--ic-mute); }
.kit-ic .ic-sheet dd { flex: 0 1 auto; margin: 0; text-align: right; font: 500 .93rem/1.5 var(--ic-fm);
  font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.kit-ic .ic-sheet dl > div.is-long { display: block; }
.kit-ic .ic-sheet dl > div.is-long dt { display: block; font: 600 .68rem/1.4 var(--ic-fm); letter-spacing: .12em;
  text-transform: uppercase; color: var(--ic-diml); }
.kit-ic .ic-t-dark .ic-sheet dl > div.is-long dt { color: var(--ic-dim); }
.kit-ic .ic-sheet dl > div.is-long dd { display: block; margin-top: 5px; text-align: left; font-family: var(--ic-fb);
  font-size: .95rem; line-height: 1.55; color: var(--ic-inkl); }
.kit-ic .ic-t-dark .ic-sheet dl > div.is-long dd { color: var(--ic-text); }
.kit-ic .ic-sheet--norm ul { list-style: none; margin: 0; padding: 0 0 14px; }
.kit-ic .ic-sheet--norm li { padding: 11px 0; border-top: 1px solid var(--ic-cardline); }
.kit-ic .ic-sheet--norm strong { display: block; font-size: .92rem; }
.kit-ic .ic-sheet--norm span { display: block; margin-top: 3px; font: 500 .84rem/1.6 var(--ic-fm); color: var(--ic-mutel); }
@media (max-width: 760px) {
  .kit-ic .ic-specsheet-g { grid-template-columns: 1fr; }
  .kit-ic .ic-sheet dl > div { display: block; }
  .kit-ic .ic-sheet dl > div dt { font: 600 .68rem/1.4 var(--ic-fm); letter-spacing: .12em; text-transform: uppercase; color: var(--ic-diml); }
  .kit-ic .ic-sheet dl > div dd { margin-top: 5px; text-align: left; }
}

/* ─────────── Linea del tempo ─────────── */
.kit-ic .ic-tl-l { list-style: none; margin: 0; padding: 0 0 0 112px; position: relative; display: grid; gap: clamp(30px, 4.4vw, 56px); }
.kit-ic .ic-tl-l .ic-steps-line { left: 45px; }
.kit-ic .ic-tl-i .ic-step-n { left: -112px; width: auto; min-width: 90px; padding: 0 12px; height: 32px; border-radius: 8px;
  font: 600 .78rem/1 var(--ic-fm); letter-spacing: .04em; white-space: nowrap; }
.kit-ic .ic-tl-i .ic-step-c h3 { font-size: clamp(1.2rem, 1.6vw, 1.5rem); }
.kit-ic .ic-tl-i .ic-step-m .ic-cover { aspect-ratio: 16/11; }
@media (max-width: 900px) {
  .kit-ic .ic-tl-l { padding-left: 0; gap: 34px; }
  .kit-ic .ic-tl-l .ic-steps-line { display: none; }
  .kit-ic .ic-tl-i .ic-step-n { position: static; margin-bottom: 10px; }
  .kit-ic .ic-tl-i { display: block; }
}

/* ─────────── Movimento ridotto: niente animazioni continue nei blocchi nuovi ─────────── */
@media (prefers-reduced-motion: reduce) {
  .kit-ic .ic-tank-cool, .kit-ic .ic-dot.is-ping::after { animation: none !important; }
  .kit-ic .ic-b3s-card { opacity: 1; transform: none; }
}
.kit-ic .ic-sheet dl > div.is-full { display: block; }
.kit-ic .ic-sheet dl > div.is-full dt { color: var(--ic-inkl); font-size: .92rem; }
.kit-ic .ic-t-dark .ic-sheet dl > div.is-full dt { color: var(--ic-text); }

/* "In breve" (AnswerBox del core): scheda blu notte a tutta larghezza, leggibile. È il testo che i motori AI citano. */
.kit-ic .ab-sec > .wrap { width: var(--ic-wrap); max-width: none; }
.kit-ic .answer-box { max-width: none !important; margin-inline: auto !important; }
.kit-ic .answer-box .ab-q { color: #fff !important; font-size: clamp(1.5rem, 2.4vw, 2.1rem) !important; max-width: 28ch; }
.kit-ic .answer-box .ab-facts { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 0 26px; margin-top: 26px !important; }
.kit-ic .answer-box .ab-facts > div { padding: 16px 0 0; border-top: 1px solid var(--ic-line) !important; }
.kit-ic .answer-box .ab-facts dt { font: 600 .68rem/1.2 var(--ic-fm) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--ic-cy-l) !important; }
.kit-ic .answer-box .ab-facts dd { margin: 6px 0 0 !important; font: 500 .96rem/1.4 var(--ic-fb) !important; color: #fff !important; }
.kit-ic .answer-box .ab-upd { margin-top: 22px !important; font: 500 .78rem/1 var(--ic-fm) !important; color: var(--ic-dim) !important; }

/* Hero con foto di prodotto su fondo bianco: l'oggetto va mostrato intero, non tagliato */
.kit-ic .ic-hero-media.is-contain { background: linear-gradient(160deg, #fff, var(--ic-white2)); padding: clamp(18px, 3vw, 38px); }
.kit-ic .ic-hero-media.is-contain img { object-fit: contain; transform: none; }
.kit-ic.is-ready .ic-hero-media.is-contain img { animation: none; }
.kit-ic .ic-conf-out { align-self: stretch; }
.kit-ic .ic-conf-form { align-self: start; }
@media (min-width: 901px) { .kit-ic .ic-conf-ui { align-items: start; } .kit-ic .ic-conf-out { position: sticky; top: calc(var(--ic-hh) + 20px); } }
/* l'area riservata alla scena 3D dell'hero non deve occupare spazio finché non c'è (mobile, o senza WebGL) */
.kit-ic .ic-specs div.is-full { display: block; }
.kit-ic .ic-specs div.is-long { display: block; }
.kit-ic .ic-specs div.is-long dd { text-align: left; margin-top: 3px; }
.kit-ic .ic-specs div.is-full dt { color: var(--ic-mutel); font-size: .8rem; }
.kit-ic .ic-t-dark .ic-specs div.is-full dt { color: var(--ic-mute); }

/* ─────────── Hero blu notte (sezioni-prodotto con registro visivo proprio) ─────────── */
.kit-ic .ic-hero.ic-t-dark { background: var(--ic-ink); color: var(--ic-text); }
.kit-ic .ic-hero.ic-t-dark::before { background:
  radial-gradient(90% 70% at 76% 18%, #26378F, transparent 62%),
  radial-gradient(60% 60% at 8% 96%, #3A1024, transparent 65%),
  linear-gradient(180deg, var(--ic-ink2) 0%, var(--ic-ink) 100%); }
.kit-ic .ic-hero.ic-t-dark::after { opacity: .35; filter: invert(1) brightness(1.6); }
.kit-ic .ic-hero.ic-t-dark .ic-hero-title { color: #fff; }
.kit-ic .ic-hero.ic-t-dark .ic-hero-sub { color: var(--ic-mute); }
.kit-ic .ic-hero.ic-t-dark .ic-hero-shade { background: linear-gradient(90deg, var(--ic-ink) 18%, rgba(20,28,71,.82) 42%, transparent 64%); }
.kit-ic .ic-hero.ic-t-dark .ic-hero-media { box-shadow: 0 50px 90px -46px rgba(0,0,0,.8), inset 0 0 0 1px var(--ic-line); }
.kit-ic .ic-hero.ic-t-dark .ic-crumbs ol { color: var(--ic-dim); }
.kit-ic .ic-hero.ic-t-dark .ic-crumbs li + li::before { color: var(--ic-line2); }
.kit-ic .ic-hero.ic-t-dark .ic-scrollcue { box-shadow: inset 0 0 0 1.5px var(--ic-line2); }
@media (max-width: 900px) { .kit-ic .ic-hero.ic-t-dark .ic-hero-shade { display: none; } }

/* Split con immagine da mostrare intera (schemi, tris di prodotti): niente ritaglio */
.kit-ic .ic-split-media.is-contain .ic-frame { background: #fff; padding: clamp(14px, 2.2vw, 28px); }
.kit-ic .ic-split-media.is-contain .ic-cover { aspect-ratio: auto; object-fit: contain; width: 100%; height: auto; }
.kit-ic .ic-t-dark .ic-split-media.is-contain .ic-frame { background: var(--ic-white); }
/* Hero con immagine affiancata: il testo non deve mai finirle sotto (vale per "split" e per le testate
   interne che hanno una foto). Senza immagine il testo resta largo. */
/* Si limitano i FIGLI, non il contenitore: .ic-hero-in è anche .ic-wrap (centrato), quindi restringerlo
   sposterebbe il testo verso il centro — cioè proprio sotto l'immagine. */
.kit-ic .ic-hero--split .ic-hero-in > *,
.kit-ic .ic-hero--page:has(.ic-hero-media) .ic-hero-in > *,
.kit-ic .ic-hero--home:has(.ic-hero-media) .ic-hero-in > * { max-width: min(46%, 620px); }
.kit-ic .ic-hero-in > .ic-hero-title { max-width: min(46%, 620px); }
@media (max-width: 1100px) {
  .kit-ic .ic-hero--split .ic-hero-in > *,
  .kit-ic .ic-hero--page:has(.ic-hero-media) .ic-hero-in > *,
  .kit-ic .ic-hero--home:has(.ic-hero-media) .ic-hero-in > * { max-width: 52%; }
}
@media (max-width: 900px) {
  .kit-ic .ic-hero-in > *, .kit-ic .ic-hero-in > .ic-hero-title { max-width: none !important; }
}

/* ═════════════ PRIMA / DOPO (IcBeforeAfter) ═════════════ */
.kit-ic .ic-ba-f { position: relative; margin: 0 auto; max-width: 1200px; aspect-ratio: 16 / 9; user-select: none; }
.kit-ic .ic-ba-a, .kit-ic .ic-ba-b { position: absolute; inset: 0; }
.kit-ic .ic-ba-a img, .kit-ic .ic-ba-b img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: auto; }
.kit-ic .ic-ba-b { clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.kit-ic .ic-ba-tag { position: absolute; left: 18px; top: 18px; background: rgba(20,28,71,.78); color: #fff; font: 700 .76rem/1 var(--ic-fb); letter-spacing: .1em; text-transform: uppercase; padding: 9px 12px; border-radius: 999px; backdrop-filter: blur(6px); }
.kit-ic .ic-ba-tag.is-r { left: auto; right: 18px; background: var(--ic-blu); }
.kit-ic .ic-ba-h { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px; background: #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.08), 0 0 24px rgba(0,0,0,.3); pointer-events: none; }
.kit-ic .ic-ba-h i { position: absolute; top: 50%; left: 50%; width: 52px; height: 52px; margin: -26px 0 0 -26px; border-radius: 50%; background: #fff; color: var(--ic-blu); display: grid; place-items: center; box-shadow: 0 10px 30px -8px rgba(0,0,0,.45); }
.kit-ic .ic-ba-f input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; touch-action: pan-y; }
.kit-ic .ic-ba-f input:focus-visible + * , .kit-ic .ic-ba-f:focus-within .ic-ba-h i { outline: 3px solid var(--ic-cu-l); outline-offset: 2px; }
.kit-ic .ic-ba-f figcaption { position: absolute; left: 0; right: 0; bottom: -34px; text-align: center; font-size: .86rem; color: var(--ic-diml); }

/* le foto degli hero di pagina tengono il soggetto (spesso a destra del centro) dentro il riquadro */
.kit-ic .ic-hero-media .ic-hero-img { object-position: 62% 50%; }

/* ═════════════ Blocchi core sul tema del kit IC ═════════════
   Le sezioni del core (.sec) seguono lo sfondo scelto: "white" = bianco, "alt" = carta azzurrina con velature,
   "dark" = blu notte. */
.kit-ic .sec { background: var(--ic-white); color: var(--ic-inkl); }
.kit-ic .sec.alt { background: var(--ic-white2) var(--ic-wash); background-size: auto, 720px 720px; }
.kit-ic .sec.dark, .kit-ic .sec.bg-dark { background: var(--ic-ink) linear-gradient(155deg, #141C47, #1B2A72); color: var(--ic-text); }
.kit-ic .sec h2, .kit-ic .sec h3 { color: var(--ic-inkl); }
.kit-ic .sec.dark h2, .kit-ic .sec.dark h3 { color: #fff; }
.kit-ic .sec-head p, .kit-ic .sec p.note { color: var(--ic-mutel); }
.kit-ic .eyebrow { color: var(--ic-blu); }
.kit-ic .blog-grid a, .kit-ic .bi-card, .kit-ic .rv-card, .kit-ic .review-card { background: linear-gradient(165deg, #fff 0%, var(--ic-white2) 100%) !important; color: var(--ic-inkl) !important; border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh) !important; }
.kit-ic .rv-card p, .kit-ic .review-card p { color: var(--ic-mutel) !important; }
@media (max-width: 760px) {
  /* il velo del carosello hero (sotto i 700px) è nel blocco dedicato più sotto, per non avere due gradienti in conflitto */
  .kit-ic .answer-box { padding: 24px 20px !important; }
  .kit-ic .sec .wrap { width: calc(100% - 32px); }
}

/* ═════════════ STANZA 3D (IcRoom3D): prova il colore sulle pareti ═════════════ */
.kit-ic .ic-room-g { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr); gap: clamp(24px, 3vw, 48px); align-items: start; }
.kit-ic .ic-room-stage { --wall: #F1EAD8; --wall2: var(--wall); position: relative; aspect-ratio: 4 / 3.1; border-radius: var(--ic-r2); overflow: hidden; background: var(--ic-white2);
  box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh); }
.kit-ic .ic-t-dark .ic-room-stage { box-shadow: inset 0 0 0 1px var(--ic-line); }
.kit-ic .ic-room-cv { position: absolute; inset: 0; width: 100% !important; height: 100% !important; opacity: 0; transition: opacity 1.2s var(--ic-ease); touch-action: pan-y; cursor: grab; z-index: 2; }
.kit-ic .ic-room-cv:active { cursor: grabbing; }
.kit-ic .ic-room-stage.is-on .ic-room-cv { opacity: 1; }
/* stanza CSS di riserva (senza WebGL, con "riduci movimento", o mentre il 3D carica): due pareti, finestra, divano, parquet */
.kit-ic .ic-room-css { position: absolute; inset: 0; overflow: hidden; }
.kit-ic .ic-room-css i { position: absolute; display: block; transition: background-color .9s var(--ic-ease), filter .9s; }
.kit-ic .ic-room-w1 { left: 30%; right: 0; top: 0; height: 72%; background: var(--wall); box-shadow: inset 0 -60px 80px -60px rgba(20,28,71,.14), inset 60px 0 80px -70px rgba(20,28,71,.18); }
.kit-ic .ic-room-w2 { left: 0; width: 30%; top: 0; height: 72%; background: var(--wall2); filter: brightness(.9); transform: skewY(16deg); transform-origin: 100% 0; box-shadow: inset -30px 0 60px -40px rgba(20,28,71,.22); }
.kit-ic .ic-room-win { left: 7%; top: 21%; width: 14%; height: 34%; background: linear-gradient(160deg, #F2F6FF, #CFE0FF); border: 3px solid #fff; transform: skewY(16deg); box-shadow: 0 0 60px 14px rgba(255,255,255,.45), inset 0 0 0 1px rgba(20,28,71,.08); }
.kit-ic .ic-room-win::before, .kit-ic .ic-room-win::after { content: ""; position: absolute; background: #fff; }
.kit-ic .ic-room-win::before { left: 50%; top: 0; bottom: 0; width: 3px; margin-left: -1.5px; } .kit-ic .ic-room-win::after { top: 50%; left: 0; right: 0; height: 3px; margin-top: -1.5px; }
.kit-ic .ic-room-fl { left: 0; right: 0; bottom: 0; height: 32%; background: linear-gradient(180deg, rgba(20,28,71,.14), transparent 26%), repeating-linear-gradient(100deg, #CDA470 0 44px, #C0935F 44px 88px, #C89C67 88px 132px); }
.kit-ic .ic-room-sofa { left: 50%; bottom: 20%; width: 34%; height: 17%; border-radius: 14px 14px 8px 8px; background: #8C96B8; box-shadow: inset 0 -14px 0 #7A84A8, 0 20px 30px -18px rgba(20,28,71,.5); }
.kit-ic .ic-room-sofa::before { content: ""; position: absolute; left: 6%; right: 6%; top: -40%; height: 48%; border-radius: 10px 10px 0 0; background: #7A84A8; }
.kit-ic .ic-room-sofa::after { content: ""; position: absolute; left: 14%; top: -22%; width: 22%; height: 40%; border-radius: 6px; background: #F1EAD8; box-shadow: 34% 0 0 0 #C1603C; transform: rotate(-4deg); }
.kit-ic .ic-room-stage.is-on .ic-room-css { opacity: 0; transition: opacity .8s .4s; }
.kit-ic .ic-room-poster { position: absolute; inset: 0; transition: opacity .8s; z-index: 1; }
.kit-ic .ic-room-poster img { width: 100%; height: 100%; object-fit: cover; }
.kit-ic .ic-room-stage.is-on .ic-room-poster { opacity: 0; pointer-events: none; }
.kit-ic .ic-room-hint { position: absolute; left: 16px; bottom: 14px; margin: 0; display: inline-flex; gap: 8px; align-items: center; padding: 8px 12px; border-radius: 999px; background: rgba(255,255,255,.82); backdrop-filter: blur(6px);
  font: 600 .72rem/1 var(--ic-fb); letter-spacing: .06em; text-transform: uppercase; color: var(--ic-mutel); opacity: 0; transition: opacity .6s .8s; pointer-events: none; z-index: 3; }
.kit-ic .ic-room-stage.is-on .ic-room-hint { opacity: 1; }
.kit-ic .ic-room-side { display: grid; gap: 18px; align-content: start; }
.kit-ic .ic-room-walls { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.kit-ic .ic-room-walls legend { float: left; width: 100%; padding: 0; margin-bottom: 8px; font: 600 .7rem/1 var(--ic-fm); letter-spacing: .14em; text-transform: uppercase; color: var(--ic-diml); }
.kit-ic .ic-t-dark .ic-room-walls legend { color: var(--ic-dim); }
.kit-ic .ic-room-walls label { position: relative; display: inline-block; }
.kit-ic .ic-room-walls input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.kit-ic .ic-room-walls span { display: inline-block; padding: 9px 14px; border-radius: 999px; font: 600 .84rem/1 var(--ic-fb); color: var(--ic-inkl); background: #fff; box-shadow: inset 0 0 0 1px var(--ic-linel2); transition: .22s; }
.kit-ic .ic-t-dark .ic-room-walls span { background: rgba(255,255,255,.06); color: var(--ic-text); box-shadow: inset 0 0 0 1px var(--ic-line2); }
.kit-ic .ic-room-walls input:checked + span { background: var(--ic-blu); color: #fff; box-shadow: none; }
.kit-ic .ic-t-dark .ic-room-walls input:checked + span { background: var(--ic-cu); }
.kit-ic .ic-room-walls input:focus-visible + span { outline: 2px solid var(--ic-blu); outline-offset: 2px; }
.kit-ic .ic-chips-l { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.kit-ic .ic-chip-i { position: relative; min-width: 0; }
.kit-ic .ic-chip-i.is-on:has(.ic-chip-t) { grid-column: 1 / -1; }
.kit-ic .ic-chip { all: unset; box-sizing: border-box; width: 100%; display: grid; grid-template-columns: 40px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 10px; align-items: center; padding: 7px 12px 7px 7px; border-radius: 14px;
  background: #fff; box-shadow: inset 0 0 0 1px var(--ic-linel); cursor: pointer; transition: box-shadow .25s, transform .3s var(--ic-ease); }
.kit-ic .ic-t-dark .ic-chip { background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1px var(--ic-line); }
.kit-ic .ic-chip:hover { transform: translateY(-2px); box-shadow: inset 0 0 0 1px var(--ic-linel2), 0 14px 28px -18px rgba(var(--ic-inkRGB),.5); }
.kit-ic .ic-chip[aria-pressed="true"] { box-shadow: inset 0 0 0 2px var(--ic-blu); }
.kit-ic .ic-t-dark .ic-chip[aria-pressed="true"] { box-shadow: inset 0 0 0 2px var(--ic-cu-l); }
.kit-ic .ic-chip:focus-visible { outline: 2px solid var(--ic-blu); outline-offset: 2px; }
.kit-ic .ic-chip-c { grid-row: 1 / 3; width: 40px; height: 40px; border-radius: 12px; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0,0,0,.05), inset 0 -10px 14px -10px rgba(0,0,0,.2), inset 0 8px 12px -8px rgba(255,255,255,.55); }
.kit-ic .ic-chip-n { font: 600 .88rem/1.2 var(--ic-fb); color: var(--ic-inkl); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kit-ic .ic-t-dark .ic-chip-n { color: var(--ic-text); }
.kit-ic .ic-chip-h { font: 500 .66rem/1 var(--ic-fm); letter-spacing: .06em; color: var(--ic-diml); margin-top: 3px; }
.kit-ic .ic-chip-t { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s var(--ic-ease); }
.kit-ic .ic-chip-t > div { overflow: hidden; min-height: 0; }
.kit-ic .ic-chip-i.is-on .ic-chip-t { grid-template-rows: 1fr; }
.kit-ic .ic-chip-t p { margin: 10px 4px 0; font-size: .92rem; color: var(--ic-mutel); }
.kit-ic .ic-t-dark .ic-chip-t p { color: var(--ic-mute); }
.kit-ic .ic-chip-t a { display: inline-flex; gap: 6px; align-items: center; margin: 8px 4px 4px; font: 600 .86rem/1 var(--ic-fb); color: var(--ic-blu); text-decoration: none; }
.kit-ic .ic-t-dark .ic-chip-t a { color: var(--ic-cu-l); }
html:not(.js) .kit-ic .ic-chip-t { grid-template-rows: 1fr; }
.kit-ic .ic-room-now { display: flex; gap: 8px; align-items: center; margin: 0; font-size: .92rem; color: var(--ic-mutel); }
.kit-ic .ic-room-now .ic-ic { color: var(--ic-cu); }
.kit-ic .ic-room-now strong { color: var(--ic-inkl); }
.kit-ic .ic-t-dark .ic-room-now { color: var(--ic-mute); } .kit-ic .ic-t-dark .ic-room-now strong { color: #fff; }
.kit-ic .ic-room .ic-ctas { margin-top: 10px; }
@media (max-width: 980px) { .kit-ic .ic-room-g { grid-template-columns: 1fr; } .kit-ic .ic-room-stage { aspect-ratio: 1 / .9; } .kit-ic .ic-chips-l { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); } }

/* ═════════════ STRATIGRAFIA DEL CICLO (IcLayers) ═════════════
   Spaccato di parete: gli strati sono lastre impilate in 3D CSS che si allontanano (--k 0→1) scorrendo. */
.kit-ic .ic-layers-g { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(300px, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.kit-ic .ic-layers.is-rev .ic-strata { order: 2; }
.kit-ic .ic-strata { margin: 0; --k: 0; perspective: 1300px; }
.kit-ic .ic-strata-w { position: relative; height: clamp(300px, 40vw, 480px); transform-style: preserve-3d; transform: rotateX(58deg) rotateZ(-34deg) translateZ(-70px); }
/* --pop 0→1 = il sollevamento in avanti al passaggio/tocco (.is-hl): SOLO transform/box-shadow, mai filter/opacity qui —
   "filter" (o opacity, mix-blend-mode…) sull'elemento con preserve-3d forzerebbe il suo transform-style a "flat" e
   appiattirebbe i figli 3D (badge e targhetta contro-ruotati sotto), che è esattamente il difetto della "moneta schiacciata". */
.kit-ic .ic-slab { position: absolute; left: 16%; right: 16%; top: 24%; height: 52%; border-radius: 10px; background: var(--c); background-size: 100% 100%; transform-style: preserve-3d; --pop: 0;
  transform: translateZ(calc(var(--i) * (16px + var(--k) * 46px) + var(--pop) * 58px)) scale(calc(1 + var(--pop) * .09));
  box-shadow: 0 0 0 1px rgba(20,28,71,.08); transition: transform .38s var(--ic-ease), box-shadow .38s; }
/* spessore: faccia anteriore e laterale, più scure (il filter qui è innocuo: questi pseudo-elementi non hanno figli 3D) */
.kit-ic .ic-slab::before { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 14px; background: var(--c); filter: brightness(.74); transform-origin: top; transform: rotateX(-90deg); border-radius: 0 0 6px 6px; }
.kit-ic .ic-slab::after { content: ""; position: absolute; top: 0; bottom: 0; left: 100%; width: 14px; background: var(--c); filter: brightness(.84); transform-origin: left; transform: rotateY(90deg); }
.kit-ic .ic-slab.is-hl { --pop: 1; box-shadow: 0 32px 60px -22px rgba(20,28,71,.6), 0 0 0 2.5px var(--ic-cu), 0 0 0 1px rgba(20,28,71,.08); z-index: 5; }
/* ── materiale per posizione (data-mat, calcolato in blocks.php: 0=1° strato, 3=ultimo, 1/2=intermedi) ──
   texture/velature solo sulla faccia principale (background-image), i bordi (::before/::after) restano a tinta piatta */
.kit-ic .ic-slab[data-mat="0"] { background-image: radial-gradient(rgba(20,28,71,.12) 1px, transparent 1.6px), radial-gradient(rgba(255,255,255,.4) 1px, transparent 1.6px); background-position: 0 0, 2px 2px; background-size: 5px 5px, 5px 5px; }
.kit-ic .ic-slab[data-mat="1"] { background-image: linear-gradient(122deg, rgba(255,255,255,.8) 0%, rgba(255,255,255,.06) 22%, rgba(255,255,255,.55) 45%, rgba(255,255,255,.05) 68%, rgba(255,255,255,.4) 100%); }
.kit-ic .ic-slab[data-mat="2"] { background-image: radial-gradient(130% 170% at 24% -14%, rgba(255,255,255,.95) 0%, rgba(255,255,255,0) 58%), radial-gradient(rgba(20,28,71,.05) 1px, transparent 1.6px); background-position: 0 0, 0 0; background-size: 100% 100%, 6px 6px; }
.kit-ic .ic-slab[data-mat="3"] { background-image: linear-gradient(112deg, rgba(255,255,255,.9) 0%, rgba(255,255,255,0) 15%, transparent 42%, rgba(255,255,255,.2) 58%, transparent 80%, rgba(255,255,255,.55) 100%); }
/* numero: contro-ruotato → resta un cerchio dritto davanti al lettore, in ogni stato (anche .is-hl: qui sopra niente filter) */
.kit-ic .ic-slab-n { position: absolute; left: -48px; top: 50%; width: 34px; height: 34px; margin-top: -17px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--ic-blu);
  font: 700 .74rem/1 var(--ic-fm); box-shadow: 0 0 0 1px var(--ic-linel), var(--ic-cardsh); transform: rotateZ(34deg) rotateX(-58deg); transition: background .25s, color .25s; }
.kit-ic .ic-slab.is-hl .ic-slab-n { background: var(--ic-cu); color: #fff; box-shadow: none; }
.kit-ic .ic-slab-l { position: absolute; left: 100%; top: 50%; margin: -16px 0 0 30px; padding: 8px 11px; border-radius: 8px; background: #fff; color: var(--ic-inkl); white-space: nowrap; font: 600 .74rem/1 var(--ic-fb);
  box-shadow: 0 0 0 1px var(--ic-linel), var(--ic-cardsh); transform: rotateZ(34deg) rotateX(-58deg); opacity: 0; transition: opacity .5s var(--ic-ease); transition-delay: calc(var(--i) * 90ms + 250ms); }
.kit-ic .ic-strata.is-in .ic-slab-l { opacity: 1; }
.kit-ic .ic-t-dark .ic-slab-n, .kit-ic .ic-t-dark .ic-slab-l { box-shadow: 0 0 0 1px var(--ic-line2); }
html:not(.js) .kit-ic .ic-strata { --k: 1; } html:not(.js) .kit-ic .ic-slab-l { opacity: 1; }
.kit-ic .ic-layers-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.kit-ic .ic-layer { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; padding: 16px 18px; border-radius: 16px; background: linear-gradient(165deg, #fff 0%, var(--ic-white2) 100%); box-shadow: inset 0 0 0 1px var(--ic-linel), 0 14px 34px -26px rgba(20,28,71,.2); transition: box-shadow .25s, transform .3s var(--ic-ease); }
.kit-ic .ic-t-dark .ic-layer { background: rgba(255,255,255,.05); box-shadow: inset 0 0 0 1px var(--ic-line); }
.kit-ic .ic-layer.is-on { box-shadow: inset 0 0 0 1.5px var(--ic-blu), var(--ic-cardsh); transform: translateX(6px); }
.kit-ic .ic-t-dark .ic-layer.is-on { box-shadow: inset 0 0 0 1.5px var(--ic-cu-l); }
.kit-ic .ic-layer-n { font: 700 .76rem/1 var(--ic-fm); color: var(--ic-cu); letter-spacing: .06em; padding-top: 6px; }
.kit-ic .ic-t-dark .ic-layer-n { color: var(--ic-cu-l); }
.kit-ic .ic-layer-c h3 { font-size: clamp(1.05rem, .4vw + .95rem, 1.2rem); margin: 0 0 6px; }
.kit-ic .ic-layer-c p { margin: 0; color: var(--ic-mutel); font-size: .94rem; }
.kit-ic .ic-t-dark .ic-layer-c p { color: var(--ic-mute); }
.kit-ic .ic-layer-p { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; padding: 7px 10px; border-radius: 8px; font: 600 .84rem/1 var(--ic-fb); color: var(--ic-blu); background: var(--ic-blu-w); text-decoration: none; transition: background .22s, color .22s; }
.kit-ic a.ic-layer-p:hover { background: var(--ic-blu); color: #fff; }
.kit-ic .ic-t-dark .ic-layer-p { background: rgba(255,255,255,.08); color: var(--ic-text); }
.kit-ic .ic-layer-go { transition: transform .3s var(--ic-ease); } .kit-ic a.ic-layer-p:hover .ic-layer-go { transform: translateX(4px); }
@media (max-width: 900px) {
  .kit-ic .ic-layers-g { grid-template-columns: 1fr; }
  .kit-ic .ic-strata-w { height: clamp(220px, 58vw, 340px); transform: rotateX(58deg) rotateZ(-34deg) translateZ(-40px) scale(.9); }
  .kit-ic .ic-slab-l { display: none; }
}

/* ═════════════ PARETE DI CAMPIONI (IcSwatches) ═════════════ */
.kit-ic .ic-sw-g { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; perspective: 1000px; }
.kit-ic .ic-sw-g.cols-3 { grid-template-columns: repeat(3, 1fr); } .kit-ic .ic-sw-g.cols-4 { grid-template-columns: repeat(4, 1fr); } .kit-ic .ic-sw-g.cols-5 { grid-template-columns: repeat(5, 1fr); }
.kit-ic .ic-sw-g.cols-6 { grid-template-columns: repeat(6, 1fr); } .kit-ic .ic-sw-g.cols-7 { grid-template-columns: repeat(7, 1fr); } .kit-ic .ic-sw-g.cols-8 { grid-template-columns: repeat(8, 1fr); }
.kit-ic .ic-sw-g li { min-width: 0; }
.kit-ic .ic-sw { --rx: 0deg; --ry: 0deg; display: block; border-radius: 16px; background: #fff; color: var(--ic-inkl); text-decoration: none; overflow: hidden; transform-style: preserve-3d;
  box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh); transform: rotateX(var(--rx)) rotateY(var(--ry)); transition: transform .5s var(--ic-ease), box-shadow .4s; }
.kit-ic .ic-t-dark .ic-sw { background: var(--ic-panel); color: var(--ic-text); box-shadow: inset 0 0 0 1px var(--ic-line); }
.kit-ic a.ic-sw:hover { box-shadow: inset 0 0 0 1px var(--ic-blu), 0 30px 50px -28px rgba(var(--ic-inkRGB),.45); }
.kit-ic .ic-sw-c { display: block; position: relative; aspect-ratio: 1 / .8; background: var(--c); }
/* riflesso della pittura lucida */
.kit-ic .ic-sw-c::after { content: ""; position: absolute; inset: 0; background: linear-gradient(155deg, rgba(255,255,255,.32), transparent 42%, rgba(0,0,0,.07)); }
.kit-ic .ic-sw-h { position: absolute; left: 10px; bottom: 8px; font: 600 .64rem/1 var(--ic-fm); letter-spacing: .08em; color: rgba(255,255,255,.9); opacity: 0; transition: opacity .3s; z-index: 1; }
.kit-ic .ic-sw.is-light .ic-sw-h { color: rgba(19,26,58,.72); }
.kit-ic .ic-sw:hover .ic-sw-h { opacity: 1; }
.kit-ic .ic-sw-b { display: block; padding: 10px 12px 12px; }
.kit-ic .ic-sw-b strong { display: block; font: 600 .88rem/1.25 var(--ic-fb); }
.kit-ic .ic-sw-b small { display: block; font: 500 .66rem/1 var(--ic-fm); letter-spacing: .08em; text-transform: uppercase; color: var(--ic-diml); margin-top: 4px; }
.kit-ic .ic-t-dark .ic-sw-b small { color: var(--ic-dim); }
@media (max-width: 1080px) { .kit-ic .ic-sw-g.cols-7, .kit-ic .ic-sw-g.cols-8 { grid-template-columns: repeat(5, 1fr); } .kit-ic .ic-sw-g.cols-6 { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 760px) { .kit-ic .ic-sw-g[class*="cols-"] { grid-template-columns: repeat(3, 1fr); gap: 10px; } .kit-ic .ic-sw-b { padding: 8px 10px 10px; } .kit-ic .ic-sw-b strong { font-size: .8rem; } }
@media (max-width: 420px) { .kit-ic .ic-sw-g[class*="cols-"] { grid-template-columns: repeat(2, 1fr); } }
/* ventaglio: le chip partono impilate e si aprono (in viewport), di più al passaggio */
.kit-ic .ic-sw-g.is-fan { display: block; position: relative; height: clamp(250px, 34vw, 420px); max-width: 760px; margin-inline: auto; perspective: none; }
.kit-ic .ic-sw-g.is-fan li { --w: clamp(112px, 15vw, 164px); --a: calc((var(--i) - (var(--n) - 1) / 2) * 1deg); position: absolute; left: 50%; bottom: 0; width: var(--w); height: 86%; margin-left: calc(var(--w) / -2);
  transform-origin: 50% 118%; transform: rotate(0deg); transition: transform .9s var(--ic-ease); transition-delay: calc(var(--i) * 30ms); }
.kit-ic .ic-sw-g.is-fan.is-in li { transform: rotate(calc(var(--a) * 6)); }
.kit-ic .ic-sw-g.is-fan.is-open li { transform: rotate(calc(var(--a) * 11)) translateY(-8px); }
.kit-ic .ic-sw-g.is-fan .ic-sw { height: 100%; display: flex; flex-direction: column; border-radius: 12px; transform: none; box-shadow: 0 14px 34px -16px rgba(var(--ic-inkRGB),.5), inset 0 0 0 1px rgba(20,28,71,.06); }
.kit-ic .ic-sw-g.is-fan .ic-sw-c { aspect-ratio: auto; flex: 1; }
.kit-ic .ic-sw-g.is-fan .ic-sw-h { opacity: 1; }

/* ═════════════════════════════════════════════════════════════════════════════════════════════
   HEADER, TOPBAR, MEGA-MENU, RICERCA, CONSULENTE E FOOTER DEL CORE — restyle discreto quando il sito usa
   TopBar+NavBar+FooterBar del motore (es. italcover): font e colori del kit, vetro allo scorrimento,
   sottolineature animate. Nessuna proprietà di layout/posizione né display: il JS del core resta intatto.
   ═════════════════════════════════════════════════════════════════════════════════════════════ */
.kit-ic .header { font-family: var(--ic-fb); background: rgba(255,255,255,.94); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid var(--ic-linel); box-shadow: none; transition: background .35s, box-shadow .35s, padding .35s; }
.kit-ic .header.ic-glass, .kit-ic .header.scrolled { background: rgba(255,255,255,.86); box-shadow: 0 10px 30px -20px rgba(var(--ic-inkRGB),.45); }
html.ic-lite .kit-ic .header { -webkit-backdrop-filter: none; backdrop-filter: none; background: #fff; }
.kit-ic #nav > a.nav-item, .kit-ic #nav > .nav-item > a { font-family: var(--ic-fb); font-weight: 500; letter-spacing: .005em; color: var(--ic-inkl); transition: color .22s; }
.kit-ic #nav > a.nav-item:hover, .kit-ic #nav > .nav-item:hover > a, .kit-ic #nav > .nav-item.open > a { color: var(--ic-blu); }
@media (min-width: 901px) {
  .kit-ic #nav > a.nav-item, .kit-ic #nav > .nav-item > a { position: relative; }
  .kit-ic #nav > a.nav-item::after, .kit-ic #nav > .nav-item > a::after { content: ""; position: absolute; left: .6em; right: .6em; bottom: .2em; height: 2px; border-radius: 2px; background: var(--ic-cu);
    transform: scaleX(0); transform-origin: 0 50%; transition: transform .32s var(--ic-ease); }
  .kit-ic #nav > a.nav-item:hover::after, .kit-ic #nav > .nav-item:hover > a::after, .kit-ic #nav > .nav-item.open > a::after, .kit-ic #nav > a.nav-item.is-active::after, .kit-ic #nav > a.nav-item[aria-current]::after { transform: scaleX(1); }
}
.kit-ic .nav-badge { background: var(--ic-cu); color: #fff; border-radius: 999px; font-family: var(--ic-fm); }
.kit-ic .header .btn.btn-accent.cta { background: var(--ic-cu); color: #fff; border-radius: 999px; font-weight: 600; font-family: var(--ic-fb); box-shadow: 0 12px 30px -14px rgba(var(--ic-accRGB),.8); transition: transform .3s var(--ic-ease), background .25s, box-shadow .3s; }
.kit-ic .header .btn.btn-accent.cta:hover { background: var(--ic-red-d); transform: translateY(-1px); }
.kit-ic .submenu, .kit-ic .mega { border-radius: 16px; border: 1px solid var(--ic-linel); background: #fff; box-shadow: 0 36px 80px -34px rgba(var(--ic-inkRGB),.45); font-family: var(--ic-fb); }
.kit-ic .submenu a { border-radius: 10px; transition: background .2s, color .2s; }
.kit-ic .submenu a:hover, .kit-ic .mega-link:hover { background: var(--ic-blu-w); color: var(--ic-blu); }
.kit-ic .mega-col-title, .kit-ic .mega-banner-txt b { font-family: var(--ic-fd); color: var(--ic-blu); letter-spacing: -.01em; }
.kit-ic .mega-link { border-radius: 10px; transition: background .2s, color .2s; }
.kit-ic .mega-tile, .kit-ic .mega-fcard, .kit-ic .mega-banner, .kit-ic .mega-media { border-radius: 14px; overflow: hidden; transition: transform .35s var(--ic-ease), box-shadow .35s; }
.kit-ic .mega-tile:hover, .kit-ic .mega-fcard:hover, .kit-ic .mega-banner:hover { transform: translateY(-3px); box-shadow: 0 24px 40px -26px rgba(var(--ic-inkRGB),.5); }
.kit-ic .mega-tile-im img, .kit-ic .mega-fcard-im img, .kit-ic .mega-media-im img, .kit-ic .mrail-prod-im img { transition: transform .8s var(--ic-ease); }
.kit-ic .mega-tile:hover img, .kit-ic .mega-fcard:hover img, .kit-ic .mrail-prod:hover img { transform: scale(1.05); }
.kit-ic .mega-tile-t, .kit-ic .mega-fcard-t { font-family: var(--ic-fd); font-weight: 600; }
.kit-ic .mega-fcard-s { color: var(--ic-diml); }
.kit-ic .mega-banner-cta { color: var(--ic-cu); font-weight: 600; }
.kit-ic .mrail-cat.on > a, .kit-ic .mrail-cat > a:hover { color: var(--ic-blu); background: var(--ic-blu-w); border-radius: 10px; }
.kit-ic .mrail-prod { border-radius: 12px; transition: background .2s; } .kit-ic .mrail-prod:hover { background: var(--ic-white2); }
.kit-ic .mrail-more { color: var(--ic-cu); font-weight: 600; }
.kit-ic .mega-close { border-radius: 50%; background: var(--ic-white2); color: var(--ic-inkl); }
/* ricerca prodotti "spotlight" */
.kit-ic .nav-search { border-radius: 999px; background: var(--ic-white2); border: 1px solid var(--ic-linel); color: var(--ic-mutel); font: 500 .86rem/1 var(--ic-fb); transition: border-color .25s, color .25s, box-shadow .25s; }
.kit-ic .nav-search:hover { border-color: var(--ic-blu); color: var(--ic-inkl); box-shadow: 0 0 0 4px rgba(var(--ic-bluRGB),.08); }
.kit-ic .nav-search-ic { color: var(--ic-blu); }
.kit-ic .spot-bg { background: rgba(20,28,71,.55); backdrop-filter: blur(6px); }
.kit-ic .spot-panel { border-radius: 22px; box-shadow: 0 50px 100px -40px rgba(var(--ic-inkRGB),.65), inset 0 0 0 1px var(--ic-linel); font-family: var(--ic-fb); background: #fff; }
.kit-ic .spot-bar { border-bottom: 1px solid var(--ic-linel); }
.kit-ic .spot-input { font-family: var(--ic-fd); font-weight: 500; color: var(--ic-inkl); }
.kit-ic .spot-ic { color: var(--ic-blu); } .kit-ic .spot-x { border-radius: 50%; color: var(--ic-mutel); }
.kit-ic .spot-item { border-radius: 12px; transition: background .2s, transform .25s var(--ic-ease); }
.kit-ic .spot-item:hover, .kit-ic .spot-item:focus-visible { background: var(--ic-blu-w); transform: translateX(3px); }
.kit-ic .spot-thumb { border-radius: 10px; background: var(--ic-white2); }
.kit-ic .spot-name { font-weight: 600; color: var(--ic-inkl); } .kit-ic .spot-cat { color: var(--ic-diml); font-size: .8rem; } .kit-ic .spot-hint { color: var(--ic-diml); }
/* account, lingua */
.kit-ic #header .rk-key { font-family: var(--ic-fb); color: var(--ic-inkl); border-radius: 999px; transition: color .2s; } .kit-ic #header .rk-key:hover { color: var(--ic-blu); }
/* icone header (ricerca, carrello, account) leggermente più piccole su mobile — l'hamburger resta com'è */
@media (max-width: 700px) {
  .kit-ic .header .nav-search, .kit-ic .header .nav-account, .kit-ic .header .nav-cart, .kit-ic .header .rk-key:not(.btn) { width: 38px !important; height: 38px !important; }
  .kit-ic .header .nav-search svg, .kit-ic .header .nav-account svg, .kit-ic .header .nav-cart svg { width: 16px; height: 16px; }
}
.kit-ic .lang-cur { font-family: var(--ic-fb); color: var(--ic-inkl); }
.kit-ic .lang-menu { border-radius: 12px; border: 1px solid var(--ic-linel); box-shadow: 0 24px 60px -30px rgba(var(--ic-inkRGB),.45); }
.kit-ic .lang-opt:hover, .kit-ic .lang-opt.is-active { background: var(--ic-blu-w); color: var(--ic-blu); }
/* topbar: blu notte, testo chiaro */
.kit-ic .topbar { background: var(--ic-ink); color: var(--ic-text); font: 500 .8rem/1.4 var(--ic-fb); letter-spacing: .01em; }
.kit-ic .topbar a { color: inherit; } .kit-ic .topbar .hl { color: var(--ic-cu-l); font-weight: 600; }
.kit-ic .subheader { font-family: var(--ic-fb); border-bottom: 1px solid var(--ic-linel); }
.kit-ic .subheader-link { border-radius: 999px; transition: background .2s, color .2s; } .kit-ic .subheader-link:hover { background: var(--ic-blu-w); color: var(--ic-blu); }
/* menu mobile a tendina del core: voci grandi in Outfit */
@media (max-width: 900px) { .kit-ic #nav > a.nav-item, .kit-ic #nav > .nav-item > a { font-family: var(--ic-fd); font-weight: 600; } }
/* footer del core: blu notte con velatura rossa, colonne in DM Sans */
.kit-ic .footer { position: relative; overflow: hidden; background: var(--ic-ink) linear-gradient(165deg, #141C47, #1B2A72); color: var(--ic-mute); font-family: var(--ic-fb); }
.kit-ic .footer::before { content: ""; position: absolute; left: 50%; top: -30%; width: 80vw; height: 60vw; transform: translateX(-50%); background: radial-gradient(closest-side, rgba(226,0,26,.14), transparent); pointer-events: none; }
.kit-ic .footer > .wrap { position: relative; }
.kit-ic .footer h4 { font: 600 .72rem/1 var(--ic-fm); letter-spacing: .16em; text-transform: uppercase; color: var(--ic-dim); }
.kit-ic .footer .cols > div a { color: var(--ic-mute); text-decoration: none; transition: color .2s, transform .2s; } .kit-ic .footer .cols > div a:hover { color: #fff; }
.kit-ic .footer .cols > div p { color: var(--ic-mute); }
.kit-ic .footer .legal { border-top: 1px solid var(--ic-line); color: var(--ic-dim); font-size: .82rem; } .kit-ic .footer .legal a { color: var(--ic-mute); text-decoration: none; } .kit-ic .footer .legal a:hover { color: #fff; }
.kit-ic .footer .news input { border-radius: 999px; background: rgba(255,255,255,.08); border: 1px solid var(--ic-line2); color: #fff; font-family: var(--ic-fb); }
.kit-ic .footer .news input::placeholder { color: var(--ic-dim); }
.kit-ic .footer .btn.btn-accent { background: var(--ic-cu); color: #fff; border-radius: 999px; }
.kit-ic .footer .social a, .kit-ic .footer .fsoc a { border-radius: 50%; transition: background .2s, color .2s; } .kit-ic .footer .social a:hover, .kit-ic .footer .fsoc a:hover { background: rgba(255,255,255,.12); color: #fff; }
/* consulente AI di prodotto: barra vetro e pulsante rosso */
.kit-ic .advisor-bar { background: rgba(255,255,255,.9); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-top: 1px solid var(--ic-linel); font-family: var(--ic-fb); box-shadow: 0 -12px 40px -30px rgba(var(--ic-inkRGB),.45); }
.kit-ic .advisor-bar-txt b { font-family: var(--ic-fd); color: var(--ic-blu); } .kit-ic .advisor-bar-txt span { color: var(--ic-mutel); }
.kit-ic .advisor-open, .kit-ic .advisor-fab { background: var(--ic-cu); color: #fff; border-radius: 999px; font-weight: 600; box-shadow: 0 14px 34px -14px rgba(var(--ic-accRGB),.8); transition: transform .3s var(--ic-ease), background .25s; }
.kit-ic .advisor-open:hover, .kit-ic .advisor-fab:hover { background: var(--ic-red-d); transform: translateY(-2px); }
.kit-ic .adv-panel { font-family: var(--ic-fb); } .kit-ic .adv-title { font-family: var(--ic-fd); }
.kit-ic .adv-mode { border-radius: 999px; } .kit-ic .adv-mode.on { background: var(--ic-blu); color: #fff; }
.kit-ic .adv-input .adv-text { font-family: var(--ic-fb); }
/* carrello */
.kit-ic .cm-fab { background: var(--ic-blu); color: #fff; box-shadow: 0 16px 40px -14px rgba(var(--ic-bluRGB),.75); transition: transform .3s var(--ic-ease), background .25s; }
.kit-ic .cm-fab:hover { transform: translateY(-2px) scale(1.03); background: var(--ic-blu-d); }
.kit-ic .cm-fab-badge { background: var(--ic-cu); color: #fff; font-family: var(--ic-fm); }
.kit-ic .cm-drawer { font-family: var(--ic-fb); } .kit-ic .cm-head { font-family: var(--ic-fd); }
.kit-ic .cm-foot .btn, .kit-ic .cm-foot .btn-accent { background: var(--ic-cu); color: #fff; border-radius: 999px; }
.kit-ic .cm-tot { font-family: var(--ic-fd); color: var(--ic-blu); }
/* pulsanti del core */
.kit-ic .btn { font-family: var(--ic-fb); font-weight: 600; border-radius: 999px; transition: transform .3s var(--ic-ease), background .25s, color .25s, box-shadow .3s; }
.kit-ic .btn:hover { transform: translateY(-2px); }
.kit-ic .btn-accent, .kit-ic .cm-add-btn, .kit-ic .cm-vadd-btn { background: var(--ic-cu); color: #fff; border-color: transparent; box-shadow: 0 12px 30px -14px rgba(var(--ic-accRGB),.8); }
.kit-ic .btn-accent:hover, .kit-ic .cm-add-btn:hover, .kit-ic .cm-vadd-btn:hover { background: var(--ic-red-d); color: #fff; }
.kit-ic .btn-dark { background: var(--ic-blu); color: #fff; } .kit-ic .btn-dark:hover { background: var(--ic-blu-d); }
.kit-ic .btn-outline, .kit-ic .btn-ghost { color: var(--ic-blu); box-shadow: inset 0 0 0 1px var(--ic-linel2); border-color: transparent; } .kit-ic .btn-outline:hover, .kit-ic .btn-ghost:hover { box-shadow: inset 0 0 0 1px var(--ic-blu); background: var(--ic-blu-w); }
.kit-ic .sec.dark .btn-light, .kit-ic .ctaband .btn-light { background: #fff; color: var(--ic-blu); }

/* ═════════════ NEGOZIO (commerce del core): ombre morbide, sollevamento, zoom, ingresso a cascata ═════════════
   Solo rifiniture sotto .kit-ic: niente elementi nascosti né spostati. */
html.js .kit-ic .ic-card-in { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--ic-ease), transform .8s var(--ic-ease), box-shadow .45s; transition-delay: calc(var(--i, 0) * 70ms); }
html.js .kit-ic .ic-card-in.is-in { opacity: 1; transform: none; transition-delay: calc(var(--i, 0) * 70ms), calc(var(--i, 0) * 70ms), 0s; }
.kit-ic .ucard { border-radius: var(--ic-r2); background: #fff; border-color: transparent; box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh); overflow: hidden; text-decoration: none; }
.kit-ic .ucard:hover, html.js .kit-ic .ucard.ic-card-in.is-in:hover { transform: translateY(-6px); box-shadow: inset 0 0 0 1px var(--ic-linel2), 0 34px 70px -34px rgba(var(--ic-inkRGB),.5); transition-delay: 0s; }
.kit-ic .ucard-img { transition: transform 1s var(--ic-ease); transform-origin: 50% 60%; }
.kit-ic .ucard:hover .ucard-img { transform: scale(1.05); }
.kit-ic .ucard-body h3 { font-family: var(--ic-fd); font-weight: 600; letter-spacing: -.012em; color: var(--ic-inkl); }
.kit-ic .ucard-price { font: 600 1.02rem/1.2 var(--ic-fd); color: var(--ic-blu); }
.kit-ic .ucard .go { color: var(--ic-cu); font-weight: 600; display: inline-block; transition: transform .35s var(--ic-ease); }
.kit-ic .ucard:hover .go { transform: translateX(4px); }
.kit-ic .ucard-tag { border-radius: 6px; font: 600 .66rem/1 var(--ic-fm); letter-spacing: .12em; text-transform: uppercase; background: var(--ic-blu-w); color: var(--ic-blu); }
.kit-ic .ucard--cat .ucard-body h3 { font-size: 1.15rem; }
.kit-ic .sec.dark .ucard { background: var(--ic-panel); box-shadow: inset 0 0 0 1px var(--ic-line); } .kit-ic .sec.dark .ucard-body h3 { color: #fff; } .kit-ic .sec.dark .ucard-price { color: var(--ic-cu-l); }
/* filtri / faccette */
.kit-ic .pgf-box { border-radius: 18px; background: #fff; border-color: transparent; box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh); font-family: var(--ic-fb); }
.kit-ic .pgf-box > summary { font-family: var(--ic-fd); font-weight: 600; }
.kit-ic .pgf-count { background: var(--ic-blu); color: #fff; border-radius: 999px; font: 600 .7rem/1 var(--ic-fm); }
.kit-ic .pgf-g b { font: 600 .68rem/1 var(--ic-fm); letter-spacing: .14em; text-transform: uppercase; color: var(--ic-diml); }
.kit-ic .pgf label { border-radius: 8px; transition: background .2s, color .2s; } .kit-ic .pgf label:hover { background: var(--ic-white2); color: var(--ic-blu); }
.kit-ic .pgf input[type=checkbox], .kit-ic .pgf input[type=radio] { accent-color: var(--ic-blu); }
.kit-ic .pgf-reset { color: var(--ic-cu); font-weight: 600; border-radius: 999px; }
.kit-ic .pgf-empty { color: var(--ic-diml); }
/* scheda prodotto */
.kit-ic .pd-crumb { font: 500 .76rem/1.4 var(--ic-fm); letter-spacing: .06em; text-transform: uppercase; color: var(--ic-diml); } .kit-ic .pd-crumb a { text-decoration: none; } .kit-ic .pd-crumb a:hover { color: var(--ic-blu); }
.kit-ic .pd-main { border-radius: var(--ic-r2); overflow: hidden; background-color: #fff; background-size: contain; background-position: center; background-repeat: no-repeat; background-origin: content-box; box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh); }   /* «background:#fff» azzerava center/contain del core: il prodotto usciva tagliato */
.kit-ic .pd-main img { transition: transform 1.2s var(--ic-ease); } .kit-ic .pd-main:hover img { transform: scale(1.03); }
.kit-ic .pd-thumb { border-radius: 10px; overflow: hidden; transition: transform .3s var(--ic-ease), box-shadow .3s; } .kit-ic .pd-thumb:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -14px rgba(var(--ic-inkRGB),.5); }
.kit-ic .pd-thumb.on, .kit-ic .pd-thumb.is-on, .kit-ic .pd-thumb[aria-current] { box-shadow: inset 0 0 0 2px var(--ic-blu); }
.kit-ic .pd-info h1 { font-family: var(--ic-fd); letter-spacing: -.028em; line-height: 1.04; }
.kit-ic .pd-subtitle { color: var(--ic-mutel); }
.kit-ic .pd-code { font: 500 .72rem/1.4 var(--ic-fm); letter-spacing: .12em; text-transform: uppercase; color: var(--ic-diml); }
.kit-ic .pd-price { font-family: var(--ic-fd); font-weight: 600; color: var(--ic-blu); letter-spacing: -.01em; }
.kit-ic .pd-buy { border-radius: var(--ic-r2); background: #fff; border-color: transparent; box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh); }
.kit-ic .cm-vsel, .kit-ic .cm-qin { border-radius: 10px; border: 1px solid var(--ic-linel2); font-family: var(--ic-fb); background: var(--ic-white2); }
.kit-ic .cm-vsel:focus, .kit-ic .cm-qin:focus { outline: none; border-color: var(--ic-blu); box-shadow: 0 0 0 4px rgba(var(--ic-bluRGB),.12); }
.kit-ic .cm-vprice { font-family: var(--ic-fd); color: var(--ic-blu); }
.kit-ic .pd-spec, .kit-ic .pd-attr, .kit-ic .pd-trust-i, .kit-ic .pd-tool--calc, .kit-ic .pd-tool--specs { border-radius: 14px; background: var(--ic-white2); border-color: transparent; transition: background .2s; }
.kit-ic .pd-spec-ic { color: var(--ic-blu); } .kit-ic .pd-spec-l { font: 500 .7rem/1.3 var(--ic-fm); letter-spacing: .1em; text-transform: uppercase; color: var(--ic-diml); } .kit-ic .pd-spec-v { font-weight: 600; color: var(--ic-inkl); }
.kit-ic .pd-spectable th { font: 600 .7rem/1.4 var(--ic-fm); letter-spacing: .1em; text-transform: uppercase; color: var(--ic-diml); background: var(--ic-white2); }
.kit-ic .pd-spectable td, .kit-ic .pd-spectable th { border-color: var(--ic-linel); }
.kit-ic .pd-docs a, .kit-ic .pd-tds a { color: var(--ic-blu); font-weight: 600; border-radius: 10px; transition: background .2s; } .kit-ic .pd-docs a:hover, .kit-ic .pd-tds a:hover { background: var(--ic-blu-w); }
/* scena / banner del prodotto: velo navy morbido in basso, angoli del kit (solo estetica, nessuno spostamento) */
.kit-ic .pd-banner { border-radius: var(--ic-r2); overflow: hidden; box-shadow: inset 0 -160px 200px -120px rgba(20,28,71,.55), inset 0 0 0 1px rgba(255,255,255,.08), var(--ic-cardsh); }
.kit-ic .pd-colors { border-radius: 16px; }
.kit-ic .pd-step-dot { border-radius: 999px; transition: transform .2s; background: none !important; } .kit-ic .pd-step-dot.on { transform: scale(1.04); }
.kit-ic .pd-step-dot.on .pd-step-n { background: var(--ic-blu) !important; border-color: var(--ic-blu) !important; color: #fff !important; }   /* selezionato = blu */
.kit-ic .pd-step-panel { border-radius: 16px; background: var(--ic-white2); }
.kit-ic .pd-cycle, .kit-ic .pd-apply { border-radius: var(--ic-r2); }
.kit-ic .pd-apply { position: relative; background: linear-gradient(155deg, var(--ic-cu) 0%, var(--ic-red-d) 100%) !important; box-shadow: 0 26px 60px -34px rgba(var(--ic-accRGB),.55); }
.kit-ic .pd-related h2, .kit-ic .pd-reviews h2, .kit-ic .pd-faq h2 { font-family: var(--ic-fd); }
.kit-ic .pd-cta { background: var(--ic-ink) linear-gradient(155deg, #141C47, #1B2A72); color: #fff; border-radius: var(--ic-r2); }
.kit-ic .pd-soldout { border-radius: 10px; }
/* recensioni (scheda prodotto e blocco Recensioni) */
.kit-ic .rv-card { border-radius: var(--ic-r2) !important; background: #fff !important; color: var(--ic-inkl) !important; border: 0 !important; box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh) !important; font-family: var(--ic-fb); }
.kit-ic .rv-name { font-family: var(--ic-fd); font-weight: 600; } .kit-ic .rv-date { color: var(--ic-diml); } .kit-ic .rv-verified { color: #1F8A4C; }
.kit-ic .rv-stars .st.on { color: #E8A317; } .kit-ic .rv-stars .st { color: var(--ic-linel2); }
.kit-ic .rv-nav { border-radius: 50%; background: #fff; color: var(--ic-blu); border: 0; box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh); transition: background .2s, color .2s, transform .3s var(--ic-ease); }
.kit-ic .rv-nav:hover { background: var(--ic-blu); color: #fff; transform: scale(1.06); }
.kit-ic .rv-summary { font-family: var(--ic-fd); } .kit-ic .rv-count, .kit-ic .rv-sub { color: var(--ic-mutel); }
.kit-ic .rv-google { border-radius: 999px; }
.kit-ic .sec.dark .rv-card { background: var(--ic-panel) !important; color: var(--ic-text) !important; box-shadow: inset 0 0 0 1px var(--ic-line) !important; }
/* niente stelline sulle card di anteprima prodotto (griglie, correlati, categorie): restano solo nella scheda prodotto */
.kit-ic .ucard-rate { display: none !important; }

/* ── Scheda prodotto: il codice va a fianco del titolo (centrato in verticale), non sotto il sottotitolo; il titolo
      va comunque a capo su più righe se è lungo. Sotto: prezzo, formato disponibile e il pulsante «Scheda tecnica»
      restano SEMPRE in cima (mai nascosti da una descrizione lunga) — la descrizione va DOPO, e su schermi larghi
      (dove la foto è a fianco) si accorcia con «Leggi di più» per finire esattamente al fondo della foto: vedi
      initPdAlign() in ic.js. Nessuna riga tocca il DOM: solo `order`/`grid-*`, il testo resta intero per la SEO. ── */
.kit-ic .pd-info { display: grid; grid-template-columns: 1fr auto; column-gap: 16px; align-items: start; }
.kit-ic .pd-info h1 { grid-column: 1; grid-row: 1; overflow-wrap: break-word; hyphens: none; -webkit-hyphens: none; }   /* mai a capo con il trattino: solo a spazio, o silenzioso in caso estremo */
.kit-ic .pd-subtitle { hyphens: none; -webkit-hyphens: none; }
.kit-ic .pd-info > .pd-code { grid-column: 2; grid-row: 1; align-self: center; margin: 0; white-space: nowrap; }
.kit-ic .pd-info > .pd-subtitle { grid-column: 1 / -1; grid-row: 2; }
.kit-ic .pd-info > *:not(h1):not(.pd-code):not(.pd-subtitle) { grid-column: 1 / -1; }
.kit-ic .pd-info > .pd-price { order: 1; }
.kit-ic .pd-info > .pd-colors { order: 2; }
.kit-ic .pd-info > .pd-docs { order: 3; }
.kit-ic .pd-info > .pd-desc, .kit-ic .pd-info > .pd-desc + .ic-rm-btn { order: 4; }
.kit-ic .pd-info > .pd-buy, .kit-ic .pd-info > .pd-cfg, .kit-ic .pd-info > .pd-soldout { order: 5; }
.kit-ic .pd-info > .pd-trust { order: 6; }
.kit-ic .pd-info > .pd-pack { order: 7; }

/* prova il colore, configuratore di ciclo, cercatore, flipbook */
.kit-ic .cviz { font-family: var(--ic-fb); }
.kit-ic .cviz-stage, .kit-ic .cviz-drop { border-radius: var(--ic-r2); overflow: hidden; }
.kit-ic .cviz-drop { border: 2px dashed var(--ic-linel2); background: var(--ic-white2); transition: border-color .2s, background .2s; } .kit-ic .cviz-drop:hover { border-color: var(--ic-blu); background: var(--ic-blu-w); }
.kit-ic .cviz-swatch { border-radius: 12px; transition: transform .25s var(--ic-ease), box-shadow .25s; } .kit-ic .cviz-swatch:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 14px 24px -14px rgba(var(--ic-inkRGB),.5); }
.kit-ic .cviz-step { border-radius: 999px; } .kit-ic .cviz-side { border-radius: var(--ic-r2); }
.kit-ic .pfind, .kit-ic .cyc-result { font-family: var(--ic-fb); }
.kit-ic .pf-op { border-radius: 16px; background: #fff; box-shadow: inset 0 0 0 1px var(--ic-linel); transition: transform .3s var(--ic-ease), box-shadow .3s; }
.kit-ic .pf-op:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--ic-blu), var(--ic-cardsh); }
.kit-ic .pf-prog { border-radius: 999px; overflow: hidden; } .kit-ic .pf-step.on { color: var(--ic-blu); }
.kit-ic .cyc-title { font-family: var(--ic-fd); } .kit-ic .cyc-card { border-radius: var(--ic-r2); box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh); overflow: hidden; }
.kit-ic .flipbook-wrap { font-family: var(--ic-fb); }
.kit-ic .fb-bar { border-radius: 999px; background: rgba(255,255,255,.92); backdrop-filter: blur(10px); box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh); }
.kit-ic .fb-btn { border-radius: 999px; transition: background .2s, color .2s; } .kit-ic .fb-btn:hover { background: var(--ic-blu-w); color: var(--ic-blu); }
.kit-ic .fb-thumb { border-radius: 8px; } .kit-ic .fb-panel { border-radius: 16px; font-family: var(--ic-fb); }
/* blog, KPI, USP, banda CTA, tab, mappa del core */
.kit-ic .bcard { border-radius: var(--ic-r2); background: #fff; overflow: hidden; box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh); text-decoration: none; }
.kit-ic .bcard:hover, html.js .kit-ic .bcard.ic-card-in.is-in:hover { transform: translateY(-6px); box-shadow: inset 0 0 0 1px var(--ic-linel2), 0 34px 70px -34px rgba(var(--ic-inkRGB),.5); transition-delay: 0s; }
.kit-ic .bcard-img img { transition: transform 1s var(--ic-ease); } .kit-ic .bcard:hover .bcard-img img { transform: scale(1.05); }
.kit-ic .bcard-h { font-family: var(--ic-fd); font-weight: 600; letter-spacing: -.012em; } .kit-ic .bcard-date { font: 500 .72rem/1 var(--ic-fm); letter-spacing: .1em; text-transform: uppercase; color: var(--ic-diml); } .kit-ic .bcard-x { color: var(--ic-mutel); }
.kit-ic .bchip { border-radius: 999px; font: 500 .84rem/1 var(--ic-fb); box-shadow: inset 0 0 0 1px var(--ic-linel2); background: #fff; color: var(--ic-inkl); transition: .2s; }
.kit-ic .bchip.on, .kit-ic .bchip:hover { background: var(--ic-blu); color: #fff; box-shadow: none; }
.kit-ic .bsearch input { border-radius: 999px; border: 1px solid var(--ic-linel2); background: var(--ic-white2); font-family: var(--ic-fb); }
.kit-ic .bnav { border-radius: 50%; background: #fff; color: var(--ic-blu); box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh); } .kit-ic .bdots button.on, .kit-ic .bdots .on { background: var(--ic-cu); }
.kit-ic .kpi .num { font-family: var(--ic-fd); font-weight: 600; letter-spacing: -.035em; color: var(--ic-blu); font-variant-numeric: tabular-nums; } .kit-ic .kpi .suf { color: var(--ic-cu); } .kit-ic .kpi .l { color: var(--ic-mutel); }
.kit-ic .sec.dark .kpi .num { color: #fff; } .kit-ic .sec.dark .kpi .suf { color: var(--ic-cu-l); } .kit-ic .sec.dark .kpi .l { color: var(--ic-mute); }
.kit-ic .usp-it { border-radius: 16px; background: #fff; box-shadow: inset 0 0 0 1px var(--ic-linel); transition: transform .3s var(--ic-ease), box-shadow .3s; } .kit-ic .usp-it:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--ic-linel2), var(--ic-cardsh); }
.kit-ic .usp-ic { color: var(--ic-blu); } .kit-ic .usp-t { font-family: var(--ic-fd); font-weight: 600; } .kit-ic .usp-x { color: var(--ic-mutel); }
.kit-ic .ctaband { background: var(--ic-ink) linear-gradient(155deg, #141C47, #1B2A72); color: #fff; font-family: var(--ic-fb); }
.kit-ic .ctaband .eyebrow { color: var(--ic-cy-l); } .kit-ic .ctaband .btn-dark { background: var(--ic-cu); color: #fff; }
.kit-ic .rp-tab-l { border-radius: 999px; font-family: var(--ic-fb); font-weight: 600; transition: background .2s, color .2s; }
.kit-ic .rp-tab-r:checked + .rp-tabs-nav .rp-tab-l, .kit-ic .rp-tab-l.on { background: var(--ic-blu); color: #fff; }
.kit-ic .rp-tab-p { border-radius: var(--ic-r2); }
.kit-ic .map-wrap { border-radius: var(--ic-r2); overflow: hidden; box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh); }
.kit-ic .tcard { border-radius: var(--ic-r2); background: #fff; box-shadow: inset 0 0 0 1px var(--ic-linel), var(--ic-cardsh); } .kit-ic .tname { font-family: var(--ic-fd); }
.kit-ic .sec-head h2, .kit-ic .sec-head .h2 { font-family: var(--ic-fd); letter-spacing: -.028em; }
.kit-ic .sec-head .eyebrow, .kit-ic .eyebrow { font: 600 .73rem/1 var(--ic-fm); letter-spacing: .17em; text-transform: uppercase; color: var(--ic-blu); }
.kit-ic .sec.dark .eyebrow { color: var(--ic-cy-l); }
.kit-ic .faq-item summary::after { color: var(--ic-blu); }
.kit-ic .answer-box { background: var(--ic-ink) linear-gradient(155deg, #141C47, #1B2A72) !important; }
.kit-ic .answer-box::before { background: linear-gradient(var(--ic-cy-l), var(--ic-cu-l)); }
.kit-ic .cform-status { color: var(--ic-blu); }
/* immagini del core arrotondate come nel kit */
.kit-ic .sec img:not(.logo):not(.rv-avatar):not([class*="icon"]) { border-radius: var(--ic-r); }
.kit-ic .ucard-img img, .kit-ic .pd-main img, .kit-ic .pd-thumb img, .kit-ic .bcard-img img, .kit-ic .mega img, .kit-ic .spot-thumb, .kit-ic .cviz img, .kit-ic .flipbook img { border-radius: 0; }
@media (prefers-reduced-motion: reduce) {
  .kit-ic .ucard, .kit-ic .bcard, .kit-ic .btn, .kit-ic .ucard-img, .kit-ic .ic-sw, .kit-ic .ic-slab, .kit-ic .ic-sw-g.is-fan li { transition: none !important; transform: none !important; }
  .kit-ic .ic-sw-g.is-fan li { transform: rotate(calc(var(--a) * 8)) !important; }
}

/* ── Barra consulente (core): nel kit resta blu notte con testi chiari (il vetro bianco la rendeva illeggibile) ── */
.kit-ic .advisor-bar { background: linear-gradient(90deg, #141C47, #1B2A72) !important; border: 0 !important; box-shadow: none !important; }
.kit-ic .advisor-bar-txt b { color: #fff !important; }
.kit-ic .advisor-bar-txt span { color: rgba(255,255,255,.74) !important; }
.kit-ic .advisor-bar .btn.advisor-open { background: var(--ic-cu); color: #fff; border-radius: 999px; }

/* ── Scheda prodotto: pannello del passo dentro la banda rossa «Come si applica» (era chiaro con testo bianco: illeggibile) ── */
.kit-ic .pd-apply .pd-step-panel { background: none; color: #fff; border: 0; padding: 12px 6px 4px; }   /* niente box: solo testo bianco con il suo respiro */
.kit-ic .pd-apply .pd-step-panel h3, .kit-ic .pd-apply .pd-step-panel h4, .kit-ic .pd-apply .pd-step-panel strong { color: #fff; }
.kit-ic .pd-apply .pd-step-panel p { color: rgba(255,255,255,.92); }

/* ── Hero con slide (home) su mobile: la foto (verticale, prodotto in basso al centro) riempie l'INTERA hero come
      su desktop — testo+velo stanno SOPRA la foto, non più sotto in un riquadro/pannello separato ── */
@media (max-width: 700px) {
  /* l'altezza della hero NON segue più la proporzione della foto (896×1200): la richiesta è riempire ESATTAMENTE
     lo spazio libero sotto la barra promo + header (che qui sono in flusso normale, non un overlay fisso: la
     topbar scorre via, l'header è sticky e si "aggancia" solo dopo), adattandosi da telefono a telefono — anche
     se questo vuol dire ritagliare un po' la foto (object-fit: cover, già impostato su .ic-slide-m img/video più
     sopra). --ic-chrome-h è l'altezza REALE di topbar+header misurata a runtime (script inline in blocks.php,
     ricalcolata al resize da ic.js): cambia da sito a sito e da schermo a schermo, --ic-hh da solo non basta
     (non include la topbar). Il fallback (--ic-hh0/--ic-hh) copre solo il primissimo istante prima dello script. */
  .kit-ic .ic-hero--slides { min-height: 0; height: calc(100dvh - var(--ic-chrome-h, var(--ic-hh0, var(--ic-hh)))); aspect-ratio: auto; align-items: flex-start; padding: 0; position: relative; overflow: clip; }
  .kit-ic .ic-hero--slides .ic-slides-media { position: absolute; inset: 0; z-index: -3; width: auto; height: auto; margin: 0; aspect-ratio: auto; border-radius: 0; box-shadow: none; }
  /* il testo (.ic-hero-in) diventa un overlay che copre ESATTAMENTE lo stesso riquadro della foto (non più un
     blocco "in flusso" che si stringe intorno al suo contenuto): elimina il vuoto bianco che restava sotto la
     foto quando il testo era più corto della sua altezza naturale, e fa sì che «in basso a sinistra» (righe
     dello slide) sia DAVVERO il fondo della foto, non il fondo del testo. */
  .kit-ic .ic-hero--slides .ic-hero-in { position: absolute; inset: 0; display: block; padding: 16px var(--ic-gut); z-index: 2; }
  .kit-ic .ic-hero--slides .ic-slide-t { position: absolute; inset: 16px var(--ic-gut) auto; }
  /* titolo+sottotitolo+pulsante occupano solo una striscia in alto, per lasciare la foto libera: griglia a 2
     colonne dove il titolo prende l'intera riga 1, sottotitolo (che di solito va su 2 righe) e pulsante
     condividono la riga 2 fianco a fianco invece che impilati — il pulsante non si schiaccia e resta
     centrato verticalmente sul testo (align-self: center su entrambi). */
  .kit-ic .ic-hero--slides .ic-slide-t { display: grid; grid-template-columns: 1fr auto; column-gap: 14px; row-gap: 8px; align-items: start; }
  .kit-ic .ic-hero--slides .ic-hero-title { grid-column: 1 / -1; }
  .kit-ic .ic-hero--slides .ic-hero-sub { grid-column: 1; align-self: center; }
  .kit-ic .ic-hero--slides .ic-hero-ctas { grid-column: 2; align-self: center; margin: 0; }
  /* l'occhiello (titoletto col pallino) sparisce da tutte le slide su mobile: era ridondante col titolo appena
     sotto ed è la prima cosa che si può togliere per lasciare più spazio alla foto */
  .kit-ic .ic-hero--slides .ic-eyebrow { display: none; }
  /* velo più corto (sfuma prima: il blocco di testo ora è piccolo, non serve scuro fino a metà foto) e più
     trasparente (picco più basso, la foto deve restare ben leggibile sotto) */
  /* «!important»: sotto i 900px una regola più specifica (.ic-hero.ic-t-dark .ic-hero-shade) nasconde il velo e ne
     imposta un'altra orizzontale (pensata per l'hero split da desktop) — qui serve SEMPRE quello verticale scuro. */
  .kit-ic .ic-hero--slides .ic-hero-shade { display: block !important; z-index: 1; background: linear-gradient(180deg, rgba(19,26,86,.62) 0%, rgba(19,26,86,.42) 16%, rgba(19,26,86,.16) 30%, rgba(19,26,86,0) 42%) !important; }
  .kit-ic .ic-hero--slides .ic-gl { opacity: .18; }
  /* niente colonna 46%/52ch (era pensata per il testo accanto all'immagine su desktop): a piena larghezza qui */
  .kit-ic .ic-hero--slides .ic-hero-in > * { max-width: 100%; }
  /* testo: sottotitolo bianco, titolo e pulsante in rosso pieno (non più il rosso chiaro) */
  .kit-ic .ic-hero--slides .ic-hero-title { color: var(--ic-cu) !important; }
  .kit-ic .ic-hero--slides .ic-hero-sub { color: #fff !important; opacity: .95; }
  /* pulsante «Scopri…»: più piccolo (era 44px, poi 34px) e solo la freccia (l'etichetta resta per lettori di
     schermo/SEO). Il cerchietto interno «.ic-btn-i» ha un velo bianco al 18% pensato per un pulsante grande con
     bordo rosso visibile intorno: qui riempiva tutto il pulsante e lo schiariva (sembrava rosa) — tolto qui. */
  .kit-ic .ic-hero--slides .ic-btn--primary { min-height: 30px; width: 30px; padding: 0; gap: 0; justify-content: center; }
  .kit-ic .ic-hero--slides .ic-btn--primary .ic-btn-l { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
  .kit-ic .ic-hero--slides .ic-btn--primary .ic-btn-i { width: 30px; height: 30px; background: none; }
  .kit-ic .ic-hero--slides .ic-hero-ctas .ic-btn--ghost { display: none; }
  /* righe dello slide: in basso a sinistra sulla foto, vicino a dove sta il fumetto dell'assistente — solo le
     righe sottili che si riempiono al cambio slide, NIENTE pillola/blocco scuro dietro (tolto su richiesta: non
     piaceva). Leggibilità su qualunque foto sotto affidata a un'ombra portata, non a uno sfondo pieno. */
  .kit-ic .ic-hero--slides .ic-slide-nav { position: absolute; left: 16px; bottom: 16px; right: auto; max-width: 46%; width: auto; margin: 0; z-index: 4; gap: 6px;
    padding: 0; background: none; border-radius: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
  /* «flex:1» col basis 0% della regola base lasciava le righe senza una larghezza di contenuto propria: sul
     telefono finivano a 0px — qui ogni riga ha una larghezza fissa esplicita, niente più flex-grow ambiguo. */
  .kit-ic .ic-hero--slides .ic-slide-nav button { flex: 0 0 26px; max-width: 26px; width: 26px; padding: 0; }
  .kit-ic .ic-hero--slides .ic-slide-nav i { width: 100%; height: 3px; background: rgba(255,255,255,.4); filter: drop-shadow(0 1px 3px rgba(0,0,0,.65)); }
  .kit-ic .ic-hero--slides .ic-slide-nav i::after { filter: drop-shadow(0 1px 2px rgba(0,0,0,.5)); }
}

/* ── Mobile: griglia CATEGORIE a 2 colonne con tessere verticali 2×3; griglia PRODOTTI come slider a 2 colonne con frecce ── */
@media (max-width: 700px) {
  .kit-ic .cardgrid.catgrid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px; }
  .kit-ic .cardgrid.catgrid .ucard--cat .ucard-img { aspect-ratio: 2 / 3; }
  .kit-ic .cardgrid.catgrid .ucard-body { padding: 12px 12px 14px; }
  .kit-ic .cardgrid.catgrid .ucard-body h3 { font-size: .95rem; line-height: 1.2; }
  .kit-ic .cardgrid.ic-slider { display: flex !important; grid-template-columns: none !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; padding: 4px 2px 10px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .kit-ic .cardgrid.ic-slider::-webkit-scrollbar { display: none; }
  .kit-ic .cardgrid.ic-slider > * { flex: 0 0 calc(50% - 6px); scroll-snap-align: start; min-width: 0; }
  .kit-ic .cardgrid.ic-slider .ucard-body h3 { font-size: .92rem; }
}
.kit-ic .ic-slnav { display: none; justify-content: flex-end; gap: 8px; margin: 6px 0 0; }
@media (max-width: 700px) { .kit-ic .ic-slnav { display: flex; } }
.kit-ic .ic-slnav button { width: 42px; height: 42px; border-radius: 999px; border: 1px solid var(--ic-line); background: #fff; color: var(--ic-blu); display: grid; place-items: center; box-shadow: 0 8px 20px -14px rgba(var(--ic-inkRGB), .5); transition: transform .2s, background .2s; }
.kit-ic .ic-slnav button:active { transform: scale(.94); }
.kit-ic .ic-slnav button[disabled] { opacity: .35; }
.kit-ic .ic-slnav svg { width: 18px; height: 18px; }

/* ── Stanza 3D su mobile: campioni colore su 3 colonne compatte (SOLO i campioni della stanza: ".ic-chips" da sola
      prendeva anche i chip di fiducia dell'hero, schiacciandoli in una griglia invece che una riga — regressione
      corretta qui). ── */
@media (max-width: 700px) {
  .kit-ic .ic-room-side .ic-chips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .kit-ic .ic-room-side .ic-chips > li, .kit-ic .ic-chip { min-width: 0; }
  .kit-ic .ic-chip { padding: 8px; flex-direction: column; align-items: flex-start; gap: 6px; }
  .kit-ic .ic-chip-n { font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  .kit-ic .ic-chip-h { font-size: .66rem; }
  .kit-ic .ic-chips-l { grid-column: 1 / -1; }
}

/* ── Stratigrafia: numero in badge rotondo (era schiacciato), miniatura del prodotto sotto il numero, testo e link a destra ── */
.kit-ic .ic-layer::before, .kit-ic .ic-layer::after { content: none !important; }
.kit-ic .ic-layer { grid-template-columns: 40px minmax(0, 1fr); grid-template-rows: auto 1fr; align-items: start; }
.kit-ic .ic-layer-n { grid-column: 1; grid-row: 1; width: 34px; height: 34px; padding: 0; margin: 0; border-radius: 999px; display: grid; place-items: center; background: var(--ic-white2); color: var(--ic-blu); font: 700 .74rem/1 var(--ic-fm); letter-spacing: .04em; box-shadow: inset 0 0 0 1px var(--ic-linel); }
.kit-ic .ic-layer.is-on .ic-layer-n { background: var(--ic-cu); color: #fff; box-shadow: none; }
.kit-ic .ic-t-dark .ic-layer-n { background: rgba(255,255,255,.08); color: #fff; }
.kit-ic .ic-layer-c { grid-column: 2; grid-row: 1 / 3; }
.kit-ic .ic-layer.has-img { grid-template-columns: 72px minmax(0, 1fr); column-gap: 16px; }
.kit-ic .ic-layer-img { grid-column: 1; grid-row: 2; width: 72px; height: 72px; object-fit: contain; margin-top: 10px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--ic-linel); padding: 4px; }
.kit-ic .ic-layer.is-on .ic-layer-img { box-shadow: 0 10px 24px -14px rgba(var(--ic-inkRGB), .5), inset 0 0 0 1px var(--ic-linel); }
@media (max-width: 700px) {
  .kit-ic .ic-slab-l { display: none; }             /* le etichette a destra delle lastre uscivano dallo schermo: restano i numeri, uguali alla lista */
  .kit-ic .ic-strata { margin-left: 44px; }          /* spazio per i numeri delle lastre */
  .kit-ic .ic-layer { padding: 14px 14px; }
  /* foto del prodotto più grande; il numero si sposta prima del titolo (initLayerBadges in ic.js), non più badge a parte */
  .kit-ic .ic-layer.has-img { grid-template-columns: 96px minmax(0, 1fr); column-gap: 14px; }
  .kit-ic .ic-layer-img { width: 96px; height: 96px; }
  .kit-ic .ic-layer-n.ic-inline { position: static; display: inline-flex; width: 22px; height: 22px; margin: 0 8px -2px 0; font-size: .66rem; vertical-align: middle; }
}

/* ── AnswerBox «In breve»: occhiello rosso leggibile anche sulla scheda blu notte, con il puntino che pulsa ── */
.kit-ic .answer-box .eyebrow { color: var(--ic-cu) !important; opacity: 1 !important; font-weight: 700; letter-spacing: .12em; }
.kit-ic .answer-box .eyebrow .pick { display: inline-block; color: var(--ic-cu); animation: ic-blink 1.6s ease-in-out infinite; }
@keyframes ic-blink { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .25; transform: scale(.8); } }
@media (prefers-reduced-motion: reduce) { .kit-ic .answer-box .eyebrow .pick { animation: none; } }

/* ── «Come si applica»: titolo bianco, barra dei passi scorrevole su mobile senza tagli secchi ── */
.kit-ic .pd-apply h2 { color: #fff !important; }
.kit-ic .pd-apply .pd-steps-nav { overflow-x: auto; scroll-snap-type: x proximity; padding: 4px 4px 10px; margin: 0 -4px 6px; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
.kit-ic .pd-apply .pd-steps-nav::-webkit-scrollbar { display: none; }
.kit-ic .pd-apply .pd-step-dot { min-width: 88px; scroll-snap-align: start; }
@media (max-width: 700px) { .kit-ic .pd-apply { padding: 22px 18px; } .kit-ic .pd-apply .pd-step-panel { padding: 10px 2px 0; } }

/* ═══════════════════════════════════════════════════════════════════════════════════════════════
   MOBILE COMPATTO (≤ 700px) — richiesta del cliente: blocchi e immagini più piccoli, 2-3 colonne dove
   possibile, «Leggi di più» sui testi lunghi (ic.js initReadMore), recensioni a lista verticale compatta,
   prodotti correlati come slider di card piccole. Tutto sotto .kit-ic; il core (site.css/render.php) non
   viene toccato. Le regole a 701–980px in fondo sono il controllo «tablet».
   ═══════════════════════════════════════════════════════════════════════════════════════════════ */

/* ── «Leggi di più» (tutte le larghezze: la classe la mette solo il JS, e solo ≤ 700px) ── */
.kit-ic .ic-rm { position: relative; max-height: var(--rm-h, 140px); overflow: hidden; transition: max-height .45s var(--ic-ease); }
.kit-ic .ic-rm::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 56px; pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,0), var(--rm-bg, #fff) 85%); }
.kit-ic .ic-rm.is-open { max-height: none; }
.kit-ic .ic-rm.is-open::after { display: none; }
.kit-ic .answer-box .ic-rm { --rm-bg: var(--ic-blu-d, #141C47) !important; }   /* .sec.alt/.sec.dark .ic-rm sotto vincevano per specificità e sbiancavano la sfumatura: qui SEMPRE navy, coerente con lo sfondo forzato dell'AnswerBox */
.kit-ic .sec.dark .ic-rm, .kit-ic .ic-t-dark .ic-rm { --rm-bg: #172057; }
.kit-ic .sec.alt .ic-rm, .kit-ic .ic-t-panel .ic-rm { --rm-bg: var(--ic-white2, #F3F5FA); }
.kit-ic .ic-rm-btn { display: inline-flex; align-items: center; gap: 6px; margin: 6px 0 12px; padding: 4px 0; border: 0; background: none;
  font: 700 .9rem/1 var(--ic-fb); color: var(--ic-cu); cursor: pointer; }
.kit-ic .ic-rm-btn svg { width: 16px; height: 16px; transition: transform .3s var(--ic-ease); }
.kit-ic .ic-rm-btn[aria-expanded="true"] svg { transform: rotate(180deg); }
.kit-ic .answer-box .ic-rm-btn { color: var(--ic-cu-l, #FF6B6B); }

@media (max-width: 700px) {
  /* ── Densità generale: sezioni, testate, titoli ── */
  .kit-ic .ic-sec { padding-block: 40px; }
  .kit-ic .sec { padding-block: 40px; }
  .kit-ic .ic-head { margin-bottom: 20px; }
  .kit-ic .sec-head { margin-bottom: 20px; }
  .kit-ic .sec-head h2 { margin: 8px 0 8px; }
  .kit-ic .ic-title, .kit-ic .ic-head h2, .kit-ic .sec h2 { font-size: 1.7rem; line-height: 1.1; }
  .kit-ic .ic-eyebrow, .kit-ic .eyebrow { font-size: .66rem; margin-bottom: 10px; }
  .kit-ic .ic-intro, .kit-ic .sec-head p { font-size: .95rem; }
  .kit-ic .ic-ctas { gap: 8px; margin-top: 18px; }
  .kit-ic .ic-btn, .kit-ic .btn { padding-block: 12px; }

  /* ── Hero di pagina: l'header del core è nel flusso (sticky), quindi niente spazio "per l'header fisso";
        immagine bassa (≤ 46vw), titolo più piccolo, chip su una riga ── */
  .kit-ic .ic-hero--page, .kit-ic .ic-hero--split { padding-top: 14px; padding-bottom: 26px; }
  .kit-ic .ic-hero--page .ic-hero-media, .kit-ic .ic-hero--split .ic-hero-media { margin: 0 0 16px; aspect-ratio: 16 / 8; max-height: 46vw; border-radius: 16px; }
  .kit-ic .ic-hero--page .ic-hero-media img { transform: none; animation: none; }
  .kit-ic .ic-crumbs ol { margin-bottom: 10px; font-size: .68rem; }
  .kit-ic .ic-hero--page .ic-hero-title, .kit-ic .ic-hero--split .ic-hero-title { font-size: clamp(1.6rem, 7vw, 2.1rem); margin-bottom: 10px; }
  .kit-ic .ic-hero-sub { font-size: .95rem; }
  .kit-ic .ic-hero-ctas, .kit-ic .ic-hero .ic-ctas { margin-top: 14px; gap: 8px; }
  .kit-ic .ic-hero .ic-chips { margin-top: 14px; gap: 6px; }
  .kit-ic .ic-hero .ic-chips li { padding: 6px 10px; font-size: .74rem; }
  /* hero a slide (home): foto piena (dimensioni/posizione nel blocco dedicato più sopra), qui solo la tipografia.
     Titolo più piccolo e più stretto apposta: ci vuole SU UNA RIGA nei casi tipici (titoli brevi tipo "La finitura
     opaca perfetta" restano comunque su 2 righe se il testo è lungo, accettabile). margin-bottom: 0 perché lo
     spazio tra titolo e riga sottotitolo+pulsante lo dà ormai il row-gap della griglia (vedi blocco sopra), non
     più il margine: altrimenti si sommerebbero i due e la striscia di testo tornerebbe alta. Ombra del testo
     rinforzata rispetto a prima: il velo dietro ora è più corto/trasparente (richiesta cliente), quindi la
     leggibilità sopra la foto chiara la deve reggere di più il text-shadow. */
  .kit-ic .ic-hero--slides .ic-hero-title { font-size: clamp(1.32rem, 6.2vw, 1.86rem); letter-spacing: -.03em; margin-bottom: 0; text-shadow: 0 1px 4px rgba(0,0,0,.85), 0 8px 26px rgba(0,0,0,.55); }
  .kit-ic .ic-hero--slides .ic-hero-sub { font-size: .92rem; text-shadow: 0 1px 3px rgba(0,0,0,.9), 0 4px 18px rgba(0,0,0,.6); }
  /* la barra dei chip esce davvero dalla slide scura: sfondo piatto (pagina), niente banda navy */
  .kit-ic .ic-hero-chipbar { background: none !important; padding: 14px 0 6px; }
  .kit-ic .ic-hero-chipbar.ic-t-dark .ic-chips li { background: rgba(20,28,71,.06); color: var(--ic-inkl); box-shadow: inset 0 0 0 1px var(--ic-linel2); }
  .kit-ic .ic-slide-nav { margin-top: 16px; }
  /* «Scopri X» e il secondario: vedi il blocco dedicato a .ic-hero--slides più sopra (icona sola + niente ghost) */

  /* ── Marquee più basso ── */
  .kit-ic .ic-marquee { padding-block: 10px; }
  .kit-ic .ic-marquee span, .kit-ic .ic-marquee i { font-size: 1.7rem; }

  /* ── AnswerBox «In breve»: card stretta, dati su 3 colonne ── */
  .kit-ic .answer-box { padding: 16px 16px 16px !important; border-radius: 6px 14px 14px 6px; }
  .kit-ic .answer-box .ab-q { font-size: 1.1rem; margin: 6px 0 4px; }
  .kit-ic .answer-box .ab-text { font-size: .92rem; line-height: 1.55; }
  .kit-ic .answer-box .ab-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 10px; margin-top: 14px; }
  .kit-ic .answer-box .ab-facts div { padding-top: 6px; min-width: 0; }
  .kit-ic .answer-box .ab-facts dt { font-size: .56rem; letter-spacing: .08em; }
  .kit-ic .answer-box .ab-facts dd { font-size: .76rem; line-height: 1.3; overflow-wrap: break-word; hyphens: auto; }
  .kit-ic .answer-box .ab-upd { margin-top: 10px; font-size: .68rem; }

  /* ── Funzioni (IcFeatures): 2 colonne, icona 28px ── */
  .kit-ic .ic-feat-g.cols-2, .kit-ic .ic-feat-g.cols-3, .kit-ic .ic-feat-g.cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .kit-ic .ic-feat { padding: 16px 14px 16px; border-radius: 14px; transform: none !important; }
  .kit-ic .ic-feat-n { top: 12px; right: 12px; font-size: .68rem; }
  .kit-ic .ic-feat-ic { width: 40px; height: 40px; margin-bottom: 12px; border-radius: 10px; }
  .kit-ic .ic-feat-ic .ic-ic { width: 22px; height: 22px; }
  .kit-ic .ic-feat h3 { font-size: .98rem; margin-bottom: 5px; }
  .kit-ic .ic-feat p { font-size: .84rem; line-height: 1.45; }

  /* ── USPRow del core: 3 colonne (2 se sono 2 o 4), icona sopra al testo ── */
  .kit-ic .usp-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
  .kit-ic .usp-grid.usp-cols-2, .kit-ic .usp-grid.usp-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .kit-ic .usp-it { flex-direction: column; align-items: center; text-align: center; gap: 6px; padding: 12px 8px; min-width: 0; }
  .kit-ic .usp-ic svg { width: 24px; height: 24px; }
  .kit-ic .usp-t { font-size: .78rem; line-height: 1.25; }
  .kit-ic .usp-x { font-size: .72rem; line-height: 1.3; }

  /* ── Split testo + immagine: immagine 4:3 alta al massimo 220px ── */
  .kit-ic .ic-split-in { gap: 18px; }
  .kit-ic .ic-frame .ic-cover { aspect-ratio: 4 / 3; max-height: 220px; }
  .kit-ic .ic-frame--float { width: 32%; right: 0; bottom: -8%; }
  .kit-ic .ic-split-media figcaption { margin-top: 8px; font-size: .7rem; }
  .kit-ic .ic-bullets { margin-top: 14px; gap: 8px; font-size: .92rem; }
  .kit-ic .ic-rich { font-size: .95rem; }
  .kit-ic .ic-rich--long { font-size: .98rem; line-height: 1.65; }

  /* ── Passi e linea del tempo: immagini 16:9 basse ── */
  .kit-ic .ic-steps-l { gap: 22px; padding-left: 46px; }
  .kit-ic .ic-step { gap: 10px; }
  .kit-ic .ic-step-n { left: -46px; width: 34px; height: 34px; border-radius: 9px; font-size: .84rem; }
  .kit-ic .ic-step-c h3 { font-size: 1.15rem; }
  .kit-ic .ic-step-c p { font-size: .9rem; }
  .kit-ic .ic-step-m .ic-cover, .kit-ic .ic-tl-i .ic-step-m .ic-cover { aspect-ratio: 16 / 9; max-height: 180px; }
  .kit-ic .ic-tl-l { gap: 20px; }
  .kit-ic .ic-tl-i .ic-step-n { height: 26px; min-width: 0; font-size: .7rem; }

  /* ── Numeri (IcStats): 2 colonne, cifre più piccole ── */
  .kit-ic .ic-stats { padding-block: 34px; }
  .kit-ic .ic-stat { padding: 12px 10px 12px 0; gap: 4px; }
  .kit-ic .ic-stat:nth-child(even) { padding-left: 12px; }
  .kit-ic .ic-stat dd { font-size: 2rem; }
  .kit-ic .ic-stat dt { font-size: .78rem; line-height: 1.3; }

  /* ── Usi (IcUses): card più basse e strette ── */
  .kit-ic .ic-uses-pin { padding-block: 40px; }
  .kit-ic .ic-use { flex-basis: 62vw; min-height: 300px; }
  .kit-ic .ic-use-b { padding: 16px; }
  .kit-ic .ic-use h3 { font-size: 1.2rem; margin: 8px 0 4px; }
  .kit-ic .ic-use p { font-size: .84rem; }
  .kit-ic .ic-use-go { width: 36px; height: 36px; top: 12px; right: 12px; }

  /* ── CTA: banda più bassa ── */
  .kit-ic .ic-cta { padding-block: 52px; }
  .kit-ic .ic-cta-title { font-size: clamp(1.6rem, 7vw, 2.1rem); }
  .kit-ic .ic-cta p { font-size: .95rem; }

  /* ── Testimonianze, loghi, gallery, prima/dopo ── */
  .kit-ic .ic-quotes-g { gap: 10px; }
  .kit-ic .ic-quote { padding: 18px; }
  .kit-ic .ic-quote blockquote { font-size: .95rem; margin-bottom: 12px; }
  .kit-ic .ic-quote-ic { width: 24px; height: 24px; margin-bottom: 8px; }
  .kit-ic .ic-filters { margin: -6px 0 16px; gap: 6px; }
  .kit-ic .ic-filters button { padding: 8px 12px; font-size: .8rem; }

  /* ── Slider mobile generico (initMobileSliders): vale per .cardgrid, .ic-models-g, .pd-cycle-row, .pd-related ── */
  .kit-ic .ic-slider { display: flex !important; grid-template-columns: none !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 10px; padding: 4px 2px 8px; scrollbar-width: none; -webkit-overflow-scrolling: touch; perspective: none; }
  .kit-ic .ic-slider::-webkit-scrollbar { display: none; }
  .kit-ic .ic-slider > * { flex: 0 0 calc(50% - 5px); scroll-snap-align: start; min-width: 0; transform: none !important; }
  .kit-ic .ic-slnav { margin-top: 2px; gap: 6px; }
  .kit-ic .ic-slnav button { width: 36px; height: 36px; }

  /* Modelli (IcModels) come slider a 2 colonne: foto 4:3, testo compatto */
  .kit-ic .ic-models-g.ic-slider .ic-model-media img { aspect-ratio: 4 / 3; }
  .kit-ic .ic-models-g.ic-slider .ic-model-body { padding: 12px 12px 14px; gap: 6px; }
  .kit-ic .ic-models-g.ic-slider .ic-model-name { font-size: 1rem; line-height: 1.2; }
  .kit-ic .ic-models-g.ic-slider .ic-model p { font-size: .8rem; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .kit-ic .ic-models-g.ic-slider .ic-tag { padding: 4px 7px; font-size: .58rem; }
  .kit-ic .ic-models-g.ic-slider .ic-model-go { font-size: .82rem; padding-top: 4px; }
  .kit-ic .ic-models-g.ic-slider .ic-specs, .kit-ic .ic-models-g.ic-slider .ic-meter { display: none; }

  /* Prodotti (ProductGrid, core .ucard) nello slider: card compatte */
  .kit-ic .cardgrid.ic-slider .ucard-body { padding: 10px 10px 12px; }
  .kit-ic .cardgrid.ic-slider .ucard-body h3 { font-size: .88rem; margin-bottom: 4px; }
  .kit-ic .cardgrid.ic-slider .ucard p { font-size: .8rem; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .kit-ic .cardgrid.ic-slider .ucard .go { font-size: .76rem; padding-top: 8px; }

  /* Categorie (CategoryGrid): 2 colonne, tessere 4:5 meno alte */
  .kit-ic .cardgrid.catgrid { gap: 10px; }
  .kit-ic .cardgrid.catgrid .ucard--cat .ucard-img { aspect-ratio: 4 / 5; }
  .kit-ic .cardgrid.catgrid .ucard-body { padding: 10px 10px 12px; }
  .kit-ic .cardgrid.catgrid .ucard-body h3 { font-size: .88rem; margin-bottom: 2px; hyphens: manual; }
  .kit-ic .cardgrid.catgrid .ucard .go { font-size: .76rem; padding-top: 6px; }

  /* ── Blog: filtri su una riga scorrevole, card a 2 colonne (griglia e carosello) ── */
  .kit-ic .bfil { gap: 10px; }
  .kit-ic .bchips { flex-wrap: nowrap; overflow-x: auto; gap: 6px; padding-bottom: 6px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .kit-ic .bchips::-webkit-scrollbar { display: none; }
  .kit-ic .bchips > * { flex: none; white-space: nowrap; font-size: .78rem !important; padding: 7px 12px !important; }
  .kit-ic .bfil input { padding: 9px 12px; font-size: .9rem; }
  .kit-ic .bgrid > .bcard { flex: 0 0 calc(50% - 7px); scroll-snap-align: start; }
  .kit-ic .btrack { gap: 12px; }
  .kit-ic .btrack > .bcard { flex-basis: calc(50% - 6px); }
  .kit-ic .bcard-img { aspect-ratio: 4 / 3; }
  .kit-ic .bcard-b { padding: 10px 10px 12px; gap: 4px; }
  .kit-ic .bcard-date { font-size: 10px; }
  .kit-ic .bcard-h { font-size: .9rem; line-height: 1.2; }
  .kit-ic .bcard-x { font-size: .78rem; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .kit-ic .bcard-t { font-size: 9px; left: 8px; top: 8px; }
  .kit-ic .bdots { margin-top: 12px; }
  .kit-ic .ic-posts-g { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .kit-ic .ic-post-b { padding: 12px 12px 14px; gap: 6px; }
  .kit-ic .ic-post h3, .kit-ic .ic-post.is-feature h3 { font-size: .95rem; }
  .kit-ic .ic-post p { font-size: .8rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

  /* ── Parete di campioni (IcSwatches): sempre 3 colonne, tessere più basse ── */
  .kit-ic .ic-sw-g[class*="cols-"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px; }
  .kit-ic .ic-sw { border-radius: 12px; transform: none !important; }
  .kit-ic .ic-sw-c { aspect-ratio: 1 / .72; }
  .kit-ic .ic-sw-b { padding: 6px 8px 8px; }
  .kit-ic .ic-sw-b strong { font-size: .72rem; line-height: 1.2; }
  .kit-ic .ic-sw-b small { font-size: .58rem; margin-top: 2px; }

  /* ── FAQ compatte ── */
  .kit-ic .faq { gap: 8px; }
  .kit-ic .faq-item { border-radius: 12px; }
  .kit-ic .faq-item summary { padding: 10px 14px; font-size: .92rem; line-height: 1.3; gap: 10px; }
  .kit-ic .faq-item[open] { transform: translateY(-2px); }
  .kit-ic .faq-a { padding: 0 14px 14px; font-size: .9rem; line-height: 1.55; }

  /* ── Footer del core: 2 colonne, logo piccolo, testi più piccoli ── */
  .kit-ic .footer { padding: 36px 0 18px; }
  .kit-ic .footer .cols { grid-template-columns: 1fr 1fr !important; gap: 22px 16px; margin-bottom: 22px; }
  .kit-ic .footer .cols > div:first-child { grid-column: 1 / -1; }
  .kit-ic .footer .cols > div:first-child p { max-width: none; font-size: .82rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .kit-ic .footer .cols > .news { grid-column: 1 / -1; }
  .kit-ic .footer .logo { height: 44px; margin-bottom: 10px; }
  .kit-ic .footer .logo.logo-w { width: min(var(--flogo-w, 150px), 150px) !important; height: auto; margin-left: 0; margin-right: 0; }
  .kit-ic .footer h4 { font-size: 11px; margin-bottom: 8px; }
  .kit-ic .footer a { font-size: .86rem; padding: 3px 0; }
  .kit-ic .footer p { font-size: .86rem; line-height: 1.55; }
  .kit-ic .footer .fsoc { margin-top: 8px; gap: 8px; }
  .kit-ic .footer .fsoc a { width: 34px; height: 34px; }
  .kit-ic .footer .news input { padding: 10px 12px; margin: 6px 0; }
  .kit-ic .footer .legal { padding-top: 14px; font-size: .74rem; gap: 6px 12px; }

  /* ── Scheda prodotto (core .pd-*) ── */
  .kit-ic .pd-crumb { font-size: .72rem; margin-bottom: 10px; gap: 6px; }
  .kit-ic .pd { gap: 14px; }
  .kit-ic .pd-main { aspect-ratio: auto; height: 250px; max-height: 300px; padding: 10px; }
  .kit-ic .pd-thumbs { gap: 6px; }
  .kit-ic .pd-info h1 { font-size: 1.55rem; margin-bottom: 6px; }
  .kit-ic .pd-subtitle { font-size: 1.05rem; margin: 0 0 10px; }
  .kit-ic .pd-code { margin-bottom: 8px; }
  .kit-ic .pd-desc { text-align: left; font-size: .95rem; line-height: 1.6; }
  .kit-ic .pd-desc p { margin-bottom: 8px; }
  .kit-ic .pd-colors { font-size: .86rem; margin: 4px 0 2px; }
  .kit-ic .pd-docs { margin: 12px 0 2px; }
  .kit-ic .pd-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 10px; margin: 12px 0 2px; padding: 12px 0; }
  .kit-ic .pd-trust-i { font-size: .8rem; gap: 7px; }
  .kit-ic .pd-trust-ic svg { width: 18px; height: 18px; }
  .kit-ic .pd-tools { gap: 12px; margin: 14px 0 2px; }
  .kit-ic .pd-specs, .kit-ic .pd-tools--both .pd-specs { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px 8px; padding: 12px 10px; margin: 12px 0; }
  .kit-ic .pd-tools--both .pd-spec-ic svg { width: 24px; height: 24px; }
  .kit-ic .pd-tools--both .pd-spec-l { font-size: .62rem; }
  .kit-ic .pd-tools--both .pd-spec-v { font-size: .88rem; }
  .kit-ic .pd-apply { padding: 18px 14px; }
  .kit-ic .pd-apply h2 { font-size: 1.35rem; }
  .kit-ic .pd-apply .pd-step-panel p { font-size: .9rem; }
  .kit-ic .pd-banner { height: clamp(140px, 42vw, 200px); margin-top: 18px; }
  /* ciclo applicativo: slider a 2 colonne */
  .kit-ic .pd-cycle { margin-top: 18px; padding-top: 16px; }
  .kit-ic .pd-cycle h2, .kit-ic .pd-related h2, .kit-ic .pd-faq h2, .kit-ic .pd-rv-head h2, .kit-ic .pd-reviews h2 { font-size: 1.35rem; margin-bottom: 10px; }
  .kit-ic .pd-cycle-row.ic-slider > .pd-cyc { flex-basis: calc(50% - 5px); }
  .kit-ic .pd-cyc { padding: 12px 12px; gap: 4px; }
  .kit-ic .pd-cyc-n { width: 24px; height: 24px; font-size: .8rem; }
  .kit-ic .pd-cyc-ic svg, .kit-ic .pd-cyc-ic .pd-ic-png { width: 20px; height: 20px; }
  .kit-ic .pd-cyc-title { font-size: .88rem; line-height: 1.25; }
  .kit-ic .pd-cyc-txt { font-size: .76rem; line-height: 1.4; }
  .kit-ic .pd-cyc-prod { font-size: .76rem; padding-top: 6px; }
  .kit-ic .pd-cyc-prod-img { width: 36px; height: 36px; }
  /* prodotti correlati: slider di card PICCOLE (~42% ciascuna), foto quadrata */
  .kit-ic .pd-related { margin-top: 18px; padding-top: 16px; }
  .kit-ic .pd-related .cardgrid.ic-slider > * { flex-basis: 42%; }
  .kit-ic .pd-related .cardgrid .ucard-img { aspect-ratio: 1 / 1; }
  .kit-ic .pd-related .cardgrid .ucard-body { padding: 8px 9px 10px; }
  .kit-ic .pd-related .cardgrid .ucard-body h3 { font-size: .8rem; line-height: 1.2; margin-bottom: 2px; }
  .kit-ic .pd-related .cardgrid .ucard p { display: none; }
  .kit-ic .pd-related .cardgrid .ucard-price { font-size: .82rem; margin: 0 0 2px; }
  .kit-ic .pd-related .cardgrid .ucard-rate .rv-stars { font-size: .72rem; }
  .kit-ic .pd-related .cardgrid .ucard .go { font-size: .7rem; padding-top: 6px; }
  /* recensioni (scheda prodotto e blocco Reviews): UNA alla volta, a piena larghezza, con le frecce e le righe
     di posizione (come i pallini/linee dello slide dell'hero) sotto; si scorre anche con lo swipe (nativo, lo
     stesso meccanismo dello slider hero/prodotti — vedi initRvDots() in ic.js per le righe). */
  .kit-ic .rv-head { margin-bottom: 12px; }
  .kit-ic .pd-rv-head { margin-bottom: 10px; }
  .kit-ic .rv-summary { font-size: 15px; gap: 8px; margin-top: 6px; }
  .kit-ic .rv-summary b { font-size: 18px; }
  .kit-ic .rv-sub { font-size: .9rem; margin-top: 6px; }
  .kit-ic .rv-wrap { display: flex; }
  .kit-ic .rv-nav { display: flex !important; flex: none; width: 34px; height: 34px; font-size: 18px; }
  .kit-ic .rv-track { flex-direction: row; overflow-x: auto; overflow-y: visible; max-height: none; gap: 0; padding: 2px 2px 4px; scroll-snap-type: x mandatory; overscroll-behavior: contain; -webkit-mask-image: none; mask-image: none; }
  .kit-ic .rv-card { flex: 0 0 100%; width: auto; scroll-snap-align: start; padding: 14px 16px 15px; gap: 4px; border-radius: 14px; }
  .kit-ic .rv-card-top { gap: 8px; }
  .kit-ic .rv-name { font-size: .92rem; }
  .kit-ic .rv-date { font-size: 11.5px; }
  .kit-ic .rv-verified { font-size: 11px; }
  .kit-ic .rv-stars { font-size: .9rem; }
  .kit-ic .rv-title { font-size: .92rem; margin-top: 0; }
  .kit-ic .rv-body { font-size: .86rem; line-height: 1.5; }
  .kit-ic .rv-reply { font-size: .82rem; }
  .kit-ic .rv-actions { margin-top: 10px; gap: 8px; }
  .kit-ic .ic-rv-dots { display: flex; justify-content: center; gap: 6px; margin: 10px 0 0; width: 100%; }
  .kit-ic .ic-rv-dots i { display: block; width: 16px; height: 3px; border-radius: 2px; background: var(--ic-linel2); transition: background .25s, width .25s; }
  .kit-ic .ic-rv-dots i.is-on { width: 26px; background: var(--ic-cu); }
  .kit-ic .sec.dark .ic-rv-dots i, .kit-ic .ic-t-dark .ic-rv-dots i { background: var(--ic-line2); }
  .kit-ic .sec.dark .ic-rv-dots i.is-on, .kit-ic .ic-t-dark .ic-rv-dots i.is-on { background: var(--ic-cu-l); }
  .kit-ic .pd-rv-list { grid-template-columns: 1fr; gap: 8px; }
  .kit-ic .pd-faq { margin-top: 18px; padding-top: 16px; }
  .kit-ic .pd-faq .faq { gap: 8px; }
  /* ── Foto prodotto: niente riquadro con margine, il bianco (i prodotti sono PNG su fondo bianco) arriva fino al
        bordo dello schermo e attaccata alla barra in alto; resta arrotondata (e con ombra) SOLO in basso. ── */
  .kit-ic .sec:has(.pd) { padding-top: 0; }
  .kit-ic .pd-main { width: calc(100% + 48px); margin: 0 -24px 14px; border-radius: 0 0 26px 26px; box-shadow: 0 22px 48px -30px rgba(20,28,71,.4); }
  /* «In breve» (blocco GEO/AI): da mobile occupava troppo spazio in cima alla pagina — resta nel codice sorgente
     per i motori di IA/GEO (non è una rimozione dal sito, solo dalla vista mobile), sparisce solo alla vista. */
  .kit-ic .ab-sec { display: none; }
  /* «Scheda tecnica»: da mobile diventa un pulsante fisso in basso, tra «Trova prodotto» (sx) e l'assistente (dx) */
  .kit-ic .pd-docs { position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 1150; margin: 0; }
  .kit-ic .pd-docs .btn { box-shadow: 0 14px 34px -14px rgba(var(--ic-accRGB),.8); white-space: nowrap; font-size: .82rem; padding: 11px 16px; }
  /* il codice (COD. …) si sposta sulla foto invece che a fianco del titolo (initPdCodeOverlay in ic.js):
     libera tutta la riga per il titolo, che così non va mai a capo stretto contro il badge. */
  .kit-ic .pd-code.ic-code-ov { position: absolute; left: 14px; bottom: 14px; z-index: 3; margin: 0; padding: 5px 10px;
    background: rgba(255,255,255,.92); border-radius: 8px; box-shadow: 0 10px 22px -10px rgba(20,28,71,.55), inset 0 0 0 1px var(--ic-linel2); backdrop-filter: blur(3px); }
}

/* ── Tablet 701–980px: immagini contenute e 2 colonne dove serve ── */
@media (min-width: 701px) and (max-width: 980px) {
  .kit-ic .ic-sec { padding-block: 56px; }
  .kit-ic .sec { padding-block: 56px; }
  .kit-ic .ic-head { margin-bottom: 28px; }
  .kit-ic .ic-hero--page { padding-top: 24px; padding-bottom: 36px; }
  .kit-ic .ic-hero--page .ic-hero-media { margin: 0 0 22px; aspect-ratio: 16 / 7; }
  .kit-ic .ic-frame .ic-cover { aspect-ratio: 16 / 9; max-height: 360px; }
  .kit-ic .ic-models-g { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kit-ic .ic-feat-g.cols-3, .kit-ic .ic-feat-g.cols-4 { grid-template-columns: repeat(2, 1fr); }
  .kit-ic .footer .cols { grid-template-columns: 1fr 1fr; }
  .kit-ic .rv-card { flex-basis: calc(50% - 9px); }
  .kit-ic .cardgrid.catgrid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 14px; }
  .kit-ic .cardgrid.catgrid .ucard--cat .ucard-img { aspect-ratio: 4 / 3; }
  .kit-ic .cardgrid.catgrid .ucard-body { padding: 12px 14px 14px; }
  .kit-ic .cardgrid.catgrid .ucard-body h3 { font-size: 1rem; }
  .kit-ic .cardgrid.cols-3, .kit-ic .cardgrid.cols-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
}

/* ── Mobile: niente breadcrumb (core, scheda prodotto e hero del kit); resta nel DOM solo il JSON-LD BreadcrumbList ── */
@media (max-width: 700px) {
  .kit-ic .breadcrumb, .kit-ic .pd-crumb, .kit-ic .ic-crumbs { display: none !important; }
}

/* ── «Come si applica» su mobile: TUTTI i passi in una riga (cerchi piccoli, niente etichette), «Passo N di M» sotto ── */
@media (max-width: 700px) {
  .kit-ic .pd-apply .pd-steps-nav { overflow: visible; -webkit-mask-image: none; mask-image: none; padding: 4px 0 2px; margin: 0 0 4px; gap: 0; }
  .kit-ic .pd-apply .pd-step-dot { min-width: 0; flex: 1 1 0; padding: 4px 2px; gap: 0; }
  .kit-ic .pd-apply .pd-step-t { display: none; }
  .kit-ic .pd-apply .pd-step-n { width: 32px; height: 32px; font-size: .8rem; }
  .kit-ic .pd-apply .pd-step-cap { display: block; margin: 6px 0 2px; font: 600 .74rem/1.2 var(--ic-fm); letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.8); }
}
.kit-ic .pd-apply .pd-step-cap { display: none; }

/* ── Cornice "argento": bordo sottile sempre visibile, riflesso che scorre al passaggio del mouse (come il bordo oro
      di boxinsonorizzato, qui in tonalità argento/blu). Tecnica: pseudo-elemento a maschera (mostra solo l'anello,
      1.5px), sfumatura con una banda chiara che si sposta con un'animazione lenta della posizione dello sfondo. ── */
.kit-ic .answer-box, .kit-ic .pd-apply, .kit-ic .ic-model, .kit-ic .ic-layer.is-on { position: relative; }
.kit-ic .answer-box::after, .kit-ic .pd-apply::after, .kit-ic .ic-model::after, .kit-ic .ic-layer.is-on::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; pointer-events: none; z-index: 5;
  background: linear-gradient(115deg, rgba(150,158,182,.4) 0%, rgba(150,158,182,.4) 30%, #fff 46%, rgba(224,229,240,.95) 54%, rgba(150,158,182,.4) 70%, rgba(150,158,182,.4) 100%);
  background-size: 260% 260%; background-position: 0% 50%;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  transition: background-position 1.15s var(--ic-ease);
}
.kit-ic .answer-box:hover::after, .kit-ic .pd-apply:hover::after, .kit-ic .ic-model:hover::after, .kit-ic .ic-layer.is-on::after { background-position: 100% 50%; }
@media (prefers-reduced-motion: reduce) { .kit-ic .answer-box::after, .kit-ic .pd-apply::after, .kit-ic .ic-model::after, .kit-ic .ic-layer.is-on::after { transition: none; } }

/* CTA scura (banda IcCta): l'occhiello in blu chiaro non si leggeva bene sul fondo notte, bianco pieno */
.kit-ic .ic-cta-in .ic-eyebrow { color: #fff; }

/* ── Footer: logo un po' più grande sempre; colonna «Contatti» a piena larghezza (non più al 50% su mobile,
      l'indirizzo andava a capo inutilmente), con icone (initFooterContacts in ic.js aggiunge telefono/email/posizione),
      telefono ed email affiancati sulla stessa riga, l'indirizzo sotto su una riga propria. ── */
.kit-ic .footer .logo { height: 46px; }
.kit-ic .footer .cols > div:has(a[href^="tel:"]) { display: flex; flex-direction: column; gap: 4px; }
.kit-ic .footer .cols > div:has(a[href^="tel:"]) h4 { width: 100%; margin-bottom: 4px; }
.kit-ic .footer .cols > div:has(a[href^="tel:"]) a { display: inline-flex; align-items: center; gap: 8px; }
.kit-ic .footer .cols > div:has(a[href^="tel:"]) a[href^="tel:"], .kit-ic .footer .cols > div:has(a[href^="tel:"]) a[href^="mailto:"] { flex: 0 0 auto; }
.kit-ic .footer .cols > div:has(a[href^="tel:"]) a:not([href^="tel:"]):not([href^="mailto:"]) { width: 100%; }
.kit-ic .footer .cols > div:has(a[href^="tel:"]) .ic-fico { width: 15px; height: 15px; flex: none; color: var(--ic-cu-l); }
@media (min-width: 460px) {
  .kit-ic .footer .cols > div:has(a[href^="tel:"]) { flex-direction: row; flex-wrap: wrap; column-gap: 22px; row-gap: 6px; }
}
@media (max-width: 700px) {
  .kit-ic .footer .cols > div:has(a[href^="tel:"]) { grid-column: 1 / -1; }
  .kit-ic .footer .logo { height: 40px; margin-bottom: 10px; }
  .kit-ic .footer .logo.logo-w { width: min(var(--flogo-w, 150px), 130px) !important; height: auto; }
}
/* ── Newsletter spostata FUORI dal footer scuro: banda chiara subito sopra (initNewsletterOut in ic.js) ── */
.kit-ic .ic-news-band { background: var(--ic-white2); padding: clamp(28px, 5vw, 44px) 0; }
.kit-ic .ic-news-band .news { max-width: 640px; margin: 0 auto; text-align: center; }
.kit-ic .ic-news-band .news h4 { color: var(--ic-inkl); font: 700 1.15rem/1.3 var(--ic-fd); text-transform: none; letter-spacing: 0; margin-bottom: 8px; }
.kit-ic .ic-news-band .news p { color: var(--ic-mutel); margin-bottom: 18px; }
.kit-ic .ic-news-band .news form, .kit-ic .ic-news-band .news .ic-news-row { display: flex; gap: 10px; max-width: 420px; margin: 0 auto; flex-wrap: wrap; }
.kit-ic .ic-news-band .news input { flex: 1 1 200px; min-width: 0; border-radius: 999px; background: #fff; border: 1px solid var(--ic-linel2); color: var(--ic-inkl); font-family: var(--ic-fb); padding: 12px 18px; }
.kit-ic .ic-news-band .news input::placeholder { color: var(--ic-diml); }
.kit-ic .ic-news-band .news .btn.btn-accent { flex: 0 0 auto; width: auto !important; }

/* ── «Trova prodotto»: nascosto finché non si scorre, poi compare con un velo blu del tema che sale dal basso
   (initFabReveal in ic.js aggiunge .ic-fab-veil e la classe .ic-scrolled sul body superati 320px di scroll). ── */
.kit-ic .advisor-fab { opacity: 0; transform: translateY(14px) scale(.96); transition: opacity .45s var(--ic-ease), transform .45s var(--ic-ease); }
.kit-ic.ic-scrolled .advisor-fab { opacity: 1; transform: none; }
.kit-ic .ic-fab-veil { position: fixed; left: 0; right: 0; bottom: 0; height: 150px; background: linear-gradient(180deg, transparent, rgba(20,28,71,.5) 70%); pointer-events: none; z-index: 1100; opacity: 0; transition: opacity .5s; }
.kit-ic.ic-scrolled .ic-fab-veil { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .kit-ic .advisor-fab { transition: opacity .3s; transform: none; } }

/* ── USPRow (core): il cerchio dietro l'icona usava un rosa pallido (12% dell'accento rosso) — qui blu tenue,
      stesso trattamento cromatico di IcFeatures (cerchio = tinta chiara dello stesso colore dell'icona). ── */
.kit-ic .usp-ic { background: var(--ic-blu-w) !important; color: var(--ic-blu) !important; }
.kit-ic .ic-t-dark .usp-ic, .kit-ic .usp-dark .usp-ic { background: rgba(var(--ic-cyRGB),.16) !important; color: var(--ic-cy-l) !important; }
