/* Protocollo Terapista — landing (grafica v2, stile AP Sales / Funnel Operator; testi v3)
   Mobile first. Breakpoint: 640 · 900 · 1100. */

@font-face { font-family: "Jakarta Fallback"; src: local("Arial"); size-adjust: 104%; ascent-override: 98%; descent-override: 24%; line-gap-override: 0%; }
@font-face { font-family: "Inter Tight Fallback"; src: local("Arial"); size-adjust: 94%; ascent-override: 102%; descent-override: 26%; line-gap-override: 0%; }

:root {
  /* scuri */
  --bg: #141414;
  --bg-2: #0F0F0F;
  --card: #1B1B1B;
  --card-2: #222222;
  --line: #2A2A2A;
  --txt: #F4F2E8;
  --txt-soft: #D9D7CF;
  --txt-2: #A8A69E;
  /* chiari */
  --light: #F4F2E8;
  --light-card: #FAF9F3;
  --light-line: #DCDAD0;
  --ink: #0D0D0D;
  --ink-2: #4A4A4A;
  /* accento */
  --ind: #2B28D6;
  --ind-h: #2320B0;
  --ind-l: #7A78FF;          /* indaco schiarito: testo d'accento su fondo scuro */
  --glow: rgba(43, 40, 214, .55);
  --teal: #5C8A93;
  --teal-l: #A5C3C9;

  --h: "Plus Jakarta Sans", "Jakarta Fallback", Arial, sans-serif;
  --b: "Inter Tight", "Inter Tight Fallback", Arial, sans-serif;
  --m: "DM Mono", ui-monospace, Menlo, monospace;

  --gutter: 20px;
  --maxw: 1200px;
  --header-h: 60px;
  --sec: clamp(72px, 52px + 5.5vw, 128px);
  --ease: cubic-bezier(.2, .7, .2, 1);
}
@media (min-width: 900px) { :root { --gutter: 40px; --header-h: 64px; } }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 12px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { margin: 0; background: var(--bg); color: var(--txt); font: 400 16px/1.6 var(--b); -webkit-font-smoothing: antialiased; overflow-x: clip; }
img, svg, video { display: block; max-width: 100%; }
h1, h2, h3, p, ul, ol, figure, dl, dd { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; }
button, input, textarea { font: inherit; color: inherit; }
[hidden] { display: none !important; }
.sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

:focus-visible { outline: 3px solid var(--teal-l); outline-offset: 2px; }
.light :focus-visible, .qcard :focus-visible { outline-offset: 0; box-shadow: 0 0 0 4px var(--ink); }

.wrap { width: 100%; max-width: calc(var(--maxw) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.wrap.narrow { max-width: calc(680px + 2 * var(--gutter)); }
.narrow { max-width: 680px; margin-inline: auto; }
.center, .center-t { text-align: center; }
.sec { padding-block: var(--sec); position: relative; }

.dark { background: var(--bg); color: var(--txt); --acc: var(--ind-l); }
.dark-2 { background: var(--bg-2); }
.light { background: var(--light); color: var(--ink); --acc: var(--ind); }
.dark-tex { isolation: isolate; }
.dark-tex::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: radial-gradient(rgba(244, 242, 232, .09) 1px, transparent 1.4px);
  background-size: 9px 9px;
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 20%, transparent 75%);
          mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 20%, transparent 75%);
}

/* ---------- Tipografia ---------- */
h1, h2, h3 { font-family: var(--h); text-wrap: balance; }
h1 { font-weight: 500; font-size: clamp(36px, 25px + 3.2vw, 66px); line-height: 1.04; letter-spacing: -.04em; }
h2 { font-weight: 500; font-size: clamp(30px, 22px + 2.3vw, 54px); line-height: 1.08; letter-spacing: -.04em; }
h3 { font-weight: 700; font-size: clamp(21px, 18px + .7vw, 27px); line-height: 1.2; letter-spacing: -.025em; }
h1 strong, h2 strong { font-weight: 800; }
.acc-c { color: var(--acc); }
.lead { font-size: clamp(17px, 16px + .3vw, 19px); line-height: 1.55; }
.small { font-size: 13px; line-height: 1.5; }
.dark p { color: var(--txt-soft); }
.light p { color: var(--ink-2); }
.dark strong { color: var(--txt); }
.light strong { color: var(--ink); }
.dark .acc-c, .light .acc-c { color: var(--acc); }
.head-c { max-width: 760px; margin-inline: auto; text-align: center; }
.head-c .lead { margin-top: 18px; }

/* ---------- Bottoni ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .45em;
  min-height: 50px; padding: 12px 24px; border: 1px solid transparent; border-radius: 8px;
  background: var(--ind); color: #fff; font: 600 16px/1.25 var(--b); text-align: center; text-decoration: none;
  cursor: pointer; transition: background-color .2s, box-shadow .2s, border-color .2s, color .2s;
}
.btn:hover { background: var(--ind-h); }
.btn-glow { border-color: rgba(122, 120, 255, .55); box-shadow: 0 0 34px var(--glow), 0 6px 18px rgba(0, 0, 0, .35); }
.btn-glow:hover { box-shadow: 0 0 46px rgba(43, 40, 214, .75), 0 6px 18px rgba(0, 0, 0, .35); }
.light .btn-glow, .qcard .btn-glow { box-shadow: 0 10px 30px rgba(43, 40, 214, .35); }
.btn-line { background: transparent; border-color: rgba(244, 242, 232, .5); color: var(--txt); }
.btn-line:hover { background: rgba(244, 242, 232, .08); }
.btn-light { background: var(--light); color: var(--ink); }
.btn-light:hover { background: #fff; }
.btn-sm { min-height: 44px; padding: 8px 16px; font-size: 14px; border-radius: 7px; }
.btn[disabled] { opacity: .6; cursor: progress; }

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(20, 20, 20, .92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(244, 242, 232, .08); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; height: var(--header-h); }
.brand { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; text-decoration: none; font: 700 16px/1 var(--h); letter-spacing: -.03em; color: var(--txt); }
.brand img { width: 24px; height: auto; }
.nav { display: none; }
.only-desk { display: none; }
@media (min-width: 900px) {
  .nav { display: flex; gap: 28px; margin-left: auto; }
  .nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--txt-2); font: 500 15px/1 var(--b); text-decoration: none; }
  .nav a:hover { color: var(--txt); }
  .only-desk { display: inline; }
  .only-mob { display: none; }
}

/* ---------- Hero ---------- */
.hero { padding-top: 64px; overflow: hidden; text-align: center; }
.hero-in { max-width: 1180px; }
.hero-sub, .hero-micro { margin-inline: auto; }
.hero h1 { margin-bottom: 22px; }
.dark .hero-pre { max-width: 34ch; margin: 0 auto 18px; font: 600 14px/1.45 var(--b); color: var(--txt-soft); }
@media (min-width: 640px) { .dark .hero-pre { max-width: none; } }
.hero h1 strong { color: #fff; }
.hero-sub { max-width: 600px; margin-inline: auto; font-size: 16px; line-height: 1.6; }
.hero-cta { display: flex; flex-direction: column; gap: 10px; margin-top: 30px; }
.hero-micro { margin-top: 16px; font: 500 13px/1.4 var(--b); }
.dark .hero-micro { color: var(--txt-2); }
@media (min-width: 640px) { .hero-cta { flex-direction: row; justify-content: center; } }
@media (min-width: 900px) { .hero { padding-top: 96px; } .hero-sub { font-size: 17px; } }

.curve { position: relative; height: 250px; margin-top: 36px; --ch: 150px; }
.curve-line { position: absolute; left: 0; top: 0; width: 100%; height: var(--ch); overflow: visible; }
.curve-line path { fill: none; stroke: rgba(244, 242, 232, .85); stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.dots-mountains {
  position: absolute; left: 0; right: 0; top: calc(var(--ch) * .45); bottom: 0;
  background-image: radial-gradient(rgba(244, 242, 232, .7) 1px, transparent 1.35px);
  background-size: 7px 7px;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 300' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='.9'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23g)' d='M0 210 L90 170 L160 190 L260 90 L330 130 L400 60 L470 110 L560 150 L640 120 L720 175 L800 140 L880 80 L960 40 L1030 95 L1110 70 L1190 130 L1280 100 L1370 150 L1440 130 L1440 300 L0 300Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 300' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='.9'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23g)' d='M0 210 L90 170 L160 190 L260 90 L330 130 L400 60 L470 110 L560 150 L640 120 L720 175 L800 140 L880 80 L960 40 L1030 95 L1110 70 L1190 130 L1280 100 L1370 150 L1440 130 L1440 300 L0 300Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  opacity: .45;
}
.curve-pts { position: absolute; inset: 0 0 auto 0; height: var(--ch); }
.cp {
  position: absolute; display: flex; flex-direction: column; align-items: center; gap: 4px;
  transform: translate(-50%, calc(-100% + 9px));
  font: 600 12px/1.25 var(--b); color: var(--txt); white-space: nowrap; text-align: center;
}
.cp > span { padding: 2px 6px; border-radius: 6px; background: rgba(20, 20, 20, .72); }
.cp2 { flex-direction: column-reverse; transform: translate(-50%, -9px); }
.cp2 b { margin: 0 0 6px; }
.cp b { width: 18px; height: 18px; margin-top: 6px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 5px rgba(244, 242, 232, .12), 0 0 24px rgba(255, 255, 255, .45); }
.cp-ic { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 7px; background: rgba(122, 120, 255, .18); }
.cp-ic svg { width: 16px; height: 16px; fill: none; stroke: var(--ind-l); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cp1 { left: 22%; top: calc(var(--ch) * .318); }
.cp2 { left: 50%; top: calc(var(--ch) * .773); }
.cp3 { left: 78%; top: calc(var(--ch) * .273); }
@media (min-width: 640px) { .curve { height: 300px; --ch: 200px; } .cp { font-size: 14px; } }
@media (min-width: 1100px) { .curve { height: 340px; --ch: 220px; } }

/* ---------- Tre carte inclinate ---------- */
.cards3-sec { overflow: hidden; }
.cards3 { display: grid; gap: 40px; margin-top: 48px; justify-items: center; }
.tc { position: relative; width: 100%; max-width: 300px; margin: 0; background: var(--light-card); border: 1px solid var(--light-line); border-radius: 18px; box-shadow: 0 24px 50px rgba(13, 13, 13, .13); }
.tc-1 { transform: rotate(-3deg); }
.tc-3 { transform: rotate(3deg); }
.tc-visual { display: grid; place-items: center; height: 210px; padding: 18px; border-radius: 17px 17px 0 0; background: var(--bg); overflow: hidden; }
.tc-visual-blue { background: var(--ind); }
.tc figcaption { padding: 16px 18px 20px; text-align: center; }
.tc figcaption b { display: block; font: 700 19px/1.2 var(--h); letter-spacing: -.03em; color: var(--ink); }
.tc figcaption span { display: block; margin-top: 4px; font-size: 14px; color: var(--ink-2); }
.tc-ck { position: absolute; top: -14px; right: -12px; z-index: 2; width: 38px; height: 38px; border-radius: 50%; background: var(--ind) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 22px no-repeat; box-shadow: 0 0 0 4px var(--light), 0 6px 16px rgba(43, 40, 214, .45); }
@media (min-width: 900px) {
  .cards3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; align-items: center; max-width: 1000px; margin: 64px auto 0; }
  .tc-2 { transform: translateY(-14px) scale(1.04); z-index: 1; }
}

.mk-ad { width: 100%; max-width: 220px; padding: 10px; border-radius: 10px; background: #fff; color: var(--ink); font-size: 11px; line-height: 1.3; }
.mk-ad-top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.mk-ad-top i { width: 22px; height: 22px; border-radius: 50%; background: var(--ind); }
.mk-ad-top b { display: block; font-size: 11px; }
.mk-ad-top small { display: block; font-size: 9px; color: #777; }
.mk-ad-img { display: flex; flex-direction: column; justify-content: flex-end; height: 86px; padding: 10px; border-radius: 6px; background: var(--ind); color: #fff; }
.mk-ad-img span { font: 800 14px/1.15 var(--h); letter-spacing: -.02em; }
.mk-ad-img small { font-size: 10px; opacity: .85; }
.mk-ad-cta { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; font-size: 10px; color: #555; }
.mk-ad-cta em { font-style: normal; font-weight: 700; padding: 4px 8px; border-radius: 4px; background: #ECEAE2; color: var(--ink); }

.mk-call { display: flex; flex-direction: column; align-items: center; gap: 4px; color: #fff; text-align: center; }
.mk-call small { font-size: 11px; opacity: .8; }
.mk-call b { font: 700 22px/1.1 var(--h); letter-spacing: -.03em; }
.mk-call-t { font: 500 13px/1 var(--m); opacity: .9; }
.mk-call-note { margin-top: 6px; padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, .16); font-size: 10px; }
.mk-call-btn { width: 36px; height: 36px; margin-top: 10px; border-radius: 50%; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 3.5l3 3.6-1.9 2a12 12 0 0 0 7.2 7.2l2-1.9 3.6 3-1.7 3.1C11 20.3 3.7 13 3.5 5.2z' fill='%232B28D6'/%3E%3C/svg%3E") center / 18px no-repeat; }

.mk-cal { width: 100%; max-width: 220px; padding: 10px; border-radius: 10px; background: #fff; color: var(--ink); }
.mk-cal-h { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 6px; margin-bottom: 4px; border-bottom: 1px solid #EEE; }
.mk-cal-h b { font: 700 13px/1 var(--h); }
.mk-cal-h small { font-size: 9px; color: #888; }
.mk-slot { display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 6px; height: 28px; }
.mk-slot small { font: 400 9px/1 var(--m); color: #888; }
.mk-slot span { height: 22px; border-radius: 4px; padding: 0 6px; font-size: 9.5px; line-height: 22px; overflow: hidden; white-space: nowrap; border: 1px dashed #DDD; }
.mk-slot span.busy { background: #ECEAE2; border-color: #ECEAE2; color: #777; }
.mk-slot span.new { background: var(--ind); border-color: var(--ind); color: #fff; font-weight: 700; }

/* ---------- Righe impilate + storia ---------- */
.stack { text-align: center; }
.stack li { font: 500 clamp(26px, 19px + 2vw, 42px)/1.15 var(--h); letter-spacing: -.035em; color: var(--txt); }
.stack li + li::before { content: "↓"; display: block; margin: 12px 0; font: 400 16px/1 var(--b); color: var(--txt-2); }
.stack strong { color: var(--ind-l); }
.dark .stack-more { margin-top: 44px; text-align: center; font: 600 clamp(20px, 18px + .6vw, 26px)/1.2 var(--h); letter-spacing: -.03em; color: var(--txt); }
.story { margin-top: 72px; }
.story h3 { margin-bottom: 18px; font-size: clamp(26px, 20px + 1.5vw, 36px); letter-spacing: -.035em; }
.story p { margin-top: 14px; font-size: 17px; line-height: 1.65; }
.dark .story-msg { max-width: 420px; padding: 14px 16px; border-radius: 16px 16px 16px 4px; background: var(--card-2); border: 1px solid #2E2E2E; color: var(--txt); font-size: 16px; }
.dark .story-end { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); font: 500 clamp(20px, 18px + .6vw, 24px)/1.35 var(--h); letter-spacing: -.025em; color: var(--txt); }
.story-end strong { color: var(--ind-l); }

/* ---------- Problema / soluzione ---------- */
.ps { display: grid; gap: 56px; max-width: 920px; margin-inline: auto; }
.dark .ps-h { font: 500 clamp(30px, 24px + 1.5vw, 40px)/1.1 var(--h); letter-spacing: -.04em; color: var(--txt); }
.dark .ps-sub { margin: 6px 0 22px; font-size: 15px; color: var(--txt); }
.ps-visual { display: grid; place-items: center; height: 220px; margin-bottom: 14px; border-radius: 16px; background: var(--card) radial-gradient(rgba(244, 242, 232, .07) 1px, transparent 1.3px) 0 0 / 8px 8px; border: 1px solid #2E2E2E; overflow: hidden; }
.ps-visual-blue { background: var(--ind) radial-gradient(rgba(255, 255, 255, .12) 1px, transparent 1.3px) 0 0 / 8px 8px; border-color: #6764FF; box-shadow: 0 0 44px rgba(43, 40, 214, .5); }
.mk-notif { width: 84%; max-width: 300px; }
.mk-clock { display: block; margin-bottom: 8px; text-align: center; font: 600 32px/1 var(--h); letter-spacing: -.03em; color: #fff; }
.mk-n { display: grid; grid-template-columns: 1fr auto; gap: 0 8px; margin-top: 6px; padding: 7px 10px; border-radius: 10px; background: rgba(244, 242, 232, .09); font-size: 11px; line-height: 1.3; color: var(--txt); }
.mk-n small { color: var(--txt-2); }
.dark .mk-n p { grid-column: 1 / -1; font-size: 11.5px; color: var(--txt-soft); }
.mk-flow { position: relative; display: grid; gap: 12px; width: 80%; max-width: 280px; padding-left: 22px; color: #fff; }
.mk-flow::before { content: ""; position: absolute; left: 5px; top: 8px; bottom: 8px; width: 1.5px; background: rgba(255, 255, 255, .5); }
.mk-flow div { position: relative; }
.mk-flow div::before { content: ""; position: absolute; left: -22px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: #fff; }
.mk-flow small { display: block; font: 500 11px/1 var(--m); opacity: .85; }
.mk-flow b { font: 700 15px/1.3 var(--h); letter-spacing: -.02em; }
.mk-flow .ok b { padding: 3px 8px; border-radius: 6px; background: #fff; color: var(--ind); }

.acc details { border-top: 1px solid var(--line); }
.acc details:last-child { border-bottom: 1px solid var(--line); }
.acc summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 12px 0; list-style: none; cursor: pointer; font: 500 17px/1.3 var(--b); color: var(--txt-2); }
.acc summary::-webkit-details-marker { display: none; }
.acc summary::after { content: ""; flex: none; width: 9px; height: 9px; margin-right: 4px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-3px); transition: transform .25s var(--ease); }
.acc details[open] summary { color: var(--txt); }
.acc details[open] summary::after { transform: rotate(-135deg) translateY(-3px); }
.acc-blue details[open] summary { color: var(--ind-l); }
.dark .acc details p { padding-bottom: 16px; font-size: 15px; color: var(--txt-2); }
@media (min-width: 900px) { .ps { grid-template-columns: 1fr 1fr; gap: 56px; } }

.stats3 { display: grid; gap: 12px; max-width: 820px; margin: 64px auto 0; }
.stats3 li { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; column-gap: 12px; padding: 14px 16px; border-radius: 14px; background: var(--card); border: 1px solid var(--line); }
.st-ic { grid-row: 1 / span 2; font: 800 20px/1 var(--h); color: var(--ind-l); text-align: center; }
.stats3 small { font-size: 13px; color: var(--txt-2); }
.stats3 b { font: 700 20px/1.2 var(--h); letter-spacing: -.03em; }
@media (min-width: 640px) {
  .stats3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stats3 li { display: block; padding: 18px 16px; text-align: center; }
  .st-ic { display: block; }
  .stats3 small { display: block; margin-top: 8px; }
  .stats3 b { display: block; margin-top: 2px; font-size: 22px; }
}
/* variante con i dati di mercato: numero grande, descrizione sotto */
.dark .stats-lead { max-width: 640px; margin: 72px auto 0; text-align: center; font: 500 clamp(20px, 18px + .6vw, 26px)/1.3 var(--h); letter-spacing: -.03em; color: var(--txt); }
.stats-lead + .stats3 { margin-top: 28px; }
.stats3-data li { display: block; padding: 18px; }
.stats3-data b { display: block; font: 800 36px/1 var(--h); letter-spacing: -.04em; color: var(--ind-l); }
.stats3-data small { display: block; margin-top: 8px; font-size: 14px; line-height: 1.45; }
@media (min-width: 640px) { .stats3-data b { font-size: 40px; } .stats3-data small { margin-top: 10px; } }
.fonte.center { max-width: 680px; margin-inline: auto; }

/* ---------- Offerta (due card) ---------- */
.offer { max-width: 880px; margin: 48px auto 0; padding: 30px 20px; border-radius: 24px; text-align: center; }
.offer h3 { font-size: clamp(24px, 20px + 1vw, 32px); letter-spacing: -.035em; }
.offer-sub { max-width: 520px; margin: 8px auto 0; font-size: 15px; }
.offer-blue { background: var(--ind); color: #fff; border: 1px solid #6E6BFF; box-shadow: 0 0 70px rgba(43, 40, 214, .45); }
.dark .offer-blue p, .offer-blue .ticks li { color: #fff; }
.offer-dark { background: var(--bg-2); border: 1px solid #2E2E2E; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05); }
.offer-body { display: grid; gap: 30px; margin-top: 28px; align-items: center; text-align: left; }
.ticks li { position: relative; margin-top: 12px; padding-left: 28px; font-size: 15px; line-height: 1.5; color: var(--txt-soft); }
.ticks li::before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; border-radius: 50%; background: rgba(122, 120, 255, .2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%237A78FF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; }
.offer-blue .ticks li::before { background-color: rgba(255, 255, 255, .2); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.offer-note { margin-top: 18px; font-size: 12px; opacity: .8; }
.offer-cta { margin-top: 26px; }
@media (min-width: 900px) {
  .offer { padding: 44px 48px; }
  .offer-body { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; }
}

.mk-laptop { width: 100%; max-width: min(380px, 86%); margin: 0 auto; }
.mk-screen { padding: 12px 14px; border: 8px solid #26262A; border-bottom-width: 12px; border-radius: 14px 14px 4px 4px; background: #0E0E10; color: var(--txt); text-align: left; aspect-ratio: 16 / 10.5; }
.mk-base { height: 12px; margin: 0 -7%; border-radius: 2px 2px 12px 12px; background: linear-gradient(#3A3A3E, #1E1E21); }
.mk-dash-h { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding-bottom: 8px; margin-bottom: 4px; border-bottom: 1px solid #262626; }
.mk-dash-h b { font: 700 12px/1 var(--h); }
.mk-dash-h small { font-size: 9.5px; color: var(--txt-2); }
.mk-row { display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 1px solid #1F1F1F; font-size: 11px; }
.mk-row small { font-size: 9.5px; color: var(--txt-2); }
.mk-row em { font-style: normal; font-size: 9px; font-weight: 700; padding: 3px 7px; border-radius: 999px; white-space: nowrap; }
.pill-a { background: var(--ind); color: #fff; }
.pill-c { border: 1px solid rgba(244, 242, 232, .5); color: var(--txt); }
.pill-p { background: var(--teal-l); color: var(--ink); }
.mk-kpis { display: grid; gap: 7px; margin-top: 8px; }
.mk-kpis div { display: grid; grid-template-columns: 72px 1fr; align-items: center; gap: 8px; font-size: 10px; color: var(--txt-2); }
.mk-kpis i { display: block; height: 8px; width: var(--w); border-radius: 4px; background: var(--ind-l); }
.mk-todo { margin-top: 10px; padding: 7px 9px; border-radius: 8px; background: #1A1A1D; border: 1px solid #2A2A2E; font-size: 10px; }
.mk-todo b { display: block; font: 700 10px/1.2 var(--h); color: var(--txt); }
.mk-todo p { color: var(--txt-2) !important; font-size: 10px; }

.mk-doc { width: 100%; max-width: 300px; margin: 0 auto; padding: 16px 16px 10px; border-radius: 12px; background: var(--light-card); color: var(--ink); transform: rotate(-2deg); box-shadow: 0 20px 40px rgba(0, 0, 0, .45); text-align: left; }
.mk-doc-h { display: flex; justify-content: space-between; padding-bottom: 10px; border-bottom: 1px solid var(--light-line); font: 500 10px/1 var(--m); letter-spacing: .08em; color: var(--ink-2); }
.mk-doc p, .mk-sheet p { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--light-line); font-size: 12.5px; color: var(--ink) !important; }
.mk-doc p:last-child { border-bottom: 0; }
.mk-doc i, .mk-sheet i { flex: none; width: 15px; height: 15px; border-radius: 4px; background: var(--ind) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 11px no-repeat; }

/* ---------- Metodo (righe con telefono) ---------- */
.mrow { display: grid; gap: 30px; justify-items: center; align-items: center; margin-top: 64px; }
.mrow-t { max-width: 440px; }
.num { display: block; font: 500 14px/1 var(--m); color: var(--ind); }
.mrow-t h3 { margin: 10px 0 12px; font-size: clamp(24px, 20px + 1vw, 32px); letter-spacing: -.035em; }
.mrow-t p { font-size: 16px; }
.light .mrow-note { margin-top: 14px; padding-left: 14px; border-left: 2px solid var(--ind); font-size: 14px; }
.phone { position: relative; width: 236px; height: 480px; padding: 9px; border-radius: 40px; background: #0B0B0C; box-shadow: inset 0 0 0 2px #2C2C30, 0 30px 60px rgba(13, 13, 13, .28); }
.phone::before { content: ""; position: absolute; z-index: 3; top: 18px; left: 50%; width: 76px; height: 22px; margin-left: -38px; border-radius: 999px; background: #0B0B0C; }
.phone-scr { position: relative; height: 100%; border-radius: 32px; overflow: hidden; background: #000; }
.phone-light .phone-scr { background: var(--light-card); }
.mk-sheet { padding: 54px 16px 16px; color: var(--ink); }
.mk-sheet-h { display: flex; justify-content: space-between; padding-bottom: 10px; border-bottom: 1px solid var(--light-line); font: 500 10px/1 var(--m); letter-spacing: .08em; color: var(--ink-2); }
.mk-next { margin-top: 18px; padding: 12px; border-radius: 12px; background: #fff; border: 1px solid var(--light-line); }
.mk-next small { display: block; font: 500 10px/1.2 var(--m); letter-spacing: .06em; color: var(--ink-2); }
.mk-next strong { display: block; margin-top: 4px; font: 700 14px/1.3 var(--h); letter-spacing: -.02em; color: var(--ink); }
.mk-next em { display: block; margin-top: 10px; padding: 9px 10px; border-radius: 8px; background: var(--ind); color: #fff; font: 600 12px/1.2 var(--b); font-style: normal; text-align: center; }
.mk-sheet b { display: block; margin: 14px 0 6px; font: 700 22px/1.1 var(--h); letter-spacing: -.035em; }
.reel { width: 100%; height: 100%; object-fit: cover; }
#metodo .cta-c { margin-top: 72px; }
.audio-btn { position: absolute; left: 50%; bottom: 16px; z-index: 2; transform: translateX(-50%); min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px; background: rgba(13, 13, 13, .78); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: #fff; font: 600 14px/1 var(--b); white-space: nowrap; cursor: pointer; }
@media (min-width: 900px) {
  .mrow { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; margin-top: 88px; max-width: 980px; margin-inline: auto; }
  .mrow > :first-child { justify-self: end; }
  .mrow-t { justify-self: start; }
  .mrow-rev .phone { order: 2; justify-self: start; }
  .mrow-rev .mrow-t { order: 1; justify-self: end; }
  .phone { width: 260px; height: 530px; }
}

/* ---------- Diagramma ---------- */
.flows { display: grid; gap: 56px; max-width: 900px; margin: 56px auto 0; }
.flow { margin: 0; text-align: center; }
.flow-t { margin-bottom: 22px; font: 600 clamp(20px, 18px + .5vw, 24px)/1.25 var(--h); letter-spacing: -.03em; }
.ko-c { color: var(--txt-2); }
.flow-boxes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; max-width: 360px; margin: 0 auto; }
.flow-boxes i { display: grid; place-items: center; height: 46px; border-radius: 8px; background: var(--ind); border: 1px solid #6E6BFF; box-shadow: 0 0 18px rgba(43, 40, 214, .45); font: 600 10px/1 var(--b); font-style: normal; letter-spacing: .06em; text-transform: uppercase; color: #fff; }
.flow-boxes i.dim { opacity: .35; box-shadow: none; }
.flow-line { position: relative; max-width: 270px; height: 50px; margin: 0 auto; }
.flow-line::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 16px; border: 1.5px solid var(--ind-l); border-top: 0; border-radius: 0 0 6px 6px; }
.flow-line::after { content: ""; position: absolute; left: 50%; top: 16px; bottom: 6px; width: 0; border-left: 1.5px solid var(--ind-l); }
.flow-ko .flow-line::before { border-color: #555; border-style: dashed; border-top: 0; }
.flow-ko .flow-line::after { border-color: #555; }
.flow-end { display: inline-flex; align-items: center; gap: 8px; padding: 14px 20px; border-radius: 10px; font: 700 16px/1.2 var(--h); letter-spacing: -.02em; }
.flow-ok .flow-end { background: var(--ind); color: #fff; border: 1px solid #6E6BFF; box-shadow: 0 0 36px var(--glow); }
.flow-ko .flow-end { background: var(--card); color: var(--txt-2); border: 1.5px dashed #4A4A4A; }
.flow-ko .flow-end::before { content: "×"; font-size: 18px; line-height: 1; }
.flow p { max-width: 300px; margin: 18px auto 0; font-size: 15px; }
.dark .flows-end { margin-top: 64px; text-align: center; font: 500 clamp(22px, 19px + .9vw, 30px)/1.3 var(--h); letter-spacing: -.035em; color: var(--txt); }
.flows-end span { display: block; margin-top: 6px; font: 400 17px/1.4 var(--b); letter-spacing: 0; color: var(--txt-2); }
@media (min-width: 900px) { .flows { grid-template-columns: 1fr 1fr; gap: 48px; } }

/* ---------- Confronto ---------- */
.cmp-wrap { display: none; }
.cmp-cards { display: grid; gap: 14px; margin-top: 40px; }
.cmp-cards li { padding: 18px; border-radius: 14px; background: var(--card); border: 1px solid var(--line); }
.dark .cmp-q { margin-bottom: 12px; font: 600 12px/1.3 var(--b); letter-spacing: .1em; text-transform: uppercase; color: var(--txt-2); }
.dark .cmp-pt { position: relative; padding: 12px 14px 12px 40px; border-radius: 10px; background: var(--ind); font: 700 17px/1.3 var(--h); letter-spacing: -.02em; color: #fff; }
.cmp-pt::before { content: "✓"; position: absolute; left: 15px; top: 12px; font-weight: 800; }
.cmp-cards dl { display: grid; gap: 8px; margin-top: 12px; }
.cmp-cards dl div { display: grid; grid-template-columns: 124px minmax(0, 1fr); gap: 10px; font-size: 13.5px; line-height: 1.4; }
.cmp-cards dt { font-weight: 600; color: var(--txt-2); }
.cmp-cards dd { color: var(--txt-soft); }
@media (min-width: 900px) {
  .cmp-cards { display: none; }
  .cmp-wrap { display: block; max-width: 1040px; margin: 64px auto 0; padding-block: 16px; }
  .cmp { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 14px; }
  .cmp thead th, .cmp thead td { padding: 18px 16px; background: var(--card); text-align: left; font: 600 14px/1.3 var(--b); color: var(--txt-2); }
  .cmp thead td { width: 22%; border-radius: 12px 0 0 12px; }
  .cmp thead th:last-child { border-radius: 0 12px 12px 0; }
  .cmp tbody th, .cmp tbody td { padding: 17px 16px; border-bottom: 1px solid #242424; text-align: left; vertical-align: top; line-height: 1.4; }
  .cmp tbody th { font-weight: 500; color: var(--txt); }
  .cmp tbody td { color: var(--txt-2); }
  .cmp td.y::before, .cmp td.n::before, .cmp td.m::before { display: inline-block; width: 18px; margin-right: 4px; font-weight: 800; }
  .cmp td.y::before { content: "✓"; color: var(--ind-l); }
  .cmp td.n::before { content: "×"; color: #6D6B65; }
  .cmp td.m::before { content: "–"; color: #6D6B65; }
  .cmp .pt { position: relative; width: 22%; background: var(--ind); color: #fff; border-bottom-color: rgba(255, 255, 255, .18); font-weight: 600; }
  .cmp thead .pt { background: var(--ind); color: #fff; }
  .cmp tbody .pt { color: #fff; }
  .cmp .pt.y::before { color: #fff; }
  .cmp thead .pt::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; border-radius: 14px 14px 0 0; background: var(--ind); }
  .cmp thead .pt img { display: inline-block; width: 20px; height: auto; margin-right: 8px; vertical-align: -5px; }
  .cmp thead .pt span { font: 700 15px/1 var(--h); letter-spacing: -.02em; }
  .cmp tbody tr:last-child .pt::after { content: ""; position: absolute; left: 0; right: 0; bottom: -16px; height: 16px; border-radius: 0 0 14px 14px; background: var(--ind); }
  .cmp tbody tr:last-child th, .cmp tbody tr:last-child td { border-bottom: 0; }
}

/* ---------- Per chi è ---------- */
.perchi { display: grid; gap: 36px; max-width: 920px; margin: 48px auto 0; align-items: center; }
.photo { max-width: 340px; margin: 0 auto; }
.photo img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 18px; transform: rotate(-2.5deg); box-shadow: 0 24px 50px rgba(13, 13, 13, .22); }
.bul li { position: relative; padding: 13px 0 13px 22px; border-bottom: 1px solid var(--light-line); font-size: 17px; line-height: 1.45; color: var(--ink); }
.bul li::before { content: ""; position: absolute; left: 2px; top: calc(13px + .72em - 3px); width: 7px; height: 7px; border-radius: 50%; background: var(--ind); }
.nonfa { margin-top: 26px; padding: 18px 20px; border-radius: 14px; background: #E9E7DD; }
.light .nonfa-h { font: 700 17px/1.3 var(--h); letter-spacing: -.02em; color: var(--ink); }
.nonfa li { position: relative; margin-top: 8px; padding-left: 20px; font-size: 15px; line-height: 1.45; color: var(--ink-2); }
.nonfa li::before { content: "×"; position: absolute; left: 0; top: 0; font-weight: 800; color: var(--ink-2); }
@media (min-width: 900px) { .perchi { grid-template-columns: 340px minmax(0, 1fr); gap: 64px; margin-top: 64px; } }

/* ---------- 7 settori ---------- */
#t-settori { margin-bottom: 24px; }
.narrow > p, .narrow > div > p { margin-top: 16px; font-size: 17px; line-height: 1.65; }
.sectors { display: flex; flex-wrap: wrap; gap: 8px; margin: 28px 0 8px; }
.sectors span { padding: 8px 14px; border-radius: 999px; border: 1px solid #333; font: 500 14px/1.2 var(--b); color: #8A887F; text-decoration: line-through; text-decoration-color: #5A5953; }
.sectors .win { border-color: #6E6BFF; background: var(--ind); color: #fff; text-decoration: none; box-shadow: 0 0 24px var(--glow); }
.sectors .win-2 { background: #24228F; }
.why { margin-top: 14px; }
.why li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 10px; padding: 18px 0; border-top: 1px solid var(--line); font-size: 17px; line-height: 1.55; color: var(--txt-soft); }
.why li:last-child { border-bottom: 1px solid var(--line); }
.why-n { font: 500 14px/1.6 var(--m); color: var(--ind-l); }
.why sup a { color: var(--ind-l); text-decoration: none; font-weight: 700; padding: 0 2px; }
.dark .fonte { margin-top: 18px; font-size: 12.5px; color: var(--txt-2); }

/* ---------- Chi siamo ---------- */
.story2 { margin-top: 32px; }
.story2 p { margin-top: 14px; font-size: 17px; line-height: 1.65; }
.soci { display: grid; gap: 18px; max-width: 1000px; margin: 48px auto 0; }
.socio { padding: 12px 12px 22px; border-radius: 18px; background: var(--light-card); border: 1px solid var(--light-line); }
.socio-foto { display: grid; place-items: center; aspect-ratio: 4 / 5; border-radius: 12px; overflow: hidden; background: var(--bg); }
.socio-foto img { width: 100%; height: 100%; object-fit: cover; }
.iniziale { font: 800 110px/1 var(--h); letter-spacing: -.05em; color: var(--light); }
.socio h3 { margin: 16px 6px 2px; }
.light .socio-ruolo { margin: 0 6px; font: 600 14px/1.3 var(--b); color: var(--ind); }
.socio p:last-child { margin: 8px 6px 0; font-size: 15px; line-height: 1.5; }
@media (min-width: 640px) and (max-width: 899px) { .soci { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .soci { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 64px; } }

/* ---------- Garanzia ---------- */
.ticket-wrap { position: relative; width: 250px; height: 330px; margin: 48px auto 44px; }
.ticket { position: absolute; inset: 0; padding: 20px; border-radius: 18px; background: var(--ind); border: 1px solid #6E6BFF; color: #fff; transform: rotate(-5deg); box-shadow: 0 0 60px rgba(43, 40, 214, .55), 0 24px 40px rgba(0, 0, 0, .5); }
.ticket-back { transform: rotate(6deg) translate(22px, 6px); background: var(--card-2); border-color: #333; box-shadow: none; }
.ticket-h { display: flex; align-items: center; justify-content: space-between; padding-bottom: 14px; border-bottom: 1.5px dashed rgba(255, 255, 255, .4); font: 500 12px/1 var(--m); letter-spacing: .2em; }
.dark .ticket-big { margin-top: 22px; font: 800 44px/1 var(--h); letter-spacing: -.05em; color: #fff; }
.ticket-big span { color: var(--teal-l); }
.ticket-m { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; margin-top: 18px; }
.ticket-m li { display: grid; place-items: center; aspect-ratio: 1; border-radius: 50%; background: #fff; color: var(--ind); font: 500 8.5px/1 var(--m); }
.ticket-m li.x { background: transparent; border: 1.5px solid var(--teal-l); color: var(--teal-l); }
.dark .ticket-s { margin-top: 14px; font-size: 13px; color: rgba(255, 255, 255, .85); }
.ticket-bar { position: absolute; left: 20px; right: 20px; bottom: 20px; height: 36px; border-radius: 3px; background: repeating-linear-gradient(90deg, #fff 0 2px, transparent 2px 4px, #fff 4px 5px, transparent 5px 8px, #fff 8px 11px, transparent 11px 13px); opacity: .9; }
.dark .center-t .lead { color: var(--txt); }
.dark .center-t .small { margin-top: 12px; color: var(--txt-2); }
.cta-c { margin-top: 28px; }

/* ---------- Onestà + obiezioni ---------- */
#t-onesta { margin-bottom: 8px; }
.objs { margin-top: 48px; }
.obj { padding: 30px 0; border-top: 1px solid var(--light-line); }
.obj:last-child { border-bottom: 1px solid var(--light-line); }
.obj h3 { font-size: clamp(22px, 19px + 1vw, 31px); letter-spacing: -.04em; }
.obj p { margin-top: 10px; font-size: 17px; line-height: 1.6; }

/* ---------- Diagnosi + modulo ---------- */
.steps4 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 0; max-width: 1000px; margin: 48px auto 0; }
.steps4 li { padding: 0 16px; border-left: 1px solid var(--line); }
.steps4 span { display: block; font: 400 30px/1 var(--m); color: var(--txt); }
.steps4 b { display: block; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); font: 700 16px/1.3 var(--h); letter-spacing: -.02em; }
.dark .steps4 p { margin-top: 6px; font-size: 14px; line-height: 1.5; color: var(--txt-2); }
@media (min-width: 900px) { .steps4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .steps4 li:last-child { border-right: 1px solid var(--line); } }

.qcard { max-width: 660px; margin: 56px auto 0; padding: 22px; border-radius: 20px; background: var(--light-card); color: var(--ink); border: 1px solid #6E6BFF; box-shadow: 0 0 80px rgba(43, 40, 214, .35); --acc: var(--ind); }
.dark .qcard p { color: var(--ink-2); }
@media (min-width: 900px) { .qcard { padding: 40px; } }
.qf-top { margin-bottom: 24px; }
.dark .qcard .qf-count { margin-bottom: 14px; min-height: 14px; font: 500 13px/1 var(--m); color: var(--ind); }
.qf-progress { position: relative; display: flex; justify-content: space-between; height: 10px; --p: 0; }
.qf-progress::before, .qf-progress::after { content: ""; position: absolute; left: 5px; top: 50%; height: 2px; margin-top: -1px; border-radius: 2px; }
.qf-progress::before { right: 5px; background: var(--light-line); }
.qf-progress::after { width: calc((100% - 10px) * var(--p)); background: var(--ind); transition: width .35s var(--ease); }
.qf-progress i { position: relative; z-index: 1; width: 10px; height: 10px; border-radius: 50%; background: var(--light-line); transition: background-color .25s, transform .25s; }
.qf-progress i.done, .qf-progress i.now { background: var(--ind); }
.qf-progress i.now { transform: scale(1.35); box-shadow: 0 0 0 4px rgba(43, 40, 214, .18); }
.qform fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.qf-q { padding: 0; margin-bottom: 18px; font: 700 23px/1.2 var(--h); letter-spacing: -.03em; color: var(--ink); text-wrap: balance; }
.qf-q:focus { outline: none; }
.qf-q:focus-visible { outline: 3px solid var(--teal-l); box-shadow: 0 0 0 4px var(--ink); border-radius: 4px; }
.dark .qcard .qf-sub { margin: -8px 0 14px; font-size: 14px; }
.qf-opts { display: grid; gap: 8px; }
.opt { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 52px; padding: 12px 16px; border: 1.5px solid #CFCDC4; border-radius: 10px; background: #fff; color: var(--ink); font: 500 16px/1.3 var(--b); text-align: left; cursor: pointer; transition: border-color .15s, background-color .15s, color .15s; }
.opt::before { content: ""; flex: none; width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid #B9B7AE; background: #fff; }
.qf-step[data-type="multi"] .opt::before { border-radius: 5px; }
.opt:hover { border-color: var(--ink); }
.opt[aria-pressed="true"] { border-color: var(--ind); background: var(--ind); color: #fff; }
.opt[aria-pressed="true"]::before { border-color: #fff; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%232B28D6' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; }
@media (min-width: 900px) { .qf-q { font-size: 27px; } }
.dark .qcard .qf-error { margin-top: 14px; font: 600 14px/1.4 var(--b); color: var(--ind); }
.qf-error:empty { display: none; }
.qf-nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 20px; }
.qf-back { min-height: 44px; padding: 0 4px; border: 0; background: none; font: 600 15px/1 var(--b); color: var(--ink-2); cursor: pointer; }
.qf-back:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.qf-next { margin-left: auto; }
.field { margin-bottom: 14px; }
.field label { display: block; margin-bottom: 6px; font: 600 14px/1.35 var(--b); color: var(--ink); }
.field input, .field textarea { display: block; width: 100%; min-height: 50px; padding: 12px 14px; border: 1.5px solid #CFCDC4; border-radius: 10px; background: #fff; font: 500 16px/1.4 var(--b); color: var(--ink); }
.field input:hover, .field textarea:hover { border-color: #9C9A92; }
.field input:focus, .field textarea:focus { border-color: var(--ind); outline: none; box-shadow: 0 0 0 3px rgba(43, 40, 214, .2); }
.field textarea { min-height: 92px; resize: vertical; }
.field input[aria-invalid="true"] { border-color: var(--ind); border-width: 2px; padding: 11.5px 13.5px; }
.field-2 { display: grid; gap: 0 12px; }
@media (min-width: 640px) { .field-2 { grid-template-columns: 1fr 1fr; } }
.dark .qcard .f-err { margin-top: 6px; font: 600 13px/1.35 var(--b); color: var(--ind); }
.f-err:empty { display: none; }
.checks { display: grid; gap: 12px; margin-top: 6px; }
.chk { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; align-items: start; font: 500 14px/1.45 var(--b); color: var(--ink-2); cursor: pointer; }
.chk input { appearance: none; -webkit-appearance: none; display: grid; place-items: center; width: 22px; height: 22px; margin: 0; border: 1.5px solid #9C9A92; border-radius: 5px; background: #fff; cursor: pointer; }
.chk input:checked { border-color: var(--ind); background: var(--ind) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 15px no-repeat; }
.chk input:disabled { opacity: .55; cursor: default; }
.chk input[aria-invalid="true"] { border: 2px solid var(--ind); }
.chk a { color: var(--ind); font-weight: 700; }
.checks .f-err { margin: -4px 0 0 34px; }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.btn-full { display: flex; width: 100%; margin-top: 22px; }
.dark .qcard .qf-micro { margin-top: 12px; text-align: center; font-size: 13px; }
.dark .qcard .qf-fail { margin-top: 16px; padding: 14px 16px; border: 1.5px solid var(--ind); border-radius: 12px; background: #fff; font: 600 14px/1.45 var(--b); color: var(--ink); }
.dark .qcard .qf-done-t { margin-bottom: 12px; font: 800 34px/1.1 var(--h); letter-spacing: -.04em; color: var(--ink); }
.qf-done:focus { outline: none; }
.dark .qcard .qf-demo { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--light-line); font-size: 13px; }
.link-arrow { display: inline-flex; align-items: center; min-height: 44px; margin-top: 10px; font: 600 16px/1.3 var(--b); color: var(--ind); text-decoration: none; }
.link-arrow:hover { text-decoration: underline; text-underline-offset: 4px; }

/* ---------- FAQ ---------- */
#t-faq { margin-bottom: 28px; }
.faq details { border-top: 1px solid var(--light-line); }
.faq details:last-child { border-bottom: 1px solid var(--light-line); }
.faq summary { display: grid; grid-template-columns: 30px minmax(0, 1fr) 20px; align-items: center; gap: 14px; min-height: 60px; padding: 14px 0; list-style: none; cursor: pointer; font: 500 17px/1.35 var(--b); color: var(--ink); }
.faq summary::-webkit-details-marker { display: none; }
.faq .q { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid var(--ink); font: 700 14px/1 var(--h); font-style: normal; }
.faq .pm { position: relative; width: 16px; height: 16px; transition: transform .25s var(--ease); }
.faq .pm::before, .faq .pm::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; margin-top: -.75px; background: var(--ink); }
.faq .pm::after { transform: rotate(90deg); }
.faq details[open] .pm { transform: rotate(45deg); }
.faq details p { padding: 0 34px 20px 44px; font-size: 16px; line-height: 1.6; }
@media (min-width: 900px) { .faq summary { font-size: 18px; } }

/* ---------- Chiusura + footer ---------- */
.closing { padding-bottom: calc(var(--sec) * .8); }
.closing .lead { max-width: 600px; margin: 22px auto 0; }
.footer { padding: 0 0 calc(110px + env(safe-area-inset-bottom)); background: var(--bg-2); color: var(--txt); overflow: hidden; }
.bigword { margin: 0; padding-top: 28px; font: 800 8.4vw/.9 var(--h); letter-spacing: -.06em; color: var(--ind); white-space: nowrap; text-align: center; }
.f-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--line); }
.f-links { display: flex; flex-wrap: wrap; gap: 0 20px; }
.f-links a, .linklike { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; background: none; color: var(--txt-2); font: 500 14px/1 var(--b); text-decoration: none; cursor: pointer; }
.f-links a:hover, .linklike:hover { color: var(--txt); text-decoration: underline; text-underline-offset: 4px; }
.f-legal, .f-disc, .f-copy { margin-top: 12px; font-size: 12.5px; line-height: 1.55; color: var(--txt-2); }
.f-legal:empty { display: none; }
.f-disc { max-width: 820px; }
.f-disc b { color: var(--txt-soft); }
@media (min-width: 1100px) { .bigword { font-size: 118px; } }
@media (min-width: 900px) { .footer { padding-bottom: 48px; } }

/* ---------- CTA sempre visibile ---------- */
.float-cta { position: fixed; z-index: 60; left: 0; right: 0; bottom: 0; padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom)); background: rgba(20, 20, 20, .94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-top: 1px solid var(--line); transform: translateY(110%); visibility: hidden; transition: transform .3s var(--ease), visibility 0s linear .3s; }
.float-cta .btn { display: flex; width: 100%; }
.float-cta.on { transform: none; visibility: visible; transition: transform .3s var(--ease), visibility 0s; }
@media (min-width: 900px) {
  .float-cta { left: auto; right: 28px; bottom: 28px; padding: 0; background: none; border: 0; -webkit-backdrop-filter: none; backdrop-filter: none; transform: translateY(calc(100% + 40px)); }
  .float-cta .btn { display: inline-flex; width: auto; }
}

/* ---------- Banner cookie ---------- */
.cookie { position: fixed; z-index: 70; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); padding: 16px; border-radius: 14px; background: var(--card); border: 1px solid #333; color: var(--txt); box-shadow: 0 20px 50px rgba(0, 0, 0, .5); }
.cookie-t { font-size: 13px; line-height: 1.5; color: var(--txt-soft); }
.cookie-t b { display: block; margin-bottom: 4px; font: 700 15px/1.2 var(--h); color: var(--txt); }
.cookie-t a { color: var(--ind-l); font-weight: 700; }
.cookie-prefs { display: grid; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.cookie .chk { color: var(--txt-soft); }
.cookie .chk input { background: var(--card-2); border-color: #6D6B65; }
.cookie-btns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.cbtn { min-height: 44px; padding: 0 10px; border: 1px solid #3A3A3A; border-radius: 8px; background: var(--card-2); color: var(--txt); font: 600 14px/1.1 var(--b); cursor: pointer; transition: background-color .2s, border-color .2s; }
.cbtn:hover { border-color: #6D6B65; background: #2A2A2A; }
@media (min-width: 900px) {
  .cookie { left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px 32px; padding: 18px max(40px, calc((100vw - 1200px) / 2)); border-radius: 0; border-width: 1px 0 0; }
  .cookie-prefs { grid-column: 1 / -1; grid-row: 2; display: flex; gap: 24px; margin-top: 0; padding-top: 12px; }
  .cookie-btns { margin-top: 0; grid-template-columns: repeat(3, auto); }
  .cbtn { padding: 0 18px; }
}

/* ---------- Casi studio ---------- */
.casi-list { display: grid; gap: 24px; margin-top: 48px; }
.caso { display: grid; gap: 24px; padding: 24px; border-radius: 20px; background: var(--light-card); border: 1px solid var(--light-line); }
.caso img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 14px; }
.light .caso-meta { margin-top: 6px; font: 600 13px/1.3 var(--b); letter-spacing: .1em; text-transform: uppercase; color: var(--ind); }
.light .caso-lbl { margin: 18px 0 4px; font: 600 13px/1.3 var(--b); color: var(--ink); }
.caso-num { display: grid; gap: 12px; }
.caso-num div { padding-top: 12px; border-top: 1px solid var(--light-line); }
.caso-num b { display: block; font: 800 38px/1 var(--h); letter-spacing: -.04em; color: var(--ind); }
.caso-num span { font-size: 13px; color: var(--ink-2); }
.caso blockquote { margin: 20px 0 0; padding-left: 16px; border-left: 2px solid var(--ind); font: 600 20px/1.35 var(--h); letter-spacing: -.02em; }
@media (min-width: 900px) { .caso { grid-template-columns: 280px minmax(0, 1fr); gap: 40px; padding: 32px; } }

/* Casi studio «in costruzione»: spariscono quando main.js trova casi completi */
.wip-tag { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 20px; padding: 7px 14px; border-radius: 999px; border: 1px solid #6E6BFF; font: 500 12px/1 var(--m); letter-spacing: .12em; text-transform: uppercase; }
.dark .wip-tag { color: var(--txt); }
.wip-tag::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ind-l); box-shadow: 0 0 10px var(--ind-l); }
.wip { display: grid; gap: 18px; max-width: 1000px; margin: 48px auto 0; }
.wip-card { position: relative; border-radius: 18px; background: var(--card); border: 1px solid var(--line); overflow: hidden; }
.wip-tape { height: 12px; background: repeating-linear-gradient(-45deg, var(--ind) 0 12px, #101010 12px 24px); }
.wip-in { padding: 20px 20px 24px; }
.dark .wip-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; font: 500 12px/1 var(--m); letter-spacing: .12em; text-transform: uppercase; color: var(--txt-2); }
.wip-top em { padding: 4px 9px; border-radius: 999px; border: 1px solid rgba(122, 120, 255, .55); color: var(--ind-l); font-style: normal; letter-spacing: .06em; }
.dark .wip-rows p { margin-top: 18px; font: 600 13px/1.3 var(--b); color: var(--txt); }
.wip-rows i { display: block; height: 9px; margin-top: 9px; border-radius: 5px; background: linear-gradient(90deg, #262626 0%, #333 50%, #262626 100%) 0 0 / 200% 100%; animation: pt-wip 2.4s linear infinite; }
.wip-rows i.s { width: 62%; }
.wip-rows b { display: block; margin-top: 8px; font: 500 15px/1.2 var(--m); color: var(--ind-l); }
.wip-cta { display: flex; background: var(--ind); border-color: #6E6BFF; box-shadow: 0 0 44px rgba(43, 40, 214, .4); }
.wip-cta .wip-in { display: flex; flex-direction: column; justify-content: center; padding: 28px 24px; }
.wip-cta h3 { color: #fff; }
.dark .wip-cta p { margin-top: 10px; font-size: 15px; color: rgba(255, 255, 255, .9); }
.wip-cta .link-arrow { margin-top: 12px; color: #fff; }
@keyframes pt-wip { to { background-position: -200% 0; } }
@media (min-width: 900px) { .wip { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 64px; } }

/* ---------- Movimento ---------- */
.js .reveal { opacity: 0; transform: translateY(16px); transition: opacity .5s var(--ease), transform .5s var(--ease); }
.js .reveal.in { opacity: 1; transform: none; }
.js .tc.reveal { transform: translateY(24px); }
.js .tc-1.reveal.in { transform: rotate(-3deg); }
.js .tc-3.reveal.in { transform: rotate(3deg); }
.js .tc-2.reveal.in { transform: none; }
@media (min-width: 900px) { .js .tc-2.reveal.in { transform: translateY(-14px) scale(1.04); } }
.js .curve-line .draw { stroke-dasharray: 1; stroke-dashoffset: 1; animation: pt-draw 1.8s var(--ease) .3s forwards; }
.js .cp { opacity: 0; animation: pt-fade .5s var(--ease) forwards; }
.js .cp1 { animation-delay: .9s; }
.js .cp2 { animation-delay: 1.3s; }
.js .cp3 { animation-delay: 1.7s; }
@keyframes pt-draw { to { stroke-dashoffset: 0; } }
@keyframes pt-fade { to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0s !important; animation-delay: 0s !important; transition-duration: 0s !important; transition-delay: 0s !important; }
  .js .reveal { opacity: 1; transform: none; }
  .js .tc-1.reveal { transform: rotate(-3deg); }
  .js .tc-3.reveal { transform: rotate(3deg); }
  .js .tc-2.reveal { transform: none; }
  .js .curve-line .draw { stroke-dashoffset: 0; animation: none; }
  .js .cp { opacity: 1; animation: none; }
}
@media (max-width: 899px) {
  .mk-sheet { padding-top: 48px; }
  .mk-sheet p { padding: 7px 0; font-size: 12px; }
  .mk-next { margin-top: 12px; }
}
