/* IDI Componenti — base: variabili del logo e piccoli aiuti condivisi */
:root {
  --nero: #00262C; --pannello: #00353D; --calce: #F4F0E6; --plasma: #F0961A; --ciano: #E1DAC8;
  --grigio: #A7BDC0; --grigio-chiaro: #C8D6D8; --linea: rgba(244, 240, 230, 0.14);
  --f-display: "Montserrat", "Arial Black", system-ui, sans-serif;
  --f-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
  --f-testo: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
}
body { margin: 0; background: #00262C; overflow-x: hidden; }
.idi-comp, .idi-comp * { box-sizing: border-box; }
.idi-comp [hidden], .idi-rx-intro[hidden], [data-idi-nascosto] { display: none !important; }
.idi-comp { font-family: var(--f-testo); }
.idi-comp .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px; border-radius: 999px; border: 0; font: 700 16px var(--f-testo); text-decoration: none; cursor: pointer; }
.idi-comp .btn-plasma { background: var(--plasma); color: var(--nero); }
.idi-comp .btn-calce { background: var(--calce); color: var(--nero); }
.idi-comp .btn-ghost { background: transparent; color: var(--calce); border: 1px solid rgba(244,240,230,0.4); font-weight: 500; }
.idi-comp .chip { min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid rgba(244,240,230,0.3); background: transparent; color: var(--calce); font: 500 14px var(--f-testo); cursor: pointer; }
.idi-comp .chip:hover { border-color: var(--plasma); }
.idi-comp .eyebrow { font-family: var(--f-mono); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--grigio); margin: 0; }
.idi-comp button { font-family: inherit; }
.idi-comp :focus-visible { outline: 3px solid var(--plasma); outline-offset: 3px; }
/* accenti nei titoli Elementor: <em> diventa colore, non corsivo */
.idi-acc em { font-style: normal; color: #F0961A; }
.idi-acc-scuro em { font-style: normal; color: #F0961A; }
.idi-acc-grigio em { font-style: normal; color: #A7BDC0; }
.idi-acc-sabbia em { font-style: normal; color: #E1DAC8; }
@keyframes entra { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes pop { 0% { transform: scale(1); } 40% { transform: scale(1.35); } 100% { transform: scale(1); } }


/* ---------- RADIOGRAFIA DEL SITO ---------- */
:root { --male: #FF6B57; --bene: #63D29B; --medio: var(--plasma); }
.rx-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rx-eye { display: flex; align-items: center; gap: 10px; color: var(--ciano); }
.rx-led { width: 9px; height: 9px; border-radius: 50%; background: var(--plasma); box-shadow: 0 0 0 0 rgba(255,91,31,0.6); animation: rxLed 1.6s ease-out infinite; flex: none; }
@keyframes rxLed { 0% { box-shadow: 0 0 0 0 rgba(255,91,31,0.55); } 80%, 100% { box-shadow: 0 0 0 12px rgba(255,91,31,0); } }
.rx-ask { padding-block: clamp(32px, 6vw, 88px) clamp(56px, 8vw, 112px); }
.rx-ask h1 { margin: 18px 0 0; font: 900 clamp(50px, 9vw, 140px)/0.92 var(--f-display); letter-spacing: -0.05em; }
.rx-ask h1 em { font-style: normal; color: var(--plasma); }
.rx-ask .lead { margin: 28px 0 0; font-size: clamp(18px, 1.8vw, 24px); max-width: 820px; color: var(--grigio-chiaro); }
.rx-ask .lead strong { color: var(--calce); font-weight: 600; }
.rx-form { margin-top: 40px; display: flex; flex-wrap: wrap; gap: 14px; align-items: stretch; max-width: 1100px; }
.rx-field { flex: 1 1 520px; min-width: 0; position: relative; display: flex; align-items: center; gap: 2px; min-height: 84px; padding: 0 22px; border-radius: 20px; background: rgba(242,238,230,0.06); border: 2px solid rgba(242,238,230,0.22); transition: border-color 0.2s ease, background 0.2s ease; cursor: text; }
.rx-field:focus-within { border-color: var(--plasma); background: rgba(242,238,230,0.09); }
.rx-field.ok { border-color: var(--bene); }
.rx-pre { font: 600 clamp(18px, 2.2vw, 30px) var(--f-mono); color: rgba(242,238,230,0.38); flex: none; user-select: none; }
#q { flex: 1; min-width: 0; height: 80px; border: 0; background: transparent; color: var(--calce); font: 800 clamp(22px, 2.8vw, 40px) var(--f-display); letter-spacing: -0.02em; padding: 0; outline: none; }
#q::placeholder { color: rgba(242,238,230,0.3); }
.rx-go { min-height: 84px !important; padding: 0 34px !important; font-size: 18px !important; border-radius: 20px !important; }
.rx-hint { margin: 14px 0 0; font: 13px var(--f-mono); color: var(--grigio); min-height: 1.4em; }
.rx-hint b { color: var(--calce); font-weight: 600; }
.rx-hint.pulito { color: var(--bene); }
.rx-hint.pulito b { color: var(--bene); }
.rx-demo { margin-top: 34px; }
.rx-demo-chips { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 10px; }
.rx-dchip { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 18px 0 8px; border-radius: 999px; border: 1px solid rgba(242,238,230,0.28); background: transparent; color: var(--calce); font: 600 14px var(--f-testo); cursor: pointer; text-align: left; }
.rx-dchip:hover, .rx-dchip:focus-visible { border-color: var(--plasma); }
.rx-dchip i { font-style: normal; display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; padding: 0 8px; border-radius: 999px; font: 700 13px var(--f-mono); color: var(--nero); }
.rx-dchip small { font: 12px var(--f-mono); color: var(--grigio); font-weight: 400; }

/* fase 2: la radiografia */
.rx-scan { padding-block: clamp(20px, 3vw, 44px) clamp(48px, 6vw, 88px); }
.rx-scan-head > div { flex: 1 1 auto; min-width: 0; }
.rx-scan-head { display: flex; flex-wrap: wrap; gap: 14px 32px; align-items: flex-end; justify-content: space-between; }
.rx-dom { margin: 12px 0 0; font: 900 clamp(34px, 6vw, 92px)/0.95 var(--f-display); letter-spacing: -0.045em; overflow-wrap: anywhere; }
.rx-scan-grid { margin-top: clamp(24px, 3vw, 40px); display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: clamp(24px, 4vw, 64px); row-gap: 18px; align-items: start; }
.rx-phone { display: contents; }
.rx-screen { grid-column: 1; grid-row: 1 / span 2; }
.rx-under { grid-column: 2; grid-row: 1; }
.rx-side { grid-column: 2; grid-row: 2; }
.rx-screen { position: relative; width: 280px; height: 558px; border-radius: 38px; border: 12px solid #11181B; background: #FFFFFF; box-shadow: 0 0 0 1px rgba(242,238,230,0.18), 0 50px 120px rgba(0,0,0,0.5); overflow: hidden; }
.rx-screen::before { content: ""; position: absolute; top: 8px; left: 50%; width: 70px; height: 18px; margin-left: -35px; border-radius: 999px; background: #11181B; z-index: 3; }
.rx-screen img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; animation: rxFrame 0.35s ease both; }
@keyframes rxFrame { from { opacity: 0.2; filter: blur(3px); } to { opacity: 1; filter: none; } }
.rx-beam { position: absolute; left: 0; right: 0; top: -30%; height: 30%; background: linear-gradient(180deg, transparent, rgba(255,91,31,0.22) 85%, rgba(255,91,31,0.85)); z-index: 2; animation: rxBeam 2.2s linear infinite; pointer-events: none; }
.rx-scan.fatto .rx-beam { display: none; }
@keyframes rxBeam { to { top: 100%; } }
.rx-under { margin: 0; }
.rx-clock { margin: 0; display: flex; align-items: baseline; gap: 10px; }
.rx-clock b { font: 900 clamp(60px, 7vw, 112px)/0.9 var(--f-display); letter-spacing: -0.04em; color: var(--calce); font-variant-numeric: tabular-nums; transition: color 0.3s ease; }
.rx-clock.lento b { color: var(--male); }
.rx-clock.medio b { color: var(--plasma); }
.rx-clock span { font: 12px var(--f-mono); color: var(--grigio); }
.rx-cap { margin: 12px 0 0; font-size: clamp(16px, 1.5vw, 20px); max-width: 640px; line-height: 1.45; color: var(--grigio-chiaro); min-height: 3em; }
.rx-side { min-width: 0; }
.rx-log { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.rx-log li { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 12px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--linea); font-size: 16px; animation: rxIn 0.35s ease both; }
@keyframes rxIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.rx-log li .s { font: 700 14px var(--f-mono); color: var(--grigio); }
.rx-log li.fatto .s { color: var(--bene); }
.rx-log li.corre .s::before { content: ""; display: inline-block; width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--plasma); border-right-color: transparent; animation: rxGira 0.8s linear infinite; }
@keyframes rxGira { to { transform: rotate(360deg); } }
.rx-log li .v { font: 700 15px var(--f-mono); white-space: nowrap; text-align: right; }
.rx-log li .v.male { color: var(--male); } .rx-log li .v.medio { color: var(--plasma); } .rx-log li .v.bene { color: var(--bene); }
.rx-log li .t small { display: block; margin-top: 3px; font: 12px var(--f-mono); color: var(--grigio); overflow-wrap: anywhere; }
.rx-log li.ai .t { color: var(--calce); font-weight: 600; }
.rx-speed { margin: 16px 0 0; font: 12px var(--f-mono); color: var(--grigio); }
.rx-off { margin-top: 28px; max-width: 900px; border: 1px solid rgba(242,238,230,0.25); border-radius: 22px; padding: clamp(20px, 3vw, 32px); background: rgba(242,238,230,0.04); }
.rx-off-t { margin: 0; font: 800 clamp(22px, 2.4vw, 32px)/1.15 var(--f-display); letter-spacing: -0.02em; }
.rx-off-s { margin: 12px 0 0; color: var(--grigio-chiaro); }
.rx-off-s b { color: var(--calce); }
@media (max-width: 760px) {
  .rx-scan-grid { grid-template-columns: 150px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 16px; }
  .rx-screen { grid-row: 1; width: 150px; height: 300px; border-radius: 24px; border-width: 7px; }
  .rx-screen::before { width: 40px; height: 10px; margin-left: -20px; top: 5px; }
  .rx-side { grid-column: 1 / -1; grid-row: 2; }
  .rx-clock { flex-direction: column; gap: 4px; }
  .rx-clock b { font-size: 52px; }
  .rx-cap { font-size: 15px; }
  .rx-log li { font-size: 15px; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 10px; }
  .rx-pre { display: none; }
  .rx-field { min-height: 70px; padding: 0 18px; }
  #q { height: 66px; }
  .rx-go { width: 100%; min-height: 64px !important; }
}

/* pin numerati sui difetti */
.rx-pin { position: absolute; z-index: 4; width: 30px; height: 30px; margin: -15px 0 0 -15px; border-radius: 50%; border: 3px solid #FFFFFF; background: var(--male); color: #FFFFFF; font: 800 14px/24px var(--f-display); text-align: center; padding: 0; cursor: pointer; box-shadow: 0 6px 18px rgba(0,0,0,0.35); opacity: 0; transform: scale(0.2); }
.rx-pin.cade { opacity: 1; transform: none; animation: rxPin 0.55s cubic-bezier(.2,1.6,.4,1) both; }
.rx-pin::after { content: ""; position: absolute; inset: -9px; border-radius: 50%; border: 2px solid var(--male); opacity: 0; }
.rx-pin.cade::after { animation: rxOnda 1.8s ease-out 0.4s infinite; }
@keyframes rxPin { from { opacity: 0; transform: translateY(-40px) scale(0.4); } to { opacity: 1; transform: none; } }
@keyframes rxOnda { from { opacity: 0.8; transform: scale(0.7); } to { opacity: 0; transform: scale(1.6); } }
.rx-pin.sel { background: #0E1A1C; }
.rx-box { position: absolute; z-index: 3; border: 2px dashed var(--male); border-radius: 10px; background: rgba(255,107,87,0.10); opacity: 0; pointer-events: none; transition: background 0.25s ease, border-color 0.25s ease; }
.rx-box.cade { animation: rxBox 0.5s ease both; }
.rx-box.sel { background: rgba(255,107,87,0.22); border-style: solid; }
@keyframes rxBox { from { opacity: 0; transform: scale(1.08); } to { opacity: 1; transform: none; } }
.rx-clock.spento b { color: rgba(242,238,230,0.3) !important; }

/* fase 3: il referto */
.rx-rep { padding: 0 max(12px, env(safe-area-inset-left, 0px)) clamp(40px, 5vw, 72px); }
.rx-foglio { max-width: 1240px; margin: 0 auto; background: var(--calce); color: #0E1A1C; border-radius: 28px; padding: clamp(18px, 3.5vw, 48px); box-shadow: 0 60px 140px rgba(0,0,0,0.45); animation: rxSale 0.6s cubic-bezier(.2,.8,.3,1) both; }
@keyframes rxSale { from { opacity: 0; transform: translateY(40px) scale(0.98); } to { opacity: 1; transform: none; } }
.rx-ftop { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center; justify-content: space-between; }
.rx-fk { margin: 0; font: 600 12px var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: #3F4A48; }
.rx-tabs { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.rx-tab { flex: none; min-height: 38px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(14,26,28,0.25); background: transparent; color: #0E1A1C; font: 600 12.5px var(--f-mono); cursor: pointer; white-space: nowrap; }
.rx-tab[aria-pressed="true"] { background: #0E1A1C; color: var(--calce); border-color: #0E1A1C; }
.rx-tab.alt { border-style: dashed; }
.rx-dom2 { margin: 18px 0 0; font: 900 clamp(26px, 4vw, 60px)/1 var(--f-display); letter-spacing: -0.045em; }
.rx-verd { margin: 14px 0 0; font: 700 clamp(20px, 2.3vw, 32px)/1.22 var(--f-display); letter-spacing: -0.02em; max-width: 1000px; min-height: 2.4em; }
.rx-verd .car, .rx-rw .car { display: inline-block; width: 0.5em; height: 0.9em; margin-left: 4px; vertical-align: -0.08em; background: #C2410C; animation: rxBlink 0.9s steps(1) infinite; }
@keyframes rxBlink { 50% { opacity: 0; } }
.rx-k { margin: 0 0 12px; font: 700 12px var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: #3F4A48; }
.rx-g2 { margin-top: clamp(20px, 3vw, 36px); display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: clamp(20px, 3.5vw, 48px); align-items: start; }
.rx-shot { margin: 0; position: sticky; top: 16px; }
.rx-shotim { position: relative; border-radius: 30px; border: 10px solid #0E1A1C; background: #0E1A1C; box-shadow: 0 30px 70px rgba(14,26,28,0.3); }
.rx-shotim img { display: block; width: 100%; height: auto; border-radius: 20px; }
.rx-attesa { margin-top: 14px; font-size: 14px; line-height: 1.45; color: #2A3331; }
.rx-attesa b { display: block; font: 900 30px/1 var(--f-display); letter-spacing: -0.03em; color: #C42F1C; margin-bottom: 4px; }
.rx-dif { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.rx-dif li { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 14px; padding: 16px 18px; border-radius: 18px; background: #FFFFFF; border: 2px solid transparent; cursor: pointer; opacity: 0; transform: translateX(16px); transition: opacity 0.45s ease, transform 0.45s cubic-bezier(.2,.8,.3,1), border-color 0.2s ease; }
.rx-dif li.on { opacity: 1; transform: none; }
.rx-dif li.sel { border-color: #C42F1C; }
.rx-dif .n { width: 32px; height: 32px; border-radius: 50%; background: #C42F1C; color: #FFFFFF; font: 800 15px/32px var(--f-display); text-align: center; }
.rx-dif h4 { margin: 2px 0 0; font: 800 clamp(17px, 1.5vw, 20px)/1.2 var(--f-display); letter-spacing: -0.015em; }
.rx-dif p { margin: 6px 0 0; font-size: 15px; line-height: 1.5; color: #1C2729; }
.rx-ok { margin: 12px 0 0; padding-left: 50px; position: relative; font-size: 14.5px; line-height: 1.5; color: #1D4B33; }
.rx-ok::before { content: "✓"; position: absolute; left: 18px; top: 0; width: 22px; height: 22px; border-radius: 50%; background: #D7F2E3; color: #1D7A4C; font: 800 12px/22px var(--f-testo); text-align: center; }
.rx-5s { margin-top: 18px; padding: 16px 18px; border-radius: 18px; background: #0E1A1C; color: var(--calce); }
.rx-5s .rx-k { color: var(--ciano); }
.rx-5c { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 14px; }
.rx-5c ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; font-size: 14.5px; line-height: 1.4; }
.rx-5c li { padding-left: 24px; position: relative; }
.rx-5c .si li::before { content: "✓"; position: absolute; left: 0; color: var(--bene); font-weight: 800; }
.rx-5c .no li::before { content: "?"; position: absolute; left: 2px; color: var(--male); font-weight: 800; }
.rx-rw { margin-top: clamp(22px, 3vw, 36px); padding: clamp(18px, 2.5vw, 28px); border-radius: 22px; background: #FFFFFF; border: 1px solid rgba(14,26,28,0.1); }
.rx-rw2 { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1.2fr); gap: 18px; align-items: center; }
.rx-rw .prima { margin: 0; font: 600 clamp(16px, 1.5vw, 19px)/1.4 var(--f-testo); color: #5E6A68; text-decoration: line-through; text-decoration-thickness: 2px; text-decoration-color: transparent; transition: text-decoration-color 0.7s ease; }
.rx-rw.via .prima { text-decoration-color: #C42F1C; }
.rx-rw .prima i { font-style: italic; }
.rx-rw .fr { font: 900 30px var(--f-display); color: #C2410C; }
.rx-rw .dopo { margin: 0; font: 800 clamp(19px, 2vw, 27px)/1.25 var(--f-display); letter-spacing: -0.02em; min-height: 2.5em; }
.rx-chiusa2 { margin-top: clamp(22px, 3vw, 36px); border-radius: 22px; background: #0E1A1C; color: var(--calce); padding: clamp(18px, 3vw, 32px); display: flex; flex-wrap: wrap; gap: 18px 32px; align-items: center; justify-content: space-between; }
.rx-chiusa2 > div { flex: 1 1 460px; min-width: 0; }
.rx-chiusa2 h3 { margin: 0; font: 900 clamp(22px, 2.4vw, 34px)/1.1 var(--f-display); letter-spacing: -0.03em; }
.rx-chiusa2 h3 em { font-style: normal; color: var(--plasma); display: block; }
.rx-chiusa2 p { margin: 10px 0 0; color: var(--grigio-chiaro); font-size: 15px; line-height: 1.5; }
.rx-chiusa2 .btn { flex: 0 1 auto; }
.rx-legal { margin: 14px 0 0; font: 11px/1.5 var(--f-mono); color: #5E6A68; }
@media (max-width: 900px) {
  .rx-g2 { grid-template-columns: minmax(0, 1fr); }
  .rx-shot { position: static; display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1fr); gap: 14px; align-items: end; max-width: 520px; }
  .rx-shotim { border-width: 6px; border-radius: 22px; }
  .rx-shotim img { border-radius: 16px; }
  .rx-pin { width: 26px; height: 26px; margin: -13px 0 0 -13px; font-size: 12px; line-height: 20px; border-width: 2px; }
  .rx-attesa { margin: 0; }
  .rx-rw2 { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .rx-rw .fr { transform: rotate(90deg); width: 30px; }
  .rx-5c { grid-template-columns: minmax(0, 1fr); }
  .rx-chiusa2 .btn { width: 100%; }
}
@media (max-width: 560px) {
  .rx-foglio { border-radius: 20px; }
  .rx-dif li p { display: none; }
  .rx-dif li.sel p { display: block; }
  .rx-dif li h4::after { content: " +"; color: #C42F1C; }
  .rx-dif li.sel h4::after { content: ""; }
  .rx-chiusa2 p { display: none; }
  .rx-ok { display: none; }
  .rx-5s { margin-top: 12px; }
  .rx-dif li { padding: 14px; gap: 12px; grid-template-columns: 30px minmax(0, 1fr); }
  .rx-dif .n { width: 28px; height: 28px; line-height: 28px; font-size: 13px; }
  .rx-dif p { font-size: 14.5px; }
}
@media (prefers-reduced-motion: reduce) {
  .rx-led, .rx-beam, .rx-verd .car, .rx-pin.cade::after { animation: none; }
  .rx-dif li, .rx-pin { opacity: 1; transform: none; transition: none; }
  .rx-pin.cade { animation: none; }
  .rx-foglio, .rx-log li, .rx-screen img { animation: none; }
}

/* radiografia in anteprima: due difetti visibili, il resto sfumato finché non si lasciano nome ed email */
.rx-sfuma { filter: blur(6px); opacity: 0.75; pointer-events: none; user-select: none; -webkit-user-select: none; }
.rx-lockw { position: relative; margin-top: 10px; }
.rx-lockw > .rx-sfuma { -webkit-mask-image: linear-gradient(#000 35%, transparent 92%); mask-image: linear-gradient(#000 35%, transparent 92%); max-height: 300px; overflow: hidden; }
.rx-dif li.rx-finto { opacity: 1; transform: none; cursor: default; }
.rx-gate { position: relative; z-index: 2; margin-top: -150px; padding: clamp(18px, 2.4vw, 26px); border-radius: 22px; background: #0E1A1C; color: var(--calce); box-shadow: 0 30px 70px rgba(14,26,28,0.35); }
.rx-gate .rx-k { color: var(--plasma); margin-bottom: 8px; }
.rx-gate h3 { margin: 0; font: 900 clamp(21px, 2vw, 28px)/1.12 var(--f-display); letter-spacing: -0.025em; }
.rx-gate h3 em { font-style: normal; color: var(--plasma); }
.rx-gate > p:not(.rx-k) { margin: 10px 0 0; font-size: 15px; line-height: 1.5; color: var(--grigio-chiaro); }
.rx-gate-f { margin-top: 16px; display: flex; flex-direction: column; gap: 12px; }
.rx-gate-in { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rx-gate-in label { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.rx-gate-in span { font: 700 11px var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--grigio-chiaro); }
.rx-gate-in input { width: 100%; box-sizing: border-box; height: 50px; padding: 0 16px; border-radius: 14px; border: 1.5px solid rgba(244,240,230,0.22); background: rgba(244,240,230,0.06); color: var(--calce); font: 600 16px var(--f-testo); outline: none; transition: border-color .2s ease; }
.rx-gate-in input::placeholder { color: rgba(244,240,230,0.42); }
.rx-gate-in input:focus { border-color: var(--plasma); }
.rx-chk { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; align-items: start; font-size: 13.5px; line-height: 1.45; color: var(--grigio-chiaro); cursor: pointer; }
.rx-chk input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: #F0961A; cursor: pointer; }
.rx-chk a { color: var(--plasma); }
.rx-chk i { font-style: normal; opacity: 0.7; }
.rx-gerr { margin: 0; padding: 10px 14px; border-radius: 12px; background: rgba(255,107,87,0.14); color: #FFB4A8; font-size: 14px; }
.rx-gate .btn { align-self: flex-start; }
.rx-gate .btn[disabled] { opacity: 0.7; cursor: wait; }
.rx-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.rx-rw-chiusa .dopo { color: #0E1A1C; }
.rx-sbl { margin: 14px 0 0; padding: 12px 16px; border-radius: 14px; background: #D7F2E3; color: #1D4B33; font-size: 15px; line-height: 1.45; }
@media (max-width: 640px) {
  .rx-gate-in { grid-template-columns: 1fr; }
  .rx-gate .btn { width: 100%; align-self: stretch; }
  .rx-gate { margin-top: -110px; }
  .rx-lockw > .rx-sfuma { max-height: 220px; }
}

.rx-hint.err { color: #FF8A75 !important; }
.rx-hint.err b { color: #FFFFFF; }
.rx-man .rx-off-t b { color: var(--plasma); }

.rx-ask { padding: 0 !important; }
.rx-form { margin-top: 36px; }
.rx-rep { padding-left: 0; padding-right: 0; }

/* giornata sul telefono */
.idi-c-giornata .met-tel-wrap { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.idi-c-giornata .tel { position: relative; width: min(100%, 380px); height: 660px; border-radius: 52px; padding: 18px 14px; background: linear-gradient(160deg, #0F2E36, #00161A 70%); border: 10px solid #0A0D0E; box-shadow: 0 0 0 2px rgba(244,240,230,0.12), 0 50px 120px rgba(0,0,0,0.45); overflow: hidden; display: flex; flex-direction: column; }
.idi-c-giornata .tel-isola { width: 110px; height: 30px; border-radius: 999px; background: #000; margin: 0 auto 14px; flex: none; }
.idi-c-giornata .tel-giorno { margin: 0; text-align: center; font: 600 15px var(--f-testo); color: rgba(244,240,230,0.8); text-transform: capitalize; }
.idi-c-giornata .tel-ora { margin: 0 0 18px; text-align: center; font: 700 76px/1 var(--f-display); letter-spacing: -0.03em; color: var(--calce); font-variant-numeric: tabular-nums; }
.idi-c-giornata .tel-feed { flex: 1; display: flex; flex-direction: column; gap: 10px; overflow: hidden; }
.idi-c-giornata .nt { display: flex; gap: 11px; align-items: flex-start; padding: 12px 13px; border-radius: 20px; background: rgba(244,240,230,0.13); backdrop-filter: blur(10px); color: var(--calce); animation: ntIn 0.55s cubic-bezier(.2,1.3,.4,1) both; flex: none; }
.idi-c-giornata .nt .nt-ic { width: 34px; height: 34px; border-radius: 9px; font-size: 12px; }
.idi-c-giornata .nt div { min-width: 0; flex: 1; }
.idi-c-giornata .nt p { margin: 0; font-size: 13.5px; line-height: 1.35; }
.idi-c-giornata .nt .nt-top { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; font-weight: 700; margin-bottom: 2px; }
.idi-c-giornata .nt .nt-top span:last-child { font-weight: 500; opacity: 0.65; }
.idi-c-giornata .nt.contatto { background: rgba(240,150,26,0.22); box-shadow: inset 0 0 0 1px rgba(240,150,26,0.6); }
@keyframes ntIn { from { opacity: 0; transform: translateY(-28px) scale(0.92); } to { opacity: 1; transform: none; } }
.idi-c-giornata .tel-cont { flex: none; margin-top: 12px; display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; border-radius: 18px; background: rgba(0,0,0,0.35); font: 600 13px var(--f-testo); color: rgba(244,240,230,0.85); }
.idi-c-giornata .tel-cont b { font: 800 28px var(--f-display); color: var(--plasma); display: inline-block; }
.idi-c-giornata .tel-cont b.pop { animation: pop 0.5s cubic-bezier(.2,1.8,.4,1); }
.idi-c-giornata .tel-nota { margin: 0; font-size: 13px; color: var(--grigio); }
.idi-c-giornata { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.idi-c-giornata .nt-ic { flex: none; width: 34px; height: 34px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; font: 800 12px var(--f-display); font-style: normal; }
.idi-c-giornata .nt-ai { background: transparent; color: #F4F0E6; box-shadow: inset 0 0 0 2px #F4F0E6; }
.idi-c-giornata .nt-team { background: #F0961A; color: #00262C; }
.idi-c-giornata .nt-tu { background: #F4F0E6; color: #00262C; }
.idi-c-giornata .tel { box-shadow: 0 0 0 2px rgba(11,43,49,0.08), 0 50px 120px rgba(11,43,49,0.28); }
.idi-c-giornata .tel-nota { margin: 26px 0 0; font-size: 13px; color: #4F6B70; text-align: center; }
.idi-c-giornata .tel-nota { width: min(100%, 380px); align-self: flex-start; }
@media (max-width:1024px){ .idi-c-giornata .tel-nota { align-self: center; } }

/* gioco: trova i 4 errori */
.idi-c-gioco .g-area { margin-top: clamp(28px, 4vw, 44px); display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); align-items: start; }
.idi-c-gioco .g-sito { border-radius: 16px; overflow: hidden; background: #FFFFFF; box-shadow: 0 30px 80px rgba(0,38,44,0.18); border: 1px solid rgba(0,38,44,0.1); }
.idi-c-gioco .g-sito .bar { background: #ECECEC; border-bottom: 1px solid #DDD; }
.idi-c-gioco .g-sito .dot { background: #C9C9C9; }
.idi-c-gioco .g-sito .url { color: #555; background: #FFF; }
.idi-c-gioco .gs-body { position: relative; padding: 18px 22px 0; font-family: "Times New Roman", Georgia, serif; color: #333; }
.idi-c-gioco .gs-body.no { animation: scuoti 0.35s; }
@keyframes scuoti { 25% { transform: translateX(-6px); } 75% { transform: translateX(6px); } }
.idi-c-gioco .gs-nav { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; font-size: 14px; color: #666; padding-bottom: 12px; border-bottom: 1px solid #EEE; }
.idi-c-gioco .gs-nav b { color: #8B0000; font-size: 18px; font-style: italic; }
.idi-c-gioco .gs-err { position: relative; display: block; width: 100%; border: 0; background: transparent; padding: 0; text-align: inherit; font: inherit; color: inherit; cursor: crosshair; border-radius: 10px; }
.idi-c-gioco .gs-err::after { content: ""; position: absolute; inset: -6px; border-radius: 14px; border: 4px solid #F0961A; opacity: 0; transform: scale(1.15); transition: opacity 0.3s ease, transform 0.4s cubic-bezier(.2,1.6,.4,1); pointer-events: none; }
.idi-c-gioco .gs-err.ok::after { opacity: 1; transform: none; }
.idi-c-gioco .gs-err.ok { cursor: default; }
.idi-c-gioco .gs-err.hint::after { opacity: 0.6; transform: none; border-style: dashed; animation: lampeggia 0.8s ease 3; }
@keyframes lampeggia { 50% { opacity: 0.1; } }
.idi-c-gioco .gs-h1 { margin: 18px 0 12px; font-size: clamp(22px, 2.6vw, 34px); font-weight: 700; color: #8B0000; text-align: center; }
.idi-c-gioco .gs-car { overflow: visible; }
.idi-c-gioco .gs-car img { display: block; width: 100%; height: clamp(140px, 17vw, 230px); object-fit: cover; border-radius: 6px; background: #DDD; }
.idi-c-gioco .gs-frec { position: absolute; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; border-radius: 50%; background: rgba(0,0,0,0.45); color: #FFF; display: flex; align-items: center; justify-content: center; font: 22px/1 Arial, sans-serif; }
.idi-c-gioco .gs-l { left: 10px; } .idi-c-gioco .gs-r { right: 10px; }
.idi-c-gioco .gs-cnt { position: absolute; right: 10px; bottom: 8px; font: 12px Arial, sans-serif; color: #FFF; background: rgba(0,0,0,0.45); padding: 2px 8px; border-radius: 99px; }
.idi-c-gioco .gs-p { margin: 14px 0; font-size: 15px; line-height: 1.5; }
.idi-c-gioco .gs-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.idi-c-gioco .gs-in { flex: 1 1 120px; border: 1px solid #DDD; border-radius: 4px; padding: 8px 10px; font: 13px Arial, sans-serif; color: #AAA; }
.idi-c-gioco .gs-btn { width: auto; flex: none; padding: 8px 18px; background: #EFEFEF; color: #C4C4C4; font: 13px Arial, sans-serif; border: 1px solid #E4E4E4; border-radius: 4px; }
.idi-c-gioco .gs-foot { margin: 22px -22px 0; width: calc(100% + 44px); padding: 12px 22px; background: #F4F4F4; font: 11px Arial, sans-serif; color: #B0B0B0; text-align: center; border-radius: 0; }
.idi-c-gioco .g-side { position: sticky; top: 90px; display: flex; flex-direction: column; gap: 14px; }
.idi-c-gioco .g-cont { display: flex; align-items: baseline; gap: 10px; }
.idi-c-gioco .g-cont b { font: 900 72px/1 var(--f-display); letter-spacing: -0.04em; color: #F0961A; display: inline-block; }
.idi-c-gioco .g-cont b.pop { animation: pop 0.5s cubic-bezier(.2,1.8,.4,1); }
.idi-c-gioco .g-cont span { font: 700 18px var(--f-display); }
.idi-c-gioco .g-trovati { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.idi-c-gioco .g-trovati li { background: #FFFFFF; border-radius: 14px; padding: 12px 14px; border-left: 5px solid #F0961A; font-size: 15px; line-height: 1.45; animation: entra 0.4s ease both; box-shadow: 0 6px 20px rgba(0,38,44,0.06); }
.idi-c-gioco .g-trovati li b { display: block; font-family: var(--f-display); }
.idi-c-gioco .g-msg { margin: 0; font: 600 15px var(--f-testo); color: #3D5A5F; min-height: 1.4em; }
.idi-c-gioco .g-ind { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 2px solid #00262C; background: transparent; color: #00262C; font: 600 14px var(--f-testo); cursor: pointer; }
.idi-c-gioco .g-fine { background: #00262C; color: #F4F0E6; border-radius: 18px; padding: 22px; animation: entra 0.5s ease both; }
.idi-c-gioco .g-fine p { margin: 0 0 14px; }
.idi-c-gioco .g-fine-t { font: 800 24px var(--f-display); }
@media (max-width: 860px) { .idi-c-gioco .g-area { grid-template-columns: minmax(0, 1fr); } .idi-c-gioco .g-side { position: static; } }
.idi-c-gioco .bar { display: flex; align-items: center; gap: 8px; padding: 10px 14px; }
.idi-c-gioco .dot { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.idi-c-gioco .url { margin-left: 10px; flex: 1; min-width: 0; font: 12px var(--f-mono); border-radius: 999px; padding: 5px 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* la domanda scomoda */
.idi-id-domanda h2 em { font-style: normal; color: #F4F0E6; background: #00262C; padding: 0 0.12em; border-radius: 0.1em; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.idi-c-tempo { margin: 0; font: 900 clamp(110px, 22vw, 340px)/0.88 "Montserrat", sans-serif; letter-spacing: -0.06em; font-variant-numeric: tabular-nums; color: #00262C; }
.idi-c-domanda .sv-scelte { display: flex; flex-wrap: wrap; gap: 12px; }
.idi-c-domanda .sv-b { min-height: 58px; padding: 0 26px; border-radius: 999px; border: 3px solid #00262C; background: transparent; color: #00262C; font: 800 clamp(16px, 1.4vw, 20px) "Montserrat", sans-serif; cursor: pointer; transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease; }
.idi-c-domanda .sv-b:hover { transform: translateY(-2px); }
.idi-c-domanda .sv-b[aria-pressed="true"] { background: #00262C; color: #F0961A; }
.idi-c-domanda .sv-risp { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: center; animation: entra 0.45s ease both; }
.idi-c-domanda .sv-risp p { margin: 0; flex: 1 1 420px; font: 700 clamp(20px, 2vw, 30px)/1.25 "Montserrat", sans-serif; color: #00262C; }
.idi-c-domanda .sv-cta { background: #00262C; color: #F4F0E6; min-height: 58px; padding: 0 28px; font-size: 17px; }
.idi-id-domanda { justify-content: center; }
.idi-c-domanda.e-con, .idi-c-domanda { min-height: 0 !important; }
.idi-c-gioco.e-con { min-height: 0 !important; }

/* modulo a 5 passi: scheda bianca su fondo calce */
:is(.idi-c-modulo, .idi-c-sconto) { background: #FFFFFF; border: 1px solid rgba(11,43,49,0.12); box-shadow: 0 30px 80px rgba(11,43,49,0.12); border-radius: 26px; padding: clamp(24px, 3.4vw, 44px) !important; min-height: 420px; color: #0B2B31; }
:is(.idi-c-modulo, .idi-c-sconto) form { display: flex; flex-direction: column; min-height: 100%; margin: 0; }
:is(.idi-c-modulo, .idi-c-sconto) .f-prob { margin: 0 0 18px; padding: 14px 18px; border-radius: 10px; background: rgba(240,150,26,0.14); color: #00262C; border-left: 4px solid #F0961A; font: 600 16px/1.4 var(--f-testo); }
:is(.idi-c-modulo, .idi-c-sconto) .mb-prog { height: 6px; border-radius: 99px; background: rgba(0,38,44,0.1); overflow: hidden; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-prog i { display: block; height: 100%; width: 20%; background: #F0961A; border-radius: 99px; transition: width 0.5s cubic-bezier(.6,0,.3,1); }
:is(.idi-c-modulo, .idi-c-sconto) .mb-pass { margin: 12px 0 0; font: 600 12px var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: #3D5A5F; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-step { display: none; margin-top: clamp(24px, 4vw, 44px); flex: 1; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-step.on { display: block; animation: entra 0.45s ease both; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-q { display: block; margin: 0; font: 800 clamp(26px, 2.8vw, 42px)/1.1 var(--f-display); letter-spacing: -0.025em; color: #0B2B31; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-nome { color: #F0961A; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-in { display: block; margin-top: 22px; width: 100%; min-height: 66px; padding: 0 20px; background: #FFFFFF; color: #0B2B31; border: 2px solid #AFC0C3; border-radius: 14px; font: 600 clamp(20px, 2vw, 28px) var(--f-testo); box-shadow: none; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-in::placeholder { color: #6E8387; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-in:focus { outline: 4px solid rgba(240,150,26,0.35); outline-offset: 0; border-color: #0B2B31; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-chips { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 10px; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-chip { min-height: 50px; padding: 0 20px; border-radius: 999px; border: 2px solid #AFC0C3; background: #FFFFFF; color: #0B2B31; font: 600 16px var(--f-testo); cursor: pointer; transition: all 0.2s ease; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-chip:hover { border-color: #0B2B31; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-chip[aria-pressed="true"] { background: #0B2B31; border-color: #0B2B31; color: #FFFFFF; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-ok { margin-top: 22px; display: flex; gap: 12px; align-items: flex-start; font-size: 16px; line-height: 1.5; color: #0B2B31; cursor: pointer; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-ok input { width: 24px; height: 24px; flex: none; accent-color: #F0961A; margin-top: 2px; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-ok a { color: #F0961A; font-weight: 700; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-fine-t { margin: 16px 0 0; font-size: 17px; color: #2F4448; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-err { margin: 14px 0 0; min-height: 1.3em; font: 600 15px var(--f-testo); color: #F0961A; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-nav { margin-top: 18px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-indietro { white-space: nowrap; background: transparent; border: 0; color: #3D5A5F; font: 600 15px var(--f-testo); cursor: pointer; min-height: 44px; padding: 0; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-avanti { white-space: nowrap; margin-left: auto; min-height: 58px; padding: 0 32px; border-radius: 999px; border: 0; background: #F0961A; color: #00262C; font: 700 18px var(--f-testo); cursor: pointer; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-avanti[disabled] { opacity: 0.6; cursor: wait; }
:is(.idi-c-modulo, .idi-c-sconto) .mb-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* lato sinistro (testi Elementor) */
.idi-mb-gar ul, .idi-mb-gar + ul { list-style: none; margin: 30px 0 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.idi-mb-gar li, .idi-mb-gar + ul li { display: flex; gap: 12px; align-items: center; font: 600 17px "Montserrat", sans-serif; color: #0B2B31; }
.idi-mb-gar li::before, .idi-mb-gar + ul li::before { content: "✓"; flex: none; width: 30px; height: 30px; border-radius: 50%; background: #F0961A; color: #00262C; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; }

.idi-mb-gar:empty { display: none; }

/* caso: grafico vendite */
.idi-c-caso { position: relative; display: flex; flex-direction: column; flex: 1; }
.idi-c-caso .cn-area { position: relative; flex: 1; min-height: 340px; }
.idi-c-caso .cn-graf { position: absolute; inset: 30% 4% 22% 4%; width: 92%; height: 48%; overflow: visible; clip-path: inset(-10px 100% -10px -10px); }
.idi-c-caso .cn-linea { fill: none; stroke: #F0961A; stroke-width: 6; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.idi-c-caso .cn-fill { fill: #F0961A; opacity: 0; }
.idi-c-caso .cn-prima { position: absolute; left: 0; bottom: 0; display: flex; flex-direction: column; opacity: 0; transform: translateY(14px); }
.idi-c-caso .cn-oggi { position: absolute; right: 0; top: 0; z-index: 1; display: flex; flex-direction: column; align-items: flex-end; opacity: 0; transform: scale(2.4); transform-origin: 100% 0; filter: blur(14px); }
.idi-c-caso .cn-prima span, .idi-c-caso .cn-oggi span { font: 600 12px var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: #A7BDC0; }
.idi-c-caso .cn-prima b { font: 900 clamp(48px, 5vw, 80px)/0.95 var(--f-display); letter-spacing: -0.05em; color: #F4F0E6; }
.idi-c-caso .cn-oggi b { font: 900 clamp(64px, 8.4vw, 140px)/0.9 var(--f-display); letter-spacing: -0.06em; color: #F0961A; }
.idi-c-caso .cn-x { position: absolute; right: 0; top: 100%; margin-top: 0.25em; font: 900 clamp(26px, 3vw, 48px)/1 var(--f-display); font-style: normal; color: #00262C; background: #F0961A; border-radius: 0.2em; padding: 0.04em 0.18em; opacity: 0; transform: scale(0.2) rotate(-14deg); }
.idi-c-caso.s1 .cn-prima { opacity: 1; transform: none; transition: opacity 0.4s ease, transform 0.4s ease; }
.idi-c-caso.s2 .cn-graf { clip-path: inset(-10px -10px -10px -10px); transition: clip-path 0.72s cubic-bezier(.7,0,.3,1); }
.idi-c-caso.s2 .cn-fill { opacity: 0.16; transition: opacity 0.64s ease 0.48s; }
.idi-c-caso.s2 .cn-prima b { color: #A7BDC0; transition: color 0.32s ease 0.32s; }
.idi-c-caso.s2 .cn-oggi { opacity: 1; transform: none; filter: none; transition: opacity 0.2s ease 0.6s, transform 0.44s cubic-bezier(.2,1.5,.35,1) 0.6s, filter 0.36s ease 0.6s; }
.idi-c-caso.s2 .cn-x { opacity: 1; transform: scale(1) rotate(-6deg); transition: opacity 0.16s ease 1.04s, transform 0.36s cubic-bezier(.2,1.8,.4,1) 1.04s; }
.idi-caso-card { transition: box-shadow 0.6s ease; }
.idi-caso-card.boom { box-shadow: 0 0 0 2px #F0961A, 0 30px 120px rgba(240,150,26,0.25); }

/* telefono: il grafico si compone in metà tempo */
@media (max-width: 767px) {
  .idi-c-caso.s1 .cn-prima { transition-duration: 0.25s; }
  .idi-c-caso.s2 .cn-graf { transition-duration: 0.45s; }
  .idi-c-caso.s2 .cn-fill { transition: opacity 0.4s ease 0.25s; }
  .idi-c-caso.s2 .cn-prima b { transition-delay: 0.15s; }
  .idi-c-caso.s2 .cn-oggi { transition: opacity 0.15s ease 0.3s, transform 0.32s cubic-bezier(.2,1.5,.35,1) 0.3s, filter 0.25s ease 0.3s; }
  .idi-c-caso.s2 .cn-x { transition: opacity 0.12s ease 0.6s, transform 0.28s cubic-bezier(.2,1.8,.4,1) 0.6s; }
}

/* manifesto */
.idi-c-manifesto .w { color: rgba(0,38,44,0.16); transition: color 0.35s ease; }
.idi-c-manifesto .w.on { color: #00262C; }
.idi-c-manifesto em .w.on { color: #F0961A; }

/* servizi: tab Elementor stilizzate come nel mockup */
.idi-sv-tabs .idi-sv-tab::before { content: "" !important; position: absolute !important; left: 0 !important; right: auto !important; top: 18px !important; bottom: 18px !important; width: 5px !important; height: auto !important; border-radius: 4px; background: #F0961A !important; transform: scaleY(0); transition: transform 0.35s ease; pointer-events: none; }
.idi-sv-tab.e--selected { color: #F4F0E6 !important; padding-left: 34px !important; }
.idi-sv-tabs .idi-sv-tab.e--selected::before { transform: scaleY(1); }
.idi-sv-tab:focus-visible { outline: 3px solid #F0961A; outline-offset: -3px; }
.idi-sv-panel.e--selected > * { animation: entra 0.45s ease both; }
.idi-spunte ul, .idi-spunte + ul { list-style: none; margin: 18px 0 0; padding: 0; font: 400 16px/1.45 "Montserrat", sans-serif; display: flex; flex-direction: column; gap: 10px; }
.idi-spunte li, .idi-spunte + ul li { display: flex; gap: 10px; }
.idi-spunte li::before, .idi-spunte + ul li::before { content: "✓"; color: #E1DAC8; font-weight: 800; flex: none; }
.idi-sv-prova-t a { display: inline-block; margin-top: 6px; color: #F0961A; font-weight: 700; }
.idi-sv-prova-t b { color: #F0961A; }
.idi-sv-prova-solo b { color: inherit; }

/* il paragrafo che contiene la lista resta vuoto: il browser chiude <p> prima di <ul> */
.idi-spunte:empty { display: none; }
/* telefono: il pannello si apre sotto la frase scelta */
.idi-sv-area.idi-sv-inline { margin: 6px 0 18px !important; width: 100%; }
.idi-sv-area.idi-sv-inline .idi-sv-panel { animation: entra 0.4s ease both; }

/* frasi chiaramente cliccabili: freccia, hover, frase scelta collegata al pannello, avanzamento */
.idi-sv-tabs .idi-sv-tab { cursor: pointer; padding-right: 72px !important; border-radius: 16px; transition: background 0.25s ease, color 0.25s ease, padding 0.3s ease; }
.idi-sv-tabs .idi-sv-tab:not(.e--selected) .idi-sv-frase { color: rgba(255,255,255,0.58) !important; transition: color 0.25s ease; }
.idi-sv-tabs .idi-sv-tab:not(.e--selected):hover { background: rgba(255,255,255,0.045); }
.idi-sv-tabs .idi-sv-tab:not(.e--selected):hover .idi-sv-frase { color: rgba(255,255,255,0.88) !important; }
.idi-sv-tabs .idi-sv-tab.e--selected { background: #1B2026; }
.idi-sv-freccia { position: absolute; right: 16px; top: 50%; width: 40px; height: 40px; margin-top: -20px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,0.28); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.7); pointer-events: none; transition: transform 0.3s ease, background 0.25s ease, border-color 0.25s ease, color 0.25s ease; }
.idi-sv-freccia svg { width: 18px; height: 18px; display: block; }
.idi-sv-tab:not(.e--selected):hover .idi-sv-freccia { border-color: #F0961A; color: #F0961A; transform: translateX(4px); }
.idi-sv-tab.e--selected .idi-sv-freccia { background: #F0961A; border-color: #F0961A; color: #101317; }
.idi-sv-tabs .idi-sv-tab::after { content: "" !important; position: absolute; left: 34px; right: 72px; bottom: 12px; height: 3px; border-radius: 3px; background: rgba(240,150,26,0.85); transform: scaleX(0); transform-origin: left center; pointer-events: none; }
.idi-sv-tabs.idi-sv-giro .idi-sv-tab.e--selected::after { animation: idiSvGiro 5s linear forwards; }
@keyframes idiSvGiro { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (max-width: 767px) {
  .idi-sv-tabs .idi-sv-tab { padding-right: 62px !important; }
  .idi-sv-freccia { right: 12px; width: 36px; height: 36px; margin-top: -18px; }
  .idi-sv-tab.e--selected .idi-sv-freccia { transform: rotate(90deg); }
}
@media (prefers-reduced-motion: reduce) { .idi-sv-tabs.idi-sv-giro .idi-sv-tab.e--selected::after { animation: none; } }
/* telefono: il pannello scorre insieme alla pagina, niente posizione fissa */
.idi-sv-area.idi-sv-inline { position: relative !important; top: auto !important; z-index: 1; }
@media (max-width: 767px) { .idi-sv-tabs .idi-sv-area { position: relative !important; top: auto !important; } .idi-sv-tabs .idi-sv-tab { position: relative; z-index: 2; } }
/* gerarchia: le frasi sono opzioni da scegliere, più piccole e leggere del titolo */
.idi-sv-tabs .idi-sv-tab .idi-sv-frase { font-size: clamp(18px, 1.75vw, 25px) !important; line-height: 1.3 !important; font-weight: 600 !important; letter-spacing: -0.01em !important; }
.idi-sv-tabs .idi-sv-tab.e--selected .idi-sv-frase { font-weight: 800 !important; }
.idi-sv-tabs .idi-sv-tab:not(.e--selected) .idi-sv-frase { color: #AEB6BF !important; }
.idi-sv-tabs .idi-sv-tab { padding-top: 18px !important; padding-bottom: 18px !important; }
/* la prova di ogni servizio: tessera con il logo del cliente, niente screenshot */
.idi-sv-panel .idi-sv-prova { display: grid !important; grid-template-columns: 168px minmax(0, 1fr); align-items: stretch; gap: 0 !important; padding: 0 !important; border-radius: 20px !important; overflow: hidden; background: rgba(255,255,255,0.04) !important; border: 1px solid rgba(255,255,255,0.12) !important; box-shadow: none !important; transition: transform 0.25s ease, border-color 0.25s ease; }
.idi-sv-panel .idi-sv-prova:hover { transform: translateY(-3px); border-color: #F0961A !important; }
.idi-sv-panel .idi-sv-prova > img { display: block; width: 100% !important; height: 100% !important; min-height: 128px; max-height: none !important; aspect-ratio: auto !important; object-fit: contain !important; padding: 24px 22px !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; transform: none !important; background: #FFFFFF; box-sizing: border-box; }
.idi-sv-panel [data-id="30bb015b"] { background: #0E2A5C !important; }
.idi-sv-panel [data-id="6cf7b7e8"] { background: #1F1B16 !important; }
.idi-sv-panel .idi-sv-prova > .idi-sv-prova-t { align-self: center; margin: 0 !important; padding: 18px 22px !important; font-size: 15.5px !important; line-height: 1.5 !important; color: #C8D0D6 !important; }
.idi-sv-panel .idi-sv-prova > .idi-sv-prova-t b { color: #F4F0E6; }
/* SEO: niente cliente da citare, al suo posto la radiografia in miniatura */
.idi-sv-panel [data-id="f88be95"] { grid-template-columns: minmax(0, 1fr) !important; background: transparent !important; border: 0 !important; overflow: visible; }
.idi-sv-panel [data-id="f88be95"]:hover { transform: none; }
.idi-sv-panel [data-id="f88be95"] > .idi-sv-prova-t { padding: 0 0 14px !important; }
.idi-sv-panel [data-id="f88be95"] .idi-c-cantiere { padding: 0 !important; }
@media (max-width: 767px) { .idi-sv-panel .idi-sv-prova { grid-template-columns: 112px minmax(0, 1fr); } .idi-sv-panel .idi-sv-prova > img { min-height: 104px; padding: 16px 14px !important; } .idi-sv-panel .idi-sv-prova > .idi-sv-prova-t { padding: 14px 16px !important; font-size: 14.5px !important; } }
.idi-sv-panel .idi-sv-prova-t a { color: #F0961A !important; font-weight: 700 !important; text-decoration: none; white-space: nowrap; }
.idi-sv-panel .idi-sv-prova-t a:hover { text-decoration: underline; }
.idi-sv-panel [data-id="f88be95"] .idi-c-cantiere { max-width: 440px; }
.idi-sv-panel [data-id="f88be95"] .rxm-nota { display: none; }

/* FAQ come chat (accordion Elementor con classi idi-fq) */
details.idi-fq > summary { list-style: none; cursor: pointer; }
details.idi-fq > summary::-webkit-details-marker { display: none; }
details.idi-fq > summary::marker { content: ""; }
.idi-fq-h { display: flex !important; justify-content: flex-end; align-items: center; gap: 12px; background: transparent !important; padding: 0 !important; border: 0 !important; }
.idi-fq-h::after { content: ""; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 2px solid rgba(244,240,230,0.14); box-sizing: border-box; background: linear-gradient(#F4F0E6, #F4F0E6) center / 12px 2px no-repeat, linear-gradient(#F4F0E6, #F4F0E6) center / 2px 12px no-repeat; transition: transform 0.3s ease, border-color 0.3s ease, background-size 0.2s ease; }
details.idi-fq[open] > .idi-fq-h::after { transform: rotate(180deg); border-color: #F0961A; background-size: 12px 2px, 2px 0; }
.idi-fq-tt { max-width: 85%; display: flex; justify-content: flex-end; }
.idi-fq-b { display: inline-block; background: #F4F0E6; color: #00262C; padding: 16px 22px; border-radius: 24px 24px 6px 24px; font: 700 clamp(17px, 1.5vw, 21px)/1.3 "Montserrat", sans-serif; transition: background 0.25s ease, transform 0.2s ease; }
.idi-fq-h:hover .idi-fq-b { transform: translateX(-4px); }
details.idi-fq[open] .idi-fq-b { background: #F0961A; }
.idi-fq-c { padding: 0 !important; background: transparent !important; border: 0 !important; }
.idi-fa { display: flex !important; flex-direction: row !important; gap: 12px; align-items: flex-end; margin-top: 12px; animation: entra 0.35s ease both; }
.idi-fa-av { flex: none !important; width: 40px; height: 40px; border-radius: 50%; background: #F0961A; display: inline-flex !important; flex-direction: row !important; align-items: flex-end !important; justify-content: center; gap: 2px !important; padding: 11px 0 !important; box-sizing: border-box; }
.idi-fa-av > div { width: 5px !important; min-width: 5px !important; border-radius: 3px; background: #00262C; padding: 0 !important; }
.idi-fa-b1 { height: 11px; opacity: 0.55; } .idi-fa-b2 { height: 14px; opacity: 0.8; } .idi-fa-b3 { height: 17px; }
.idi-fa-p { margin: 0 !important; max-width: 85%; background: #00262C; color: #F4F0E6; padding: 16px 20px; border-radius: 24px 24px 24px 6px; font: 400 16.5px/1.55 "Montserrat", sans-serif; position: relative; }
.idi-fq.scrive .idi-fa-p { color: transparent; }
.idi-fq.scrive .idi-fa-p::before { content: ""; position: absolute; left: 20px; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: #F4F0E6; box-shadow: 13px 0 0 rgba(244,240,230,0.6), 26px 0 0 rgba(244,240,230,0.35); animation: punto 1s infinite; }
@keyframes punto { 30% { opacity: 0.5; } }
@media (prefers-reduced-motion: reduce) { .idi-fa { animation: none; } }

/* confronto prima / dopo */
.idi-c-confronto.e-con, .idi-c-confronto{ display:block !important; padding:0 !important; }
.idi-c-confronto{ position: relative; margin-top: clamp(28px, 4vw, 44px); border-radius: 20px; overflow: hidden; box-shadow: 0 40px 100px rgba(11,43,49,0.22); --p: 50%; user-select: none; }
.idi-c-confronto .cfr-lato{ width: 100%; }
.idi-c-confronto .cfr-dopo{ position: absolute; inset: 0; clip-path: inset(0 0 0 var(--p)); }
.idi-c-confronto .cf-bar{ display: flex; gap: 7px; align-items: center; min-height: 52px; padding: 8px 14px; background: #E9E9E9; border-bottom: 1px solid #D8D8D8; }
.idi-c-confronto .cf-bar span{ width: 10px; height: 10px; border-radius: 50%; background: #C8C8C8; }
.idi-c-confronto .cf-bar b{ margin-left: 10px; font: 500 12px var(--f-mono); color: #666; background: #FFF; padding: 3px 12px; border-radius: 99px; }
.idi-c-confronto .cf-p, .idi-c-confronto .cf-d{ height: clamp(560px, 50vw, 680px); overflow: hidden; position: relative; }
.idi-c-confronto .cf-p{ background: #8FA3BF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Crect width='8' height='8' fill='%238FA3BF'/%3E%3Crect width='4' height='4' fill='%2399ADC8'/%3E%3Crect x='4' y='4' width='4' height='4' fill='%2399ADC8'/%3E%3C/svg%3E"); font-family: Verdana, Tahoma, Arial, sans-serif; color: #333; }
.idi-c-confronto .cf-bar-vecchia{ background: linear-gradient(#F6F6F6, #D4D0C8); border-bottom: 1px solid #A0A0A0; }
.idi-c-confronto .cf-bar-vecchia span{ border-radius: 0; width: 12px; height: 11px; background: linear-gradient(#FFF, #C8C4BC); border: 1px solid #888; }
.idi-c-confronto .cf-bar-vecchia b{ border-radius: 0; border: 1px solid #7F9DB9; font-family: Tahoma, Arial, sans-serif; color: #222; }
.idi-c-confronto .op-pag{ width: min(92%, 640px); margin: 0 auto; background: #FFF; border-left: 3px double #1B3A6B; border-right: 3px double #1B3A6B; min-height: 100%; position: relative; }
.idi-c-confronto .op-head{ display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; background: linear-gradient(#FFFFFF, #C9D6EA); border-bottom: 3px solid #C0392B; }
.idi-c-confronto .op-logo{ font: italic 700 26px "Times New Roman", Georgia, serif; color: #1B3A6B; letter-spacing: 1px; text-shadow: 2px 2px 0 #B8C4D6; }
.idi-c-confronto .op-logo b{ color: #C0392B; }
.idi-c-confronto .op-logo small{ font-size: 12px; color: #888; text-shadow: none; }
.idi-c-confronto .op-cont{ font: 10px "Courier New", monospace; color: #333; background: #000; padding: 3px 6px; color: #3F3; }
.idi-c-confronto .op-cont b{ letter-spacing: 2px; }
.idi-c-confronto .op-marq{ overflow: hidden; white-space: nowrap; background: #FFFF99; border-bottom: 1px solid #CCC; font: bold 11px "Comic Sans MS", "Comic Neue", cursive; color: #C00; padding: 3px 0; }
.idi-c-confronto .op-marq span{ display: inline-block; padding-left: 100%; animation: opMarq 16s linear infinite; }
@keyframes opMarq{ to { transform: translateX(-100%); } }
.idi-c-confronto .op-corpo{ display: grid; grid-template-columns: 128px minmax(0, 1fr); }
.idi-c-confronto .op-menu{ background: #1B3A6B; padding: 8px 6px; display: flex; flex-direction: column; gap: 3px; min-height: 440px; }
.idi-c-confronto .op-menu span{ font: bold 10.5px Verdana, sans-serif; color: #FFF; background: linear-gradient(#4A78C2, #234A86); border: 1px outset #7FA2DB; padding: 5px 6px; }
.idi-c-confronto .op-menu span.on{ background: linear-gradient(#E05A4B, #9E2A1F); border-color: #F08A7E; }
.idi-c-confronto .op-ie{ margin-top: 12px; font: 9px Verdana, sans-serif; color: #C9D6EA; text-align: center; line-height: 1.4; }
.idi-c-confronto .op-main{ padding: 8px 10px 40px; }
.idi-c-confronto .op-slider{ position: relative; height: clamp(120px, 12vw, 170px); background-size: cover; background-position: center; filter: saturate(0.55) contrast(0.9) sepia(0.25) blur(0.6px); border: 2px ridge #999; }
.idi-c-confronto .op-cap{ position: absolute; left: 8px; bottom: 8px; color: #FF0; font: italic bold clamp(18px, 2vw, 26px) "Times New Roman", serif; text-shadow: 2px 2px 0 #000; }
.idi-c-confronto .op-tit{ margin: 10px 0 6px; font: bold 12px Verdana, sans-serif; color: #C0392B; text-decoration: underline; text-align: center; }
.idi-c-confronto .op-boxes{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.idi-c-confronto .op-box{ background: #EEF1F5; border: 1px solid #99A; padding: 4px 4px 8px; text-align: center; }
.idi-c-confronto .op-th{ height: 56px; background-size: cover; background-position: center; filter: saturate(0.5) sepia(0.2) blur(0.5px); border: 1px solid #666; }
.idi-c-confronto .op-box h5{ margin: 5px 0 4px; font: bold 11px Verdana, sans-serif; color: #1B3A6B; }
.idi-c-confronto .op-btn{ display: inline-block; font: bold 10px Verdana, sans-serif; color: #00E; text-decoration: underline; }
.idi-c-confronto .op-chi{ margin: 10px 0 0; padding: 6px 8px; border: 1px dashed #999; background: #FFFFF0; }
.idi-c-confronto .op-chi p{ margin: 0; font: 11px/1.45 "Times New Roman", serif; color: #333; text-align: justify; }
.idi-c-confronto .op-chi u{ color: #00E; }
.idi-c-confronto .op-lav{ margin-top: 10px; text-align: center; font: bold 11px "Comic Sans MS", cursive; color: #000; background: repeating-linear-gradient(45deg, #FC0 0 10px, #000 10px 20px); padding: 4px; }
.idi-c-confronto .op-lav{ color: #FFF; text-shadow: 1px 1px 0 #000; }
.idi-c-confronto .op-foot{ position: absolute; left: 0; right: 0; bottom: 0; padding: 6px 10px; background: #1B3A6B; color: #C9D6EA; font: 9.5px Verdana, sans-serif; text-align: center; }
.idi-c-confronto .cf-d{ height: clamp(560px, 50vw, 680px); overflow: hidden; position: relative; }
.idi-c-confronto .cf-p{ background: #EEF1F5; font-family: Arial, Helvetica, sans-serif; color: #444; }
.idi-c-confronto .op-top{ display: flex; justify-content: space-between; gap: 10px; padding: 6px 24px; background: #1B3A6B; color: #C9D6EA; font-size: 11px; }
.idi-c-confronto .op-head{ padding: 14px 24px 10px; background: linear-gradient(#FFFFFF, #E8ECF2); }
.idi-c-confronto .op-logo{ font: 700 26px "Times New Roman", Georgia, serif; color: #1B3A6B; letter-spacing: 1px; }
.idi-c-confronto .op-logo b{ color: #C0392B; }
.idi-c-confronto .op-logo small{ font-size: 12px; color: #888; }
.idi-c-confronto .op-nav{ display: flex; flex-wrap: wrap; background: linear-gradient(#2F5FA8, #1B3A6B); padding: 0 16px; }
.idi-c-confronto .op-nav span{ color: #FFF; font-size: 11px; font-weight: 700; padding: 10px 12px; border-right: 1px solid rgba(255,255,255,0.15); }
.idi-c-confronto .op-nav .on{ background: #C0392B; }
.idi-c-confronto .op-slider{ position: relative; height: clamp(170px, 17vw, 240px); background-size: cover; background-position: center; filter: saturate(0.75) contrast(0.95); }
.idi-c-confronto .op-cap{ position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%); background: rgba(0,0,0,0.55); color: #FFF; padding: 10px 22px; text-align: center; font-family: "Times New Roman", Georgia, serif; white-space: nowrap; }
.idi-c-confronto .op-cap b{ display: block; font-size: clamp(17px, 2vw, 26px); font-style: italic; }
.idi-c-confronto .op-cap span{ font-size: 12px; }
.idi-c-confronto .op-a{ position: absolute; top: 50%; transform: translateY(-50%); width: 30px; height: 44px; background: rgba(0,0,0,0.45); color: #FFF; display: flex; align-items: center; justify-content: center; font: 26px/1 Arial; font-style: normal; }
.idi-c-confronto .op-l{ left: 0; }
.idi-c-confronto .op-r{ right: 0; }
.idi-c-confronto .op-dots{ position: absolute; bottom: 6px; left: 0; right: 0; display: flex; gap: 6px; justify-content: center; }
.idi-c-confronto .op-dots i{ width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,0.5); }
.idi-c-confronto .op-dots i.on{ background: #FFF; }
.idi-c-confronto .op-boxes{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 16px 24px; }
.idi-c-confronto .op-box{ background: #FFF; border: 1px solid #D5DBE5; padding: 8px 8px 12px; text-align: center; box-shadow: 0 2px 4px rgba(0,0,0,0.08); }
.idi-c-confronto .op-th{ height: 70px; background-size: cover; background-position: center; filter: saturate(0.7); }
.idi-c-confronto .op-box h5{ margin: 8px 0 4px; font-size: 12px; color: #1B3A6B; }
.idi-c-confronto .op-box p{ margin: 0 0 8px; font-size: 11px; line-height: 1.35; color: #666; }
.idi-c-confronto .op-btn{ display: inline-block; font-size: 10px; font-weight: 700; color: #FFF; background: linear-gradient(#E05A4B, #B03024); padding: 4px 10px; border-radius: 3px; }
.idi-c-confronto .op-chi{ margin: 0 24px; padding: 10px 14px; background: #FFF; border-left: 4px solid #1B3A6B; }
.idi-c-confronto .op-chi h5{ margin: 0 0 4px; font-size: 12px; color: #1B3A6B; }
.idi-c-confronto .op-chi p{ margin: 0; font-size: 11px; line-height: 1.45; color: #666; }
.idi-c-confronto .op-foot{ position: absolute; left: 0; right: 0; bottom: 0; padding: 10px 24px; background: #1B3A6B; color: #9FB1CF; font-size: 10px; text-align: center; }
.idi-c-confronto .cf-d{ background: #FFFFFF; color: #0B2B31; font-family: var(--f-testo); padding: 0; }
.idi-c-confronto .nd-nav{ display: flex; align-items: center; gap: 18px; padding: 14px clamp(16px, 2.6vw, 34px); border-bottom: 1px solid #EEE; }
.idi-c-confronto .nd-logo{ display: flex; align-items: center; gap: 8px; font: 800 17px var(--f-display); }
.idi-c-confronto .nd-logo i{ width: 22px; height: 22px; border-radius: 7px; background: linear-gradient(135deg, #F0961A, #F0961A); }
.idi-c-confronto .nd-links{ margin-left: auto; display: flex; gap: 16px; font: 600 13px var(--f-testo); color: #2F4448; }
.idi-c-confronto .nd-tel{ font: 700 13px var(--f-testo); background: #0B2B31; color: #FFF; padding: 9px 16px; border-radius: 99px; white-space: nowrap; }
.idi-c-confronto .nd-hero{ display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(16px, 2.6vw, 34px); padding: clamp(16px, 2vw, 26px) clamp(16px, 2.6vw, 34px); align-items: center; }
.idi-c-confronto .nd-foto{ position: relative; height: clamp(190px, 19vw, 270px); border-radius: 18px; background-size: cover; background-position: center; }
.idi-c-confronto .nd-badge{ position: absolute; left: 12px; bottom: 12px; background: #FFF; padding: 6px 12px; border-radius: 99px; font: 700 12px var(--f-testo); box-shadow: 0 6px 20px rgba(0,0,0,0.15); }
.idi-c-confronto .nd-k{ margin: 0; font: 600 11px var(--f-mono); letter-spacing: 0.1em; color: #F0961A; }
.idi-c-confronto .nd-h{ margin: 8px 0 0; font: 900 clamp(22px, 2.6vw, 38px)/1.02 var(--f-display); letter-spacing: -0.03em; }
.idi-c-confronto .nd-sub{ margin: 10px 0 0; font-size: clamp(13px, 1.1vw, 15px); line-height: 1.45; color: #2F4448; }
.idi-c-confronto .nd-cta{ margin-top: 14px; display: flex; flex-wrap: wrap; gap: 8px; }
.idi-c-confronto .nd-b1{ background: #F0961A; color: #0B2B31; font: 700 14px var(--f-testo); padding: 12px 18px; border-radius: 99px; }
.idi-c-confronto .nd-b2{ border: 2px solid #0B2B31; font: 700 14px var(--f-testo); padding: 10px 16px; border-radius: 99px; }
.idi-c-confronto .nd-chips{ margin-top: 12px; display: flex; flex-wrap: wrap; gap: 6px 14px; font: 600 12px var(--f-testo); }
.idi-c-confronto .nd-chips span::before{ content: "✓ "; color: #F0961A; }
.idi-c-confronto .nd-servizi{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 4px clamp(16px, 2.6vw, 34px); }
.idi-c-confronto .nd-card{ border-radius: 14px; background: #F4F0E6; padding: 8px 8px 12px; display: flex; flex-direction: column; gap: 4px; }
.idi-c-confronto .nd-ph{ height: clamp(64px, 6.4vw, 92px); border-radius: 10px; background-size: cover; background-position: center; margin-bottom: 4px; }
.idi-c-confronto .nd-card b{ font: 800 14px var(--f-display); }
.idi-c-confronto .nd-card span{ font: 600 12px var(--f-testo); color: #F0961A; }
.idi-c-confronto .nd-passi{ margin: 14px clamp(16px, 2.6vw, 34px) 0; display: flex; flex-wrap: wrap; gap: 8px 22px; padding: 12px 16px; border-radius: 14px; background: #0B2B31; color: #FFF; font: 600 13px var(--f-testo); }
.idi-c-confronto .nd-passi b{ display: inline-flex; width: 22px; height: 22px; margin-right: 8px; border-radius: 50%; background: #F0961A; color: #0B2B31; align-items: center; justify-content: center; font-size: 12px; }
.idi-c-confronto .nd-wa{ position: absolute; right: 18px; bottom: 18px; background: #25D366; color: #FFF; font: 700 13px var(--f-testo); padding: 12px 16px; border-radius: 99px; box-shadow: 0 10px 30px rgba(0,0,0,0.25); }
/* etichette: ogni lato porta la sua, e quella del lato che si sta guardando si accende */
.idi-c-confronto .cfr-etichette{ display: none; }
.idi-c-confronto .cfr-tag{ display: inline-flex; align-items: baseline; gap: 8px; flex: none; padding: 7px 14px; border-radius: 10px; font: 800 15px/1 var(--f-display); letter-spacing: 0.02em; text-transform: uppercase; transition: transform 0.3s cubic-bezier(.2,1.4,.3,1), opacity 0.3s ease, box-shadow 0.3s ease; }
.idi-c-confronto .cfr-tag small{ font: 600 11px var(--f-mono); letter-spacing: 0.04em; text-transform: none; opacity: 0.85; }
.idi-c-confronto .cfr-tag-prima{ margin-left: 8px; background: #3A3A3A; color: #FFF; transform-origin: left center; }
.idi-c-confronto .cfr-tag-dopo{ margin-left: auto; background: #F0961A; color: #0B2B31; transform-origin: right center; }
.idi-c-confronto.cfr-su-prima .cfr-tag-prima, .idi-c-confronto.cfr-su-dopo .cfr-tag-dopo{ transform: scale(1.1); box-shadow: 0 6px 18px rgba(0,0,0,0.25); }
.idi-c-confronto.cfr-su-prima .cfr-tag-dopo, .idi-c-confronto.cfr-su-dopo .cfr-tag-prima{ opacity: 0.55; }
.idi-c-confronto .cfr-prima::after{ content: ""; position: absolute; inset: 52px 0 0; pointer-events: none; background: rgba(40,40,40,0); transition: background 0.3s ease; }
.idi-c-confronto.cfr-su-dopo .cfr-prima::after{ background: rgba(40,40,40,0.35); }
.idi-c-confronto .cfr-prima{ position: relative; }
.idi-c-confronto .cfr-maniglia{ position: absolute; top: 0; bottom: 0; left: var(--p); width: 4px; margin-left: -2px; background: #FFF; box-shadow: 0 0 0 1px rgba(0,0,0,0.15), 0 0 24px rgba(0,0,0,0.35); pointer-events: none; z-index: 6; }
.idi-c-confronto .cfr-maniglia i{ position: absolute; top: 50%; left: 50%; width: 58px; height: 58px; margin: -29px 0 0 -29px; border-radius: 50%; background: #FFF; color: #0B2B31; border: 3px solid #F0961A; display: flex; align-items: center; justify-content: center; font: 800 24px/1 var(--f-testo); font-style: normal; letter-spacing: 4px; box-shadow: 0 10px 30px rgba(0,0,0,0.3); }
.idi-c-confronto .cfr-maniglia::before, .idi-c-confronto .cfr-maniglia::after{ position: absolute; top: calc(50% + 40px); font: 700 11px var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; padding: 5px 9px; border-radius: 99px; }
.idi-c-confronto .cfr-maniglia::before{ content: "\2039 prima"; right: 10px; background: #3A3A3A; color: #FFF; }
.idi-c-confronto .cfr-maniglia::after{ content: "dopo \203a"; left: 10px; background: #F0961A; color: #0B2B31; }
.idi-c-confronto .cfr-range{ position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }
@media (max-width: 700px){.idi-c-confronto .cf-p, .idi-c-confronto .cf-d{ height: 600px; }
.idi-c-confronto .nd-links, .idi-c-confronto .op-ie, .idi-c-confronto .op-cont{ display: none; }
.idi-c-confronto .op-corpo{ grid-template-columns: 92px minmax(0, 1fr); }
.idi-c-confronto .op-menu span{ font-size: 9px; padding: 4px; }
.idi-c-confronto .cfr-tag{ padding: 6px 10px; font-size: 13px; } .idi-c-confronto .cf-bar b{ display: none; }
.idi-c-confronto .cfr-tag small{ display: none; }
.idi-c-confronto .op-boxes, .idi-c-confronto .nd-servizi{ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.idi-c-confronto .nd-card:last-child, .idi-c-confronto .op-box:last-child{ display: none; }
.idi-c-confronto .nd-hero{ grid-template-columns: minmax(0, 1fr); }
.idi-c-confronto .nd-foto{ height: 120px; order: 2; }
.idi-c-confronto .op-cap{ white-space: normal; width: 80%; }

}
.idi-c-confronto .cf-bar span.cfr-tag, .idi-c-confronto .cf-bar-vecchia span.cfr-tag{ width: auto; height: auto; border: 0; border-radius: 10px; }
.idi-c-confronto .cf-bar span.cfr-tag-prima{ background: #3A3A3A; }
.idi-c-confronto .cf-bar span.cfr-tag-dopo{ background: #F0961A; }

/* Findy */
.idi-c-findy.e-con, .idi-c-findy{ padding: 0 !important; }
.idi-c-findy.fy-demo{ position: relative; margin-top: clamp(28px, 4vw, 48px); display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.idi-c-findy .fy-passo{ background: #1B2026; border: 1px solid rgba(255,255,255,0.1); border-radius: 22px; padding: 22px; min-height: 230px; display: flex; flex-direction: column; gap: 16px; opacity: 0.25; transition: opacity 0.5s ease, transform 0.5s ease, border-color 0.5s ease; }
.idi-c-findy .fy-passo.on{ opacity: 1; border-color: rgba(240,150,26,0.6); }
.idi-c-findy .fy-n{ font: 600 12px var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: #F0961A; }
.idi-c-findy .fy-bar{ display: flex; align-items: center; gap: 10px; background: #FFFFFF; color: #0B2B31; border-radius: 999px; padding: 14px 18px; box-shadow: 0 0 0 3px rgba(240,150,26,0.35); font: 600 16px/1.35 var(--f-testo); min-height: 56px; }
.idi-c-findy .fy-lente{ font-size: 20px; color: #0B2B31; }
.idi-c-findy .fy-caret{ animation: lampeggia 1s steps(1) infinite; color: #F0961A; }
.idi-c-findy .fy-chips{ display: flex; flex-wrap: wrap; gap: 8px; }
.idi-c-findy .fy-chips span{ padding: 8px 12px; border-radius: 999px; background: rgba(240,150,26,0.14); border: 1px solid rgba(240,150,26,0.5); font-size: 14px; opacity: 0; transform: scale(0.8); transition: opacity 0.3s ease, transform 0.35s cubic-bezier(.2,1.6,.4,1); }
.idi-c-findy .fy-p2.on .fy-chips span{ opacity: 1; transform: none; }
.idi-c-findy .fy-p2.on .fy-chips span:nth-child(2){ transition-delay: 0.25s; }
.idi-c-findy .fy-p2.on .fy-chips span:nth-child(3){ transition-delay: 0.5s; }
.idi-c-findy .fy-p2.on .fy-chips span:nth-child(4){ transition-delay: 0.75s; }
.idi-c-findy .fy-card{ display: grid; grid-template-columns: 54px 1fr; grid-template-rows: auto auto; gap: 6px 12px; align-items: center; opacity: 0; transform: translateY(10px); transition: opacity 0.4s ease, transform 0.4s ease; }
.idi-c-findy .fy-card i{ grid-row: 1 / 3; width: 54px; height: 42px; border-radius: 8px; background: linear-gradient(135deg, #2C8796, #F0961A); }
.idi-c-findy .fy-card b{ height: 10px; border-radius: 6px; background: rgba(255,255,255,0.4); width: 80%; }
.idi-c-findy .fy-card s{ height: 8px; border-radius: 6px; background: rgba(255,255,255,0.18); width: 55%; text-decoration: none; }
.idi-c-findy .fy-p3.on .fy-card{ opacity: 1; transform: none; }
.idi-c-findy .fy-p3.on .fy-card:nth-child(3){ transition-delay: 0.25s; }
.idi-c-findy .fy-p3.on .fy-card:nth-child(4){ transition-delay: 0.5s; }
.idi-c-findy .fy-rifai{ position: absolute; right: 0; bottom: -52px; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.3); background: transparent; color: #FFF; font: 600 13px var(--f-testo); cursor: pointer; }
@media (max-width: 860px){ .idi-c-findy.fy-demo{ grid-template-columns: minmax(0, 1fr); } .idi-c-findy .fy-passo{ min-height: 0; } .idi-c-findy .fy-rifai{ position: static; justify-self: start; } }

/* pagine legali: testo lungo leggibile */
.idi-legale { font-family: "Montserrat", system-ui, sans-serif; color: #2F4448; font-size: 17px; line-height: 1.7; max-width: 820px; }
.idi-legale h2 { margin: 2.2em 0 0.6em; font: 800 clamp(24px, 2.4vw, 32px)/1.15 "Montserrat", sans-serif; letter-spacing: -0.02em; color: #0B2B31; }
.idi-legale h3 { margin: 1.6em 0 0.4em; font: 700 20px/1.3 "Montserrat", sans-serif; color: #0B2B31; }
.idi-legale > *:first-child, .idi-legale .elementor-widget-container > *:first-child { margin-top: 0; }
.idi-legale p { margin: 0 0 1em; }
.idi-legale ul { margin: 0 0 1.2em; padding-left: 1.2em; }
.idi-legale li { margin-bottom: 0.5em; }
.idi-legale li::marker { color: #F0961A; }
.idi-legale a { color: #0B2B31; text-decoration: underline; text-decoration-color: #F0961A; text-underline-offset: 3px; }
.idi-legale a:hover { color: #F0961A; }
.idi-legale strong { color: #0B2B31; }
.idi-legale #CookieDeclaration, .idi-legale .CookieDeclaration { margin-top: 2em; font-size: 15px; }
.idi-legale .CookieDeclarationTable { width: 100%; border-collapse: collapse; font-size: 14px; }
.idi-legale .CookieDeclarationTable th, .idi-legale .CookieDeclarationTable td { padding: 8px 10px; border-bottom: 1px solid rgba(11,43,49,0.12); text-align: left; vertical-align: top; }
.idi-legale p, .idi-legale li, .idi-legale .elementor-widget-container { font-family: "Montserrat", system-ui, sans-serif !important; color: #2F4448 !important; font-size: 17px; line-height: 1.7; }

/* landing preventivo: console delle domande + piano che si scrive */
.idi-c-piano.e-con, .idi-c-piano { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr); gap: clamp(20px, 3vw, 44px); align-items: start; padding: 0 !important; margin-top: clamp(28px, 4vw, 52px); }
.idi-c-piano .pn-console { position: relative; padding: clamp(22px, 3vw, 40px); border-radius: 28px; background: linear-gradient(160deg, rgba(0,90,104,0.55), rgba(0,38,44,0.85)); border: 1px solid rgba(244,240,230,0.14); box-shadow: 0 40px 120px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.06); min-height: 520px; display: flex; flex-direction: column; overflow: hidden; color: #F4F0E6; }
.idi-c-piano .pn-console::before { content: ""; position: absolute; inset: -40% -20% auto auto; width: 70%; aspect-ratio: 1; background: radial-gradient(circle, rgba(240,150,26,0.22), transparent 60%); pointer-events: none; animation: pnRespira 7s ease-in-out infinite; }
@keyframes pnRespira { 50% { transform: translate(-6%, 8%) scale(1.15); opacity: 0.7; } }
/* hud: sei nodi che si accendono */
.idi-c-piano .pn-hud { position: relative; display: flex; align-items: center; gap: 0; margin-bottom: 18px; }
.idi-c-piano .pn-hud i { width: 14px; height: 14px; border-radius: 50%; border: 2px solid rgba(244,240,230,0.35); flex: none; transition: all 0.4s ease; }
.idi-c-piano .pn-hud i.ora { border-color: #F0961A; box-shadow: 0 0 0 6px rgba(240,150,26,0.18); animation: pnPulse 1.6s ease-in-out infinite; }
.idi-c-piano .pn-hud i.fatto { background: #F0961A; border-color: #F0961A; }
.idi-c-piano .pn-hud b { flex: 1; height: 2px; background: rgba(244,240,230,0.18); position: relative; overflow: hidden; }
.idi-c-piano .pn-hud b::after { content: ""; position: absolute; inset: 0; background: #F0961A; transform: scaleX(0); transform-origin: left; transition: transform 0.6s cubic-bezier(.2,.8,.2,1); }
.idi-c-piano .pn-hud b.fatto::after { transform: scaleX(1); }
@keyframes pnPulse { 50% { box-shadow: 0 0 0 11px rgba(240,150,26,0.05); } }
.idi-c-piano .pn-passo { margin: 0 0 6px; font: 600 12px "IBM Plex Mono", monospace; letter-spacing: 0.12em; color: #A7BDC0; }
.idi-c-piano .pn-num { color: #F0961A; }
.idi-c-piano .pn-schermi { position: relative; flex: 1; }
.idi-c-piano .pn-q { display: none; }
.idi-c-piano .pn-q.on { display: block; animation: pnEntra 0.55s cubic-bezier(.2,.8,.2,1) both; }
@keyframes pnEntra { from { opacity: 0; transform: translateY(18px); filter: blur(4px); } to { opacity: 1; transform: none; filter: none; } }
.idi-c-piano .pn-dom { margin: 6px 0 0; font: 800 clamp(26px, 2.8vw, 40px)/1.08 "Montserrat", sans-serif; letter-spacing: -0.03em; color: #F4F0E6; }
.idi-c-piano .pn-dom label { cursor: text; }
.idi-c-piano .pn-aiuto { display: block; margin: 10px 0 0; font: 500 15px/1.5 "Montserrat", sans-serif; color: #C8D6D8; }
.idi-c-piano .pn-chips { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 10px; }
.idi-c-piano .pn-chip { min-height: 50px; padding: 0 20px; border-radius: 999px; border: 1px solid rgba(244,240,230,0.32); background: rgba(244,240,230,0.04); color: #F4F0E6; font: 600 15px "Montserrat", sans-serif; cursor: pointer; transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease; text-align: left; }
.idi-c-piano .pn-chip:hover { border-color: #F0961A; transform: translateY(-2px); }
.idi-c-piano .pn-chip[aria-pressed="true"] { background: #F0961A; border-color: #F0961A; color: #00262C; animation: pnPop 0.35s ease; }
@keyframes pnPop { 40% { transform: scale(1.06); } }
.idi-c-piano .pn-in { display: block; width: 100%; margin-top: 22px; min-height: 58px; padding: 0 20px; border-radius: 16px; border: 1px solid rgba(244,240,230,0.3); background: rgba(0,20,24,0.55); color: #F4F0E6; font: 600 18px "Montserrat", sans-serif; outline: none; transition: border-color 0.2s ease, box-shadow 0.2s ease; box-sizing: border-box; }
.idi-c-piano .pn-in::placeholder { color: rgba(200,214,216,0.55); }
.idi-c-piano .pn-in:focus { border-color: #F0961A; box-shadow: 0 0 0 4px rgba(240,150,26,0.18); }
.idi-c-piano .pn-sito { margin-top: 18px; }
.idi-c-piano .pn-sito .pn-in { margin-top: 10px; }
.idi-c-piano .pn-can { margin-top: 14px; }
.idi-c-piano #pnNome { margin-top: 18px; }
.idi-c-piano #pnTel, .idi-c-piano #pnMail { margin-top: 12px; }
.idi-c-piano .pn-trappola { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.idi-c-piano .pn-ok { display: flex; gap: 10px; align-items: flex-start; margin-top: 16px; font: 500 13px/1.5 "Montserrat", sans-serif; color: #C8D6D8; cursor: pointer; }
.idi-c-piano .pn-ok input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: #F0961A; flex: none; }
.idi-c-piano .pn-ok a { color: #F4F0E6; }
.idi-c-piano .pn-err { min-height: 22px; margin: 14px 0 0; font: 600 14px "Montserrat", sans-serif; color: #FF8A78; }
.idi-c-piano.scuoti .pn-console { animation: pnScuoti 0.4s ease; }
@keyframes pnScuoti { 25% { transform: translateX(-6px); } 50% { transform: translateX(5px); } 75% { transform: translateX(-3px); } }
.idi-c-piano .pn-nav { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 10px; }
.idi-c-piano .pn-avanti { margin-left: auto; min-height: 56px; padding: 0 28px; border: 0; border-radius: 999px; background: #F0961A; color: #00262C; font: 800 16px "Montserrat", sans-serif; cursor: pointer; box-shadow: 0 14px 40px rgba(240,150,26,0.35); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.idi-c-piano .pn-avanti:hover { transform: translateY(-2px); box-shadow: 0 20px 50px rgba(240,150,26,0.45); }
.idi-c-piano .pn-avanti:disabled { opacity: 0.6; cursor: progress; }
.idi-c-piano .pn-indietro { background: none; border: 0; color: #C8D6D8; font: 600 15px "Montserrat", sans-serif; cursor: pointer; padding: 10px 0; }
.idi-c-piano .pn-fine .pn-dom { color: #F0961A; }
.idi-c-piano .pn-wa { display: inline-flex; margin-top: 22px; min-height: 52px; align-items: center; padding: 0 24px; border-radius: 999px; background: #25D366; color: #fff; font: 700 16px "Montserrat", sans-serif; text-decoration: none; }
/* il documento */
.idi-c-piano .pn-doc { position: sticky; top: 110px; }
.idi-c-piano .pn-doc-maniglia, .idi-c-piano .pn-mini, .idi-c-piano .pn-carta-top, .idi-c-piano .pn-torna, .pn-velo { display: none; }
.idi-c-piano .pn-carta { position: relative; padding: clamp(22px, 2.6vw, 34px); border-radius: 6px 6px 22px 22px; background: #F4F0E6; color: #0B2B31; box-shadow: 0 40px 100px rgba(0,0,0,0.4); overflow: hidden; min-height: 520px; }
.idi-c-piano .pn-carta::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: linear-gradient(90deg, #F4F0E6 0 33%, #F0961A 33% 66%, #2C8796 66%); }
.idi-c-piano .pn-testa { display: flex; justify-content: space-between; gap: 10px; padding-bottom: 14px; border-bottom: 1px dashed rgba(11,43,49,0.25); font: 600 12px "IBM Plex Mono", monospace; letter-spacing: 0.1em; text-transform: uppercase; color: #4F6B70; }
.idi-c-piano .pn-per { margin: 16px 0 0; font: 500 15px "Montserrat", sans-serif; color: #4F6B70; }
.idi-c-piano .pn-per b { display: block; margin-top: 2px; font: 800 clamp(20px, 2vw, 26px)/1.15 "Montserrat", sans-serif; color: #0B2B31; letter-spacing: -0.02em; overflow-wrap: anywhere; }
.idi-c-piano .pn-moduli { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.idi-c-piano .pn-mod { display: flex; gap: 12px; padding: 14px; border-radius: 14px; background: #fff; border: 1px solid rgba(11,43,49,0.08); }
.idi-c-piano .pn-mod.nuovo { animation: pnCompare 0.5s ease both; }
@keyframes pnCompare { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.idi-c-piano .pn-mod-n { flex: none; width: 30px; height: 30px; border-radius: 50%; background: #00262C; color: #F0961A; display: inline-flex; align-items: center; justify-content: center; font: 700 12px "IBM Plex Mono", monospace; }
.idi-c-piano .pn-mod-t { display: block; font: 800 16px/1.25 "Montserrat", sans-serif; }
.idi-c-piano .pn-mod-d { margin: 4px 0 0; font: 500 13.5px/1.45 "Montserrat", sans-serif; color: #2F4448; }
.idi-c-piano .pn-mod-l { display: inline-block; margin: 8px 0 0; font: 700 12px "Montserrat", sans-serif; color: #0B2B31; text-decoration: underline; text-decoration-color: #F0961A; text-underline-offset: 3px; }
.idi-c-piano .pn-timbro { position: absolute; right: 22px; bottom: 26px; padding: 10px 16px; border: 3px solid #2C8796; border-radius: 10px; color: #2C8796; font: 900 22px/1 "Montserrat", sans-serif; text-transform: uppercase; letter-spacing: 0.08em; text-align: center; transform: rotate(-9deg) scale(2.2); opacity: 0; pointer-events: none; }
.idi-c-piano.pn-inviato .pn-timbro { animation: pnTimbro 0.5s cubic-bezier(.2,1.4,.3,1) 0.2s forwards; background: rgba(244,240,230,0.92); }
@keyframes pnTimbro { to { opacity: 1; transform: rotate(-9deg) scale(1); } }
/* telefono: anteprima del piano sotto le domande + barra in basso che apre il piano completo */
@media (max-width: 860px) {
  .idi-c-piano.e-con, .idi-c-piano { grid-template-columns: minmax(0, 1fr); }
  .idi-c-piano .pn-console { min-height: 0; border-radius: 22px; }
  .idi-c-piano .pn-chip { min-height: 48px; font-size: 15px; }
  .idi-c-piano .pn-mini { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; width: 100%; margin-top: 18px; padding: 16px; border-radius: 18px; border: 1px dashed rgba(240,150,26,0.65); background: rgba(240,150,26,0.08); color: #F4F0E6; text-align: left; cursor: pointer; font-family: "Montserrat", sans-serif; }
  .idi-c-piano.pn-inviato .pn-mini { display: none; }
  .idi-c-piano .pn-mini-k { display: flex; align-items: center; gap: 8px; font: 600 11.5px "IBM Plex Mono", monospace; letter-spacing: 0.08em; text-transform: uppercase; color: #F0961A; }
  .idi-c-piano .pn-mini-k i { width: 8px; height: 8px; border-radius: 50%; background: #F0961A; box-shadow: 0 0 0 0 rgba(240,150,26,0.6); animation: pnPunto 1.8s ease-out infinite; }
  .idi-c-piano .pn-mini-voci { display: flex; flex-wrap: wrap; gap: 6px; }
  .idi-c-piano .pn-mini-voci em { font: 700 13px "Montserrat", sans-serif; font-style: normal; padding: 6px 11px; border-radius: 99px; background: rgba(244,240,230,0.1); color: #F4F0E6; }
  .idi-c-piano .pn-mini-voci em.nuovo { background: #F0961A; color: #00262C; animation: pnNuovo 0.5s cubic-bezier(.2,1.4,.3,1); }
  .idi-c-piano .pn-mini-apri { font: 800 14px "Montserrat", sans-serif; color: #F4F0E6; text-decoration: underline; text-decoration-color: #F0961A; text-underline-offset: 4px; }
  .idi-c-piano .pn-doc { position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 130; padding: 0 10px env(safe-area-inset-bottom, 0); transform: translateY(110%); transition: transform 0.35s cubic-bezier(.2,.8,.2,1); }
  .idi-c-piano.pn-vista .pn-doc, .idi-c-piano .pn-doc.aperto { transform: none; }
  .idi-c-piano .pn-doc-maniglia { display: flex; width: 100%; gap: 12px; align-items: center; min-height: 64px; padding: 10px 14px 10px 16px; border: 0; border-radius: 20px 20px 0 0; background: #F0961A; color: #00262C; font-family: "Montserrat", sans-serif; cursor: pointer; box-shadow: 0 -12px 34px rgba(0,0,0,0.35); text-align: left; }
  .idi-c-piano .pn-doc-maniglia.pulsa { animation: pnPulsa 0.6s ease; }
  .idi-c-piano .pn-man-ic { flex: none; width: 30px; height: 36px; border-radius: 5px; background: #F4F0E6 linear-gradient(#00262C, #00262C) 7px 10px / 16px 2px no-repeat, #F4F0E6; box-shadow: inset 0 0 0 2px #00262C; position: relative; }
  .idi-c-piano .pn-man-ic::after { content: ""; position: absolute; left: 7px; right: 7px; top: 16px; height: 10px; background: repeating-linear-gradient(#00262C 0 2px, transparent 2px 5px); }
  .idi-c-piano .pn-man-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
  .idi-c-piano .pn-man-t b { font: 800 16px "Montserrat", sans-serif; }
  .idi-c-piano .pn-man-s { font: 600 12.5px "Montserrat", sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .idi-c-piano .pn-man-apri { flex: none; padding: 8px 12px; border-radius: 99px; border: 2px solid #00262C; font: 800 13px "Montserrat", sans-serif; }
  .idi-c-piano .pn-carta { display: none; border-radius: 0; max-height: min(78vh, 78dvh); overflow-y: auto; overscroll-behavior: contain; min-height: 0; padding-bottom: 18px; }
  .idi-c-piano .pn-doc.aperto .pn-carta { display: block; animation: pnSu 0.32s cubic-bezier(.2,.8,.2,1); }
  .idi-c-piano .pn-carta-top { display: flex; position: sticky; top: -1px; z-index: 3; justify-content: space-between; align-items: center; gap: 12px; margin: -4px -4px 14px; padding: 10px 4px; background: inherit; font: 600 13px/1.35 "Montserrat", sans-serif; color: #4C6266; }
  .idi-c-piano .pn-chiudi { flex: none; width: 40px; height: 40px; border-radius: 50%; border: 0; background: #00262C; color: #F4F0E6; font-size: 16px; cursor: pointer; }
  .idi-c-piano .pn-torna { display: flex; width: 100%; justify-content: center; align-items: center; min-height: 52px; margin-top: 18px; border-radius: 99px; border: 0; background: #00262C; color: #F4F0E6; font: 800 15px "Montserrat", sans-serif; cursor: pointer; }
  .pn-velo { display: block; position: fixed; inset: 0; z-index: 125; background: rgba(0,20,24,0.6); backdrop-filter: blur(3px); }
  .pn-velo[hidden] { display: none; }
  .idi-c-piano { padding-bottom: 84px; }
}
@keyframes pnPunto { 70% { box-shadow: 0 0 0 8px rgba(240,150,26,0); } 100% { box-shadow: 0 0 0 0 rgba(240,150,26,0); } }
@keyframes pnNuovo { from { transform: scale(0.6); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes pnPulsa { 40% { transform: translateY(-6px); } }
@keyframes pnSu { from { transform: translateY(30px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .idi-c-piano *, .idi-c-piano *::before, .idi-c-piano *::after { animation: none !important; transition: none !important; }
  .idi-c-piano.pn-inviato .pn-timbro { opacity: 1; transform: rotate(-9deg); }
}

/* preventivo: tre sezioni chiare, poche animazioni */
.idi-c-piano .pn-sub { margin: 22px 0 0; font: 700 16px "Montserrat", sans-serif; color: #F4F0E6; }
.idi-c-piano .pn-sub small { font-weight: 500; color: #A7BDC0; }
.idi-c-piano .pn-sub + .pn-chips { margin-top: 10px; }
.idi-c-piano .pn-per { margin: 16px 0 0; }
.idi-c-piano .pn-compl { margin-top: 14px; }
.idi-c-piano .pn-compl-t { font: 600 13px "Montserrat", sans-serif; color: #4F6B70; }
.idi-c-piano .pn-compl-t b { color: #0B2B31; }
.idi-c-piano .pn-compl i { display: block; height: 6px; margin-top: 6px; border-radius: 6px; background: rgba(11,43,49,0.1); overflow: hidden; }
.idi-c-piano .pn-compl s { display: block; height: 100%; width: 0; background: #F0961A; border-radius: 6px; transition: width 0.4s ease; }
.idi-c-piano .pn-sez { display: flex; align-items: center; gap: 10px; margin: 24px 0 10px; font: 800 17px "Montserrat", sans-serif; letter-spacing: -0.01em; color: #0B2B31; }
.idi-c-piano .pn-sez span { flex: none; width: 26px; height: 26px; border-radius: 50%; background: #00262C; color: #F0961A; display: inline-flex; align-items: center; justify-content: center; font: 700 12px "IBM Plex Mono", monospace; }
.idi-c-piano .pn-dati { margin: 0; border-radius: 14px; background: #fff; border: 1px solid rgba(11,43,49,0.08); }
.idi-c-piano .pn-dati div { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; padding: 10px 14px; border-top: 1px solid rgba(11,43,49,0.07); }
.idi-c-piano .pn-dati div:first-child { border-top: 0; }
.idi-c-piano .pn-dati dt { font: 600 11px/1.6 "IBM Plex Mono", monospace; letter-spacing: 0.06em; text-transform: uppercase; color: #4F6B70; }
.idi-c-piano .pn-dati dd { margin: 0; font: 700 14px/1.4 "Montserrat", sans-serif; color: #0B2B31; overflow-wrap: anywhere; }
.idi-c-piano .pn-dati .vuota dd { font-weight: 500; font-style: italic; color: #8A9C9F; }
.idi-c-piano .pn-mod-n { width: 26px; height: 26px; font-size: 12px; }
.idi-c-piano .pn-mod-vuoto { padding: 14px; border-radius: 14px; border: 1px dashed rgba(11,43,49,0.25); font: 500 14px "Montserrat", sans-serif; color: #4F6B70; }
.idi-c-piano .pn-dopo { margin: 0; padding: 0 0 0 20px; display: flex; flex-direction: column; gap: 6px; font: 500 14px/1.45 "Montserrat", sans-serif; color: #2F4448; }
.idi-c-piano .pn-dopo b { color: #0B2B31; }
.idi-c-piano .pn-timbro { top: 22px; bottom: auto; font-size: 18px; }
@media (max-width: 860px) { .idi-c-piano .pn-dati div { grid-template-columns: 96px minmax(0, 1fr); } }
/* "Ho capito": la lettura di professione e comune sotto la casella */
.ca-capito { margin-top: 12px; font: 500 14px/1.4 "Montserrat", sans-serif; color: inherit; }
.ca-capito[hidden] { display: none; }
.ca-capito p { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.ca-capito .ca-k { font: 600 11px "IBM Plex Mono", monospace; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.75; }
.ca-capito .ca-k::before { content: "✓ "; color: #F0961A; }
.ca-capito .ca-pill { padding: 5px 12px; border-radius: 99px; background: #F0961A; color: #00262C; font: 700 14px "Montserrat", sans-serif; }
.ca-capito .ca-a { opacity: 0.75; }
.ca-capito .ca-manca { padding: 4px 11px; border-radius: 99px; border: 1px dashed currentColor; opacity: 0.7; font-style: italic; }
.ca-capito .ca-alt { margin-top: 8px; font-size: 13px; }
.ca-capito .ca-alt span { opacity: 0.7; }
.ca-capito .ca-alt button { padding: 5px 11px; border-radius: 99px; border: 1px solid currentColor; background: transparent; color: inherit; font: 600 13px "Montserrat", sans-serif; cursor: pointer; opacity: 0.85; }
.ca-capito .ca-alt button:hover { opacity: 1; border-color: #F0961A; }

/* telefono: elenchi lunghi scorrevoli di lato */
@media (max-width: 767px) {
  .idi-scorri, .idi-scorri.idi-scorri.idi-scorri { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; grid-template-columns: none !important; overflow-x: auto !important; overflow-y: hidden !important; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; gap: 14px !important; margin-right: -16px !important; padding-right: 16px !important; padding-bottom: 8px !important; scrollbar-width: none; height: auto !important; }
  .idi-pila.idi-scorri > * { box-shadow: none !important; }
  .idi-scorri::-webkit-scrollbar { display: none; }
  .idi-scorri > *, .idi-scorri.idi-scorri.idi-scorri > * { flex: 0 0 84% !important; width: 84% !important; max-width: 84% !important; min-width: 0 !important; scroll-snap-align: start; position: relative !important; top: auto !important; transform: none !important; margin-top: 0 !important; margin-bottom: 0 !important; }
  .idi-scorri:focus-visible { outline: 3px solid #F0961A; outline-offset: 4px; }
  .idi-scorri-dots { display: flex; justify-content: center; gap: 7px; margin: 16px 0 0; color: inherit; }
  .idi-scorri-dots i { width: 7px; height: 7px; border-radius: 99px; background: currentColor; opacity: .25; transition: width .3s ease, opacity .3s ease, background .3s ease; }
  .idi-scorri-dots i.on { width: 22px; opacity: 1; background: #F0961A; }
}
@media (min-width: 768px) { .idi-scorri-dots { display: none; } }

@media (max-width: 767px) {
  html.idi-esempio .ca .ca-btn { background: #2A8A99 !important; color: #fff !important; padding: 7px 12px !important; font-size: 11px !important; box-shadow: none !important; }
  html.idi-esempio .ca .ca-btn::after { border-color: #fff !important; }
  html.idi-esempio .ca .ca-btn2 { padding: 6px 11px !important; font-size: 11px !important; border-width: 1px !important; }
  html.idi-esempio .ca .ca-navbtn { padding: 5px 10px !important; font-size: 10px !important; }
  html.idi-esempio .ca .ca-cursor { width: 30px !important; height: 30px !important; border-radius: 50% !important; background: rgba(255,255,255,.35) !important; border: 2px solid #fff !important; box-shadow: 0 0 0 6px rgba(255,255,255,.15) !important; }
  html.idi-esempio .ca .ca-nota.ca-tag { display: inline-flex !important; width: auto !important; margin: 0 0 14px !important; padding: 6px 12px !important; border-radius: 99px; border: 1px dashed rgba(244,240,230,.4); background: transparent !important; position: static !important; transform: none !important; inset: auto !important; box-shadow: none !important; font: 600 11px/1 "IBM Plex Mono", monospace; letter-spacing: .06em; text-transform: uppercase; color: rgba(244,240,230,.75) !important; }
  html.idi-esempio .ca { margin-bottom: 22px !important; cursor: default; -webkit-tap-highlight-color: transparent; }
}

@media (max-width: 767px) {
  html.idi-esempio .ca .ca-scena { padding-bottom: 18px !important; }
  html.idi-esempio .ca .ca-cards { display: none !important; }
  html.idi-esempio .ca .ca-esito { margin: 0; padding: 12px 16px 14px; background: #E9E3D6; border-top: 1px solid rgba(0,38,44,.08); }
  html.idi-esempio .ca .ca-esito-k { margin: 0 0 6px !important; font: 600 10px/1.2 "IBM Plex Mono", monospace; letter-spacing: .08em; text-transform: uppercase; color: #4F6B70; }
  html.idi-esempio .ca .ca-esito .ca-notif { position: static !important; inset: auto !important; transform: none !important; min-width: 0 !important; max-width: none !important; width: auto !important; margin: 0 !important; padding: 5px 0 !important; gap: 9px !important; background: transparent !important; box-shadow: none !important; border-radius: 0 !important; }
  html.idi-esempio .ca .ca-esito .ca-notif + .ca-notif { border-top: 1px dashed rgba(0,38,44,.15); }
  html.idi-esempio .ca .ca-esito .ca-ic { width: 20px !important; height: 20px !important; min-width: 20px !important; flex: 0 0 20px !important; border-radius: 50% !important; background: #00262C; color: #F4F0E6; padding: 0 !important; display: grid !important; place-items: center; }
  html.idi-esempio .ca .ca-esito .ca-ic svg { width: 11px !important; height: 11px !important; }
  html.idi-esempio .ca .ca-esito .ca-notif > div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 6px; }
  html.idi-esempio .ca .ca-esito .ca-notif b { font: 700 12px/1.3 "Montserrat", sans-serif !important; color: #00262C; }
  html.idi-esempio .ca .ca-esito .ca-notif small { margin: 0 !important; font: 500 11px/1.3 "Montserrat", sans-serif !important; color: #4F6B70; }
}

/* Innovation Manager, telefono: nulla che galleggi o sembri un pulsante */
@media (max-width: 767px) {
  .idi-c-cantiere .fz { padding: 0 0 8px !important; }
  .fz .fz-nota.fz-tag { position: static !important; display: inline-flex; margin: 0 0 14px !important; padding: 6px 12px; border-radius: 99px; border: 1px dashed rgba(244,240,230,.4); font: 600 11px/1 "IBM Plex Mono", monospace; letter-spacing: .06em; text-transform: uppercase; color: rgba(244,240,230,.75); }
  .fz .fz-b { grid-template-columns: minmax(0, 1fr) auto; row-gap: 2px; }
  .fz .fz-ente { grid-column: 1; grid-row: 1; font-size: 9.5px; }
  .fz .fz-nome { grid-column: 1; grid-row: 2; white-space: normal; font-size: 13px; }
  .fz .fz-esito { grid-column: 2; grid-row: 1 / span 2; }
  .fz .fz-domanda { position: relative; }
  .fz .fz-domanda .fz-timbro { right: 0; top: 6px; padding: 3px 8px; border-width: 2px; font-size: 11px; background: transparent; }
  .fz .fz-fatti { display: flex; flex-direction: column; gap: 12px; margin-top: 18px; padding: 2px 0 0 14px; border-left: 2px solid rgba(244,240,230,.2); }
  .fz .fz-fatti .fz-cifra { width: auto; max-width: none; margin: 0; padding: 0; border-radius: 0; background: none; color: #F4F0E6; box-shadow: none; transform: none; }
  .fz .fz-fatti .fz-cifra b { font-size: 28px; }
  .fz .fz-fatti .fz-cifra small { color: #A7BDC0; font-weight: 600; }
  .fz .fz-fatti .fz-badge { position: static; width: auto; margin: 0; padding: 0; gap: 10px; border-radius: 0; background: none; color: #F4F0E6; box-shadow: none; animation: none; }
  .fz .fz-fatti .fz-badge span { width: 28px; height: 28px; border-radius: 8px; background: transparent; border: 1px solid rgba(244,240,230,.35); color: #F4F0E6; font-size: 11px; }
  .fz .fz-fatti .fz-badge small { color: #A7BDC0; }
}

/* percorso (Progetti, Home): la scheda non galleggia piu sul percorso; mini radiografia senza righe "toccabili" */
@media (max-width: 767px) {
  html.idi-esempio .vg-tag { display: inline-flex !important; width: auto !important; margin: 0 0 10px !important; padding: 6px 12px !important; border-radius: 99px; border: 1px dashed rgba(244,240,230,.4); background: transparent !important; font: 600 11px/1 "IBM Plex Mono", monospace; letter-spacing: .06em; text-transform: uppercase; color: rgba(244,240,230,.75) !important; text-align: left !important; }
  html.idi-esempio .vg-card.vg-fuori { position: static !important; width: auto !important; max-width: 300px; margin: 14px 0 0 !important; padding: 2px 0 0 14px !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; border-left: 2px solid rgba(244,240,230,.2); color: #F4F0E6 !important; }
  html.idi-esempio .vg-card.vg-fuori .vg-k { color: #A7BDC0 !important; }
  .rxm-riga { background: transparent !important; border-radius: 0 !important; padding: 9px 2px !important; margin: 0 !important; border-bottom: 1px dashed rgba(0,38,44,.15); }
  .rxm-riga:last-of-type { border-bottom: 0; }
  .rxm-url { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 6px 2px 10px !important; margin-bottom: 4px; }
}

/* Contatti, telefono: la scorciatoia al modulo non serve */
@media (max-width: 767px) {
  .page-id-264 [data-id="417a216d"] { display: none !important; }
}

/* telefono: rifiniture controllo finale */
@media (max-width: 767px) {
  /* fascia "E tu?" dei progetti: niente schermata arancione vuota */
  .idi-id-domanda { min-height: 0 !important; }
  /* landing Sardegna: le 4 voci dell'offerta in griglia 2x2, tutte visibili */
  .page-id-604 .elementor-element-36b50c09 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
  .page-id-604 .elementor-element-36b50c09 > * { padding: 16px 14px !important; }
  .page-id-604 .elementor-element-36b50c09 p { font-size: 13px !important; line-height: 1.35 !important; }
  .page-id-604 .elementor-element-36b50c09 > * > :first-child { font-size: 26px !important; }
  /* blog: elenco articoli compatto, immagine a sinistra */
  .idi-blog-griglia { gap: 12px !important; }
  .idi-blog-griglia .idi-card-art { display: grid !important; grid-template-columns: 96px minmax(0, 1fr); align-items: center; gap: 14px; padding: 10px !important; }
  .idi-blog-griglia .idi-card-art > a { width: 96px !important; height: 96px !important; border-radius: 12px; overflow: hidden; }
  .idi-blog-griglia .idi-card-art .idi-card-img { width: 100% !important; height: 100% !important; aspect-ratio: auto !important; object-fit: cover; border-radius: 0 !important; }
  .idi-blog-griglia .idi-card-txt { padding: 0 !important; }
  .idi-blog-griglia .idi-card-tit { font-size: 15px !important; line-height: 1.25 !important; margin: 4px 0 !important; }
  .idi-blog-griglia .idi-card-cat, .idi-blog-griglia .idi-card-data { font-size: 10.5px !important; margin: 0 !important; }
}

/* Home, servizi in versione chiara: il problema detto dal cliente, la soluzione, il risultato */
.idi-band.ch-ospite { padding-bottom: 0 !important; }
.idi-c-chiaro, .idi-c-chiaro.e-con { position: relative; width: 100vw !important; max-width: none !important; margin: 0 0 0 calc(50% - 50vw) !important; padding: clamp(72px, 9vw, 128px) 0 !important; background: #FFFFFF; color: #0B2B31; overflow: hidden; }
.idi-c-chiaro::before { content: ""; position: absolute; right: -12vw; top: -18vw; width: 46vw; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(240,150,26,0.10), transparent 65%); pointer-events: none; }
.idi-c-chiaro .ch-in { position: relative; width: min(1270px, calc(100% - 32px)); margin: 0 auto; }
.idi-c-chiaro .ch-ey { margin: 0; font: 600 12px "IBM Plex Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: #4F6B70; }
.idi-c-chiaro .ch-h { margin: 12px 0 0; max-width: 20ch; font: 800 clamp(32px, 3.8vw, 56px)/1.05 "Montserrat", sans-serif; letter-spacing: -.035em; color: #0B2B31; }
.idi-c-chiaro .ch-h em { font-style: normal; color: #F0961A; }
.idi-c-chiaro .ch-g { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; margin-top: clamp(36px, 4.5vw, 60px); }
/* la tessera */
.idi-c-chiaro .ch-c { --c: #F0961A; --cs: rgba(240,150,26,.14); position: relative; display: flex; flex-direction: column; align-items: flex-start; padding: 22px 22px 24px; border-radius: 24px; background: #F4F0E6; color: inherit; text-decoration: none; overflow: hidden; transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, background .3s ease; }
.idi-c-chiaro .ch-c::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: var(--c); transform: scaleX(.18); transform-origin: left; transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.idi-c-chiaro .ch-sito, .idi-c-chiaro .ch-seo { --c: #2C8796; --cs: rgba(44,135,150,.14); }
.idi-c-chiaro .ch-ads { --c: #00262C; --cs: rgba(0,38,44,.1); }
.idi-c-chiaro .ch-c:hover { transform: translateY(-6px); background: #FFFFFF; box-shadow: 0 28px 60px rgba(11,43,49,.14), 0 0 0 1.5px var(--c); }
.idi-c-chiaro .ch-c:hover::after { transform: scaleX(1); }
/* quello che dice il cliente: un fumetto */
.idi-c-chiaro .ch-p { position: relative; display: block; padding: 12px 14px; border-radius: 16px 16px 16px 4px; background: #FFFFFF; font: 600 14.5px/1.35 "Montserrat", sans-serif; color: #3D5A5F; box-shadow: 0 6px 18px rgba(11,43,49,.06); min-height: 3.7em; width: 100%; box-sizing: border-box; }
.idi-c-chiaro .ch-c:hover .ch-p { background: #F4F0E6; }
/* la soluzione */
.idi-c-chiaro .ch-sol { display: flex; align-items: center; gap: 12px; margin-top: 22px; }
.idi-c-chiaro .ch-ic { flex: none; display: inline-flex; width: 46px; height: 46px; border-radius: 14px; align-items: center; justify-content: center; background: var(--c); color: #FFFFFF; transition: transform .35s cubic-bezier(.2,1.4,.3,1); }
.idi-c-chiaro .ch-ads .ch-ic { color: #F0961A; }
.idi-c-chiaro .ch-c:hover .ch-ic { transform: rotate(-8deg) scale(1.08); }
.idi-c-chiaro .ch-ic svg { width: 24px; height: 24px; }
.idi-c-chiaro .ch-n { font: 800 19px/1.15 "Montserrat", sans-serif; letter-spacing: -.02em; color: #0B2B31; }
.idi-c-chiaro .ch-d { margin-top: 12px; font: 500 15px/1.45 "Montserrat", sans-serif; color: #2F4448; }
.idi-c-chiaro .ch-l { margin-top: auto; padding-top: 20px; font: 700 14px "Montserrat", sans-serif; color: var(--c); }
.idi-c-chiaro .ch-ads .ch-l { color: #0B2B31; }
.idi-c-chiaro .ch-l i { display: inline-block; font-style: normal; transition: transform .25s ease; }
.idi-c-chiaro .ch-c:hover .ch-l i { transform: translateX(5px); }
/* come lavoriamo: tre tappe collegate */
.idi-c-chiaro .ch-met { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 22px; padding: 22px 26px; border-radius: 24px; background: #00262C; color: #F4F0E6; }
.idi-c-chiaro .ch-met-k { font: 600 12px "IBM Plex Mono", monospace; letter-spacing: .1em; text-transform: uppercase; color: #F0961A; }
.idi-c-chiaro .ch-met ol { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 0; margin: 0; padding: 0; list-style: none; }
.idi-c-chiaro .ch-met li { display: flex; align-items: center; gap: 10px; font: 700 15px "Montserrat", sans-serif; }
.idi-c-chiaro .ch-met li + li::before { content: ""; width: 34px; height: 2px; margin: 0 14px 0 4px; background: linear-gradient(90deg, rgba(240,150,26,.25), #F0961A); }
.idi-c-chiaro .ch-met li b { display: inline-flex; width: 28px; height: 28px; border-radius: 50%; align-items: center; justify-content: center; background: #F0961A; color: #00262C; font: 800 12px "IBM Plex Mono", monospace; }
.idi-c-chiaro .ch-cta { margin-left: auto; padding: 13px 24px; border-radius: 999px; background: #F0961A; color: #00262C; font: 800 15px "Montserrat", sans-serif; text-decoration: none; white-space: nowrap; transition: transform .2s ease, box-shadow .2s ease; }
.idi-c-chiaro .ch-cta:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(240,150,26,.4); }
/* entrata: le tessere salgono una dopo l'altra, una volta sola */
.idi-c-chiaro .ch-c { opacity: 0; transform: translateY(18px); }
.idi-c-chiaro.ch-on .ch-c { opacity: 1; transform: none; transition: opacity .5s ease calc(var(--i) * 70ms), transform .55s cubic-bezier(.2,.8,.2,1) calc(var(--i) * 70ms), box-shadow .3s ease, background .3s ease; }
.idi-c-chiaro.ch-on .ch-c:hover { transform: translateY(-6px); transition-delay: 0s; }
@media (max-width: 1100px) { .idi-c-chiaro .ch-g { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .idi-c-chiaro .ch-met li + li::before { width: 18px; margin: 0 10px 0 2px; } .idi-c-chiaro .ch-cta { margin-left: 0; } }
@media (max-width: 700px) { .idi-c-chiaro .ch-g { grid-template-columns: minmax(0, 1fr); } .idi-c-chiaro .ch-p { min-height: 0; } .idi-c-chiaro .ch-met ol { flex-direction: column; align-items: flex-start; gap: 12px; } .idi-c-chiaro .ch-met li + li::before { display: none; } }
@media (prefers-reduced-motion: reduce) { .idi-c-chiaro .ch-c { opacity: 1; transform: none; transition: none; } }
@media (min-width: 1101px) { .idi-c-chiaro .ch-met { flex-wrap: nowrap; } .idi-c-chiaro .ch-met ol { flex: 1; flex-wrap: nowrap; } .idi-c-chiaro .ch-met li { white-space: nowrap; } .idi-c-chiaro .ch-met li + li::before { width: 22px; margin: 0 12px 0 2px; } }
/* un solo arancione: anche la barra centrale del logo in header e footer */
.elementor-element-148d56b0, .elementor-element-11b1e7de { background-color: #F0961A !important; }
/* Home: blocchi messi da parte (restano nella pagina, nascosti su ogni schermo). Per farli tornare basta togliere queste righe */
.page-id-76 .elementor-element-68345fac, .page-id-76 .elementor-element-54df3f1a { display: none !important; }
.page-id-76 .elementor-element-690bfe4f { padding-top: 0 !important; }
/* footer: i titoli delle colonne si distinguono dalle voci */
.idi-pd-h { color: #F0961A !important; font-weight: 700 !important; letter-spacing: .12em !important; }
/* Home da telefono: meno testo sotto la casella della radiografia */
@media (max-width: 767px) { .page-id-76 .rx-basta { display: none; } }
/* footer da telefono: due colonne di link, righe più strette, note legali leggibili */
@media (max-width: 767px) {
  footer [data-id="435da36c"] { padding-top: 44px !important; padding-bottom: 24px !important; }
  footer [data-id="74ba7ec9"] { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; gap: 30px 18px !important; padding-bottom: 26px !important; }
  footer [data-id="67913688"], footer [data-id="7998ed94"] { grid-column: 1 / -1; }
  footer .idi-pd-col { gap: 0 !important; }
  footer .idi-pd-col .idi-pd-h { margin-bottom: 8px !important; font-size: 10.5px !important; letter-spacing: .06em !important; white-space: nowrap; }
  footer .idi-pd-col a { padding-top: 8px !important; padding-bottom: 8px !important; font-size: 14.5px !important; line-height: 1.3 !important; }
  footer [data-id="7998ed94"] > * { margin-top: 0 !important; }
  footer [data-id="52fa9473"] { display: flex !important; flex-direction: column-reverse !important; align-items: flex-start !important; gap: 16px !important; padding-top: 20px !important; }
  footer [data-id="59402420"] { display: flex !important; flex-wrap: wrap !important; gap: 10px 18px !important; }
  footer [data-id="52fa9473"] [data-id="59402420"] * { color: #F4F0E6 !important; font: 600 13.5px "Montserrat", sans-serif !important; letter-spacing: 0 !important; text-decoration: underline; text-decoration-color: rgba(240,150,26,.7); text-underline-offset: 4px; }
  footer [data-id="45640953"] { font-size: 11.5px !important; line-height: 1.6 !important; color: #7F9A9E !important; }
}
footer [data-id="59402420"] * { color: #C8D6D8 !important; }
/* mai scorrimento laterale: nessun elemento decorativo può allargare la pagina */
html, body { overflow-x: clip; }
/* telefono: nella parte iniziale prima l'animazione, poi i pulsanti */
@media (max-width: 767px) {
  html body .elementor-element-4fff2f2a:has(> .idi-c-cantiere) { display: flex !important; flex-direction: column !important; gap: 0 !important; }
  html body .elementor-element-4fff2f2a:has(> .idi-c-cantiere) > .elementor-element-40bed859 { display: contents !important; }
  html body .elementor-element-4fff2f2a:has(> .idi-c-cantiere) > .elementor-element-40bed859 > * { order: 1; }
  html body .elementor-element-4fff2f2a:has(> .idi-c-cantiere) > .idi-c-cantiere { order: 2; width: 100% !important; margin: 26px 0 8px !important; }
  html body .elementor-element-4fff2f2a:has(> .idi-c-cantiere) .elementor-element-d376cce { order: 3; margin-top: 18px !important; }
  html body .elementor-element-646751ad:has(> .idi-c-cantiere) { display: flex !important; flex-direction: column !important; }
  html body .elementor-element-646751ad > * { order: 1; }
  html body .elementor-element-646751ad > .idi-c-cantiere { order: 2; }
  html body .elementor-element-646751ad > .idi-blog-filtri { order: 3; }
}

/* landing Sardegna: il verdetto sullo sconto sotto la casella */
.idi-c-sconto .mb-step[data-s="0"] .mb-q { font-size: clamp(26px, 2.6vw, 38px); }
.idi-c-sconto .sc-due { margin-top: 12px; }
.idi-c-sconto #scNome { margin-top: 22px; }
.idi-c-sconto .sc-url { margin-top: 14px; font-size: 16px !important; min-height: 56px !important; }
.idi-c-sconto .ca-capito { color: #0B2B31; }
.idi-c-sconto .sc-verdetto { display: flex; align-items: center; gap: 14px; margin-top: 16px; padding: 14px 16px; border-radius: 16px; animation: scEntra 0.4s cubic-bezier(.2,1.3,.3,1); }
.idi-c-sconto .sc-verdetto[hidden] { display: none; }
.idi-c-sconto .sc-verdetto b { display: block; font: 800 16px/1.3 "Montserrat", sans-serif; color: #0B2B31; }
.idi-c-sconto .sc-verdetto small { display: block; margin-top: 3px; font: 500 14px/1.4 "Montserrat", sans-serif; color: #2F4448; }
.idi-c-sconto .sc-si { background: linear-gradient(120deg, rgba(240,150,26,0.18), rgba(240,150,26,0.06)); border: 2px dashed #F0961A; }
.idi-c-sconto .sc-no { background: rgba(11,43,49,0.05); border: 1px solid rgba(11,43,49,0.12); }
.idi-c-sconto .sc-badge { flex: none; display: inline-flex !important; align-items: center; justify-content: center; width: 74px; height: 74px; border-radius: 50%; background: #F0961A; color: #00262C !important; font: 900 22px "Montserrat", sans-serif !important; letter-spacing: -0.03em; transform: rotate(-8deg); box-shadow: 0 10px 26px rgba(240,150,26,0.4); }
@keyframes scEntra { from { opacity: 0; transform: translateY(8px) scale(0.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .idi-c-sconto .sc-verdetto { animation: none; } }

/* preventivo: chi c'è già passato */
.idi-c-fiducia, .idi-c-fiducia.e-con { margin-top: clamp(28px, 4vw, 48px) !important; padding: 0 !important; color: #F4F0E6; width: 100%; }
.page-id-265 [data-id="34df9d1b"] em { color: #F0961A !important; font-style: normal !important; }
.idi-c-fiducia .fd-g { display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); gap: 18px; }
.idi-c-fiducia .fd-k { display: block; margin: 0; font: 600 12px "IBM Plex Mono", monospace; letter-spacing: 0.12em; text-transform: uppercase; color: #A7BDC0; }
.idi-c-fiducia .fd-caso { position: relative; display: flex; flex-direction: column; padding: clamp(24px, 3vw, 38px); border-radius: 24px; background: linear-gradient(150deg, #005A68, #00262C 75%); border: 1px solid rgba(244,240,230,0.14); color: inherit; text-decoration: none; overflow: hidden; transition: transform 0.25s ease, border-color 0.25s ease; }
.idi-c-fiducia .fd-caso:hover { transform: translateY(-3px); border-color: #F0961A; }
.idi-c-fiducia .fd-num { display: flex; align-items: baseline; gap: 14px; margin-top: 18px; font: 900 clamp(48px, 6vw, 86px)/0.95 "Montserrat", sans-serif; letter-spacing: -0.04em; }
.idi-c-fiducia .fd-num s { text-decoration: none; color: #7F9A9E; font-size: 0.55em; }
.idi-c-fiducia .fd-num i { font-style: normal; color: #F0961A; font-size: 0.45em; }
.idi-c-fiducia .fd-num b { color: #F0961A; font-variant-numeric: tabular-nums; }
.idi-c-fiducia .fd-t { display: block; margin-top: 14px; max-width: 34ch; font: 600 17px/1.45 "Montserrat", sans-serif; color: #E3ECEC; }
.idi-c-fiducia .fd-curva { display: block; width: 100%; height: 70px; margin-top: auto; padding-top: 22px; }
.idi-c-fiducia .fd-curva path { fill: none; stroke: #F0961A; stroke-width: 3; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.idi-c-fiducia.fd-on .fd-curva path { transition: stroke-dashoffset 1.4s cubic-bezier(.3,.7,.2,1); stroke-dashoffset: 0; }
.idi-c-fiducia .fd-l { display: inline-block; margin-top: 14px; font: 800 15px "Montserrat", sans-serif; color: #F4F0E6; text-decoration: underline; text-decoration-color: #F0961A; text-underline-offset: 4px; }
.idi-c-fiducia .fd-clienti { padding: clamp(22px, 2.6vw, 32px); border-radius: 24px; background: rgba(244,240,230,0.04); border: 1px solid rgba(244,240,230,0.14); }
.idi-c-fiducia .fd-loghi { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.idi-c-fiducia .fd-logo { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; text-decoration: none; border: 1px solid rgba(244,240,230,0.12); transition: transform 0.2s ease, border-color 0.2s ease; }
.idi-c-fiducia .fd-logo:hover { transform: translateY(-3px); border-color: #F0961A; }
.idi-c-fiducia .fd-im { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 9; padding: 14px 18px; background: var(--bg); }
.idi-c-fiducia .fd-im img { display: block; max-width: 100%; max-height: 46px; width: auto; height: auto; object-fit: contain; }
.idi-c-fiducia .fd-logo small { display: block; padding: 8px 10px; background: rgba(0,20,24,0.6); font: 600 11.5px/1.3 "Montserrat", sans-serif; color: #C8D6D8; }
.idi-c-fiducia .fd-fatti { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 18px 0 0; padding: 20px 0 0; border-top: 1px solid rgba(244,240,230,0.14); }
.idi-c-fiducia .fd-fatti li { font: 500 14.5px/1.45 "Montserrat", sans-serif; color: #C8D6D8; }
.idi-c-fiducia .fd-fatti b { display: block; margin-bottom: 4px; font: 800 20px "Montserrat", sans-serif; color: #F4F0E6; }
@media (max-width: 960px) { .idi-c-fiducia .fd-g { grid-template-columns: minmax(0, 1fr); } .idi-c-fiducia .fd-fatti { grid-template-columns: minmax(0, 1fr); gap: 12px; } }
@media (max-width: 520px) { .idi-c-fiducia .fd-loghi { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) { .idi-c-fiducia .fd-curva path { stroke-dashoffset: 0; } }
.idi-c-fiducia.idi-v-chiuso .fd-caso:hover, .idi-c-fiducia.idi-v-chiuso .fd-logo:hover { transform: none; border-color: rgba(244,240,230,0.14); }

/* menu dell'header */
.idi-menu-servizi a, a.idi-menu-servizi { display: inline-flex; align-items: center; gap: 6px; }
.idi-menu-servizi a::after, a.idi-menu-servizi::after { content: ""; display: inline-block; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform 0.25s ease; }
.mn-aperto .idi-menu-servizi a::after, .mn-aperto a.idi-menu-servizi::after { transform: rotate(-135deg) translateY(-1px); }
[data-elementor-type="header"] nav a.qui:not(.idi-btn) { color: #F0961A !important; }
.mn-pannello { position: absolute; left: 50%; top: calc(100% - 6px); transform: translateX(-50%); width: min(1060px, calc(100vw - 40px)); z-index: 90; display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 14px; padding: 16px; border-radius: 24px; background: rgba(0, 38, 44, 0.97); border: 1px solid rgba(244,240,230,0.14); box-shadow: 0 40px 100px rgba(0,0,0,0.45); backdrop-filter: blur(12px); animation: mnGiu 0.28s cubic-bezier(.2,.8,.2,1); font-family: "Montserrat", sans-serif; }
.mn-pannello[hidden] { display: none; }
@keyframes mnGiu { from { opacity: 0; transform: translate(-50%, -8px); } to { opacity: 1; transform: translate(-50%, 0); } }
.mn-griglia { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.mn-serv { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border-radius: 16px; text-decoration: none; color: #F4F0E6; border: 1px solid transparent; transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease; animation: mnEntra 0.35s ease both; animation-delay: calc(var(--i) * 30ms); }
.mn-serv b { font: 800 16px "Montserrat", sans-serif; }
.mn-serv span { font: 500 13px/1.4 "Montserrat", sans-serif; color: #A7BDC0; }
.mn-serv:hover, .mn-serv:focus-visible { background: rgba(244,240,230,0.06); border-color: rgba(240,150,26,0.6); transform: translateY(-2px); outline: none; }
.mn-serv.qui b { color: #F0961A; }
.mn-rx { display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; padding: 18px; border-radius: 16px; background: #F0961A; color: #00262C; text-decoration: none; min-height: 150px; }
.mn-rx span { font: 600 11px "IBM Plex Mono", monospace; letter-spacing: 0.12em; text-transform: uppercase; }
.mn-rx b { font: 800 17px/1.25 "Montserrat", sans-serif; }
@keyframes mnEntra { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
/* hamburger e menu a tutto schermo */
.idi-c-menu { display: none !important; }
.mn-burger { position: relative; width: 46px; height: 46px; border-radius: 14px; border: 1px solid rgba(244,240,230,0.25); background: rgba(244,240,230,0.04); cursor: pointer; z-index: 120; }
.mn-burger i { position: absolute; left: 13px; right: 13px; height: 2px; border-radius: 2px; background: #F4F0E6; transition: transform 0.3s ease, opacity 0.2s ease, top 0.3s ease; }
.mn-burger i:nth-child(1) { top: 15px; } .mn-burger i:nth-child(2) { top: 22px; } .mn-burger i:nth-child(3) { top: 29px; background: #F0961A; }
.mn-burger.x i:nth-child(1) { top: 22px; transform: rotate(45deg); } .mn-burger.x i:nth-child(2) { opacity: 0; } .mn-burger.x i:nth-child(3) { top: 22px; transform: rotate(-45deg); background: #F4F0E6; }
.mn-tutto { position: fixed; inset: 0; z-index: 110; overflow-y: auto; background: radial-gradient(circle at 90% 0%, rgba(240,150,26,0.16), transparent 50%), #00262C; padding: calc(96px + env(safe-area-inset-top, 0px)) max(22px, env(safe-area-inset-right, 0px)) calc(28px + env(safe-area-inset-bottom, 0px)) max(22px, env(safe-area-inset-left, 0px)); font-family: "Montserrat", sans-serif; animation: mnApri 0.35s cubic-bezier(.2,.8,.2,1); }
.mn-tutto[hidden] { display: none; }
@keyframes mnApri { from { opacity: 0; clip-path: circle(0% at calc(100% - 44px) 44px); } to { opacity: 1; clip-path: circle(150% at calc(100% - 44px) 44px); } }
.mn-tutto-in { max-width: 560px; margin: 0 auto; display: flex; flex-direction: column; gap: 18px; }
.mn-k { margin: 0; font: 600 12px "IBM Plex Mono", monospace; letter-spacing: 0.12em; text-transform: uppercase; color: #A7BDC0; }
.mn-lista, .mn-voci { display: flex; flex-direction: column; }
.mn-lista a, .mn-voci a { padding: 10px 0; border-bottom: 1px solid rgba(244,240,230,0.1); color: #F4F0E6; text-decoration: none; animation: mnEntra 0.4s ease both; animation-delay: calc(var(--i) * 35ms + 80ms); }
.mn-lista a { font: 700 19px "Montserrat", sans-serif; }
.mn-voci a { font: 800 26px/1.1 "Montserrat", sans-serif; letter-spacing: -0.02em; }
.mn-lista a.qui, .mn-voci a.qui { color: #F0961A; }
.mn-cta { display: flex; justify-content: center; align-items: center; min-height: 56px; border-radius: 999px; background: #F0961A; color: #00262C; font: 800 17px "Montserrat", sans-serif; text-decoration: none; margin-top: 6px; }
.mn-piede { display: flex; flex-wrap: wrap; gap: 10px 18px; }
.mn-piede a { color: #C8D6D8; font: 600 14px "Montserrat", sans-serif; text-decoration: underline; text-decoration-color: rgba(240,150,26,0.6); text-underline-offset: 4px; }
html.mn-bloccato, html.mn-bloccato body { overflow: hidden; }
@media (max-width: 1024px) { .idi-c-menu { display: block !important; position: relative; z-index: 120; } .mn-pannello { display: none !important; } }
@media (prefers-reduced-motion: reduce) { .mn-pannello, .mn-serv, .mn-tutto, .mn-lista a, .mn-voci a { animation: none !important; } }
[data-elementor-type="header"] { position: relative; z-index: 100; }
/* menu aperto da telefono: logo e pulsante di chiusura restano visibili sopra il pannello */
html.mn-bloccato [data-elementor-type="header"] { z-index: 130 !important; }
/* header fisso su mobile */
@media (max-width: 1024px) {
  body { overflow-x: clip !important; }
  [data-elementor-type="header"] { position: sticky !important; top: 0; }
  html { scroll-padding-top: 96px; }
}
@media (min-width: 601px) and (max-width: 782px) { body.admin-bar [data-elementor-type="header"] { top: 46px; } }

/* card Radiografia nel menu Servizi: illustrazione telefono + referto */
.mn-rx { position: relative; overflow: hidden; transition: transform .2s ease; }
.mn-rx::before { content: ""; position: absolute; top: 18px; left: 18px; width: 132px; height: 80px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 132 80' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='3' width='42' height='74' rx='9' fill='rgba(244,240,230,0.32)' stroke='%2300262C' stroke-width='2.5'/%3E%3Cpath d='M21 9h12' stroke='%2300262C' stroke-width='2.5'/%3E%3Crect x='14' y='17' width='26' height='13' rx='3' fill='%2300262C' opacity='0.85'/%3E%3Cpath d='M14 37h26M14 44h18M14 60h22M14 67h14' stroke='%2300262C' stroke-width='3' opacity='0.55'/%3E%3Crect x='0' y='49' width='54' height='5' rx='2.5' fill='%23F4F0E6'/%3E%3Cpath d='M62 51h8' stroke='%2300262C' stroke-width='2.5' stroke-dasharray='2 4'/%3E%3Ccircle cx='82' cy='22' r='7' fill='%2300262C'/%3E%3Cpath d='M78.6 22l2.4 2.4 4.4-4.6' stroke='%23F0961A' stroke-width='2.2'/%3E%3Cpath d='M95 22h30' stroke='%2300262C' stroke-width='3.5'/%3E%3Ccircle cx='82' cy='40' r='7' fill='%2300262C'/%3E%3Cpath d='M78.6 40l2.4 2.4 4.4-4.6' stroke='%23F0961A' stroke-width='2.2'/%3E%3Cpath d='M95 40h24' stroke='%2300262C' stroke-width='3.5'/%3E%3Ccircle cx='82' cy='58' r='7' fill='none' stroke='%2300262C' stroke-width='2.5'/%3E%3Cpath d='M82 54.5v4M82 61.5v.1' stroke='%2300262C' stroke-width='2.5'/%3E%3Cpath d='M95 58h28' stroke='%2300262C' stroke-width='3.5'/%3E%3C/svg%3E") left top / contain no-repeat; }
.mn-rx:hover { transform: translateY(-2px); }
.mn-rx { min-height: 196px !important; }

/* entrata in scena dei blocchi */
html.idi-rv-attivo .idi-rv { opacity: 0; transform: translate3d(0, 24px, 0); }
html.idi-rv-attivo .idi-rv.idi-rv-on { opacity: 1; transform: none; transition: opacity 0.6s cubic-bezier(.2,.7,.2,1), transform 0.7s cubic-bezier(.2,.7,.2,1); }
@media (max-width: 767px) { html.idi-rv-attivo .idi-rv { transform: translate3d(0, 16px, 0); } html.idi-rv-attivo .idi-rv.idi-rv-on { transition-duration: 0.45s, 0.5s; } }
/* le tre schede crescono dal basso, una dopo l'altra (come nel mockup) */
html.idi-rv-attivo .idi-verbi-anim .idi-verbo { transform: scaleY(0.15); opacity: 0; transform-origin: 50% 100%; }
html.idi-rv-attivo .idi-verbi-anim.on .idi-verbo { transform: none; opacity: 1; transition: transform 0.8s cubic-bezier(.2,1.2,.35,1), opacity 0.4s ease; }
html.idi-rv-attivo .idi-verbi-anim.on .idi-verbo:nth-child(2) { transition-delay: 0.18s; }
html.idi-rv-attivo .idi-verbi-anim.on .idi-verbo:nth-child(3) { transition-delay: 0.36s; }
html.idi-rv-attivo .idi-verbi-anim.on .idi-verbo:nth-child(4) { transition-delay: 0.54s; }
@media (prefers-reduced-motion: reduce) { html.idi-rv-attivo .idi-rv, html.idi-rv-attivo .idi-verbi-anim .idi-verbo { opacity: 1 !important; transform: none !important; } }

/* ventaglio dei siti nell'hero delle pagine servizio */
.idi-vt { transition: transform 0.6s cubic-bezier(.2,1.2,.35,1); }
.idi-ventaglio:hover .idi-vt1 { transform: rotate(-11deg) translate(-26px, -10px) !important; }
.idi-ventaglio:hover .idi-vt3 { transform: rotate(9deg) translate(26px, 14px) !important; }
@media (prefers-reduced-motion: no-preference) { .idi-ventaglio .idi-vt { animation: idiVtIn 0.9s cubic-bezier(.2,1.1,.35,1) both; } .idi-ventaglio .idi-vt2 { animation-delay: 0.12s; } .idi-ventaglio .idi-vt3 { animation-delay: 0.24s; } }
@keyframes idiVtIn { from { opacity: 0; translate: 0 60px; } to { opacity: 1; translate: 0 0; } }
.idi-vt img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 11; object-fit: cover; object-position: top; }
/* schede "cosa c'è dentro": al passaggio diventano arancio */
.idi-dt { transition: transform 0.3s ease, background-color 0.3s ease !important; }
.idi-dt:hover { transform: translateY(-4px); background-color: #F0961A !important; }
.idi-dt:hover .idi-dt-n { color: #0B2B31 !important; }
/* lavori: la cornice si solleva al passaggio */
.idi-lav .idi-browser { transition: transform 0.4s cubic-bezier(.2,1.2,.4,1), box-shadow 0.4s ease; }
.idi-lav:hover .idi-browser { transform: translateY(-8px) rotate(-0.6deg); box-shadow: 0 30px 70px rgba(0,0,0,0.35); }
.idi-lav img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 11; object-fit: cover; object-position: top; }

/* titolo con sottotitolo nello stesso h1 (pagine dei casi) */
.idi-h1-sotto span { display: block; margin-top: 12px; font-size: 0.5em; line-height: 1.08; color: #F4F0E6; letter-spacing: -0.03em; }

/* ---------- blog: modello articolo ---------- */
.idi-art-hero { position: relative; overflow: hidden; background:radial-gradient(circle at 85% 0%, rgba(240,150,26,0.18), transparent 46%), radial-gradient(circle at 0% 100%, rgba(167,189,192,0.10), transparent 40%), #00262C !important; color: #F4F0E6; padding:clamp(64px, 9vw, 120px) 22px clamp(120px, 14vw, 190px) !important; }
.idi-art-hero.idi-art-hero-breve { padding-bottom:clamp(64px, 8vw, 104px) !important; }
.idi-art-hero-in { position: relative; max-width:980px !important; margin: 0 auto !important; display: flex !important; flex-direction: column; gap:22px !important; }
.idi-art-meta { margin:0 !important; font: 600 12.5px/1.4 "IBM Plex Mono", ui-monospace, monospace !important; letter-spacing: 0.12em; text-transform: uppercase; color: #F0961A !important; white-space: pre-wrap; }
.idi-art-h1 { margin:0 !important; font: 800 clamp(34px, 5.2vw, 64px)/1.04 "Montserrat", sans-serif !important; letter-spacing: -0.035em; color: #F4F0E6 !important; text-wrap: balance; }
.idi-art-lead { margin:0 !important; max-width: 760px; font: 500 clamp(17px, 1.6vw, 20px)/1.55 "Montserrat", sans-serif !important; color: #C8D6D8 !important; }
.idi-art-cover-w { position: relative; z-index: 2; padding:0 22px !important; margin-top: clamp(-150px, -11vw, -84px) !important; background:linear-gradient(#0000 0 50%, #F4F0E6 50%) !important; }
.idi-art-cover { display: block !important; max-width:1180px !important; margin: 0 auto !important; }
.idi-art-cover img, img.idi-art-cover { display: block !important; width: 100% !important; max-width:1180px !important; height: auto !important; aspect-ratio: 16 / 8; object-fit: cover; margin:0 auto !important; border-radius: 28px !important; box-shadow: 0 40px 90px rgba(0,38,44,0.28); background:#0B2B31 !important; }
.idi-art-corpo { background:#F4F0E6 !important; padding: clamp(48px, 7vw, 96px) 22px clamp(56px, 8vw, 110px) !important; }
.idi-art-griglia { max-width:1180px !important; margin: 0 auto !important; display: grid !important; grid-template-columns: 250px minmax(0, 1fr); gap:clamp(32px, 5vw, 80px) !important; align-items: start; }
/* indice laterale */
.idi-c-indice { position: sticky; top: 110px; font-family: "Montserrat", sans-serif; }
.ix-k span { display: none; }
.ix-k { margin: 0 0 14px; font: 600 11.5px "IBM Plex Mono", monospace; letter-spacing: 0.14em; text-transform: uppercase; color: #6C8286; }
.ix-lista { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 2px solid rgba(11,43,49,0.1); display: flex; flex-direction: column; gap: 2px; }
.ix-lista a { display: block; padding: 7px 0; color: #4C6266; font: 600 14px/1.35 "Montserrat", sans-serif; text-decoration: none; transition: color 0.2s ease, transform 0.2s ease; }
.ix-lista a:hover { color: #0B2B31; transform: translateX(3px); }
.ix-lista a.on { color: #0B2B31; }
.ix-lista li { position: relative; }
.ix-lista li:has(a.on)::before { content: ""; position: absolute; left: -16px; top: 6px; bottom: 6px; width: 2px; border-radius: 2px; background: #F0961A; }
.ix-cta { margin-top: 26px; display: flex; flex-direction: column; gap: 8px; padding: 18px; border-radius: 18px; background: #00262C; color: #F4F0E6; text-decoration: none; transition: transform 0.2s ease; }
.ix-cta:hover { transform: translateY(-2px); }
.ix-cta span { font: 600 10.5px "IBM Plex Mono", monospace; letter-spacing: 0.12em; text-transform: uppercase; color: #F0961A; }
.ix-cta b { font: 800 15px/1.3 "Montserrat", sans-serif; }
.ix-barra { position: fixed; left: 0; top: 0; height: 3px; width: 100%; transform-origin: 0 50%; transform: scaleX(0); background: #F0961A; z-index: 200; pointer-events: none; }
/* testo dell'articolo */
.idi-articolo { max-width: 740px; min-width: 0; font-family: "Montserrat", system-ui, sans-serif; color: #2F4448; }
.idi-articolo, .idi-articolo p, .idi-articolo li, .idi-articolo .elementor-widget-theme-post-content { font-family: "Montserrat", system-ui, sans-serif !important; color: #2F4448 !important; font-size: 18px; line-height: 1.75; }
.idi-articolo .elementor-widget-theme-post-content > *:first-child { margin-top: 0; }
.idi-articolo .elementor-widget-theme-post-content > p:first-child { font-size: 21px; line-height: 1.6; color: #0B2B31 !important; font-weight: 500; }
.idi-articolo p { margin: 0 0 1.15em; }
.idi-articolo h2 { scroll-margin-top: 110px; margin: 2.1em 0 0.6em; font: 800 clamp(26px, 2.6vw, 34px)/1.15 "Montserrat", sans-serif !important; letter-spacing: -0.025em; color: #0B2B31 !important; }
.idi-articolo h3 { scroll-margin-top: 110px; margin: 1.7em 0 0.5em; font: 700 clamp(20px, 1.8vw, 23px)/1.3 "Montserrat", sans-serif !important; color: #0B2B31 !important; }
.idi-articolo h4 { margin: 1.5em 0 0.4em; font: 700 18px/1.35 "Montserrat", sans-serif !important; color: #0B2B31 !important; }
.idi-articolo ul, .idi-articolo ol { margin: 0 0 1.3em; padding-left: 1.25em; }
.idi-articolo li { margin-bottom: 0.55em; padding-left: 0.2em; }
.idi-articolo li::marker { color: #F0961A; font-weight: 800; }
.idi-articolo a { color: #0B2B31 !important; font-weight: 600; text-decoration: underline; text-decoration-color: #F0961A; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.idi-articolo a:hover { color: #F0961A !important; }
.idi-articolo strong, .idi-articolo b { color: #0B2B31; font-weight: 700; }
.idi-articolo blockquote { margin: 1.8em 0; padding: 22px 26px; border-radius: 0 18px 18px 0; border-left: 4px solid #F0961A; background: #fff; font-size: 20px; font-weight: 600; color: #0B2B31; }
.idi-articolo blockquote p:last-child { margin: 0; }
.idi-articolo img { max-width: 100%; height: auto; border-radius: 18px; }
.idi-articolo figure { margin: 1.8em 0; }
.idi-articolo figcaption { margin-top: 8px; font-size: 14px; color: #6C8286; }
.idi-articolo table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 1.5em 0; }
.idi-articolo th, .idi-articolo td { padding: 10px 12px; border-bottom: 1px solid rgba(11,43,49,0.12); text-align: left; vertical-align: top; }
.idi-articolo hr { border: 0; height: 1px; background: rgba(11,43,49,0.14); margin: 2.4em 0; }
/* invito a fine articolo */
.idi-art-cta { background:#00262C !important; padding: clamp(56px, 8vw, 100px) 22px !important; }
.idi-art-cta-in { max-width:1180px !important; margin: 0 auto !important; display: grid !important; grid-template-columns: minmax(0, 1.3fr) auto; gap:28px 48px !important; align-items: end; padding:clamp(28px, 4vw, 52px) !important; border-radius: 30px !important; background:radial-gradient(circle at 100% 0%, rgba(240,150,26,0.28), transparent 55%), #0B3A42 !important; border: 1px solid rgba(244,240,230,0.12); }
.idi-art-cta-t { display: flex !important; flex-direction: column; gap:14px !important; }
.idi-art-cta-b { display: flex !important; flex-wrap: wrap; gap:12px !important; }
/* leggi anche / griglia del blog */
.idi-art-cor { background:#F4F0E6 !important; padding: clamp(56px, 8vw, 100px) 22px !important; }
.idi-art-cor-in { max-width:1180px !important; margin: 0 auto !important; display: flex !important; flex-direction: column; gap:32px !important; }
.idi-blog-griglia { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 26px !important; grid-auto-rows: auto !important; }
.idi-card-art { position: relative; display: flex !important; flex-direction: column; gap:0 !important; height: 100%; border-radius:24px !important; overflow: hidden; background:#fff !important; border: 1px solid rgba(11,43,49,0.08); text-decoration: none !important; color: inherit; transition: transform 0.35s cubic-bezier(.2,.8,.2,1), box-shadow 0.35s ease, border-color 0.35s ease; }
.idi-card-art:hover { transform: translateY(-6px); box-shadow: 0 30px 60px rgba(0,38,44,0.16); border-color: rgba(240,150,26,0.6); }
.idi-card-img { overflow: hidden; aspect-ratio: 16 / 10; background:#0B2B31 !important; }
.idi-card-img img, img.idi-card-img { display: block !important; width: 100% !important; height: 100% !important; object-fit: cover; aspect-ratio: 16 / 10; transition: transform 0.6s cubic-bezier(.2,.8,.2,1); }
.idi-card-art:hover .idi-card-img img, .idi-card-art:hover img.idi-card-img { transform: scale(1.05); }
.idi-card-txt { display: flex !important; flex-direction: column; gap:10px !important; padding: 22px 24px 26px !important; flex: 1; }
.idi-card-cat { margin:0 !important; font: 600 11.5px "IBM Plex Mono", monospace !important; letter-spacing: 0.12em; text-transform: uppercase; color: #C26F00 !important; }
.idi-card-tit { margin:0 !important; font: 800 20px/1.25 "Montserrat", sans-serif !important; letter-spacing: -0.015em; color: #0B2B31 !important; }
.idi-card-tit a { color: inherit !important; text-decoration: none !important; }
.idi-card-tit a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.idi-card-data { margin:auto 0 0 !important; padding-top: 8px; font: 500 13.5px "Montserrat", sans-serif !important; color: #6C8286 !important; }
.idi-blog-corpo { background:#F4F0E6 !important; padding: clamp(48px, 7vw, 90px) 22px clamp(64px, 9vw, 120px) !important; }
.idi-blog-corpo-in { max-width:1180px !important; margin: 0 auto !important; display: flex !important; flex-direction: column; gap:40px !important; }
.idi-blog-filtri { display: flex !important; flex-wrap: wrap; gap:10px !important; }
.idi-chip { display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; border-radius: 999px; border: 1px solid rgba(244,240,230,0.25); color: #F4F0E6 !important; font: 700 14px "Montserrat", sans-serif !important; text-decoration: none !important; transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease; background: transparent; }
.idi-chip:hover, .idi-chip.on { background: #F0961A; border-color: #F0961A; color: #00262C !important; }
.idi-blog-pag { display: flex !important; justify-content: center; gap:12px !important; margin-top: 44px !important; }
.idi-blog-pag a { display: inline-flex !important; align-items: center; min-height: 48px; padding:0 24px !important; border-radius: 999px !important; background:#00262C !important; color: #F4F0E6 !important; font: 700 15px "Montserrat", sans-serif; text-decoration: none; }
.idi-blog-pag a:hover { background:#F0961A !important; color: #00262C !important; }
@media (max-width: 1024px) {
  .idi-art-griglia { grid-template-columns: minmax(0, 1fr); }
  .idi-c-indice { position: relative !important; top: auto !important; order: -1; }
  .idi-c-indice .ix-cta { display: none; }
  .idi-blog-griglia { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .idi-art-cta-in { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 1024px) { .ix-box { border-radius: 18px; background: #fff; border: 1px solid rgba(11,43,49,0.08); padding: 16px 18px; } .ix-box[data-chiuso] .ix-lista { display: none; } .ix-k { cursor: pointer; margin: 0; display: flex; justify-content: space-between; } .ix-box:not([data-chiuso]) .ix-k { margin-bottom: 12px; } .ix-k span { display: inline-flex; align-items: center; gap: 6px; color: #0B2B31; } .ix-k span::after { content: "▾"; } }
@media (max-width: 680px) {
  .idi-blog-griglia { grid-template-columns: minmax(0, 1fr) !important; }
  .idi-articolo, .idi-articolo p, .idi-articolo li { font-size: 17px; }
  .idi-art-cover img, img.idi-art-cover { border-radius:18px !important; aspect-ratio: 16 / 10; }
}
@media (prefers-reduced-motion: reduce) { .idi-card-art, .idi-card-img img, .ix-lista a { transition: none !important; } }

.idi-art-hero .idi-art-hero-in { margin-left: auto !important; margin-right: auto !important; }
.idi-art-cover-w .idi-art-cover { margin-left: auto !important; margin-right: auto !important; border-radius: 28px !important; width: 100% !important; }
@media (max-width: 680px) { .idi-art-cover-w .idi-art-cover { border-radius: 18px; } }
/* correzioni sui valori predefiniti di Elementor */
.idi-card-art.e-con, .idi-card-art { padding: 0 !important; gap: 0 !important; }
.idi-card-txt { padding: 22px 24px 26px !important; }
.idi-card-img { border-radius: 0 !important; max-width: 100% !important; width: 100% !important; }
.idi-blog-griglia, .idi-art-cor .e-collection-loop-base, .idi-blog-corpo .e-collection-loop-base { padding: 0 !important; }
a.idi-chip, .idi-chip.e-button-base { background: transparent !important; border: 1px solid rgba(244,240,230,0.28) !important; border-radius: 999px !important; padding: 0 18px !important; min-height: 42px; color: #F4F0E6 !important; }
a.idi-chip:hover, a.idi-chip.on { background: #F0961A !important; border-color: #F0961A !important; color: #00262C !important; }
.idi-blog-filtri { padding: 0 !important; margin-top: 8px !important; }
.idi-blog-pag a, .idi-blog-pag > * { background: #00262C; color: #F4F0E6 !important; border-radius: 999px !important; min-height: 48px; padding: 0 24px !important; display: inline-flex !important; align-items: center; font: 700 15px "Montserrat", sans-serif !important; text-decoration: none !important; }
.idi-blog-pag p { margin: 0 !important; color: inherit !important; font: inherit !important; }
.idi-art-hero-in > *, .idi-art-cor-in > *, .idi-art-cta-t > * { margin-top: 0 !important; }

a.idi-chip { display: inline-flex !important; align-items: center !important; justify-content: center; line-height: 1 !important; font: 700 14px/1 "Montserrat", sans-serif !important; }
/* briciole di pane e nome della pagina: identici in tutte le pagine */
.idi-briciole, p.idi-briciole { margin: 0 !important; font: 400 12px/1.5 "IBM Plex Mono", monospace !important; letter-spacing: 0.06em; color: #A7BDC0 !important; text-transform: none !important; }
.idi-briciole a { color: #A7BDC0 !important; text-decoration: none; transition: color 0.2s ease; }
.idi-briciole a:hover { color: #F0961A !important; }
.idi-briciole + .idi-eyebrow, .idi-briciole + p { margin-top: 26px !important; }
.idi-c-scansione .idi-eyebrow::before { content: none; }
.sc-traccia .idi-eyebrow, .sc-traccia .idi-briciole, .sc-traccia .idi-briciole a { color: transparent !important; }
.idi-briciole + .idi-eyebrow, .idi-briciole + p.idi-eyebrow { margin-top: 26px !important; margin-bottom: 0 !important; font: 400 12px/1.5 "IBM Plex Mono", monospace !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; color: #F0961A !important; }
/* sotto le briciole parte subito il titolo della pagina */
.idi-briciole + *, .idi-briciole + h1, .idi-briciole + p { margin-top: 26px !important; }

/* allineamento: stessa griglia delle altre pagine (contenuto max 1280px, margini 40 / 32 / 20px come l'intestazione) */
.idi-art-hero, .idi-art-cover-w, .idi-art-corpo, .idi-art-cta, .idi-art-cor, .idi-blog-corpo { padding-left: 40px !important; padding-right: 40px !important; }
.idi-art-hero-in, .idi-art-hero .idi-art-hero-in, .idi-art-cover, .idi-art-cover img, img.idi-art-cover, .idi-art-griglia, .idi-art-cta-in, .idi-art-cor-in, .idi-blog-corpo-in { max-width: 1280px !important; margin-left: auto !important; margin-right: auto !important; }
.idi-art-hero-in { width: 100%; }
.idi-art-hero-in > h1, .idi-art-h1 { max-width: 980px; }
@media (max-width: 1024px) { .idi-art-hero, .idi-art-cover-w, .idi-art-corpo, .idi-art-cta, .idi-art-cor, .idi-blog-corpo { padding-left: 32px !important; padding-right: 32px !important; } }
@media (max-width: 767px) { .idi-art-hero, .idi-art-cover-w, .idi-art-corpo, .idi-art-cta, .idi-art-cor, .idi-blog-corpo { padding-left: 20px !important; padding-right: 20px !important; } }
.idi-art-hero-in, .idi-art-hero .idi-art-hero-in, .idi-blog-corpo-in, .idi-art-cor-in { padding-left: 0 !important; padding-right: 0 !important; }

/* reticolato fisso nella parte alta di tutte le pagine interne (come Chi siamo, senza animazione) */
body:not(.home) .elementor:not(.elementor-location-header):not(.elementor-location-footer):not(.elementor-location-popup) > .e-con:first-child:not(.idi-c-scansione) { position: relative; isolation: isolate; }
body:not(.home) .elementor:not(.elementor-location-header):not(.elementor-location-footer):not(.elementor-location-popup) > .e-con:first-child:not(.idi-c-scansione)::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(rgba(244,240,230,0.035) 1px, transparent 1px) 0 0 / 100% 48px, linear-gradient(90deg, rgba(244,240,230,0.035) 1px, transparent 1px) 0 0 / 48px 100%, radial-gradient(ellipse 55% 60% at 80% 35%, rgba(240,150,26,0.08), transparent 70%); }
/* Home: reticolato più leggero, sfumato verso il basso */
body.home .elementor:not(.elementor-location-header):not(.elementor-location-footer):not(.elementor-location-popup) > .e-con:first-child { position: relative; isolation: isolate; }
body.home .elementor:not(.elementor-location-header):not(.elementor-location-footer):not(.elementor-location-popup) > .e-con:first-child::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(rgba(244,240,230,0.028) 1px, transparent 1px) 0 0 / 100% 48px, linear-gradient(90deg, rgba(244,240,230,0.028) 1px, transparent 1px) 0 0 / 48px 100%; -webkit-mask-image: linear-gradient(#000 55%, transparent); mask-image: linear-gradient(#000 55%, transparent); }

/* landing campagne (pagina senza header e footer del sito, con intestazione .idi-lp-testa) */
body:has(.idi-lp-testa) .elementor *, body:has(.idi-lp-testa) .elementor *::before, body:has(.idi-lp-testa) .elementor *::after { animation: none !important; }
body:has(.idi-lp-testa) .idi-fq.scrive .idi-fa-p { color: inherit !important; }
body:has(.idi-lp-testa) .idi-fq.scrive .idi-fa-p::before { display: none !important; }
.idi-lp-testa { position: sticky !important; top: 0; z-index: 50; }
body.admin-bar .idi-lp-testa { top: 32px; }
body:has(.idi-lp-testa) h1 { font-size: clamp(34px, 4.1vw, 60px) !important; line-height: 1.04 !important; }
body:has(.idi-lp-testa) .idi-briciole { color: #F0961A !important; text-transform: uppercase; letter-spacing: .14em; }
@media (max-width: 1024px) {
  .idi-lp-testa .idi-lp-info { display: none !important; }
}
@media (max-width: 767px) {
  body.admin-bar .idi-lp-testa { top: 0; }
  .idi-lp-testa .idi-btn { padding: 10px 14px !important; font-size: 12px !important; white-space: nowrap; }
}
.idi-lp-testa .idi-lp-nav { display: flex !important; align-items: center; gap: 22px; }
a[href^="mailto:"].e-con > *:nth-child(2) { font-size: clamp(15px, 1.25vw, 19px) !important; overflow-wrap: normal !important; word-break: normal !important; }

/* stessa distanza tra menu e briciole di pane in tutte le pagine (come Contatti, servizi, progetti) */
.idi-art-hero { padding-top: clamp(36px, 4.4vw, 64px) !important; }
.elementor-element-3b357d41.idi-band, .elementor-element-345713c9.idi-wrap { padding-top: clamp(36px, 4.4vw, 64px) !important; }
.idi-art-hero-in, .idi-art-hero .idi-art-hero-in { padding-top: 0 !important; }
/* da telefono il pulsante fisso di Cookiebot copriva testi e barre: le preferenze restano nel link "Preferenze cookie" del footer */
@media (max-width: 767px) { #CookiebotWidget { display: none !important; } }

/* === controlli da telefono === */
/* link lunghi negli articoli: vanno a capo invece di allargare la pagina */
.idi-articolo a, .idi-articolo p, .idi-articolo li { overflow-wrap: anywhere; }
/* paginazione del blog: niente pulsante "più recenti" sulla prima pagina */
.idi-blog-pag .e--disabled { display: none !important; }
/* etichette delle schede articolo un po' più leggibili */
.idi-card-cat { font-size: 12px !important; }
@media (max-width: 767px) {
  /* link del footer: area di tocco più comoda */
  [data-elementor-type="footer"] a.e-paragraph-base, [data-elementor-type="footer"] .e-paragraph-base > a { display: inline-block; padding-top: 7px !important; padding-bottom: 7px !important; }
  .idi-lp-testa a.e-paragraph-base, .elementor-element-59402420 a { display: inline-block; padding-top: 7px !important; padding-bottom: 7px !important; }
}
@media (max-width: 400px) {
  /* landing: logo e pulsante WhatsApp stanno nella barra anche sui telefoni più stretti */
  .idi-lp-testa .idi-btn { padding: 9px 11px !important; font-size: 11px !important; letter-spacing: 0 !important; }
}
@media (max-width: 400px) { .idi-lp-testa .idi-btn span { display: none !important; } .idi-lp-testa .idi-btn { padding: 9px 14px !important; font-size: 12px !important; } }
/* Contatti: quattro canali, quattro forme diverse */
:is(.page-id-264, .page-id-623) .elementor-element-54f571b0 { grid-template-columns: 1fr 1fr !important; gap: 14px !important; }
:is(.page-id-264, .page-id-623) .elementor-element-54f571b0 > a { position: relative; min-width: 0; transition: transform .2s ease, border-color .2s ease; }
:is(.page-id-264, .page-id-623) .elementor-element-54f571b0 > a:hover { transform: translateY(-2px); }
:is(.page-id-264, .page-id-623) .elementor-element-54f571b0 > a > * { min-width: 0; overflow-wrap: anywhere; }
:is(.page-id-264, .page-id-623) .elementor-element-54f571b0 > a > *:first-child { padding-right: 44px; }
:is(.page-id-264, .page-id-623) .elementor-element-54f571b0 > a::before { content: ""; position: absolute !important; top: 22px; right: 22px !important; left: auto !important; bottom: auto !important; width: 24px; height: 24px; background: currentColor; -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
/* WhatsApp: un fumetto arancione, il canale principale */
:is(.page-id-264, .page-id-623) .elementor-element-133d2592 { grid-column: 1 / -1; background: #F0961A !important; border-color: #F0961A !important; color: #00262C !important; border-radius: 26px 26px 26px 6px !important; padding: 26px 28px !important; margin-bottom: 10px; --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l1.7-5A8.6 8.6 0 1 1 8 19.4z'/%3E%3Cpath d='M9 10h.01M12.5 10h.01M16 10h.01'/%3E%3C/svg%3E"); }
:is(.page-id-264, .page-id-623) .elementor-element-133d2592::after { content: ""; position: absolute; left: 0; bottom: -11px; width: 22px; height: 12px; background: #F0961A; clip-path: polygon(0 0, 100% 0, 0 100%); }
:is(.page-id-264, .page-id-623) .elementor-element-133d2592 > * { color: #00262C !important; }
:is(.page-id-264, .page-id-623) .elementor-element-133d2592 > *:nth-child(2) { font-size: clamp(24px, 2.2vw, 30px) !important; }
:is(.page-id-264, .page-id-623) .elementor-element-133d2592 > *:nth-child(3) { font-weight: 600; }
:is(.page-id-264, .page-id-623) .elementor-element-133d2592::before { width: 30px; height: 30px; }
/* Telefono: contorno netto, il numero in grande */
:is(.page-id-264, .page-id-623) .elementor-element-7fba81bb { background: transparent !important; border: 1.5px solid rgba(244,240,230,0.35) !important; --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
:is(.page-id-264, .page-id-623) .elementor-element-7fba81bb:hover { border-color: #F0961A !important; }
/* Sede: una piantina stilizzata */
:is(.page-id-264, .page-id-623) .elementor-element-60810849 { background-color: rgba(244,240,230,0.05) !important; background-image: radial-gradient(circle at 82% 70%, rgba(240,150,26,0.28), transparent 26%), linear-gradient(115deg, transparent 47%, rgba(244,240,230,0.12) 47.5%, rgba(244,240,230,0.12) 50%, transparent 50.5%), linear-gradient(rgba(244,240,230,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(244,240,230,0.05) 1px, transparent 1px) !important; background-size: auto, auto, 22px 22px, 22px 22px !important; --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
:is(.page-id-264, .page-id-623) .elementor-element-60810849::before { color: #F0961A; }
/* Email: una busta da posta aerea, su tutta la larghezza */
:is(.page-id-264, .page-id-623) .elementor-element-206a8d49 { grid-column: 1 / -1; order: 4; background-color: #F4F0E6 !important; color: #00262C !important; border: 0 !important; padding-top: 30px !important; overflow: hidden; --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M22 7l-10 6L2 7'/%3E%3C/svg%3E"); }
:is(.page-id-264, .page-id-623) .elementor-element-206a8d49::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: repeating-linear-gradient(135deg, #F0961A 0 14px, #F4F0E6 14px 22px, #00626E 22px 36px, #F4F0E6 36px 44px); }
:is(.page-id-264, .page-id-623) .elementor-element-206a8d49::before { top: 28px; }
:is(.page-id-264, .page-id-623) .elementor-element-206a8d49 > * { color: #00262C !important; }
:is(.page-id-264, .page-id-623) a.elementor-element-206a8d49 > *:nth-child(2) { font-size: clamp(16px, 1.55vw, 22px) !important; word-break: normal !important; overflow-wrap: anywhere !important; }
:is(.page-id-264, .page-id-623) .elementor-element-206a8d49 > *:nth-child(3) { color: #F0961A !important; font-weight: 600; }
@media (max-width: 480px) {
  :is(.page-id-264, .page-id-623) .elementor-element-54f571b0 { grid-template-columns: 1fr !important; }
  :is(.page-id-264, .page-id-623) a.elementor-element-206a8d49 > *:nth-child(2) { font-size: min(17px, 4.2vw) !important; }
}
@media (min-width: 521px) { :is(.page-id-264, .page-id-623) a.elementor-element-206a8d49 br { display: none; } }
:is(.page-id-264, .page-id-623) .elementor-element-7fba81bb:hover, :is(.page-id-264, .page-id-623) .elementor-element-60810849:hover, :is(.page-id-264, .page-id-623) .elementor-element-7fba81bb:hover > *, :is(.page-id-264, .page-id-623) .elementor-element-60810849:hover > * { color: #F4F0E6 !important; }
:is(.page-id-264, .page-id-623) .elementor-element-7fba81bb:hover { background-color: rgba(244,240,230,0.08) !important; }
:is(.page-id-264, .page-id-623) .elementor-element-60810849:hover { background-color: rgba(244,240,230,0.1) !important; border-color: #F0961A !important; }
:is(.page-id-264, .page-id-623) .elementor-element-7fba81bb:hover > *:last-child, :is(.page-id-264, .page-id-623) .elementor-element-60810849:hover > *:last-child { color: #F0961A !important; }
/* Preventivo: quarto passo diverso dal terzo, la scala sale fino a "Decidi tu" */
.page-id-265 .elementor-element-7f32ecbf { background: #00626E !important; box-shadow: 0 30px 60px rgba(0,38,44,0.28); position: relative; }
.page-id-265 .elementor-element-7f32ecbf::after { content: ""; position: absolute; top: 26px; right: 26px; width: 34px; height: 34px; border-radius: 50%; background: #F0961A url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300262C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 18px no-repeat; }
.page-id-265 .elementor-element-7f32ecbf > .idi-verbo-n { color: #F0961A !important; }
@media (min-width: 1025px) { .page-id-265 .elementor-element-69b703e4 { min-height: 330px !important; } }
.page-id-265 [data-id="617a8433"] { text-decoration: none !important; }
.page-id-623 h1 em { color: #F0961A; font-style: normal; }
/* Thank you page: un solo blocco leggero sotto */
.idi-gz-leggero { display: grid !important; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(24px, 4vw, 64px); align-items: center; padding: 0 !important; }
.idi-gz-leggero > div:first-child { padding: 0 !important; }
.idi-gz-leggero .idi-h2 em { color: #F0961A; font-style: normal; }
.idi-gz-leggero .e-flexbox { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
@media (max-width: 860px) { .idi-gz-leggero { grid-template-columns: minmax(0, 1fr); } }
.idi-gz-leggero .idi-lead { color: #2F4448 !important; }
.idi-gz-leggero .e-flexbox { padding: 0 !important; gap: 12px !important; }
.page-id-623 [data-id="72b59603"] { display: flex !important; flex-wrap: wrap !important; gap: 14px !important; }
.page-id-604 [data-id="538bb5eb"] em { color: #F0961A; font-style: normal; }
/* Landing Sardegna: un solo blocco "Come lavoriamo", quattro passi in fila */
.page-id-604 [data-id="5e05f787"] em { color: #F0961A; font-style: normal; }
.page-id-604 .elementor-element-1f43b1af { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; counter-reset: passo; position: relative; }
.page-id-604 .elementor-element-1f43b1af > div { position: relative; border-top: 4px solid #F0961A !important; }
.page-id-604 .elementor-element-1f43b1af > div:nth-child(2) { border-top-color: #2C8796 !important; }
.page-id-604 .elementor-element-1f43b1af > div:nth-child(3) { border-top-color: #00262C !important; }
.page-id-604 .elementor-element-1f43b1af > div:nth-child(4) { background: #00262C !important; border-top-color: #F0961A !important; }
.page-id-604 .elementor-element-1f43b1af > div:nth-child(4) * { color: #F4F0E6 !important; }
@media (max-width: 1024px) { .page-id-604 .elementor-element-1f43b1af { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 600px) { .page-id-604 .elementor-element-1f43b1af { grid-template-columns: minmax(0, 1fr) !important; } }
.page-id-623 [data-id="72b59603"] { padding: 0 !important; margin-top: 26px !important; }

/* ---------- Chi siamo ---------- */
.idi-chi-hero { position: relative !important; overflow: hidden !important; min-height: calc(100vh - 80px); display: flex !important; align-items: center; padding: clamp(60px, 8vw, 110px) 22px !important; background: radial-gradient(circle at 80% 10%, rgba(240,150,26,0.16), transparent 45%), radial-gradient(circle at 10% 90%, rgba(0,120,135,0.25), transparent 50%), #00262C !important; color: #F4F0E6; }
.rt-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.idi-chi-hero-in { position: relative; z-index: 1; width: 100%; max-width: 1240px !important; margin: 0 auto !important; display: grid !important; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: clamp(32px, 5vw, 72px) !important; align-items: center; padding: 0 !important; }
.idi-chi-hero-t { display: flex !important; flex-direction: column; gap: 24px !important; padding: 0 !important; }
.idi-chi-h1 { margin: 0 !important; font: 900 clamp(40px, 6vw, 84px)/0.98 "Montserrat", sans-serif !important; letter-spacing: -0.045em; color: #F4F0E6 !important; text-wrap: balance; }
.idi-chi-h1 em, .idi-chi-h1 .hl { font-style: normal; color: #F0961A; }
.idi-chi-lead { margin: 0 !important; max-width: 560px; font: 500 clamp(17px, 1.5vw, 20px)/1.6 "Montserrat", sans-serif !important; color: #C8D6D8 !important; }
.idi-chi-btns { display: flex !important; flex-wrap: wrap; gap: 12px !important; padding: 0 !important; }
.idi-chi-hero .idi-art-meta { color: #F0961A !important; }
/* sala macchine */
.idi-c-sala { padding: 0 !important; }
.sl-win { border-radius: 22px; overflow: hidden; background: rgba(0,20,24,0.82); border: 1px solid rgba(244,240,230,0.14); box-shadow: 0 50px 120px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.05); backdrop-filter: blur(8px); font-family: "IBM Plex Mono", ui-monospace, monospace; transform: perspective(1400px) rotateY(-8deg) rotateX(3deg); transition: transform 0.6s cubic-bezier(.2,.8,.2,1); }
.idi-c-sala:hover .sl-win { transform: none; }
.sl-bar { display: flex; align-items: center; gap: 7px; padding: 13px 16px; border-bottom: 1px solid rgba(244,240,230,0.1); }
.sl-bar i { width: 10px; height: 10px; border-radius: 50%; background: rgba(244,240,230,0.2); }
.sl-bar i:first-child { background: #F0961A; }
.sl-bar span { margin-left: 10px; font-size: 12px; color: #6C8286; letter-spacing: 0.04em; }
.sl-corpo { min-height: 330px; padding: 20px 22px; display: flex; flex-direction: column; justify-content: flex-end; gap: 14px; }
.sl-riga { margin: 0; display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 12px; align-items: baseline; font-size: 14.5px; line-height: 1.5; color: #E6EDEE; animation: slEntra 0.35s ease both; }
.sl-riga:not(:last-child) { opacity: 0.55; }
.sl-chi { display: inline-flex; justify-content: center; padding: 3px 0; border-radius: 6px; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; }
.sl-ai .sl-chi { background: rgba(0,170,190,0.18); color: #6FD6E2; }
.sl-team .sl-chi { background: rgba(240,150,26,0.18); color: #F0961A; }
.sl-riga:last-child .sl-t::after { content: ""; display: inline-block; width: 8px; height: 1.05em; margin-left: 3px; vertical-align: -2px; background: #F0961A; animation: slCur 0.9s steps(1) infinite; }
.sl-piede { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 14px 22px; border-top: 1px solid rgba(244,240,230,0.1); font-size: 11.5px; color: #A7BDC0; }
.sl-piede span { display: inline-flex; align-items: center; gap: 8px; }
.sl-p { width: 8px; height: 8px; border-radius: 50%; }
.sl-p-ai { background: #6FD6E2; animation: slPulsa 1.6s ease-out infinite; }
.sl-p-team { background: #F0961A; }
@keyframes slEntra { from { opacity: 0; transform: translateY(8px); } }
@keyframes slCur { 50% { opacity: 0; } }
@keyframes slPulsa { 0% { box-shadow: 0 0 0 0 rgba(111,214,226,0.6); } 100% { box-shadow: 0 0 0 9px rgba(111,214,226,0); } }
/* manifesto che si accende */
.idi-chi-man { background: #00262C !important; padding: clamp(80px, 12vw, 180px) 22px !important; }
.idi-chi-man-in { max-width: 1180px !important; margin: 0 auto !important; padding: 0 !important; display: flex !important; flex-direction: column; gap: 28px !important; }
.idi-c-scrub, .idi-c-scrub.e-heading-base { margin: 0 !important; font: 800 clamp(30px, 4.6vw, 64px)/1.12 "Montserrat", sans-serif !important; letter-spacing: -0.03em; color: #F4F0E6 !important; }
.idi-c-scrub .sw { color: rgba(244,240,230,0.16); transition: color 0.35s ease; }
.idi-c-scrub .sw.on { color: #F4F0E6; }
.idi-c-scrub .sw.on:nth-last-child(-n+5) { color: #F0961A; }
/* sezioni chiare e scure */
.idi-chi-sez { background: #F4F0E6 !important; padding: clamp(72px, 10vw, 140px) 22px !important; }
.idi-chi-sez.idi-chi-scura { background: #00262C !important; }
.idi-chi-sez-in { max-width: 1180px !important; margin: 0 auto !important; padding: 0 !important; display: flex !important; flex-direction: column; gap: 22px !important; }
.idi-chi-ind { max-width: 760px; }
/* metodo orizzontale */
.idi-c-orizzontale { position: relative; background: #0B3A42 !important; padding: clamp(72px, 9vw, 120px) 0 !important; overflow: visible !important; }
.idi-c-orizzontale .idi-chi-sez-in { padding: 0 22px !important; }
.oz-fermo { position: relative; }
.idi-oz-pista { display: grid !important; grid-auto-flow: column; grid-auto-columns: minmax(300px, 1fr); gap: 22px !important; padding: 34px 22px 0 !important; max-width: 1180px; margin: 0 auto !important; }
.idi-c-orizzontale.oz-on { padding: 0 !important; }
.idi-c-orizzontale.oz-on .oz-fermo { position: sticky; top: 0; height: 100vh; overflow: hidden; display: flex; flex-direction: column; justify-content: center; }
.idi-c-orizzontale.oz-on .idi-oz-pista { grid-auto-columns: min(560px, 46vw); max-width: none; margin: 0 !important; padding: 34px 0 0 max(22px, calc((100vw - 1180px) / 2)) !important; will-change: transform; }
.idi-c-orizzontale.oz-on .oz-fermo > .idi-chi-sez-in { width: 100%; }
.idi-oz-pan { position: relative; display: flex !important; flex-direction: column; gap: 16px !important; min-height: 380px; padding: clamp(26px, 3vw, 40px) !important; border-radius: 28px !important; background: #00262C !important; border: 1px solid rgba(244,240,230,0.12); overflow: hidden; color: #F4F0E6; }
.idi-oz-pan::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(240,150,26,0.28), transparent 70%); pointer-events: none; }
.idi-oz-n { margin: 0 !important; font: 900 clamp(64px, 7vw, 110px)/0.9 "Montserrat", sans-serif !important; letter-spacing: -0.05em; color: transparent !important; -webkit-text-stroke: 1.5px rgba(240,150,26,0.9); }
.idi-oz-h { margin: 0 !important; font: 800 clamp(26px, 2.6vw, 36px)/1.1 "Montserrat", sans-serif !important; letter-spacing: -0.02em; color: #F4F0E6 !important; }
.idi-oz-p { margin: 0 !important; font: 500 17px/1.6 "Montserrat", sans-serif !important; color: #C8D6D8 !important; }
.idi-oz-tag { margin: auto 0 0 !important; align-self: flex-start; padding: 8px 14px !important; border-radius: 99px; background: rgba(240,150,26,0.14); font: 600 12px "IBM Plex Mono", monospace !important; letter-spacing: 0.06em; color: #F0961A !important; }
.oz-barra { position: relative; height: 3px; margin: 34px max(22px, calc((100vw - 1180px) / 2)) 0; background: rgba(244,240,230,0.12); border-radius: 3px; display: none; }
.oz-on .oz-barra { display: block; }
.oz-barra i { position: absolute; inset: 0; background: #F0961A; border-radius: 3px; transform-origin: 0 50%; transform: scaleX(0); }
.idi-c-orizzontale .idi-h2, .idi-c-orizzontale h2 { color: #F4F0E6 !important; }
/* regole impilate */
.idi-pila { display: flex !important; flex-direction: column; gap: 20px !important; padding: 0 !important; }
.idi-pila-card { position: sticky; top: calc(100px + var(--i, 0) * 16px); display: grid !important; grid-template-columns: 120px minmax(0, 1fr); gap: 8px 28px !important; align-items: start; padding: clamp(26px, 3.4vw, 44px) !important; border-radius: 28px !important; background: #FFFFFF !important; border: 1px solid rgba(11,43,49,0.08); box-shadow: 0 -16px 40px rgba(0,38,44,0.08); }
.idi-pila-card:nth-child(even) { background: #0B2B31 !important; }
.idi-pila-card:nth-child(even) .idi-pila-h { color: #F4F0E6 !important; }
.idi-pila-card:nth-child(even) .idi-pila-p { color: #C8D6D8 !important; }
.idi-pila-n { grid-row: span 2; margin: 0 !important; font: 900 64px/0.9 "Montserrat", sans-serif !important; color: #F0961A !important; letter-spacing: -0.05em; }
.idi-pila-h { margin: 0 !important; font: 800 clamp(24px, 2.4vw, 34px)/1.15 "Montserrat", sans-serif !important; color: #0B2B31 !important; letter-spacing: -0.02em; }
.idi-pila-p { margin: 0 !important; font: 500 17px/1.6 "Montserrat", sans-serif !important; color: #2F4448 !important; max-width: 640px; }
/* prove: muro inclinato */
.idi-chi-prove { position: relative; overflow: hidden !important; background: #00262C !important; padding: clamp(72px, 10vw, 130px) 22px !important; }
.idi-chi-prove-in { position: relative; z-index: 1; max-width: 1180px !important; margin: 0 auto !important; display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px) !important; align-items: center; padding: 0 !important; }
.idi-c-muro { position: relative; height: 620px; padding: 0 !important; border-radius: 28px; overflow: hidden; -webkit-mask-image: linear-gradient(transparent, #000 14%, #000 86%, transparent); mask-image: linear-gradient(transparent, #000 14%, #000 86%, transparent); }
.mu-piano { position: absolute; inset: -30% -20%; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; transform: rotateX(28deg) rotateZ(-16deg) skewX(8deg); transform-origin: center; }
.mu-col { overflow: hidden; }
.mu-nastro { display: flex; flex-direction: column; gap: 16px; animation: muSu 38s linear infinite; }
.mu-col:nth-child(even) .mu-nastro { animation-direction: reverse; animation-duration: 44s; }
.mu-nastro img { display: block; width: 100%; aspect-ratio: 16 / 11; object-fit: cover; object-position: top; border-radius: 12px; box-shadow: 0 20px 40px rgba(0,0,0,0.35); }
@keyframes muSu { to { transform: translateY(-50%); } }
.idi-chi-fatti { display: flex !important; flex-direction: column; gap: 14px !important; padding: 0 !important; }
.idi-chi-fatto { display: grid !important; grid-template-columns: 112px minmax(0, 1fr); gap: 18px !important; align-items: center; padding: 20px 22px !important; border-radius: 20px !important; background: rgba(244,240,230,0.05) !important; border: 1px solid rgba(244,240,230,0.12); transition: border-color 0.3s ease, transform 0.3s ease; }
.idi-chi-fatto:hover { border-color: rgba(240,150,26,0.7); transform: translateX(6px); }
.idi-chi-fatto-n { margin: 0 !important; font: 900 34px/1 "Montserrat", sans-serif !important; color: #F0961A !important; letter-spacing: -0.03em; }
.idi-chi-fatto-p { margin: 0 !important; font: 500 16px/1.5 "Montserrat", sans-serif !important; color: #E6EDEE !important; }
.idi-chi-prove .idi-h2, .idi-chi-prove h2 { color: #F4F0E6 !important; }
/* chiusura */
.idi-chi-fine { position: relative; overflow: hidden !important; background: #F0961A !important; padding: clamp(80px, 11vw, 160px) 22px !important; }
.idi-chi-fine-in { max-width: 1180px !important; margin: 0 auto !important; display: flex !important; flex-direction: column; gap: 26px !important; padding: 0 !important; }
.idi-chi-fine-h { margin: 0 !important; font: 900 clamp(38px, 6vw, 86px)/0.98 "Montserrat", sans-serif !important; letter-spacing: -0.045em; color: #00262C !important; max-width: 1000px; }
.idi-chi-fine-p { margin: 0 !important; font: 600 clamp(17px, 1.6vw, 21px)/1.5 "Montserrat", sans-serif !important; color: #00262C !important; max-width: 640px; }
.idi-chi-fine .idi-btn-plasma, .idi-chi-fine a.idi-btn-plasma { background: #00262C !important; color: #F4F0E6 !important; border-color: #00262C !important; }
.idi-chi-fine .idi-btn-ghost, .idi-chi-fine a.idi-btn-ghost { color: #00262C !important; border-color: #00262C !important; background: transparent !important; }
.idi-chi-dove { margin: 0 !important; font: 600 13px "IBM Plex Mono", monospace !important; letter-spacing: 0.06em; color: #00262C !important; opacity: 0.8; }
@media (max-width: 1024px) {
  .idi-chi-hero { min-height: 0; }
  .idi-chi-hero-in, .idi-chi-prove-in { grid-template-columns: minmax(0, 1fr); }
  .sl-win { transform: none; }
  .idi-oz-pista { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: minmax(0, 1fr); }
  .idi-oz-pan { min-height: 0; }
  .idi-c-muro { height: 380px; }
}
@media (max-width: 680px) {
  .sl-corpo { min-height: 270px; padding: 16px; }
  .sl-riga { font-size: 13px; grid-template-columns: 50px minmax(0, 1fr); }
  .idi-pila-card { grid-template-columns: minmax(0, 1fr); top: calc(84px + var(--i, 0) * 10px); }
  .idi-pila-n { grid-row: auto; font-size: 44px; }
  .idi-chi-fatto { grid-template-columns: minmax(0, 1fr); gap: 6px !important; }
}
@media (prefers-reduced-motion: reduce) { .mu-nastro, .sl-riga, .sl-p-ai { animation: none !important; } .sl-win { transform: none; } }
/* forza i valori sopra a quelli predefiniti di Elementor */
.idi-c-muro { height: 620px !important; overflow: hidden !important; border-radius: 28px !important; position: relative !important; }
.idi-pila-card { position: sticky !important; top: calc(100px + var(--i, 0) * 16px) !important; }
.idi-oz-pan { overflow: hidden !important; position: relative !important; }
.idi-chi-fatto, .idi-chi-sez-in, .idi-chi-hero-t { position: relative; }
@media (max-width: 1024px) { .idi-c-muro { height: 380px !important; } }
@media (max-width: 680px) { .idi-pila-card { top: calc(84px + var(--i, 0) * 10px) !important; } }
/* apertura centrata con il nome fatto di punti */
.idi-chi-hero.idi-chi-centro { min-height: calc(100vh - 80px); background: radial-gradient(ellipse at 50% 38%, rgba(240,150,26,0.14), transparent 55%), radial-gradient(circle at 10% 100%, rgba(56,160,176,0.18), transparent 45%), radial-gradient(circle at 90% 100%, rgba(56,160,176,0.12), transparent 40%), #00262C !important; }
.idi-chi-centro .idi-chi-hero-in { display: flex !important; flex-direction: column; align-items: center; text-align: center; max-width: 1300px !important; gap: 0 !important; }
.idi-chi-centro .idi-chi-hero-t { align-items: center; gap: 22px !important; width: 100%; }
.idi-c-marchio { position: relative; width: 100%; height: clamp(190px, 30vw, 400px) !important; padding: 0 !important; margin: 4px 0 6px !important; cursor: crosshair; touch-action: pan-y; }
.mc-canvas { position: absolute; inset: 0; display: block; }
.idi-chi-centro .idi-chi-h1 { font-size: clamp(26px, 3.2vw, 44px) !important; line-height: 1.12 !important; letter-spacing: -0.03em; max-width: 900px; }
.idi-chi-centro .idi-chi-lead { max-width: 680px; margin: 0 auto !important; }
.idi-chi-centro .idi-chi-btns { justify-content: center; }
.idi-chi-giu { margin: 18px 0 0 !important; font: 600 11.5px "IBM Plex Mono", monospace !important; letter-spacing: 0.14em; text-transform: uppercase; color: #6C8286 !important; animation: giuSu 2.2s ease-in-out infinite; }
@keyframes giuSu { 50% { transform: translateY(6px); opacity: 0.6; } }
@media (prefers-reduced-motion: reduce) { .idi-chi-giu { animation: none; } }
/* ---------- apertura "linea d'orizzonte" ---------- */
@property --luce { syntax: "<number>"; inherits: true; initial-value: 0; }
.idi-c-orizzonte { position: relative !important; display: block !important; padding: 0 !important; min-height: 100vh; overflow: visible !important; background: #00262C !important; --p1: 0; --p2: 0; --p3: 0; --p4: 0; }
.oz2-fermo { position: sticky; top: 0; height: 100vh; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 0 22px; background: radial-gradient(ellipse 70% 40% at 50% 50%, rgba(240,150,26,calc(0.05 + var(--p3) * 0.07)), transparent 70%), #00262C; }
.idi-c-orizzonte .idi-chi-hero-in { width: 100%; max-width: 1400px !important; margin: 0 auto !important; padding: 0 !important; }
.idi-oz2-t { display: flex !important; flex-direction: column; align-items: center; text-align: center; gap: 22px !important; padding: 0 !important; width: 100%; will-change: transform; }
.idi-oz2-ey { margin: 0 !important; font: 500 12px "IBM Plex Mono", monospace !important; letter-spacing: 0.32em; text-transform: uppercase; color: #8FA6A9 !important; opacity: 0; transition: opacity 1s ease 0.2s; }
.oz2-via .idi-oz2-ey { opacity: calc(1 - var(--p4) * 0.3); }
.oz2-tit { position: relative; width: 100%; display: flex; justify-content: center; transform-origin: 50% 100%; transform: scale(calc(1 - var(--p1) * 0.44)); }
.idi-oz2-h1, h1.idi-oz2-h1 { margin: 0 !important; font: 900 clamp(54px, 12.6vw, 230px)/0.84 "Montserrat", sans-serif !important; letter-spacing: -0.05em; text-transform: uppercase; color: transparent !important; background: linear-gradient(100deg, #E9E3D3 0%, #E9E3D3 38%, #FFFFFF 47%, #FFF6E2 50%, #FFFFFF 53%, #E9E3D3 62%, #E9E3D3 100%); background-size: 260% 100%; background-position: calc(130% - var(--luce) * 160%) 0; -webkit-background-clip: text; background-clip: text; clip-path: inset(50% 0 50% 0); transition: clip-path 1.1s cubic-bezier(.76,0,.2,1) 1.25s; padding: 0.04em 0.02em 0.06em !important; }
.oz2-via .idi-oz2-h1 { clip-path: inset(-6% -2% -6% -2%); animation: oz2Luce 2.2s cubic-bezier(.45,0,.2,1) 2.3s 1; }
@keyframes oz2Luce { from { --luce: -0.2; } to { --luce: 1.1; } }
.oz2-fessura { position: absolute; left: 50%; top: 50%; width: min(1240px, 94vw); height: 1px; margin-left: calc(min(1240px, 94vw) / -2); background: linear-gradient(90deg, transparent, #F0961A 12%, #FFB54D 50%, #F0961A 88%, transparent); box-shadow: 0 0 22px 2px rgba(240,150,26,0.55); transform: scaleX(0); transition: transform 1s cubic-bezier(.76,0,.2,1) 0.45s, opacity 0.8s ease 2.1s; pointer-events: none; }
.oz2-via .oz2-fessura { transform: scaleX(1); opacity: 0; }
.idi-oz2-sub { margin: 0 !important; font: 700 clamp(22px, 2.9vw, 44px)/1.15 "Montserrat", sans-serif !important; letter-spacing: -0.02em; color: #F4F0E6 !important; clip-path: inset(-10% calc(100% - var(--p2) * 100%) -10% 0); }
.idi-oz2-sub span { color: #F0961A; }
.oz2-oriz { width: min(1100px, 92vw); display: flex; flex-direction: column; align-items: center; gap: 16px; margin-top: 6px; }
.oz2-riga { display: block; width: 100%; height: 1px; background: linear-gradient(90deg, transparent, rgba(240,150,26,0.9) 15%, rgba(240,150,26,0.9) 85%, transparent); transform: scaleX(var(--p3)); box-shadow: 0 0 14px rgba(240,150,26,0.35); }
.oz2-etich { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 34px; }
.oz2-etich span { font: 500 12px "IBM Plex Mono", monospace; letter-spacing: 0.24em; text-transform: uppercase; color: #C8D6D8; opacity: 0; transform: translateY(8px); transition: opacity 0.5s ease, transform 0.5s ease; }
.oz2-etich span.on { opacity: 1; transform: none; }
.idi-oz2-lead { margin: 6px auto 0 !important; max-width: 640px; font: 500 clamp(16px, 1.35vw, 19px)/1.6 "Montserrat", sans-serif !important; color: #A7BDC0 !important; opacity: var(--p4); transform: translateY(calc((1 - var(--p4)) * 16px)); }
.idi-oz2-btns { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 12px !important; padding: 0 !important; opacity: var(--p4); transform: translateY(calc((1 - var(--p4)) * 16px)); pointer-events: none; }
.oz2-fine .idi-oz2-btns { pointer-events: auto; }
.oz2-giu { position: absolute; left: 50%; bottom: 26px; margin: 0; transform: translateX(-50%); font: 500 11px "IBM Plex Mono", monospace; letter-spacing: 0.3em; text-transform: uppercase; color: #6C8286; opacity: 0; transition: opacity 0.8s ease 3s; z-index: 2; }
.oz2-giu::after { content: ""; display: block; width: 1px; height: 34px; margin: 10px auto 0; background: linear-gradient(#F0961A, transparent); animation: oz2Giu 2s ease-in-out infinite; transform-origin: top; }
@keyframes oz2Giu { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity: 0; } }
.oz2-via .oz2-giu { opacity: calc(1 - var(--p1) * 3); }
.idi-c-orizzonte .oz2-giu { position: fixed; }
.idi-c-orizzonte.oz2-fine .oz2-giu, .idi-c-orizzonte.oz2-statico .oz2-giu { display: none; }
/* telefono e movimento ridotto: niente scena bloccata, tutto leggibile */
.oz2-statico .oz2-fermo { position: relative; height: auto; min-height: calc(100svh - 70px); padding: 70px 18px; }
.oz2-statico .idi-oz2-sub, .oz2-statico .idi-oz2-lead, .oz2-statico .idi-oz2-btns { clip-path: none; opacity: 1; transform: none; pointer-events: auto; }
.oz2-statico .oz2-tit { transform: none; }
.oz2-statico .oz2-riga { transform: none; }
@media (max-width: 860px) { .oz2-etich { gap: 8px 18px; } .oz2-etich span { font-size: 10.5px; letter-spacing: 0.16em; } }
@media (prefers-reduced-motion: reduce) { .idi-oz2-h1, h1.idi-oz2-h1 { clip-path: none !important; transition: none !important; animation: none !important; } .oz2-fessura { display: none; } .idi-oz2-ey { opacity: 1; transition: none; } }
.idi-c-orizzonte .idi-chi-hero-in { display: block !important; grid-template-columns: none !important; }
.idi-c-orizzonte .oz2-fermo > * { width: 100%; }
.idi-oz2-h1, h1.idi-oz2-h1 { font-size: clamp(46px, 10.2vw, 196px) !important; white-space: nowrap; }
/* ---------- apertura "la lente del progettista" ---------- */
.idi-c-lente { position: relative !important; overflow: hidden !important; display: flex !important; align-items: center; min-height: min(86vh, 860px); padding: clamp(80px, 10vw, 140px) 22px clamp(70px, 8vw, 110px) !important; background: linear-gradient(rgba(244,240,230,0.035) 1px, transparent 1px) 0 0 / 100% 64px, linear-gradient(90deg, rgba(244,240,230,0.035) 1px, transparent 1px) 0 0 / 64px 100%, radial-gradient(ellipse 60% 70% at 85% 30%, rgba(240,150,26,0.10), transparent 70%), #00262C !important; --lx: -999px; --ly: -999px; --lr: 165px; cursor: none; }
.idi-c-lente a, .idi-c-lente button { cursor: pointer; }
.idi-lt-in { position: relative; z-index: 1; width: 100%; max-width: 1180px !important; margin: 0 auto !important; padding: 0 !important; display: flex !important; flex-direction: column; gap: 26px !important; }
.idi-lt-ey { margin: 0 !important; display: inline-flex; align-items: center; gap: 12px; font: 500 12.5px "IBM Plex Mono", monospace !important; letter-spacing: 0.22em; text-transform: uppercase; color: #F0961A !important; }
.idi-lt-ey::before { content: ""; width: 34px; height: 1px; background: #F0961A; }
.idi-lt-h1, h1.idi-lt-h1 { margin: 0 !important; max-width: 1040px; font: 800 clamp(36px, 5vw, 76px)/1.04 "Montserrat", sans-serif !important; letter-spacing: -0.035em; color: #F4F0E6 !important; text-wrap: balance; }
.idi-lt-h1 span { color: #F0961A; }
.idi-lt-sub { margin: 0 !important; max-width: 760px; font: 500 clamp(17px, 1.55vw, 21px)/1.6 "Montserrat", sans-serif !important; color: #B9CBCD !important; }
.idi-lt-sub b, .idi-lt-sub strong { color: #F4F0E6; font-weight: 700; }
.idi-lt-fatti { margin: 8px 0 0 !important; padding-top: 22px !important; border-top: 1px solid rgba(244,240,230,0.14); font: 500 12.5px/1.8 "IBM Plex Mono", monospace !important; letter-spacing: 0.08em; text-transform: uppercase; color: #8FA6A9 !important; max-width: 1180px; }
.idi-lt-hint { position: absolute; right: 22px; bottom: 22px; margin: 0 !important; z-index: 3; font: 500 11px "IBM Plex Mono", monospace !important; letter-spacing: 0.14em; text-transform: uppercase; color: #6C8286 !important; }
/* il piano di progetto visto dentro la lente */
.lt-piano { position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: 0; transition: opacity 0.8s ease; background: linear-gradient(rgba(111,214,226,0.12) 1px, transparent 1px) 0 0 / 100% 16px, linear-gradient(90deg, rgba(111,214,226,0.12) 1px, transparent 1px) 0 0 / 16px 100%, linear-gradient(rgba(111,214,226,0.22) 1px, transparent 1px) 0 0 / 100% 64px, linear-gradient(90deg, rgba(111,214,226,0.22) 1px, transparent 1px) 0 0 / 64px 100%, #032F36; -webkit-mask-image: radial-gradient(circle var(--lr) at var(--lx) var(--ly), #000 calc(100% - 1.5px), transparent 100%); mask-image: radial-gradient(circle var(--lr) at var(--lx) var(--ly), #000 calc(100% - 1.5px), transparent 100%); }
.lt-pronto .lt-piano { opacity: 1; }
.lt-copia, .lt-copia * { color: transparent !important; -webkit-text-stroke: 1px rgba(111,214,226,0.95); text-shadow: none !important; }
.lt-copia .idi-lt-h1, .lt-copia .idi-lt-h1 * { -webkit-text-stroke: 1.2px #F0961A; }
.lt-copia .idi-lt-ey::before { background: #6FD6E2; }
.lt-copia .idi-lt-fatti { border-top-color: rgba(111,214,226,0.6); }
.lt-note { position: absolute; inset: 0; }
.lt-box { position: absolute; border: 1px dashed rgba(240,150,26,0.75); }
.lt-box::before, .lt-box::after { content: ""; position: absolute; width: 7px; height: 7px; border: 1px solid #F0961A; background: #032F36; }
.lt-box::before { left: -4px; top: -4px; } .lt-box::after { right: -4px; bottom: -4px; }
.lt-tag { position: absolute; left: -1px; bottom: 100%; margin-bottom: 4px; white-space: nowrap; font: 500 11px "IBM Plex Mono", monospace; letter-spacing: 0.04em; color: #6FD6E2; }
.lt-tag b { color: #F0961A; font-weight: 600; text-transform: uppercase; letter-spacing: 0.12em; }
.lt-perche { position: absolute; right: -1px; top: 100%; margin-top: 4px; white-space: nowrap; font: 500 11px "IBM Plex Mono", monospace; color: #F4F0E6; background: rgba(240,150,26,0.18); padding: 2px 8px; }
.lt-mis { position: absolute; left: 0; right: 0; top: -1px; height: 0; }
.lt-mis em { position: absolute; right: 6px; top: 6px; font: 500 10px "IBM Plex Mono", monospace; font-style: normal; color: rgba(111,214,226,0.9); }
/* l'anello della lente */
.lt-anello { position: absolute; left: 0; top: 0; z-index: 3; width: calc(var(--lr) * 2); height: calc(var(--lr) * 2); border-radius: 50%; border: 1px solid rgba(240,150,26,0.9); box-shadow: 0 0 0 1px rgba(0,38,44,0.6), 0 0 40px rgba(240,150,26,0.25), inset 0 0 30px rgba(111,214,226,0.12); pointer-events: none; opacity: 0; transition: opacity 0.8s ease; will-change: transform; }
.lt-pronto .lt-anello { opacity: 1; }
.lt-croce { position: absolute; left: 50%; top: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px; }
.lt-croce::before, .lt-croce::after { content: ""; position: absolute; background: #F0961A; }
.lt-croce::before { left: 8.5px; top: 0; width: 1px; height: 18px; } .lt-croce::after { top: 8.5px; left: 0; height: 1px; width: 18px; }
.lt-coord { position: absolute; left: 50%; top: calc(100% + 8px); transform: translateX(-50%); white-space: nowrap; font: 500 10.5px "IBM Plex Mono", monospace; letter-spacing: 0.08em; color: #F0961A; }
.lt-fermo .lt-piano, .lt-fermo .lt-anello { display: none; }
.lt-fermo { cursor: auto; }
@media (max-width: 700px) { .lt-tag, .lt-perche { font-size: 9.5px; } .lt-perche { white-space: normal; max-width: 70vw; } .idi-lt-hint { left: 22px; right: auto; } .idi-c-lente { cursor: auto; } }
/* ---------- apertura "inchiostro" ---------- */
.idi-c-inchiostro { position: relative !important; overflow: hidden !important; display: flex !important; align-items: center; min-height: min(88vh, 880px); padding: clamp(90px, 11vw, 150px) 22px clamp(80px, 9vw, 120px) !important; background: #00262C !important; isolation: isolate; }
.ik-tela { position: absolute; inset: 0; width: 100%; height: 100%; display: block; z-index: 0; pointer-events: none; opacity: 0; transition: opacity 1.4s ease 0.2s; }
.ik-pronto .ik-tela { opacity: 1; }
.idi-c-inchiostro::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: radial-gradient(ellipse 80% 70% at 30% 55%, rgba(0,38,44,0.35), transparent 70%), linear-gradient(transparent 70%, rgba(0,38,44,0.75)); }
.idi-c-inchiostro .idi-lt-in { position: relative; z-index: 1; }
.idi-c-inchiostro .idi-lt-h1, .idi-c-inchiostro .idi-lt-sub, .idi-c-inchiostro .idi-lt-fatti, .idi-c-inchiostro .idi-lt-ey { text-shadow: 0 2px 18px rgba(0,38,44,0.85), 0 0 2px rgba(0,38,44,0.6); }
.idi-c-inchiostro .idi-lt-fatti { border-top-color: rgba(244,240,230,0.2); }
.idi-c-inchiostro .idi-lt-hint { z-index: 2; display: inline-flex; align-items: center; gap: 10px; color: #A7BDC0 !important; }
.idi-c-inchiostro .idi-lt-hint::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #F0961A; box-shadow: 0 0 0 0 rgba(240,150,26,0.6); animation: slPulsa 1.8s ease-out infinite; }
/* entrata del testo: le righe salgono da sotto una maschera */
.ik-entra .idi-lt-ey, .ik-entra .idi-lt-h1, .ik-entra .idi-lt-sub, .ik-entra .idi-lt-fatti { opacity: 0; transform: translateY(26px); transition: opacity 1s cubic-bezier(.2,.8,.2,1), transform 1.1s cubic-bezier(.2,.8,.2,1); }
.ik-via .idi-lt-ey { opacity: 1; transform: none; transition-delay: 0.1s; }
.ik-via .idi-lt-h1 { opacity: 1; transform: none; transition-delay: 0.25s; }
.ik-via .idi-lt-sub { opacity: 1; transform: none; transition-delay: 0.55s; }
.ik-via .idi-lt-fatti { opacity: 1; transform: none; transition-delay: 0.8s; }
.ik-fermo .ik-tela { display: none; }
.ik-fermo { background: radial-gradient(ellipse 60% 70% at 85% 30%, rgba(240,150,26,0.14), transparent 70%), radial-gradient(ellipse 50% 60% at 10% 90%, rgba(56,160,176,0.16), transparent 70%), #00262C !important; }
@media (max-width: 700px) { .idi-c-inchiostro .idi-lt-hint { left: 22px; right: 22px; bottom: 18px; } .idi-c-inchiostro { min-height: auto; padding-bottom: 96px !important; } }
/* ---------- apertura "radiografia di Innovazione Digitale" ---------- */
.idi-c-scansione { position: relative !important; overflow: hidden !important; display: flex !important; align-items: center; min-height: min(88vh, 880px); padding: clamp(90px, 10vw, 140px) 22px clamp(90px, 9vw, 130px) !important; background: linear-gradient(rgba(244,240,230,0.035) 1px, transparent 1px) 0 0 / 100% 48px, linear-gradient(90deg, rgba(244,240,230,0.035) 1px, transparent 1px) 0 0 / 48px 100%, radial-gradient(ellipse 55% 60% at 80% 35%, rgba(240,150,26,0.08), transparent 70%), #00262C !important; --sc-y: -100px; --sc-b: -300px; }
.idi-c-scansione .idi-lt-in { position: relative; z-index: 2; max-width: 1240px !important; display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); column-gap: clamp(36px, 5vw, 80px) !important; row-gap: 24px !important; align-items: start; }
.idi-c-scansione .idi-lt-in > *:not(.sc-referto) { grid-column: 1; }
.idi-c-scansione .idi-lt-h1 { font-size: clamp(34px, 4.4vw, 68px) !important; }
.idi-c-scansione .idi-lt-fatti { display: none !important; }
.sc-referto { grid-column: 2; grid-row: 1 / span 4; align-self: center; display: flex; flex-direction: column; border: 1px solid rgba(244,240,230,0.16); border-radius: 18px; background: rgba(0,20,24,0.55); backdrop-filter: blur(6px); font-family: "IBM Plex Mono", monospace; overflow: hidden; }
.sc-ref-testa { display: flex; justify-content: space-between; gap: 10px; padding: 14px 18px; border-bottom: 1px dashed rgba(244,240,230,0.18); font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: #F0961A; }
.sc-ref-testa span:last-child { color: #6C8286; letter-spacing: 0.06em; text-transform: none; }
.sc-riga { display: flex; flex-direction: column; gap: 4px; padding: 13px 18px; border-bottom: 1px solid rgba(244,240,230,0.07); opacity: 0.12; transition: opacity 0.5s ease; }
.sc-riga:last-child { border-bottom: 0; }
.sc-k { font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: #6C8286; }
.sc-v { font-size: 14px; color: #F4F0E6; clip-path: inset(0 100% 0 0); transition: clip-path 0.9s steps(28, end); }
.sc-riga.on { opacity: 1; }
.sc-riga.on .sc-v { clip-path: inset(0 0 0 0); }
.sc-esito { background: rgba(240,150,26,0.1); }
.sc-esito .sc-k { color: #F0961A; }
.sc-esito .sc-v { color: #F0961A; font-weight: 600; }
/* il tracciato (versione "a raggi X" del testo) e il testo vero che si sviluppa dietro la linea */
.sc-traccia { position: absolute !important; z-index: 1; margin: 0 !important; pointer-events: none; display: none !important; }
.sc-pronta .sc-traccia { display: grid !important; clip-path: inset(-40px -40px var(--sc-traccia, 100%) -40px); }
.sc-traccia { background: transparent !important; }
.sc-traccia * { color: transparent !important; -webkit-text-stroke: 1px rgba(111,214,226,0.9); text-shadow: none !important; background: transparent !important; border-color: rgba(111,214,226,0.5) !important; backdrop-filter: none !important; }
.sc-traccia .idi-lt-h1, .sc-traccia .idi-lt-h1 * { -webkit-text-stroke: 1.2px rgba(240,150,26,0.95); }
.sc-traccia .idi-lt-ey::before { background: #6FD6E2 !important; }
.sc-traccia .sc-v { clip-path: none !important; }
.sc-pronta .idi-lt-in { clip-path: inset(-40px -40px var(--sc-vero, 100%) -40px); }
.sc-finita .sc-traccia { clip-path: none; opacity: 0; transition: opacity 0.8s ease; }
/* la linea di scansione */
.sc-linea { position: absolute; left: 0; right: 0; top: var(--sc-y); z-index: 3; height: 2px; margin-top: -1px; background: linear-gradient(90deg, transparent, #F0961A 8%, #FFC46B 50%, #F0961A 92%, transparent); box-shadow: 0 0 18px 3px rgba(240,150,26,0.55); pointer-events: none; opacity: 0; }
.sc-linea::before { content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 140px; background: linear-gradient(to top, rgba(240,150,26,0.16), transparent); }
.sc-pronta .sc-linea { opacity: 1; }
.sc-finita .sc-linea { opacity: 0; transition: opacity 0.7s ease; }
.sc-pct { position: absolute; right: 22px; top: 10px; font: 500 11px "IBM Plex Mono", monospace; letter-spacing: 0.16em; text-transform: uppercase; color: #F0961A; }
/* riscansione di una fascia sotto il cursore */
.sc-banda { position: absolute; left: 0; right: 0; top: calc(var(--sc-b) - 55px); height: 110px; z-index: 3; pointer-events: none; opacity: 0; transition: opacity 0.35s ease; border-top: 1px solid rgba(240,150,26,0.7); border-bottom: 1px solid rgba(240,150,26,0.7); background: linear-gradient(rgba(240,150,26,0.07), rgba(240,150,26,0.02) 50%, rgba(240,150,26,0.07)); }
.sc-ribanda .sc-banda { opacity: 1; }
.sc-ribanda .sc-traccia { opacity: 1; transition: none; z-index: 4; display: grid !important; clip-path: inset(calc(var(--sc-b) - 55px - var(--sc-tt, 0px)) -40px calc(100% - var(--sc-b) - 55px + var(--sc-tt, 0px)) -40px); }
.idi-c-scansione.sc-ribanda .sc-traccia { background: linear-gradient(rgba(111,214,226,0.12) 1px, transparent 1px) 0 0 / 100% 12px, #032F36 !important; }
.sc-traccia { color: transparent; }
.idi-c-scansione .idi-lt-hint { z-index: 5; }
.sc-fermo .sc-linea, .sc-fermo .sc-traccia, .sc-fermo .sc-banda { display: none !important; }
@media (max-width: 960px) {
  .idi-c-scansione .idi-lt-in { grid-template-columns: minmax(0, 1fr); }
  .sc-referto { grid-column: 1; grid-row: auto; }
  .idi-c-scansione { min-height: auto; }
}
.sc-traccia .idi-lt-h1, .sc-traccia h1.idi-lt-h1, .sc-traccia .idi-lt-h1 span, .sc-traccia .idi-lt-sub, .sc-traccia .idi-lt-sub b, .sc-traccia .idi-lt-ey, .sc-traccia .sc-v, .sc-traccia .sc-k { color: transparent !important; text-shadow: none !important; }

/* allineamento: stessa griglia delle altre pagine (contenuto max 1280px, margini 40 / 32 / 20px come l'intestazione) */
.idi-c-scansione, .idi-chi-man, .idi-chi-sez, .idi-chi-prove, .idi-chi-fine { padding-left: 40px !important; padding-right: 40px !important; }
.idi-c-scansione .idi-lt-in, .idi-chi-man-in, .idi-chi-sez-in, .idi-chi-prove-in, .idi-chi-fine-in { max-width: 1280px !important; }
.idi-c-orizzontale .idi-chi-sez-in { padding-left: 0 !important; padding-right: 0 !important; }
.idi-oz-pista { max-width: 1280px; padding-left: 0 !important; padding-right: 0 !important; }
.idi-c-orizzontale.oz-on .idi-oz-pista { padding-left: max(40px, calc((100vw - 1280px) / 2)) !important; }
@media (max-width: 1024px) { .idi-c-scansione, .idi-chi-man, .idi-chi-sez, .idi-chi-prove, .idi-chi-fine { padding-left: 32px !important; padding-right: 32px !important; } }
@media (max-width: 767px) { .idi-c-scansione, .idi-chi-man, .idi-chi-sez, .idi-chi-prove, .idi-chi-fine { padding-left: 20px !important; padding-right: 20px !important; } }
@media (max-width: 1024px) { .idi-c-orizzontale.oz-on .idi-oz-pista { padding-left: 32px !important; } } @media (max-width: 767px) { .idi-c-orizzontale.oz-on .idi-oz-pista { padding-left: 20px !important; } }
/* scansione più rapida */
.sc-riga { transition: opacity 0.25s ease !important; }
.sc-v { transition: clip-path 0.4s steps(16, end) !important; }
.sc-finita .sc-traccia { transition: opacity 0.4s ease !important; }
.sc-finita .sc-linea { transition: opacity 0.35s ease !important; }
/* metodo a scorrimento: stessi margini delle altre sezioni a ogni larghezza */
.idi-c-orizzontale .idi-chi-sez-in { max-width: none !important; padding-left: max(40px, calc((100vw - 1280px) / 2)) !important; padding-right: max(40px, calc((100vw - 1280px) / 2)) !important; }
.idi-c-orizzontale:not(.oz-on) .idi-oz-pista { max-width: none; padding-left: max(40px, calc((100vw - 1280px) / 2)) !important; padding-right: max(40px, calc((100vw - 1280px) / 2)) !important; }
@media (max-width: 1024px) { .idi-c-orizzontale .idi-chi-sez-in, .idi-c-orizzontale:not(.oz-on) .idi-oz-pista { padding-left: 32px !important; padding-right: 32px !important; } }
@media (max-width: 767px) { .idi-c-orizzontale .idi-chi-sez-in, .idi-c-orizzontale:not(.oz-on) .idi-oz-pista { padding-left: 20px !important; padding-right: 20px !important; } }
.idi-c-scansione { align-items: flex-start !important; min-height: 0 !important; padding-top: clamp(36px, 4.4vw, 64px) !important; }
.idi-c-scansione { padding-bottom: clamp(56px, 6vw, 96px) !important; }
.sc-fermo, .sc-fermo * { transition: none !important; animation: none !important; }

/* ---------- Siti web: il sito che si costruisce (hero) ---------- */
.idi-c-cantiere { position: relative; width: 100%; display: flex; justify-content: center; align-items: center; }
.ca { width: 100%; max-width: 560px; margin: 0 auto; perspective: 1400px; font-family: "Montserrat", sans-serif; }
.ca-scena { position: relative; transform-style: preserve-3d; transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .5s cubic-bezier(.2,.8,.2,1); padding: 18px 0 64px; }
.ca-browser { position: relative; border-radius: 18px; background: #F4F0E6; box-shadow: 0 50px 110px rgba(0,0,0,.45), 0 0 0 1px rgba(244,240,230,.12); overflow: hidden; transform: rotate(-2deg); }
.ca-bar { display: flex; align-items: center; gap: 6px; padding: 11px 14px; background: #E6E0D2; }
.ca-bar i { width: 10px; height: 10px; border-radius: 50%; background: #C9C1B0; }
.ca-bar i:first-child { background: #E2735F; } .ca-bar i:nth-child(2) { background: #E9B44C; } .ca-bar i:nth-child(3) { background: #6FBF73; }
.ca-url { margin-left: 10px; flex: 1; padding: 5px 12px; border-radius: 999px; background: #F4F0E6; font: 600 12px "IBM Plex Mono", monospace; color: #5B7175; }
.ca-url b { color: #00262C; }
.ca-page { position: relative; padding: 16px 18px 20px; }
.ca-nav { display: flex; align-items: center; gap: 10px; }
.ca-logo { width: 34px; height: 34px; border-radius: 10px; background: #00626E; }
.ca-nav span { height: 8px; width: 44px; border-radius: 4px; background: #D7D0C0; }
.ca-navbtn { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; background: #00262C; color: #F4F0E6; font: 700 11px "Montserrat", sans-serif; font-style: normal; }
.ca-navbtn svg, .ca-btn svg, .ca-btn2 svg { width: 13px; height: 13px; }
.ca-hero { margin-top: 20px; padding: 20px; border-radius: 14px; background: linear-gradient(135deg, #00262C, #00474F); color: #F4F0E6; }
.ca-k { margin: 0; font: 700 10px "IBM Plex Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: #F0961A; }
.ca-h { margin: 8px 0 0; font: 900 clamp(19px, 2vw, 25px)/1.12 "Montserrat", sans-serif; letter-spacing: -.02em; }
.ca-s { margin: 12px 0 0; display: flex; flex-direction: column; gap: 6px; }
.ca-s span { height: 7px; border-radius: 4px; background: rgba(244,240,230,.22); width: 88%; } .ca-s span + span { width: 62%; }
.ca-ctas { margin-top: 16px; display: flex; gap: 8px; flex-wrap: wrap; }
.ca-btn, .ca-btn2 { position: relative; display: inline-flex; align-items: center; gap: 7px; padding: 10px 16px; border-radius: 999px; font: 800 13px "Montserrat", sans-serif; }
.ca-btn { background: #F0961A; color: #00262C; }
.ca-btn2 { border: 1.5px solid rgba(244,240,230,.4); color: #F4F0E6; }
.ca-cards { margin-top: 14px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.ca-cards span { height: 62px; border-radius: 12px; background: #FFFFFF; border: 1px solid rgba(0,38,44,.08); padding: 10px; }
.ca-cards i { display: block; width: 22px; height: 22px; border-radius: 7px; background: #E1DAC8; }
.ca-cards span:nth-child(2) i { background: #F0961A; } .ca-cards span:nth-child(3) i { background: #2C8796; }
.ca-cursor { position: absolute; left: 70%; top: 92%; width: 22px; height: 22px; opacity: 0; pointer-events: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l15 9.5-6.5 1.5 3.8 7.2-2.8 1.5-3.8-7.3L4 19z' fill='%2300262C' stroke='%23F4F0E6' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; z-index: 3; }
.ca-notif { position: absolute; z-index: 4; display: flex; align-items: center; gap: 12px; padding: 12px 16px 12px 12px; border-radius: 16px; background: #FFFFFF; color: #00262C; box-shadow: 0 24px 50px rgba(0,0,0,.35); min-width: 240px; opacity: 0; }
.ca-notif b { display: block; font: 800 14px/1.2 "Montserrat", sans-serif; }
.ca-notif small { display: block; margin-top: 3px; font: 500 12px/1.3 "Montserrat", sans-serif; color: #4F6B70; }
.ca-ic { flex: 0 0 38px; height: 38px; border-radius: 12px; background: #F0961A; color: #00262C; display: flex; align-items: center; justify-content: center; }
.ca-ic svg { width: 18px; height: 18px; } .ca-ic.ca-wa { background: #25D366; color: #FFFFFF; }
.ca-n1 { left: -26px; bottom: 52px; } .ca-n2 { right: -18px; bottom: 8px; }
.ca-nota { display: block; width: 100%; margin: 26px 0 0 !important; text-align: center !important; font-size: 12px; color: rgba(244,240,230,.55); }

/* sequenza: si costruisce in poco più di un secondo, poi il clic e le notifiche */
@media (prefers-reduced-motion: no-preference) {
  .ca .ca-browser { opacity: 0; transform: rotate(-2deg) translateY(30px) scale(.96); }
  .ca-nav > *, .ca-hero, .ca-cards span, .ca-s span, .ca-h, .ca-k, .ca-ctas > * { opacity: 0; }
  .ca-via .ca-browser { animation: caIn .55s cubic-bezier(.2,.9,.3,1) forwards; }
  .ca-via .ca-nav > * { animation: caPop .35s ease forwards; animation-delay: .35s; }
  .ca-via .ca-hero { animation: caPop .4s ease forwards; animation-delay: .45s; }
  .ca-via .ca-k { animation: caPop .3s ease forwards; animation-delay: .6s; }
  .ca-via .ca-h { animation: caType .5s steps(18) forwards; animation-delay: .65s; clip-path: inset(0 100% 0 0); }
  .ca-via .ca-s span { animation: caBar .4s ease forwards; animation-delay: .9s; transform-origin: left; }
  .ca-via .ca-ctas > * { animation: caPop .35s cubic-bezier(.2,1.5,.4,1) forwards; animation-delay: 1.05s; }
  .ca-via .ca-cards span { animation: caPop .35s ease forwards; }
  .ca-via .ca-cards span:nth-child(1) { animation-delay: 1.1s; } .ca-via .ca-cards span:nth-child(2) { animation-delay: 1.18s; } .ca-via .ca-cards span:nth-child(3) { animation-delay: 1.26s; }
  .ca-via .ca-cursor { animation: caCursor 1s cubic-bezier(.4,0,.2,1) forwards; animation-delay: 1.35s; }
  .ca-via .ca-btn { animation: caPop .35s cubic-bezier(.2,1.5,.4,1) forwards, caClick .3s ease 2.1s; }
  .ca-via .ca-btn::after { content: ""; position: absolute; inset: -4px; border-radius: 999px; border: 2px solid #F0961A; opacity: 0; animation: caRing 1.8s ease-out 2.2s 2; }
  .ca-via .ca-n1 { animation: caNotif .5s cubic-bezier(.2,1.2,.4,1) forwards; animation-delay: 2.25s; }
  .ca-via .ca-n2 { animation: caNotif .5s cubic-bezier(.2,1.2,.4,1) forwards; animation-delay: 2.75s; }
}
@keyframes caIn { to { opacity: 1; transform: rotate(-2deg); } }
@keyframes caPop { from { opacity: 0; transform: translateY(8px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes caType { to { opacity: 1; clip-path: inset(0 0 0 0); } }
@keyframes caBar { from { opacity: 1; transform: scaleX(0); } to { opacity: 1; transform: scaleX(1); } }
@keyframes caCursor { 0% { opacity: 0; left: 78%; top: 96%; } 25% { opacity: 1; } 100% { opacity: 1; left: 22%; top: 62%; } }
@keyframes caClick { 50% { transform: scale(.92); } }
@keyframes caRing { 0% { opacity: .9; transform: scale(1); } 100% { opacity: 0; transform: scale(1.35); } }
@keyframes caNotif { from { opacity: 0; transform: translateY(18px) scale(.9); } to { opacity: 1; transform: none; } }
.ca-fermo .ca-notif { opacity: 1; } .ca-fermo .ca-cursor { opacity: 0; }
@media (max-width: 1024px) { .ca { max-width: 520px; } .ca-n1 { left: -8px; } .ca-n2 { right: -6px; } }
@media (max-width: 600px) {
  .ca-scena { padding-bottom: 128px; }
  .ca-notif { min-width: 0; max-width: 78%; padding: 10px 12px 10px 10px; } .ca-notif b { font-size: 13px; } .ca-notif small { font-size: 11px; }
  .ca-ic { flex-basis: 32px; height: 32px; }
  .ca-n1 { left: 0; bottom: 66px; } .ca-n2 { right: 0; bottom: 0; }
  .ca-cards span { height: 46px; }
}

/* ---------- Progetti con i loghi dei clienti ---------- */
.idi-lg-card { display: flex !important; flex-direction: column !important; gap: 0 !important; padding: 0 !important; border-radius: 22px !important; overflow: hidden !important; background: #FFFFFF; color: #00262C; text-decoration: none !important; border: 1px solid rgba(0,38,44,.08); transition: transform .25s ease, box-shadow .25s ease; }
.idi-lg-card:hover { transform: translateY(-4px); box-shadow: 0 26px 60px rgba(0,38,44,.22); }
.idi-lg-tile { width: 100%; aspect-ratio: 16 / 9; display: flex !important; align-items: center; justify-content: center; padding: 0 12% !important; box-sizing: border-box; border-bottom: 1px solid rgba(0,38,44,.08); }
.idi-lg-tile img { width: auto !important; max-width: 100% !important; max-height: 64px !important; height: auto !important; object-fit: contain; transition: transform .3s ease; }
.idi-lg-card:hover .idi-lg-tile img { transform: scale(1.06); }
.idi-lg-nome { margin: 18px 22px 0 !important; font: 700 12px "IBM Plex Mono", monospace !important; letter-spacing: .08em; text-transform: uppercase; color: #4F6B70 !important; }
.idi-lg-desc { margin: 6px 22px 0 !important; font: 800 17px/1.3 "Montserrat", sans-serif !important; color: #00262C !important; letter-spacing: -.01em; }
.idi-lg-cta { margin: auto 22px 20px !important; padding-top: 14px; font: 700 14px "Montserrat", sans-serif !important; color: #F0961A !important; }
.idi-lg-card:hover .idi-lg-cta { color: #00262C !important; }
.elementor-element-ad33253:has(.idi-lg-card) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 18px !important; }
@media (max-width: 1024px) { .elementor-element-ad33253:has(.idi-lg-card) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 600px) { .elementor-element-ad33253:has(.idi-lg-card) { grid-template-columns: minmax(0, 1fr) !important; } .idi-lg-tile img { max-height: 48px !important; } }

/* ---------- Come lavoriamo: il quarto passo diverso dal terzo, su tutte le pagine ---------- */
.elementor-element-221f4b76 > .elementor-element-7f32ecbf { background: #00626E !important; box-shadow: 0 30px 60px rgba(0,38,44,0.28); position: relative; }
.elementor-element-221f4b76 > .elementor-element-7f32ecbf::after { content: ""; position: absolute; top: 26px; right: 26px; width: 34px; height: 34px; border-radius: 50%; background: #F0961A url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300262C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 18px no-repeat; }
.elementor-element-221f4b76 > .elementor-element-7f32ecbf > .idi-verbo-n { color: #F0961A !important; }
@media (min-width: 1025px) { .elementor-element-221f4b76:has(> .elementor-element-7f32ecbf) > .elementor-element-69b703e4 { min-height: 330px !important; } }

.idi-lg-tile { border-radius: 0 !important; }
.elementor-element-6d63d677 { padding: 0 8% !important; }
.elementor-element-6d63d677 img { max-height: 84px !important; }

/* variante negozio online */
.ca-cart { margin-left: auto; position: relative; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: #00262C; color: #F4F0E6; }
.ca-cart svg { width: 16px; height: 16px; }
.ca-badge { position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; border-radius: 9px; background: #F0961A; color: #00262C; font: 800 11px/18px "Montserrat", sans-serif; font-style: normal; text-align: center; transform: scale(0); }
.ca-prod { margin-top: 18px; display: grid; grid-template-columns: 1fr 1.15fr; gap: 16px; align-items: center; }
.ca-foto { aspect-ratio: 1; border-radius: 14px; background: radial-gradient(circle at 50% 60%, #FFFFFF, #E6E0D2 70%); display: flex; align-items: center; justify-content: center; }
.ca-vaso { width: 42%; height: 62%; border-radius: 40% 40% 32% 32% / 22% 22% 48% 48%; background: linear-gradient(160deg, #2C5DA8, #0F2A5C); box-shadow: inset -10px -6px 0 rgba(0,0,0,.12), 0 16px 22px -12px rgba(0,38,44,.45); position: relative; }
.ca-vaso::before { content: ""; position: absolute; left: 22%; right: 22%; top: -9%; height: 14%; border-radius: 6px; background: #1C4380; }
.ca-shop .ca-k { color: #F0961A; }
.ca-shop .ca-h { color: #00262C; font-size: clamp(17px, 1.6vw, 21px); }
.ca-prezzo { margin: 8px 0 0; font: 900 22px "Montserrat", sans-serif; color: #00262C; }
.ca-disp { margin: 4px 0 0; font: 600 11px "Montserrat", sans-serif; color: #1E7F4F; }
.ca-shop .ca-ctas { margin-top: 12px; }
.ca-rate { margin: 8px 0 0; font: 500 11px "Montserrat", sans-serif; color: #4F6B70; }
.ca-shop .ca-cards span { height: 52px; }
@media (prefers-reduced-motion: no-preference) {
  .ca-shop .ca-foto, .ca-shop .ca-prezzo, .ca-shop .ca-disp, .ca-shop .ca-rate { opacity: 0; }
  .ca-shop.ca-via .ca-foto, .ca-via .ca-shop .ca-foto { animation: caPop .4s ease forwards; animation-delay: .45s; }
  .ca-via .ca-shop .ca-prezzo, .ca-via .ca-shop .ca-disp, .ca-via .ca-shop .ca-rate { animation: caPop .35s ease forwards; animation-delay: .95s; }
  .ca-via .ca-shop .ca-badge { animation: caBadge .4s cubic-bezier(.2,1.6,.4,1) forwards; animation-delay: 2.15s; }
  .ca-via .ca-shop .ca-cursor { animation-name: caCursorShop; }
}
@keyframes caBadge { to { transform: scale(1); } }
@keyframes caCursorShop { 0% { opacity: 0; left: 30%; top: 96%; } 25% { opacity: 1; } 100% { opacity: 1; left: 66%; top: 58%; } }
.ca-fermo .ca-badge { transform: scale(1); }
@media (max-width: 600px) { .ca-prod { gap: 12px; } .ca-prezzo { font-size: 18px; } .ca-shop .ca-btn { padding: 9px 12px; font-size: 12px; } }
.elementor-element-5b4d9534 img, [data-id="49db1f28"], [data-id="49db1f28"] img { aspect-ratio: auto !important; object-fit: contain !important; height: auto !important; }

/* variante Google Ads: ricerca, annuncio in cima, richiesta in arrivo */
.ca-cerca { display: flex; align-items: center; gap: 10px; padding: 11px 16px; border-radius: 999px; background: #FFFFFF; border: 1px solid rgba(0,38,44,.12); box-shadow: 0 6px 16px rgba(0,38,44,.08); color: #4F6B70; }
.ca-cerca svg { width: 16px; height: 16px; flex: 0 0 16px; }
.ca-query { font: 600 14px "Montserrat", sans-serif; color: #00262C; white-space: nowrap; overflow: hidden; }
.ca-ad { margin-top: 16px; padding: 16px 18px; border-radius: 14px; background: #FFFFFF; border: 2px solid #F0961A; box-shadow: 0 14px 30px rgba(240,150,26,.18); }
.ca-spons { margin: 0; font: 500 11px "Montserrat", sans-serif; color: #4F6B70; } .ca-spons b { color: #00262C; }
.ca-adt { margin: 6px 0 0; font: 800 clamp(16px, 1.5vw, 19px)/1.25 "Montserrat", sans-serif; color: #1A4FA0; }
.ca-add { margin: 6px 0 0; font: 500 12px/1.45 "Montserrat", sans-serif; color: #3D5A5F; }
.ca-ads .ca-ctas { margin-top: 12px; }
.ca-ads .ca-btn2 { border-color: rgba(0,38,44,.25); color: #00262C; }
.ca-org { margin-top: 14px; display: flex; flex-direction: column; gap: 6px; padding: 0 4px; }
.ca-org span { height: 8px; border-radius: 4px; background: #D7D0C0; width: 46%; } .ca-org span:nth-child(2) { width: 82%; background: #E1DAC8; } .ca-org span:nth-child(3) { width: 64%; background: #E1DAC8; }
@media (prefers-reduced-motion: no-preference) {
  .ca-ads .ca-cerca, .ca-ads .ca-ad, .ca-ads .ca-org { opacity: 0; }
  .ca-via .ca-ads .ca-cerca { animation: caPop .35s ease forwards; animation-delay: .35s; }
  .ca-via .ca-ads .ca-query { animation: caType .6s steps(26) forwards; animation-delay: .5s; clip-path: inset(0 100% 0 0); }
  .ca-via .ca-ads .ca-ad { animation: caAd .5s cubic-bezier(.2,1.3,.4,1) forwards; animation-delay: 1.15s; }
  .ca-via .ca-ads .ca-org { animation: caPop .35s ease forwards; animation-delay: 1.3s; }
  .ca-via .ca-ads .ca-ctas > * { animation-delay: 1.35s; }
  .ca-via .ca-ads .ca-cursor { animation-name: caCursorAds; }
}
@keyframes caAd { from { opacity: 0; transform: translateY(-14px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes caCursorAds { 0% { opacity: 0; left: 70%; top: 96%; } 25% { opacity: 1; } 100% { opacity: 1; left: 20%; top: 64%; } }
.page-id-258 .elementor-element-4fff2f2a:has(.idi-c-cantiere) { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important; align-items: center; gap: clamp(24px, 4vw, 64px) !important; }
@media (max-width: 1024px) { .page-id-258 .elementor-element-4fff2f2a:has(.idi-c-cantiere) { grid-template-columns: minmax(0, 1fr) !important; } }
@media (max-width:520px){
  .ca-ads .ca-ctas{flex-wrap:nowrap;gap:6px}
  .ca-ads .ca-ctas>*{font-size:12px;padding:7px 11px;white-space:nowrap}
  .ca-via .ca-ads .ca-cursor{animation-name:caCursorAdsM}
}
@keyframes caCursorAdsM { 0% { opacity: 0; left: 70%; top: 96%; } 25% { opacity: 1; } 100% { opacity: 1; left: 20%; top: 57%; } }
/* Google Ads: Grossclima al centro */
.page-id-258 .elementor-element-ad33253 > .elementor-element-2ff34331{order:1}
.page-id-258 .elementor-element-ad33253 > .elementor-element-17fd7350{order:2}
.page-id-258 .elementor-element-ad33253 > .elementor-element-2d1cbcec{order:3}
/* variante Meta Ads: post sponsorizzato nel feed, messaggio in arrivo */
.ca-meta { max-width: 520px; }
.ca-meta .ca-browser { max-width: 330px; margin: 0 auto; border-radius: 36px; border: 8px solid #0D1F22; background: #FFFFFF; }
.ca-tel { position: relative; display: flex; align-items: center; justify-content: space-between; padding: 12px 18px 8px; }
.ca-app { font: 800 15px "Montserrat", sans-serif; color: #00262C; letter-spacing: -.02em; }
.ca-isl { width: 70px; height: 18px; border-radius: 10px; background: #0D1F22; position: absolute; left: 50%; top: 8px; transform: translateX(-50%); }
.ca-meta .ca-page { padding: 6px 0 16px; }
.ca-storie { display: flex; gap: 10px; padding: 0 14px 12px; border-bottom: 1px solid rgba(0,38,44,.08); }
.ca-storie i { width: 40px; height: 40px; border-radius: 50%; background: #E6E0D2; box-shadow: 0 0 0 2px #FFFFFF, 0 0 0 4px #F0961A; flex: 0 0 40px; }
.ca-storie i:nth-child(2n) { box-shadow: 0 0 0 2px #FFFFFF, 0 0 0 4px #D7D0C0; }
.ca-ph { display: flex; align-items: center; gap: 10px; padding: 12px 14px 10px; }
.ca-av { width: 30px; height: 30px; border-radius: 50%; background: #00626E; }
.ca-ph p { margin: 0; line-height: 1.15; } .ca-ph b { font: 800 13px "Montserrat", sans-serif; color: #00262C; } .ca-ph small { display: block; font: 500 11px "Montserrat", sans-serif; color: #4F6B70; }
.ca-img { position: relative; aspect-ratio: 1 / .82; background: linear-gradient(150deg, #0E5D6B, #00262C); display: flex; align-items: flex-end; padding: 16px; box-sizing: border-box; overflow: hidden; }
.ca-img p { position: relative; margin: 0; font: 900 21px/1.1 "Montserrat", sans-serif; color: #F4F0E6; letter-spacing: -.02em; }
.ca-piatto { position: absolute; right: -14%; top: -12%; width: 70%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, #F4F0E6 0 46%, #E6E0D2 47% 62%, rgba(244,240,230,.18) 63%); }
.ca-piatto::before { content: ""; position: absolute; left: 30%; top: 34%; width: 40%; height: 26%; border-radius: 50% 50% 40% 40%; background: #F0961A; transform: rotate(-12deg); }
.ca-ctabar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px; background: #F4F0E6; }
.ca-ctabar > span:first-child { font: 600 11px/1.3 "Montserrat", sans-serif; color: #00262C; }
.ca-meta .ca-btn { flex: 0 0 auto; padding: 8px 12px; font-size: 12px; white-space: nowrap; }
.ca-azioni { display: flex; gap: 12px; align-items: center; padding: 10px 14px 0; color: #00262C; }
.ca-azioni svg { width: 20px; height: 20px; } .ca-azioni i { width: 18px; height: 18px; border-radius: 5px; border: 2px solid #00262C; }
@media (prefers-reduced-motion: no-preference) {
  .ca-meta .ca-storie i, .ca-meta .ca-ph, .ca-meta .ca-img, .ca-meta .ca-ctabar, .ca-meta .ca-azioni { opacity: 0; }
  .ca-via .ca-meta .ca-storie i { animation: caPop .3s ease forwards; animation-delay: .35s; }
  .ca-via .ca-meta .ca-storie i:nth-child(2) { animation-delay: .4s; } .ca-via .ca-meta .ca-storie i:nth-child(3) { animation-delay: .45s; } .ca-via .ca-meta .ca-storie i:nth-child(4) { animation-delay: .5s; } .ca-via .ca-meta .ca-storie i:nth-child(5) { animation-delay: .55s; }
  .ca-via .ca-meta .ca-ph { animation: caPop .35s ease forwards; animation-delay: .6s; }
  .ca-via .ca-meta .ca-img { animation: caAd .5s cubic-bezier(.2,1.3,.4,1) forwards; animation-delay: .75s; }
  .ca-via .ca-meta .ca-ctabar, .ca-via .ca-meta .ca-azioni { animation: caPop .35s ease forwards; animation-delay: 1.15s; }
  .ca-via .ca-meta .ca-azioni svg { animation: caCuore .5s ease 2.6s; color: #E2735F; }
  .ca-via .ca-meta .ca-cursor { animation-name: caCursorMeta; }
}
@keyframes caCuore { 50% { transform: scale(1.35); } }
@keyframes caCursorMeta { 0% { opacity: 0; left: 40%; top: 98%; } 25% { opacity: 1; } 100% { opacity: 1; left: 80%; top: 83%; } }
.page-id-259 .elementor-element-4fff2f2a:has(.idi-c-cantiere) { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important; align-items: center; gap: clamp(24px, 4vw, 64px) !important; }
@media (max-width: 1024px) { .page-id-259 .elementor-element-4fff2f2a:has(.idi-c-cantiere) { grid-template-columns: minmax(0, 1fr) !important; } }
@media (max-width: 600px) { .ca-meta .ca-browser { max-width: 290px; } }
.ca-piatto { right: 8%; top: 10%; width: 52%; background: radial-gradient(circle, #F4F0E6 0 52%, #E6E0D2 53% 68%, rgba(244,240,230,.16) 69%); }
.ca-piatto::before { left: 18%; top: 33%; width: 64%; height: 34%; border-radius: 0; transform: rotate(-10deg); background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 32'%3E%3Cpath d='M4 16c8-11 26-14 40-4l14-9v26l-14-9C30 30 12 27 4 16z' fill='%23F0961A'/%3E%3Ccircle cx='15' cy='14' r='2.4' fill='%2300262C'/%3E%3Cpath d='M26 9c3 4 3 10 0 14' stroke='%23F0961A' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat; }
@keyframes caCursorMeta { 0% { opacity: 0; left: 40%; top: 98%; } 25% { opacity: 1; } 100% { opacity: 1; left: 84%; top: 86%; } }
/* variante SEO: il tuo sito sale tra i primi risultati */
.ca-lista { position: relative; margin-top: 14px; display: flex; flex-direction: column; gap: 12px; }
.ca-mio { position: relative; z-index: 2; padding: 14px 16px; border-radius: 14px; background: #FFFFFF; border: 2px solid #F0961A; box-shadow: 0 14px 30px rgba(240,150,26,.18); }
.ca-tag { position: absolute; top: -11px; right: 14px; padding: 4px 10px; border-radius: 999px; background: #F0961A; color: #00262C; font: 800 10px "IBM Plex Mono", monospace; letter-spacing: .06em; text-transform: uppercase; }
.ca-seo .ca-spons b { color: #1E7F4F; }
.ca-ris { display: flex; flex-direction: column; gap: 6px; padding: 0 6px; }
.ca-ris span { height: 8px; border-radius: 4px; background: #D7D0C0; width: 42%; } .ca-ris span:nth-child(2) { width: 86%; background: #E1DAC8; } .ca-ris span:nth-child(3) { width: 66%; background: #E1DAC8; }
@media (prefers-reduced-motion: no-preference) {
  .ca-seo .ca-mio, .ca-seo .ca-ris, .ca-seo .ca-tag { opacity: 0; }
  .ca-via .ca-seo .ca-ris { animation: caScendi .8s cubic-bezier(.5,0,.2,1) forwards; animation-delay: 1.15s; }
  .ca-via .ca-seo .ca-mio { animation: caSali .9s cubic-bezier(.5,0,.2,1) forwards; animation-delay: 1.1s; }
  .ca-via .ca-seo .ca-tag { animation: caPop .35s cubic-bezier(.2,1.5,.4,1) forwards; animation-delay: 2.05s; }
  .ca-via .ca-seo .ca-mio .ca-adt { animation: caClick .3s ease 2.6s; }
  .ca-via .ca-seo .ca-cursor { animation-name: caCursorSeo; animation-delay: 1.75s; }
  .ca-via .ca-seo .ca-n1 { animation-delay: 2.75s; } .ca-via .ca-seo .ca-n2 { animation-delay: 3.25s; }
}
@keyframes caSali { 0% { opacity: 0; transform: translateY(150px) scale(.97); } 25% { opacity: 1; } 100% { opacity: 1; transform: none; } }
@keyframes caScendi { 0% { opacity: 0; transform: translateY(-36px); } 30% { opacity: 1; transform: translateY(-110px); } 100% { opacity: 1; transform: none; } }
@keyframes caCursorSeo { 0% { opacity: 0; left: 76%; top: 98%; } 25% { opacity: 1; } 100% { opacity: 1; left: 46%; top: 42%; } }
.ca-fermo .ca-tag { opacity: 1; }
.page-id-260 .elementor-element-4fff2f2a:has(.idi-c-cantiere) { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important; align-items: center; gap: clamp(24px, 4vw, 64px) !important; }
@media (max-width: 1024px) { .page-id-260 .elementor-element-4fff2f2a:has(.idi-c-cantiere) { grid-template-columns: minmax(0, 1fr) !important; } }
@keyframes caCursorSeo { 0% { opacity: 0; left: 76%; top: 98%; } 25% { opacity: 1; } 100% { opacity: 1; left: 44%; top: 31%; } }
@media (max-width:600px){ @keyframes caCursorSeo { 0% { opacity: 0; left: 76%; top: 98%; } 25% { opacity: 1; } 100% { opacity: 1; left: 40%; top: 30%; } } }
/* variante AI e software: assistente che risponde e automazione */
.ca-ai .ca-page { display: flex; flex-direction: column; gap: 12px; padding: 16px 18px 22px; }
.ca-chat-h { display: flex; align-items: center; gap: 10px; padding-bottom: 12px; border-bottom: 1px solid rgba(0,38,44,.1); }
.ca-bot { width: 36px; height: 36px; border-radius: 12px; background: #00262C; color: #F0961A; display: flex; align-items: center; justify-content: center; } .ca-bot svg { width: 18px; height: 18px; }
.ca-chat-h p { margin: 0; line-height: 1.2; } .ca-chat-h b { font: 800 14px "Montserrat", sans-serif; color: #00262C; } .ca-chat-h small { display: block; font: 500 11px "Montserrat", sans-serif; color: #1E7F4F; }
.ca-bb { margin: 0; max-width: 82%; padding: 11px 14px; border-radius: 16px; font: 500 13px/1.45 "Montserrat", sans-serif; }
.ca-cli { align-self: flex-end; background: #00626E; color: #F4F0E6; border-bottom-right-radius: 4px; }
.ca-ia { align-self: flex-start; background: #FFFFFF; color: #00262C; border: 1px solid rgba(0,38,44,.1); border-bottom-left-radius: 4px; }
.ca-ia p { margin: 0; }
.ca-chips { margin-top: 10px; display: flex; gap: 8px; flex-wrap: wrap; }
.ca-ai .ca-btn, .ca-ai .ca-btn2 { padding: 8px 13px; font-size: 12px; }
.ca-ai .ca-btn2 { border-color: rgba(0,38,44,.25); color: #00262C; }
.ca-dots { margin: 0; align-self: flex-start; display: flex; gap: 4px; padding: 12px 14px; border-radius: 16px; background: #FFFFFF; border: 1px solid rgba(0,38,44,.1); height: 0; padding-top: 0; padding-bottom: 0; overflow: hidden; opacity: 0; }
.ca-dots i { width: 6px; height: 6px; border-radius: 50%; background: #9FB0B2; }
@media (prefers-reduced-motion: no-preference) {
  .ca-ai .ca-chat-h, .ca-ai .ca-cli, .ca-ai .ca-ia { opacity: 0; }
  .ca-via .ca-ai .ca-chat-h { animation: caPop .35s ease forwards; animation-delay: .35s; }
  .ca-via .ca-ai .ca-cli { animation: caPop .4s cubic-bezier(.2,1.3,.4,1) forwards; animation-delay: .6s; }
  .ca-via .ca-ai .ca-dots { animation: caDots 1s ease forwards; animation-delay: 1s; }
  .ca-via .ca-ai .ca-dots i { animation: caBlink .6s ease-in-out infinite alternate; } .ca-via .ca-ai .ca-dots i:nth-child(2) { animation-delay: .2s; } .ca-via .ca-ai .ca-dots i:nth-child(3) { animation-delay: .4s; }
  .ca-via .ca-ai .ca-ia { animation: caPop .4s cubic-bezier(.2,1.3,.4,1) forwards; animation-delay: 1.95s; }
  .ca-via .ca-ai .ca-ctas > *, .ca-via .ca-ai .ca-chips > * { animation: caPop .35s cubic-bezier(.2,1.5,.4,1) forwards; animation-delay: 2.15s; }
  .ca-ai .ca-chips > * { opacity: 0; }
  .ca-via .ca-ai .ca-cursor { animation: caCursorAi 1s cubic-bezier(.4,0,.2,1) forwards; animation-delay: 2.4s; }
  .ca-via .ca-ai .ca-btn { animation: caPop .35s cubic-bezier(.2,1.5,.4,1) 2.15s forwards, caClick .3s ease 3.2s; }
  .ca-via .ca-ai .ca-btn::after { animation-delay: 3.3s; }
  .ca-via .ca-ai .ca-n1 { animation-delay: 3.4s; } .ca-via .ca-ai .ca-n2 { animation-delay: 3.9s; }
}
@keyframes caDots { 0% { opacity: 0; height: 0; padding-top: 0; padding-bottom: 0; } 15%, 85% { opacity: 1; height: 6px; padding-top: 12px; padding-bottom: 12px; } 100% { opacity: 0; height: 0; padding-top: 0; padding-bottom: 0; margin-top: -12px; } }
@keyframes caBlink { to { opacity: .3; transform: translateY(-2px); } }
@keyframes caCursorAi { 0% { opacity: 0; left: 78%; top: 100%; } 25% { opacity: 1; } 100% { opacity: 1; left: 20%; top: 86%; } }
.page-id-261 .elementor-element-4fff2f2a:has(.idi-c-cantiere) { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important; align-items: center; gap: clamp(24px, 4vw, 64px) !important; }
@media (max-width: 1024px) { .page-id-261 .elementor-element-4fff2f2a:has(.idi-c-cantiere) { grid-template-columns: minmax(0, 1fr) !important; } }
/* ---------- Software e AI: sezione progetto radiografia ---------- */
.idi-rxs { background: radial-gradient(ellipse at 80% 20%, rgba(240,150,26,.16), transparent 55%), #00262C !important; color: #F4F0E6; overflow: hidden; }
.idi-rxs-g { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr) !important; gap: clamp(32px, 5vw, 80px) !important; align-items: center; }
.idi-rxs .idi-eyebrow { color: #F0961A !important; }
.idi-rxs .idi-h2 { color: #F4F0E6 !important; margin-top: 14px !important; }
.idi-rxs .idi-h2 em { font-style: normal; color: #F0961A; }
.idi-rxs-lead { margin: 22px 0 0 !important; font: 500 clamp(17px, 1.4vw, 20px)/1.55 "Montserrat", sans-serif !important; color: rgba(244,240,230,.82) !important; }
.idi-rxs-li { position: relative; margin: 14px 0 0 !important; padding-left: 36px !important; font: 700 16px/1.4 "Montserrat", sans-serif !important; color: #F4F0E6 !important; }
.idi-rxs-li:first-of-type { margin-top: 28px !important; }
.idi-rxs-li::before { content: ""; position: absolute; left: 0; top: -1px; width: 24px; height: 24px; border-radius: 50%; background: #F0961A url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300262C' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 13px no-repeat; }
.idi-rxs-cta { margin-top: 34px !important; }
.idi-rxs-nota { margin: 12px 0 0 !important; font: 500 13px "Montserrat", sans-serif !important; color: rgba(244,240,230,.6) !important; }
@media (max-width: 1024px) { .idi-rxs-g { grid-template-columns: minmax(0, 1fr) !important; } }
/* animazione radiografia */
.ca-rx-hero { margin-top: 18px; height: 120px; border-radius: 14px; background: linear-gradient(135deg, #00262C, #00474F); padding: 20px; display: flex; flex-direction: column; gap: 9px; justify-content: flex-end; }
.ca-rx-hero span { height: 10px; border-radius: 5px; background: rgba(244,240,230,.28); width: 70%; } .ca-rx-hero span:nth-child(2) { width: 52%; } .ca-rx-hero span:nth-child(3) { width: 30%; height: 22px; border-radius: 999px; background: rgba(240,150,26,.5); margin-top: 6px; }
.ca-raggio { position: absolute; left: 0; right: 0; top: 0; height: 70px; pointer-events: none; opacity: 0; background: linear-gradient(180deg, rgba(240,150,26,0), rgba(240,150,26,.28) 80%, rgba(240,150,26,.95) 98%, rgba(240,150,26,0)); mix-blend-mode: multiply; }
.ca-pin { position: absolute; z-index: 3; width: 24px; height: 24px; border-radius: 50%; background: #E2473A; color: #FFFFFF; font: 800 12px/24px "Montserrat", sans-serif; font-style: normal; text-align: center; box-shadow: 0 0 0 4px rgba(226,71,58,.25); transform: scale(0); }
.ca-p1 { right: 12%; top: 14%; } .ca-p2 { left: 8%; top: 52%; background: #E9A23B; box-shadow: 0 0 0 4px rgba(233,162,59,.25); } .ca-p3 { right: 30%; top: 80%; background: #E9A23B; box-shadow: 0 0 0 4px rgba(233,162,59,.25); }
.ca-ref { position: absolute; z-index: 4; right: -22px; top: 34%; width: 62%; padding: 16px 18px; border-radius: 18px; background: #FFFFFF; color: #00262C; box-shadow: 0 30px 60px rgba(0,0,0,.4); opacity: 0; }
.ca-ref-k { margin: 0; font: 700 10px "IBM Plex Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: #4F6B70; }
.ca-ref-v { margin: 4px 0 8px; font: 900 20px "Montserrat", sans-serif; color: #F0961A; letter-spacing: -.02em; }
.ca-ref-r { display: flex; gap: 8px; align-items: flex-start; margin: 8px 0 0; font: 600 12.5px/1.35 "Montserrat", sans-serif; }
.ca-ref-r i { flex: 0 0 9px; height: 9px; margin-top: 4px; border-radius: 50%; background: #E9A23B; } .ca-ref-r.ca-rosso i { background: #E2473A; }
.ca-rx .ca-n1 { left: -24px; bottom: 6px; }
@media (prefers-reduced-motion: no-preference) {
  .ca-rx .ca-nav > *, .ca-rx .ca-rx-hero, .ca-rx .ca-cards span { opacity: 0; }
  .ca-via .ca-rx .ca-nav > *, .ca-via .ca-rx .ca-rx-hero { animation: caPop .35s ease forwards; animation-delay: .4s; }
  .ca-via .ca-rx .ca-cards span { animation: caPop .35s ease forwards; animation-delay: .5s; }
  .ca-via .ca-rx .ca-raggio { animation: caRaggio 1.5s cubic-bezier(.45,0,.4,1) .85s forwards; }
  .ca-via .ca-rx .ca-p1 { animation: caBadge .4s cubic-bezier(.2,1.6,.4,1) 1.15s forwards; }
  .ca-via .ca-rx .ca-p2 { animation: caBadge .4s cubic-bezier(.2,1.6,.4,1) 1.55s forwards; }
  .ca-via .ca-rx .ca-p3 { animation: caBadge .4s cubic-bezier(.2,1.6,.4,1) 1.95s forwards; }
  .ca-via .ca-rx .ca-ref { animation: caNotif .55s cubic-bezier(.2,1.2,.4,1) 2.5s forwards; }
  .ca-rx .ca-ref-r { opacity: 0; }
  .ca-via .ca-rx .ca-ref-r { animation: caPop .3s ease forwards; } .ca-via .ca-rx .ca-ref-r:nth-of-type(3) { animation-delay: 2.85s; } .ca-via .ca-rx .ca-ref-r:nth-of-type(4) { animation-delay: 3s; } .ca-via .ca-rx .ca-ref-r:nth-of-type(5) { animation-delay: 3.15s; }
  .ca-via .ca-rx .ca-n1 { animation-delay: 3.6s; }
}
@keyframes caRaggio { 0% { opacity: 0; top: -70px; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { opacity: 0; top: 100%; } }
.ca-fermo .ca-pin { transform: scale(1); } .ca-fermo .ca-ref { opacity: 1; }
@media (max-width: 600px) { .ca-ref { right: -4px; width: 74%; top: 30%; padding: 12px 14px; } .ca-ref-v { font-size: 17px; } .ca-ref-r { font-size: 11.5px; } .ca-rx .ca-n1 { left: 0; } .ca-rx .ca-scena { padding-bottom: 90px; } }
/* la sezione radiografia vive in fondo alla fascia "Come lavoriamo": la stacco a tutta larghezza */
[data-elementor-type] .elementor-element:has(> .idi-rxs) { padding-bottom: 0 !important; }
.idi-rxs { margin-top: 140px !important; padding: 130px 0 !important; width: 100% !important; }
@media (max-width: 767px) { .idi-rxs { margin-top: 90px !important; padding: 90px 0 !important; } }
.ca-p3 { right: auto; left: 34%; top: 82%; }
.idi-rxs-cta .idi-btn { margin-left: 0 !important; }
.idi-rxs-cta { display: flex !important; justify-content: flex-start !important; padding: 0 !important; }
.ca-ai .ca-scena { padding-bottom: 120px; }
.ca-ai .ca-n1 { bottom: 58px; } .ca-ai .ca-n2 { bottom: 0; }
@media (max-width: 600px) { .ca-ai .ca-scena { padding-bottom: 150px; } .ca-ai .ca-n1 { bottom: 74px; } }
/* Chi siamo: apertura con titolo a sinistra e animazione a destra */
.idi-c-scansione .idi-lt-in { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important; align-items: center !important; }
.idi-c-scansione .sc-vis { border: 0 !important; background: none !important; backdrop-filter: none !important; overflow: visible !important; border-radius: 0 !important; font-family: "Montserrat", sans-serif !important; }
.ca-chi-h { display: flex; align-items: center; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid rgba(0,38,44,.1); }
.ca-chi-h p { margin: 0; font: 900 18px "Montserrat", sans-serif; color: #00262C; letter-spacing: -.02em; }
.ca-online { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; background: #E3F4EA; color: #1E7F4F; font: 800 11px "Montserrat", sans-serif; }
.ca-online::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #1E9E5C; }
.ca-ruolo { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 12px; margin-top: 10px; padding: 12px 14px 14px; border-radius: 12px; background: #FFFFFF; border: 1px solid rgba(0,38,44,.08); overflow: hidden; }
.ca-ruolo b { font: 800 14px "Montserrat", sans-serif; color: #00262C; } .ca-ruolo small { grid-column: 1; font: 500 12px "Montserrat", sans-serif; color: #4F6B70; }
.ca-ok { grid-column: 2; grid-row: 1 / span 2; width: 26px; height: 26px; border-radius: 50%; background: #F0961A; color: #00262C; display: flex; align-items: center; justify-content: center; } .ca-ok svg { width: 14px; height: 14px; }
.ca-barra { position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: #F0961A; transform-origin: left; }
.ca-r2 .ca-barra, .ca-r2 .ca-ok { background: #2C8796; } .ca-r2 .ca-ok { color: #FFFFFF; }
.ca-r3 .ca-barra, .ca-r3 .ca-ok { background: #00262C; } .ca-r3 .ca-ok { color: #F0961A; }
.ca-r4 .ca-barra { background: linear-gradient(90deg, #F0961A, #2C8796); } .ca-r4 .ca-ok { background: linear-gradient(135deg, #F0961A, #2C8796); color: #FFFFFF; }
.ca-chi .ca-scena { padding-bottom: 70px; }
@media (prefers-reduced-motion: no-preference) {
  .ca-chi .ca-chi-h, .ca-chi .ca-ruolo, .ca-chi .ca-online { opacity: 0; }
  .ca-chi .ca-ok { transform: scale(0); } .ca-chi .ca-barra { transform: scaleX(0); }
  .ca-via .ca-chi .ca-chi-h { animation: caPop .35s ease .35s forwards; }
  .ca-via .ca-chi .ca-ruolo { animation: caAd .45s cubic-bezier(.2,1.3,.4,1) forwards; }
  .ca-via .ca-chi .ca-r1 { animation-delay: .55s; } .ca-via .ca-chi .ca-r2 { animation-delay: .8s; } .ca-via .ca-chi .ca-r3 { animation-delay: 1.05s; } .ca-via .ca-chi .ca-r4 { animation-delay: 1.3s; }
  .ca-via .ca-chi .ca-barra { animation: caBarra .6s ease forwards; }
  .ca-via .ca-chi .ca-r1 .ca-barra { animation-delay: .8s; } .ca-via .ca-chi .ca-r2 .ca-barra { animation-delay: 1.05s; } .ca-via .ca-chi .ca-r3 .ca-barra { animation-delay: 1.3s; } .ca-via .ca-chi .ca-r4 .ca-barra { animation-delay: 1.55s; }
  .ca-via .ca-chi .ca-ok { animation: caBadge .4s cubic-bezier(.2,1.6,.4,1) forwards; }
  .ca-via .ca-chi .ca-r1 .ca-ok { animation-delay: 1.35s; } .ca-via .ca-chi .ca-r2 .ca-ok { animation-delay: 1.6s; } .ca-via .ca-chi .ca-r3 .ca-ok { animation-delay: 1.85s; } .ca-via .ca-chi .ca-r4 .ca-ok { animation-delay: 2.1s; }
  .ca-via .ca-chi .ca-online { animation: caPop .4s cubic-bezier(.2,1.6,.4,1) 2.4s forwards; }
  .ca-via .ca-chi .ca-n1 { animation-delay: 2.7s; } .ca-via .ca-chi .ca-n2 { animation-delay: 3.1s; }
}
@keyframes caBarra { to { transform: scaleX(1); } }
.ca-fermo .ca-ok { transform: none; } .ca-fermo .ca-barra { transform: none; }
@media (max-width: 1024px) { .idi-c-scansione .idi-lt-in { grid-template-columns: minmax(0, 1fr) !important; } }
.ca-chi .ca-scena { padding-bottom: 124px; } .ca-chi .ca-n1 { bottom: 60px; } .ca-chi .ca-n2 { bottom: 0; }
@media (max-width: 600px) { .ca-chi .ca-scena { padding-bottom: 150px; } .ca-chi .ca-n1 { bottom: 74px; } }
/* ---------- Chi siamo: il logo IDI che si compone da forme geometriche ---------- */
.lg { position: relative; width: 100%; max-width: 520px; aspect-ratio: 1 / .92; margin: 0 auto; --cr: #E2DCC8; --or: #F0961A; --te: #0B6B78; }
.lg-rings { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; transform: translate(calc(var(--mx, 0px) * -.5), calc(var(--my, 0px) * -.5)); transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.lg-rings circle, .lg-ax { fill: none; stroke: rgba(244,240,230,.13); stroke-width: .3; vector-effect: non-scaling-stroke; }
.lg-ax { stroke-dasharray: 1 2; }
.lg-orbita { position: absolute; left: 10%; top: 1.5%; width: 80%; aspect-ratio: 1; border-radius: 50%; pointer-events: none; }
.lg-orbita i { position: absolute; left: 50%; top: -5px; width: 10px; height: 10px; margin-left: -5px; border-radius: 50%; background: var(--or); box-shadow: 0 0 14px 2px rgba(244,162,45,.6); }
.lg-b { position: absolute; display: block; width: 9%; bottom: 34%; border-radius: 999px 999px 0 0; transform: translate(var(--mx, 0px), var(--my, 0px)); }
.lg-b1 { left: 32%; height: 32.4%; background: var(--cr); }
.lg-b2 { left: 45.5%; height: 37.6%; background: var(--or); }
.lg-b3 { left: 59%; height: 44%; background: var(--te); box-shadow: inset 0 0 0 1px rgba(244,240,230,.12); }
.lg-d { position: absolute; display: block; font-style: normal; pointer-events: none; }
.lg-plus { left: 14%; top: 16%; width: 22px; height: 22px; background: linear-gradient(var(--or), var(--or)) center / 100% 5px no-repeat, linear-gradient(var(--or), var(--or)) center / 5px 100% no-repeat; }
.lg-anello { right: 12%; top: 58%; width: 34px; height: 34px; border-radius: 50%; border: 4px solid var(--te); box-shadow: 0 0 0 1px rgba(244,240,230,.15); }
.lg-rombo { right: 18%; top: 12%; width: 20px; height: 20px; background: var(--cr); transform: rotate(45deg); border-radius: 3px; }
.lg-freccia { left: 12%; top: 62%; width: 0; height: 0; border-left: 13px solid transparent; border-right: 13px solid transparent; border-bottom: 22px solid var(--cr); }
.lg-pct { right: 8%; top: 34%; font: 900 26px "Montserrat", sans-serif; color: var(--or); }
.lg-punti { left: 22%; top: 40%; width: 34px; height: 12px; background: radial-gradient(circle, rgba(244,240,230,.55) 2.5px, transparent 3px) 0 0 / 12px 12px; }
.lg-cresce { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; transform: translate(var(--mx, 0px), var(--my, 0px)); }
.lg-cresce polyline, .lg-cresce path { fill: none; stroke: var(--or); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.lg-nome { position: absolute; left: 0; right: 0; top: 70%; margin: 0 !important; text-align: center; font: 800 clamp(15px, 2vw, 22px)/1.15 "Montserrat", sans-serif; letter-spacing: .06em; text-transform: uppercase; color: #F4F0E6; }
.lg-nome span { display: block; }
.lg-b, .lg-cresce { transition: transform .6s cubic-bezier(.2,.8,.2,1); }
@media (prefers-reduced-motion: no-preference) {
  .lg-rings circle { stroke-dasharray: 260; stroke-dashoffset: 260; }
  .lg-ax, .lg-orbita, .lg-d, .lg-b, .lg-nome span { opacity: 0; }
  .lg-cresce polyline { stroke-dasharray: 100; stroke-dashoffset: 100; } .lg-cresce path { opacity: 0; }
  .ca-via .lg-rings circle { animation: lgTraccia 1.2s cubic-bezier(.4,0,.2,1) forwards; }
  .ca-via .lg-rings circle:nth-child(2) { animation-delay: .12s; } .ca-via .lg-rings circle:nth-child(3) { animation-delay: .24s; }
  .ca-via .lg-ax { animation: caPop .6s ease .3s forwards; }
  /* le forme: cerchio, triangolo e quadrato che diventano le tre barre */
  .ca-via .lg-b1 { animation: lgCerchio 1.15s cubic-bezier(.65,0,.2,1) .25s forwards; }
  .ca-via .lg-b2 { animation: lgTriangolo 1.15s cubic-bezier(.65,0,.2,1) .38s forwards; }
  .ca-via .lg-b3 { animation: lgQuadrato 1.15s cubic-bezier(.65,0,.2,1) .5s forwards; }
  /* forme del marketing che entrano e poi si raccolgono nel logo */
  .ca-via .lg-d { animation: lgDentro .45s cubic-bezier(.2,1.5,.4,1) forwards, lgRaccolta .6s cubic-bezier(.6,0,.4,1) 1.55s forwards; }
  .ca-via .lg-plus { animation-delay: .2s, 1.5s; } .ca-via .lg-rombo { animation-delay: .3s, 1.55s; } .ca-via .lg-pct { animation-delay: .4s, 1.6s; } .ca-via .lg-anello { animation-delay: .5s, 1.65s; } .ca-via .lg-freccia { animation-delay: .6s, 1.7s; } .ca-via .lg-punti { animation-delay: .7s, 1.75s; }
  .ca-via .lg-cresce polyline { animation: lgTraccia .7s cubic-bezier(.4,0,.2,1) 1.9s forwards; }
  .ca-via .lg-cresce path { animation: caPop .25s ease 2.5s forwards; }
  .ca-via .lg-nome span { animation: lgNome .55s cubic-bezier(.2,.9,.3,1) forwards; }
  .ca-via .lg-nome span:nth-child(1) { animation-delay: 2.35s; } .ca-via .lg-nome span:nth-child(2) { animation-delay: 2.5s; }
  .ca-via .lg-orbita { animation: caPop .4s ease 2.7s forwards, lgGira 14s linear 2.7s infinite; }
}
@keyframes lgTraccia { to { stroke-dashoffset: 0; } }
@keyframes lgDentro { from { opacity: 0; scale: .2; } to { opacity: 1; scale: 1; } }
@keyframes lgRaccolta { to { opacity: 0; left: 48%; top: 42%; scale: .1; } }
@keyframes lgNome { from { opacity: 0; transform: translateY(10px); filter: blur(4px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes lgGira { to { transform: rotate(360deg); } }
@keyframes lgCerchio {
  0% { opacity: 0; left: 12%; bottom: 66%; width: 13%; height: 14.2%; border-radius: 50%; scale: .3; }
  22% { opacity: 1; scale: 1; }
  45% { left: 12%; bottom: 66%; width: 13%; height: 14.2%; border-radius: 50%; }
  80% { height: 36%; }
  100% { opacity: 1; left: 32%; bottom: 34%; width: 9%; height: 32.4%; border-radius: 999px 999px 0 0; scale: 1; }
}
@keyframes lgTriangolo {
  0% { opacity: 0; left: 70%; bottom: 70%; width: 16%; height: 15%; border-radius: 0; clip-path: polygon(50% 0, 100% 100%, 0 100%, 0 100%); rotate: -20deg; scale: .3; }
  22% { opacity: 1; scale: 1; }
  45% { left: 70%; bottom: 70%; width: 16%; height: 15%; border-radius: 0; clip-path: polygon(50% 0, 100% 100%, 0 100%, 0 100%); rotate: -20deg; }
  80% { height: 41%; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
  100% { opacity: 1; left: 45.5%; bottom: 34%; width: 9%; height: 37.6%; border-radius: 999px 999px 0 0; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); rotate: 0deg; scale: 1; }
}
@keyframes lgQuadrato {
  0% { opacity: 0; left: 64%; bottom: 8%; width: 12%; height: 13%; border-radius: 12%; rotate: 45deg; scale: .3; }
  22% { opacity: 1; scale: 1; }
  45% { left: 64%; bottom: 8%; width: 12%; height: 13%; border-radius: 12%; rotate: 45deg; }
  80% { height: 48%; rotate: 0deg; }
  100% { opacity: 1; left: 59%; bottom: 34%; width: 9%; height: 44%; border-radius: 999px 999px 0 0; rotate: 0deg; scale: 1; }
}
.lg-fermo .lg-d { display: none; }
.idi-c-scansione .sc-vis .lg { max-width: 500px; }
@media (max-width: 1024px) { .idi-c-scansione .sc-vis { margin-top: 10px; } .lg { max-width: 420px; } }
.lg-b { z-index: 2; } .lg-cresce { z-index: 3; }
.lg-cresce polyline, .lg-cresce path { vector-effect: none; stroke-width: .9; }
.lg-rings circle { stroke: rgba(244,240,230,.16); }
@media (prefers-reduced-motion: no-preference) { .lg-rings circle { stroke-dasharray: 100; stroke-dashoffset: 100; } }
/* niente nome e niente freccia: luce sulle barre e tre forme in orbita */
.lg-cresce, .lg-nome { display: none !important; }
.lg-orbita > i:not(.lg-s) { display: none; }
.lg-o1 { left: 10%; top: 2.2%; width: 80%; }
.lg-o2 { left: 21%; top: 14.1%; width: 58%; }
.lg-s { position: absolute; display: block; }
.lg-s-tri { left: 50%; top: -9px; margin-left: -9px; width: 18px; height: 16px; background: var(--or); clip-path: polygon(50% 0, 100% 100%, 0 100%); filter: drop-shadow(0 0 8px rgba(244,162,45,.55)); }
.lg-s-cer { left: 50%; bottom: -7px; margin-left: -7px; width: 14px; height: 14px; border-radius: 50%; background: var(--cr); box-shadow: 0 0 12px rgba(226,220,200,.45); }
.lg-s-qua { left: -7px; top: 50%; margin-top: -7px; width: 14px; height: 14px; border-radius: 3px; background: #1690A1; box-shadow: 0 0 12px rgba(22,144,161,.6); }
.lg-b { overflow: hidden; }
.lg-b::after { content: ""; position: absolute; inset: -10% -60%; background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,.55) 50%, transparent 60%); transform: translateX(-120%); }
@media (prefers-reduced-motion: no-preference) {
  .ca-via .lg-o1 { animation: caPop .4s ease 1.9s forwards, lgGira 16s linear 1.9s infinite; }
  .ca-via .lg-o2 { animation: caPop .4s ease 2.05s forwards, lgGiraR 11s linear 2.05s infinite; }
  .ca-via .lg-b::after { animation: lgLuce 1s ease forwards; }
  .ca-via .lg-b1::after { animation-delay: 1.75s; } .ca-via .lg-b2::after { animation-delay: 1.85s; } .ca-via .lg-b3::after { animation-delay: 1.95s; }
  .ca-via .lg-b { animation-fill-mode: forwards; }
}
@keyframes lgGiraR { to { transform: rotate(-360deg); } }
@keyframes lgLuce { to { transform: translateX(120%); } }
.lg-fermo .lg-orbita { opacity: 1; }
.lg-orbita i.lg-s { background: none; box-shadow: none; border-radius: 0; margin: 0; }
.lg-orbita i.lg-s-tri { left: 50%; top: -9px; bottom: auto; margin-left: -10px; width: 20px; height: 18px; background: var(--or); clip-path: polygon(50% 0, 100% 100%, 0 100%); filter: drop-shadow(0 0 8px rgba(244,162,45,.6)); }
.lg-orbita i.lg-s-cer { left: 50%; top: auto; bottom: -8px; margin-left: -8px; width: 16px; height: 16px; border-radius: 50%; background: var(--cr); box-shadow: 0 0 14px rgba(226,220,200,.5); }
.lg-orbita i.lg-s-qua { left: -8px; top: 50%; margin-top: -8px; width: 16px; height: 16px; border-radius: 3px; background: #1690A1; box-shadow: 0 0 14px rgba(22,144,161,.7); }
.lg-rings circle { vector-effect: none; stroke-width: .22; }
/* logo più grande */
.idi-c-scansione .sc-vis .lg { max-width: 640px; width: 118%; margin-left: -4%; margin-right: -14%; }
.idi-c-scansione .sc-vis { overflow: visible !important; }
@media (max-width: 1024px) { .idi-c-scansione .sc-vis .lg { width: 100%; max-width: 480px; margin: 0 auto; } }
/* ---------- Blog: l'articolo che si legge e si mette in pratica ---------- */
.ca-carte span { position: absolute; left: 8%; right: 8%; top: 10px; bottom: 80px; border-radius: 18px; background: #E6E0D2; transform: rotate(4deg) translate(14px, 6px); opacity: .55; }
.ca-carte span + span { transform: rotate(8deg) translate(30px, 14px); opacity: .3; }
.ca-blog .ca-browser { z-index: 1; }
.ca-lettura { position: absolute; left: 0; top: 40px; height: 3px; width: 100%; background: #F0961A; transform-origin: left; transform: scaleX(.08); z-index: 2; }
.ca-tag-a { margin: 4px 0 0; display: inline-block; padding: 5px 11px; border-radius: 999px; background: #00262C; color: #F0961A; font: 700 10.5px "IBM Plex Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }
.ca-blog .ca-tit { color: #00262C; margin-top: 12px; font-size: clamp(19px, 1.9vw, 24px); }
.ca-par { margin: 14px 0 0; display: flex; flex-direction: column; gap: 7px; }
.ca-par span { height: 8px; border-radius: 4px; background: #D7D0C0; width: 94%; } .ca-par span:nth-child(2) { width: 82%; } .ca-par span:last-child { width: 58%; }
.ca-par .ca-evid { height: auto; width: auto; align-self: flex-start; background: linear-gradient(transparent 55%, rgba(240,150,26,.55) 55%) 0 0 / 0% 100% no-repeat; border-radius: 0; font: 700 14px "Montserrat", sans-serif; color: #00262C; }
.ca-passi { margin-top: 16px; display: flex; flex-direction: column; gap: 8px; }
.ca-passi p { margin: 0; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: #FFFFFF; border: 1px solid rgba(0,38,44,.08); font: 700 13px "Montserrat", sans-serif; color: #00262C; }
.ca-passi i { flex: 0 0 22px; height: 22px; border-radius: 50%; background: #E6E0D2; color: #00262C; display: flex; align-items: center; justify-content: center; } .ca-passi i svg { width: 12px; height: 12px; opacity: 0; }
.ca-blog .ca-scena { padding-bottom: 110px; } .ca-blog .ca-n1 { bottom: 52px; } .ca-blog .ca-n2 { bottom: 0; }
@media (prefers-reduced-motion: no-preference) {
  .ca-blog .ca-tag-a, .ca-blog .ca-par span, .ca-blog .ca-passi p, .ca-carte span { opacity: 0; }
  .ca-via .ca-blog .ca-carte span { animation: caPop .5s ease .25s forwards; }
  .ca-via .ca-blog .ca-tag-a { animation: caPop .35s ease .4s forwards; }
  .ca-via .ca-blog .ca-tit { animation: caType .6s steps(30) .55s forwards; clip-path: inset(0 100% 0 0); opacity: 0; }
  .ca-via .ca-blog .ca-par span { animation: caPop .3s ease 1.1s forwards; }
  .ca-via .ca-blog .ca-evid { animation: caPop .3s ease 1.1s forwards, caEvid .6s ease 1.5s forwards; }
  .ca-via .ca-blog .ca-passi p { animation: caAd .4s cubic-bezier(.2,1.3,.4,1) forwards; } .ca-via .ca-blog .ca-passi p:nth-child(1) { animation-delay: 1.8s; } .ca-via .ca-blog .ca-passi p:nth-child(2) { animation-delay: 2s; } .ca-via .ca-blog .ca-passi p:nth-child(3) { animation-delay: 2.2s; }
  .ca-via .ca-blog .ca-passi i { animation: caSpunta .3s ease forwards; } .ca-via .ca-blog .ca-passi p:nth-child(1) i { animation-delay: 2.2s; } .ca-via .ca-blog .ca-passi p:nth-child(2) i { animation-delay: 2.4s; } .ca-via .ca-blog .ca-passi p:nth-child(3) i { animation-delay: 2.6s; }
  .ca-via .ca-blog .ca-passi i svg { animation: caPop .2s ease forwards; animation-delay: inherit; }
  .ca-via .ca-blog .ca-lettura { animation: caLettura 2.4s cubic-bezier(.4,0,.2,1) .6s forwards; }
  .ca-via .ca-blog .ca-n1 { animation-delay: 2.8s; } .ca-via .ca-blog .ca-n2 { animation-delay: 3.25s; }
}
@keyframes caEvid { to { background-size: 100% 100%; } }
@keyframes caSpunta { to { background: #F0961A; } }
@keyframes caLettura { to { transform: scaleX(1); } }
.ca-fermo .ca-evid { background-size: 100% 100%; } .ca-fermo .ca-passi i { background: #F0961A; } .ca-fermo .ca-passi i svg { opacity: 1; } .ca-fermo .ca-lettura { transform: none; }
/* apertura del blog su due colonne */
.page-id-459 .elementor-element-646751ad:has(.idi-c-cantiere) { display: grid !important; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important; column-gap: clamp(28px, 4vw, 64px) !important; align-items: center; }
.page-id-459 .elementor-element-646751ad:has(.idi-c-cantiere) > * { grid-column: 1; }
.page-id-459 .elementor-element-646751ad > .idi-c-cantiere { grid-column: 2; grid-row: 1 / span 5; }
@media (max-width: 1024px) { .page-id-459 .elementor-element-646751ad:has(.idi-c-cantiere) { grid-template-columns: minmax(0, 1fr) !important; } .page-id-459 .elementor-element-646751ad > .idi-c-cantiere { grid-column: 1; grid-row: auto; margin-top: 24px; } }
/* blocco radiografia in fondo al blog e agli articoli: titolo leggibile sul verde */
.idi-art-cta .idi-h2 { color: #F4F0E6 !important; }
.idi-art-cta .idi-h2 em { font-style: normal; color: #F0961A; }
.idi-art-cta .idi-eyebrow, .idi-art-cta p:first-child { color: #F0961A !important; }
@media (prefers-reduced-motion: no-preference) { .ca-via .ca-blog .ca-par span.ca-evid { animation: caPop .3s ease 1.1s forwards, caEvid .6s ease 1.5s forwards; } }
/* ---------- Blocco "Radiografia gratuita": mini referto sopra i pulsanti ---------- */
.elementor-element-134e0ed7:has(.idi-v-rxmini) { flex-wrap: wrap !important; align-content: center; }
.elementor-element-134e0ed7 > .idi-v-rxmini { order: -1; flex: 0 0 100%; max-width: 100%; margin-bottom: 18px; padding: 0 !important; }
.rxm { padding: 16px 18px 12px; border-radius: 18px; background: #F4F0E6; color: #00262C; box-shadow: 0 30px 60px rgba(0,0,0,.35); font-family: "Montserrat", sans-serif; transform: rotate(-1.5deg); }
.rxm-url { position: relative; display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 999px; background: #FFFFFF; border: 1px solid rgba(0,38,44,.12); overflow: hidden; font-size: 14px; }
.rxm-lente { width: 14px; height: 14px; border: 2.5px solid #4F6B70; border-radius: 50%; position: relative; flex: 0 0 14px; } .rxm-lente::after { content: ""; position: absolute; right: -5px; bottom: -5px; width: 6px; height: 2.5px; background: #4F6B70; transform: rotate(45deg); }
.rxm-scan { position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: #F0961A; transform-origin: left; transform: scaleX(1); }
.rxm-riga { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 10px 0 0 !important; padding: 10px 12px; border-radius: 12px; background: #FFFFFF; font: 700 13.5px "Montserrat", sans-serif; }
.rxm-riga em { font-style: normal; font-size: 11.5px; font-weight: 800; padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
.rx-r em { background: #FBE3E0; color: #B5332A; } .rx-a em { background: rgba(240,150,26,0.2); color: #00262C; } .rx-v em { background: #E3F4EA; color: #1E7F4F; }
.rxm-riga span::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 9px; vertical-align: 1px; background: currentColor; }
.rx-r span::before { background: #E2473A; } .rx-a span::before { background: #E9A23B; } .rx-v span::before { background: #1E9E5C; }
.rxm-nota { margin: 8px 0 0 !important; text-align: right; font-size: 10.5px; color: #6C8286; }
@media (prefers-reduced-motion: no-preference) {
  .rxm-riga { opacity: 0; } .rxm-scan { transform: scaleX(0); }
  .ca-via .rxm-scan { animation: caLettura 1s cubic-bezier(.4,0,.2,1) .3s forwards; }
  .ca-via .rxm-riga { animation: caAd .4s cubic-bezier(.2,1.3,.4,1) forwards; }
  .ca-via .rxm-riga:nth-of-type(1) { animation-delay: 1.2s; } .ca-via .rxm-riga:nth-of-type(2) { animation-delay: 1.4s; } .ca-via .rxm-riga:nth-of-type(3) { animation-delay: 1.6s; }
}
.elementor-element-272ecc0a:has(.idi-v-rxmini) { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, .95fr) !important; gap: clamp(28px, 4vw, 64px) !important; align-items: center !important; }
.elementor-element-272ecc0a:has(.idi-v-rxmini) > * { width: auto !important; max-width: none !important; flex: none !important; }
.elementor-element-134e0ed7:has(.idi-v-rxmini) { justify-content: flex-start !important; gap: 12px !important; }
.elementor-element-134e0ed7 > .idi-v-rxmini .rxm { max-width: 480px; }
.elementor-element-134e0ed7 > .idi-v-rxmini { justify-content: flex-start !important; }
@media (max-width: 900px) { .elementor-element-272ecc0a:has(.idi-v-rxmini) { grid-template-columns: minmax(0, 1fr) !important; } }

/* =====================================================================
   SCALA TIPOGRAFICA UNICA (stessi ruoli = stesse dimensioni su tutte le pagine)
   H1 apertura · H2 sezione · frase manifesto · H3 grande · H3 card · lead · testo card
   La Home mantiene il suo titolo principale.
   ===================================================================== */
:root { --t-h1: clamp(40px, 5.4vw, 80px); --t-h2: clamp(32px, 3.8vw, 56px); --t-man: clamp(34px, 5.6vw, 84px); --t-h3l: clamp(26px, 2.6vw, 40px); --t-h3: clamp(19px, 1.55vw, 22px); --t-lead: clamp(18px, 1.5vw, 22px); --t-card: 17px; }
/* H1 di apertura: tutte le pagine tranne la Home */
body.page:not(.page-id-76):not(.page-id-312) [data-elementor-type="wp-page"] h1:not(.idi-comp h1) { font-size: var(--t-h1) !important; line-height: 1.02 !important; letter-spacing: -0.035em !important; }
.idi-art-h1 em { font-style: normal; color: #F0961A; }
/* H2 di sezione (compreso il titolo del modulo finale e i blocchi caso) */
body.page [data-elementor-type="wp-page"] h2:not(.idi-comp):not(.idi-card-tit):not(.idi-chi-fine-h):not(:is(.idi-comp, .idi-c-cantiere, .idi-id-domanda) h2) { font-size: var(--t-h2) !important; line-height: 1.04 !important; }
/* frase manifesto / domanda finale: una sola misura */
body.page:not(.page-id-76) .idi-c-scrub, body.page:not(.page-id-76) .idi-c-scrub.e-heading-base, .idi-chi-fine-h, .idi-id-domanda h2 { font-size: var(--t-man) !important; line-height: 1.04 !important; }
/* H3 grandi (elenchi in evidenza) e H3 delle card */
.idi-pila-h, .idi-sv-tit { font-size: var(--t-h3l) !important; }
body.page [data-elementor-type="wp-page"] .idi-dt h3, body.page [data-elementor-type="wp-page"] .idi-wrap h3 + p ~ h3, :is(.page-id-515, .page-id-516, .page-id-517, .page-id-518, .page-id-519, .page-id-230) [data-elementor-type="wp-page"] h3:not(.idi-comp h3) { font-size: var(--t-h3) !important; }
/* sottotitolo dell'apertura */
body.page:not(.page-id-76):not(.page-id-312) [data-elementor-type="wp-page"] h1 + p:not(.idi-briciole), .idi-lt-sub, .idi-art-lead, .idi-gz-lead, .elementor-element-278e421c { font-size: var(--t-lead) !important; line-height: 1.5 !important; }
/* testo delle card */
.idi-dt p, .idi-verbo-d, .idi-fa-p, .idi-pila-p, .idi-chi-fatto-p, :is(.page-id-515, .page-id-516, .page-id-517, .page-id-518, .page-id-519, .page-id-230) [data-elementor-type="wp-page"] h3 + p { font-size: var(--t-card) !important; line-height: 1.5 !important; }
body.page .idi-c-scansione .idi-lt-h1, body.page-id-623 [data-elementor-type="wp-page"] h1 { font-size: var(--t-h1) !important; line-height: 1.02 !important; letter-spacing: -0.035em !important; }
/* Innovation Manager: apertura su due colonne come gli altri servizi */
.page-id-262 .elementor-element-4fff2f2a:has(.idi-c-cantiere) { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important; align-items: center; gap: clamp(24px, 4vw, 64px) !important; }
@media (max-width: 1024px) { .page-id-262 .elementor-element-4fff2f2a:has(.idi-c-cantiere) { grid-template-columns: minmax(0, 1fr) !important; } }

/* ---------- Innovation Manager: sezione bandi e finanziamenti ---------- */
.idi-bnd { position: relative; overflow: hidden; margin-top: 140px !important; padding: 130px 0 !important; width: 100% !important; color: #F4F0E6;
  background: radial-gradient(ellipse 50% 60% at 85% 10%, rgba(240,150,26,.18), transparent 60%), radial-gradient(ellipse 50% 60% at 0% 100%, rgba(44,135,150,.28), transparent 60%), linear-gradient(rgba(244,240,230,.04) 1px, transparent 1px) 0 0 / 100% 48px, linear-gradient(90deg, rgba(244,240,230,.04) 1px, transparent 1px) 0 0 / 48px 100%, #00262C !important; }
.elementor-element:has(> .idi-bnd) { padding-bottom: 0 !important; }
.idi-bnd-g { display: grid !important; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important; gap: clamp(32px, 5vw, 80px) !important; align-items: start; }
.idi-bnd .idi-eyebrow { color: #F0961A !important; }
.idi-bnd .idi-h2 { color: #F4F0E6 !important; margin-top: 14px !important; }
.idi-bnd .idi-h2 em { font-style: normal; color: #F0961A; }
.idi-bnd-num { margin: 34px 0 0 !important; font: 900 clamp(56px, 7vw, 104px)/1 "Montserrat", sans-serif !important; letter-spacing: -.04em; background: linear-gradient(100deg, #FFD08A, #F0961A 55%, #E2733A); -webkit-background-clip: text; background-clip: text; color: transparent !important; text-shadow: none; font-variant-numeric: tabular-nums; }
.idi-bnd-lab { margin: 10px 0 0 !important; max-width: 460px; font: 600 17px/1.5 "Montserrat", sans-serif !important; color: rgba(244,240,230,.85) !important; }
.idi-bnd-cta { margin-top: 32px !important; display: flex !important; justify-content: flex-start !important; padding: 0 !important; }
.idi-bnd-nota { margin: 12px 0 0 !important; font: 500 13px/1.5 "Montserrat", sans-serif !important; color: rgba(244,240,230,.6) !important; max-width: 440px; }
.idi-bnd-cards { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; padding: 0 !important; }
.idi-bnd-card { position: relative; padding: 24px 22px 22px !important; border-radius: 20px; background: linear-gradient(160deg, rgba(244,240,230,.09), rgba(244,240,230,.025)); border: 1px solid rgba(244,240,230,.14); backdrop-filter: blur(6px); overflow: hidden; transition: transform .3s ease, border-color .3s ease; display: flex !important; flex-direction: column !important; gap: 0 !important; }
.idi-bnd-card::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: linear-gradient(90deg, #F0961A, #2C8796); }
.idi-bnd-card::after { content: ""; position: absolute; right: -40px; top: -40px; width: 120px; height: 120px; border-radius: 50%; border: 1px solid rgba(240,150,26,.25); box-shadow: 0 0 0 18px rgba(240,150,26,.05), 0 0 0 36px rgba(240,150,26,.03); }
.idi-bnd-card:hover { transform: translateY(-4px); border-color: rgba(240,150,26,.5); }
.idi-bnd-ente { margin: 0 !important; font: 700 11px "IBM Plex Mono", monospace !important; letter-spacing: .12em; text-transform: uppercase; color: #F0961A !important; }
.idi-bnd-tit { margin: 10px 0 0 !important; font: 800 21px/1.2 "Montserrat", sans-serif !important; color: #F4F0E6 !important; letter-spacing: -.01em; }
.idi-bnd-desc { margin: 8px 0 0 !important; font: 500 15px/1.5 "Montserrat", sans-serif !important; color: rgba(244,240,230,.75) !important; }
.idi-bnd-card .idi-bnd-ok { margin: 16px 0 0 !important; align-self: flex-start; padding: 5px 11px; border-radius: 999px; background: rgba(30,158,92,.18); color: #7FE0A8 !important; font: 800 11.5px "Montserrat", sans-serif !important; }
.idi-bnd-altri { grid-column: 1 / -1; margin-top: 4px !important; padding: 18px 20px !important; border-radius: 18px; border: 1px dashed rgba(244,240,230,.22); display: flex !important; flex-wrap: wrap !important; align-items: center; gap: 8px 10px !important; }
.idi-bnd-altri > p:first-child { margin: 0 8px 0 0 !important; font: 700 11px "IBM Plex Mono", monospace !important; letter-spacing: .12em; text-transform: uppercase; color: rgba(244,240,230,.65) !important; }
.idi-bnd-chip { margin: 0 !important; padding: 7px 13px; border-radius: 999px; background: rgba(244,240,230,.08); border: 1px solid rgba(244,240,230,.16); font: 700 13px "Montserrat", sans-serif !important; color: #F4F0E6 !important; }
@media (prefers-reduced-motion: no-preference) {
  .idi-bnd-card { animation: idiBndIn .6s cubic-bezier(.2,.9,.3,1) both; animation-timeline: view(); animation-range: entry 0% entry 60%; }
}
@keyframes idiBndIn { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@media (max-width: 1024px) { .idi-bnd-g { grid-template-columns: minmax(0, 1fr) !important; } }
@media (max-width: 600px) { .idi-bnd-cards { grid-template-columns: minmax(0, 1fr) !important; } .idi-bnd { margin-top: 90px !important; padding: 90px 0 !important; } }
/* Innovation Manager: "Come lavoriamo" unito a "Cosa facciamo"; la fascia resta solo come contenitore della sezione bandi */
.page-id-262 .elementor-element-7510ab55 { padding: 0 !important; background: none !important; }
.page-id-262 .idi-bnd { margin-top: 0 !important; }
.idi-bnd-card { border-radius: 20px !important; overflow: hidden !important; border: 1px solid rgba(244,240,230,.14) !important; }
.idi-bnd-card::after { width: 90px; height: 90px; right: -34px; top: -34px; border-color: rgba(240,150,26,.18); box-shadow: 0 0 0 14px rgba(240,150,26,.035); }
.idi-bnd-altri { border-radius: 18px !important; border: 1px dashed rgba(244,240,230,.22) !important; }
.idi-bnd-chip { border-radius: 999px !important; }
.idi-bnd-card .idi-bnd-ok { border-radius: 999px !important; }
/* ---------- Progetti: i loghi dei clienti che si compongono in una griglia ---------- */
.pg { position: relative; width: 100%; max-width: 560px; margin: 0 auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; perspective: 1200px; }
.pg-t { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 10; padding: 0 14%; border-radius: 20px; background: var(--bg); box-shadow: 0 24px 50px rgba(0,0,0,.35), inset 0 0 0 1px rgba(244,240,230,.12); text-decoration: none; transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease; }
.pg-t img { max-width: 100%; max-height: 52px; width: auto; height: auto; object-fit: contain; }
.pg-t:hover { transform: translateY(-6px) scale(1.03); box-shadow: 0 34px 70px rgba(0,0,0,.45), inset 0 0 0 2px #F0961A; }
.pg-t2, .pg-t5 { transform: translateY(26px); } .pg-t2:hover, .pg-t5:hover { transform: translateY(20px) scale(1.03); }
.pg-linea { position: absolute; inset: -18px; border-radius: 30px; border: 1px dashed rgba(244,240,230,.18); pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
  .pg-t, .pg-linea { opacity: 0; }
  .ca-via .pg-t { animation: pgIn .8s cubic-bezier(.2,.9,.25,1.15) forwards; }
  .ca-via .pg-t1 { --dx: -120px; --dy: -60px; --r: -18deg; animation-delay: .15s; } .ca-via .pg-t2 { --dx: 140px; --dy: -90px; --r: 14deg; --y: 26px; animation-delay: .3s; }
  .ca-via .pg-t3 { --dx: -160px; --dy: 20px; --r: 10deg; animation-delay: .45s; } .ca-via .pg-t4 { --dx: 150px; --dy: 40px; --r: -12deg; animation-delay: .6s; }
  .ca-via .pg-t5 { --dx: -100px; --dy: 120px; --r: 16deg; --y: 26px; animation-delay: .75s; } .ca-via .pg-t6 { --dx: 120px; --dy: 140px; --r: -10deg; animation-delay: .9s; }
  .ca-via .pg-linea { animation: caPop .6s ease 1.5s forwards; }
  .ca-via .pg-t3 { animation: pgIn .8s cubic-bezier(.2,.9,.25,1.15) .45s forwards, pgFocus 1.2s ease 2s; }
}
@keyframes pgIn { from { opacity: 0; transform: translate(var(--dx), var(--dy)) rotate(var(--r)) scale(.7); } to { opacity: 1; transform: translateY(var(--y, 0px)); } }
@keyframes pgFocus { 50% { transform: scale(1.06); box-shadow: 0 34px 70px rgba(0,0,0,.45), inset 0 0 0 2px #F0961A; } }
.ca-fermo .pg-t, .ca-fermo .pg-linea { opacity: 1; }
.page-id-229 .elementor-element-4fff2f2a:has(.idi-c-cantiere) { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important; align-items: center; gap: clamp(24px, 4vw, 64px) !important; }
@media (max-width: 1024px) { .page-id-229 .elementor-element-4fff2f2a:has(.idi-c-cantiere) { grid-template-columns: minmax(0, 1fr) !important; } .pg { max-width: 460px; } }
@media (max-width: 600px) { .pg { gap: 10px; } .pg-t { border-radius: 14px; } .pg-t img { max-height: 36px; } }
/* Progetti: loghi nelle card (stessi colori di Siti web) */
.page-id-229 .elementor-element-5e49188f, .page-id-229 .elementor-element-7dc1053c { background: #FFFFFF !important; }
.page-id-229 .elementor-element-7ccf3c54 { background: #0E2A5C !important; }
.page-id-229 .elementor-element-693b3c39 { background: #111111 !important; }
.page-id-229 .elementor-element-41fcb8aa { background: #1D4E9E !important; }
.page-id-229 .elementor-element-3f8c9c08 { background: #1F1B16 !important; }
.pg-t2, .pg-t5 { transform: none; } .pg-t2:hover, .pg-t5:hover { transform: translateY(-6px) scale(1.03); }
.pg-t2, .pg-t4, .pg-t6 { top: 28px; }
.pg { padding-bottom: 28px; }
@media (prefers-reduced-motion: no-preference) { .ca-via .pg-t2, .ca-via .pg-t5 { --y: 0px; } }
/* ---------- Progetti: il percorso dal primo incontro al risultato ---------- */
.pg { display: none !important; }
.vg { position: relative; width: 100%; max-width: 560px; aspect-ratio: 520 / 460; margin: 0 auto; font-family: "Montserrat", sans-serif; }
.vg::before { content: ""; position: absolute; inset: -6%; border-radius: 32px; background: radial-gradient(circle at 85% 15%, rgba(240,150,26,.16), transparent 50%), radial-gradient(circle at 10% 90%, rgba(44,135,150,.22), transparent 55%); pointer-events: none; }
.vg-svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.vg-base { fill: none; stroke: rgba(244,240,230,.14); stroke-width: 2; stroke-dasharray: 2 8; stroke-linecap: round; }
.vg-via { fill: none; stroke: url(#vgG); stroke-width: 5; stroke-linecap: round; filter: drop-shadow(0 0 8px rgba(240,150,26,.45)); }
.vg-dot { fill: #FFFFFF; filter: drop-shadow(0 0 10px #F0961A); }
.vg-tappa { position: absolute; display: flex; align-items: center; gap: 12px; transform: translate(-50%, -50%); z-index: 2; }
.vg-nodo { flex: 0 0 52px; width: 52px; height: 52px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #00262C; color: #F4F0E6; border: 2px solid rgba(244,240,230,.25); box-shadow: 0 0 0 6px rgba(0,38,44,.6); }
.vg-nodo svg { width: 22px; height: 22px; }
.vg-tappa p { margin: 0 !important; white-space: nowrap; line-height: 1.2; }
.vg-tappa b { display: block; font: 800 15px "Montserrat", sans-serif; color: #F4F0E6; }
.vg-tappa small { display: block; margin-top: 3px; font: 500 12px "Montserrat", sans-serif; color: rgba(244,240,230,.65); }
.vg-t1 { transform: translate(-26px, -50%); } .vg-t1 p { order: 0; }
.vg-t2 p, .vg-t3 p { } 
.vg-t4 { transform: translate(calc(-100% + 26px), -50%); flex-direction: row-reverse; } .vg-t4 p { text-align: right; }
.vg-t4 .vg-nodo { background: #F0961A; color: #00262C; border-color: #F0961A; box-shadow: 0 0 0 6px rgba(240,150,26,.18), 0 0 30px rgba(240,150,26,.5); }
.vg-card { position: absolute; right: 0; bottom: 2%; width: 44%; padding: 14px 16px 10px; border-radius: 16px; background: #F4F0E6; color: #00262C; box-shadow: 0 30px 60px rgba(0,0,0,.4); z-index: 3; }
.vg-k { margin: 0 !important; font: 700 10.5px "IBM Plex Mono", monospace; letter-spacing: .1em; text-transform: uppercase; color: #4F6B70; }
.vg-barre { margin-top: 10px; height: 74px; display: flex; align-items: flex-end; gap: 8px; border-bottom: 1px solid rgba(0,38,44,.15); }
.vg-barre i { flex: 1; height: var(--h); border-radius: 6px 6px 0 0; background: #2C8796; transform-origin: bottom; } .vg-barre i:last-child { background: #F0961A; }
.vg-nota { margin: 6px 0 0 !important; font-size: 10.5px; color: #6C8286; text-align: right; }
@media (prefers-reduced-motion: no-preference) {
  .vg-via { stroke-dasharray: 100; stroke-dashoffset: 100; } .vg-dot { opacity: 0; }
  .vg-tappa, .vg-card { opacity: 0; } .vg-barre i { transform: scaleY(0); }
  .ca-via .vg-via { animation: lgTraccia 2.6s cubic-bezier(.45,0,.25,1) .1s forwards; }
  .ca-via .vg-dot { opacity: 1; transition: opacity .2s; }
  .ca-via .vg-tappa { animation: vgTappa .5s cubic-bezier(.2,1.4,.4,1) forwards; }
  .ca-via .vg-t1 { animation-delay: .1s; } .ca-via .vg-t2 { animation-delay: .9s; } .ca-via .vg-t3 { animation-delay: 1.7s; } .ca-via .vg-t4 { animation-delay: 2.55s; }
  .ca-via .vg-tappa .vg-nodo { animation: vgAcceso .6s ease forwards; animation-delay: inherit; }
  .ca-via .vg-card { animation: caNotif .55s cubic-bezier(.2,1.2,.4,1) 2.9s forwards; }
  .ca-via .vg-barre i { animation: caBarra .6s cubic-bezier(.2,1.3,.4,1) forwards; } .ca-via .vg-barre i:nth-child(1) { animation-delay: 3.2s; } .ca-via .vg-barre i:nth-child(2) { animation-delay: 3.32s; } .ca-via .vg-barre i:nth-child(3) { animation-delay: 3.44s; } .ca-via .vg-barre i:nth-child(4) { animation-delay: 3.56s; }
  .ca-via .vg-barre i { animation-name: vgBarra; }
}
@keyframes vgTappa { from { opacity: 0; scale: .6; } to { opacity: 1; scale: 1; } }
@keyframes vgAcceso { 50% { box-shadow: 0 0 0 14px rgba(240,150,26,.25); } }
@keyframes vgBarra { to { transform: scaleY(1); } }
.ca-fermo .vg-tappa, .ca-fermo .vg-card { opacity: 1; } .ca-fermo .vg-barre i { transform: none; } .ca-fermo .vg-dot { display: none; }
@media (max-width: 600px) { .vg-nodo { flex-basis: 40px; width: 40px; height: 40px; } .vg-nodo svg { width: 18px; height: 18px; } .vg-tappa b { font-size: 13px; } .vg-tappa small { font-size: 10.5px; } .vg-card { width: 50%; } .vg-barre { height: 54px; } }
/* Progetti singoli: "Altri progetti" con le tessere dei loghi */
.elementor-element-13e0c8e1:has(.idi-lg-card) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 18px !important; }
@media (max-width: 1024px) { .elementor-element-13e0c8e1:has(.idi-lg-card) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 600px) { .elementor-element-13e0c8e1:has(.idi-lg-card) { grid-template-columns: minmax(0, 1fr) !important; } }
/* Innovation Manager: dossier di finanziamento */
.idi-c-cantiere .fz { position: relative; width: 100%; max-width: 540px; margin: 0 auto; padding: 40px 0 44px; color: #F4F0E6; font-family: "Montserrat", sans-serif; }
.fz-dossier { position: relative; padding: 22px 22px 20px; border-radius: 22px; background: linear-gradient(160deg, rgba(0,90,104,0.6), rgba(0,30,35,0.92)); border: 1px solid rgba(244,240,230,0.16); box-shadow: 0 40px 110px rgba(0,0,0,0.42); overflow: hidden; }
.fz-top { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.fz .fz-k { margin: 0; font: 600 11px "IBM Plex Mono", monospace; letter-spacing: 0.12em; text-transform: uppercase; color: #A7BDC0; }
.fz-stato { display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px; border-radius: 99px; background: rgba(240,150,26,0.14); font: 700 12px "Montserrat", sans-serif; color: #F0961A; white-space: nowrap; }
.fz-stato i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; animation: fzPunto 1.4s ease-in-out infinite; }
.fz.fz-fatto .fz-stato { background: rgba(99,210,155,0.16); color: #63D29B; }
@keyframes fzPunto { 50% { opacity: 0.25; } }
.fz-radar { position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; opacity: 0.5; pointer-events: none; }
.fz-radar b { position: absolute; inset: 0; border-radius: 50%; border: 1px solid rgba(44,135,150,0.6); }
.fz-radar b:nth-child(3) { inset: 30px; } .fz-radar b:nth-child(4) { inset: 60px; }
.fz-sweep { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(from 0deg, rgba(240,150,26,0.45), transparent 22%); animation: fzGira 2.4s linear infinite; }
.fz.fz-fatto .fz-sweep { animation-play-state: paused; opacity: 0; transition: opacity 0.6s; }
@keyframes fzGira { to { transform: rotate(360deg); } }
.fz-bandi { position: relative; list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.fz-b { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: rgba(244,240,230,0.05); border: 1px solid rgba(244,240,230,0.1); transition: all 0.45s ease var(--d); }
.fz-ente { font: 700 10.5px "IBM Plex Mono", monospace; letter-spacing: 0.04em; text-transform: uppercase; color: #A7BDC0; white-space: nowrap; }
.fz-nome { font: 700 13.5px/1.3 "Montserrat", sans-serif; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fz-esito { font: 700 11.5px "Montserrat", sans-serif; font-style: normal; padding: 3px 9px; border-radius: 99px; opacity: 0; transform: scale(0.8); transition: all 0.35s cubic-bezier(.2,1.4,.3,1) var(--d); white-space: nowrap; }
.fz-b.si .fz-esito { background: #63D29B; color: #00262C; }
.fz-b.no .fz-esito { background: rgba(244,240,230,0.12); color: #A7BDC0; }
.fz.ca-via .fz-esito { opacity: 1; transform: none; }
.fz.ca-via .fz-b.no { opacity: 0.45; }
.fz.ca-via .fz-b.si { border-color: rgba(99,210,155,0.55); background: rgba(99,210,155,0.08); }
.fz-domanda { margin-top: 16px; padding-top: 14px; border-top: 1px dashed rgba(244,240,230,0.2); }
.fz-domanda ol { list-style: none; margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; }
.fz-domanda li { display: flex; align-items: center; gap: 8px; font: 600 12.5px/1.3 "Montserrat", sans-serif; color: #C8D6D8; opacity: 0.35; transition: opacity 0.4s ease var(--d), color 0.4s ease var(--d); }
.fz-domanda li span { flex: none; width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid rgba(244,240,230,0.35); display: inline-flex; align-items: center; justify-content: center; color: transparent; transition: all 0.35s ease var(--d); }
.fz-domanda li svg { width: 12px; height: 12px; }
.fz.ca-via .fz-domanda li { opacity: 1; color: #F4F0E6; }
.fz.ca-via .fz-domanda li span { background: #F0961A; border-color: #F0961A; color: #00262C; }
.fz-timbro { position: absolute; right: 22px; top: 22px; padding: 6px 12px; border: 3px solid #63D29B; border-radius: 8px; color: #63D29B; font: 900 16px "Montserrat", sans-serif; letter-spacing: 0.1em; text-transform: uppercase; transform: rotate(-8deg) scale(1.8); opacity: 0; background: rgba(0,30,35,0.85); }
.fz.fz-fatto .fz-timbro { animation: fzTimbro 0.45s cubic-bezier(.2,1.4,.3,1) forwards; }
@keyframes fzTimbro { to { opacity: 1; transform: rotate(-8deg) scale(1); } }
.fz-cifra { position: relative; z-index: 2; width: max-content; max-width: 78%; margin: -18px 0 0 -14px; padding: 14px 18px; border-radius: 16px; background: #F0961A; color: #00262C; box-shadow: 0 24px 60px rgba(0,0,0,0.4); transform: translateY(16px); opacity: 0; transition: all 0.5s cubic-bezier(.2,1.2,.3,1); }
.fz.fz-fatto .fz-cifra { transform: none; opacity: 1; }
.fz-cifra b { display: block; font: 900 clamp(28px, 3vw, 38px)/1 "Montserrat", sans-serif; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.fz-cifra small { display: block; margin-top: 4px; font: 700 12.5px/1.35 "Montserrat", sans-serif; }
.fz-badge { position: absolute; right: -10px; top: -14px; z-index: 2; display: flex; align-items: center; gap: 10px; padding: 10px 14px 10px 10px; border-radius: 14px; background: #F4F0E6; color: #00262C; box-shadow: 0 18px 44px rgba(0,0,0,0.35); animation: fzGalleggia 5s ease-in-out infinite; }
.fz-badge span { flex: none; width: 34px; height: 34px; border-radius: 10px; background: #00262C; color: #F0961A; display: inline-flex; align-items: center; justify-content: center; font: 800 13px "IBM Plex Mono", monospace; }
.fz-badge b { display: block; font: 800 13px "Montserrat", sans-serif; } .fz-badge small { display: block; font: 600 11.5px "Montserrat", sans-serif; color: #4F6B70; }
@keyframes fzGalleggia { 50% { transform: translateY(-6px); } }
.fz-nota { position: absolute; right: 0; bottom: 8px; margin: 0; font: 500 11px "Montserrat", sans-serif; color: #A7BDC0; }
.fz.ca-fermo * { animation: none !important; transition: none !important; }
.fz.ca-fermo .fz-cifra, .fz.ca-fermo .fz-timbro { opacity: 1; transform: none; }
@media (max-width: 600px) { .fz-domanda ol { grid-template-columns: 1fr; } .fz-badge { position: relative; right: auto; margin: 0 0 12px auto; width: max-content; } .fz-nome { white-space: normal; } }
