/* ==========================================================================
   Lanterna Service — la prenotazione del sopralluogo dentro la home (sezione Contatti).
   GENERATO da _strumenti/genera-prenota-home.py a partire da style.css, sopralluogo.css e stile-2026.css:
   non modificarlo a mano, rilancia lo script.
   ========================================================================== */
.wiz {
  /* acqua e luce: notte blu profonda, giorno bianco ottico, un solo accento azzurro acqua */
  --night-bg: 6 19 34;
  --night-fg: 236 244 248;
  --night-acc: 120 214 242;
  --day-bg: 246 249 251;
  --day-fg: 9 25 41;
  --day-acc: 0 116 172;
  --ice: 232 240 245;          /* superfici chiare: card, vetrine */
  --deep: 8 27 46;             /* superfici scure sul giorno */
  --radius: 18px;

  --bg: var(--night-bg);
  --fg: var(--night-fg);
  --acc: var(--night-acc);
  --dawn: 34vh;              /* lunghezza dei passaggi notte/giorno */

  --display: 'Syne', 'Avenir Next', 'Helvetica Neue', system-ui, sans-serif;
  --sans: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --mono: 'Geist Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  --gutter: 20px;
  --nav-h: 64px;
  --ease: cubic-bezier(.16, 1, .3, 1);
  --ease-io: cubic-bezier(.65, 0, .35, 1);
  --safe-b: env(safe-area-inset-bottom, 0px);

  --night-bg: 11 18 26;      /* ardesia #0B121A */
  --night-fg: 238 234 227;   /* marmo #EEEAE3 */
  --night-acc: 235 211 160;  /* oro chiaro #EBD3A0 */
  --day-bg: 245 241 234;     /* avorio #F5F1EA */
  --day-fg: 11 18 26;
  --day-acc: 156 113 40;     /* oro scuro #9C7128, leggibile sull'avorio */
  --ice: 251 249 245;
  --deep: 11 18 26;
  --ambra: 227 162 58;       /* la luce della Lanterna */
  --display: 'Syne', 'Helvetica Neue', Arial, sans-serif;
  --sans: 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --mono: 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;

  --bg: var(--day-bg); --fg: var(--day-fg); --acc: var(--day-acc);
  --gutter: clamp(20px, 3vw, 36px);
  position: relative; overflow: hidden; border-radius: 24px; color: rgb(var(--fg));
  font-family: var(--sans); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; text-align: left;
}
.wiz *, .wiz *::before, .wiz *::after { box-sizing: border-box; }
.wiz button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
.wiz a { color: inherit; text-decoration: none; }
.wiz h1, .wiz h2, .wiz h3, .wiz p, .wiz dl, .wiz dd { margin: 0; }
.wiz em { font-style: italic; }
.wiz svg { display: block; max-width: 100%; }

/* --- da style.css --- */
.wiz .mono { font-family: var(--mono); font-size: 11px; line-height: 1.5; letter-spacing: .14em; text-transform: uppercase; font-weight: 400; }
.wiz .eyebrow {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase;
  color: rgb(var(--fg) / .62);
  margin-bottom: 22px;
}
.wiz .eyebrow__line { width: 28px; height: 1px; background: rgb(var(--acc)); flex: none; }
.wiz .link { position: relative; display: inline-flex; align-items: center; gap: 8px; }
.wiz .link > span { background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat; padding-bottom: 2px; transition: background-size .6s var(--ease); }
.wiz .link:hover > span { animation: underline .9s var(--ease); }
.wiz .link--btn { font-size: 15px; color: rgb(var(--fg) / .8); }
.wiz .hero__eyebrow .eyebrow__line { background: rgb(var(--night-acc)); }
.wiz .hero__actions .link { font-size: 15px; color: rgb(var(--night-fg) / .85); min-height: 44px; }
.wiz .svc__more .mono { color: rgb(var(--acc)); }
.wiz .case__copy .eyebrow { margin-bottom: 14px; }
.wiz .window__foot .link--btn { min-height: 44px; }
.wiz .is-clear .window__foot .link--btn { opacity: 0; pointer-events: none; }
.wiz .direct .mono { color: rgb(var(--fg) / .5); }
.wiz .field { position: relative; }
.wiz .field input, .wiz .field textarea {
  width: 100%; border: 0; border-bottom: 1px solid rgb(var(--fg) / .25); border-radius: 0; background: transparent; color: inherit;
  font: inherit; font-size: 17px; padding: 26px 0 10px; outline: none; resize: vertical; min-height: 58px;
  transition: border-color .4s;
}
.wiz .field textarea { min-height: 96px; }
.wiz .field label { position: absolute; left: 0; top: 24px; color: rgb(var(--fg) / .55); pointer-events: none; transform-origin: left top; transition: transform .5s var(--ease), color .4s; font-size: 17px; }
.wiz .field input:focus, .wiz .field textarea:focus { border-color: rgb(var(--fg)); }
.wiz .field input:focus + label, .wiz .field input:not(:placeholder-shown) + label, .wiz .field textarea:focus + label, .wiz .field textarea:not(:placeholder-shown) + label { transform: translateY(-20px) scale(.72); color: rgb(var(--acc)); }
.wiz .field .opt { opacity: .6; }
.wiz .field.is-bad input { border-color: #C2413A; }
.wiz .check { display: grid; grid-template-columns: 26px 1fr; gap: 14px; align-items: start; font-size: 14.5px; line-height: 1.5; color: rgb(var(--fg) / .7); cursor: pointer; position: relative; }
.wiz .check input { position: absolute; opacity: 0; width: 26px; height: 26px; margin: 0; }
.wiz .check__box { width: 24px; height: 24px; border: 1px solid rgb(var(--fg) / .35); border-radius: 4px; display: grid; place-items: center; transition: background-color .3s, border-color .3s; }
.wiz .check__box::after { content: ''; width: 10px; height: 6px; border-left: 1.5px solid rgb(var(--bg)); border-bottom: 1.5px solid rgb(var(--bg)); transform: rotate(-45deg) scale(0); margin-top: -3px; transition: transform .4s var(--ease); }
.wiz .check input:checked + .check__box { background: rgb(var(--fg)); border-color: rgb(var(--fg)); }
.wiz .check input:checked + .check__box::after { transform: rotate(-45deg) scale(1); }
.wiz .check input:focus-visible + .check__box { outline: 2px solid rgb(var(--acc)); outline-offset: 3px; }
.wiz .check.is-bad .check__box { border-color: #C2413A; }
.wiz .eyebrow__line { position: relative; transform-origin: left; }
.wiz .eyebrow__line::after { content: ''; position: absolute; right: -2px; top: -2px; width: 5px; height: 5px; border-radius: 50%; background: rgb(var(--acc)); box-shadow: 0 0 10px 3px rgb(var(--acc) / .55); }
/* --- da sopralluogo.css --- */
.wiz {
  --glow: 0;                 
  min-height: 100svh; display: flex; flex-direction: column;
  background:
    radial-gradient(90% 55% at 88% -5%, rgb(140 214 245 / calc(.08 + var(--glow) * .32)), transparent 70%),
    rgb(var(--day-bg));
  transition: background .8s;
  overflow-x: clip;
}
.wiz .sl-count { color: rgb(var(--fg) / .55); font-variant-numeric: tabular-nums; }
.wiz .sl-lamp { position: relative; display: flex; align-items: center; gap: 4px; padding: 6px var(--gutter) 0; height: 92px; }
.wiz .sl-lamp__tower { width: 24px; height: 72px; flex: none; color: rgb(var(--fg)); overflow: visible; }
.wiz .sl-lamp__tower::after { content: ''; }
.wiz .sl-lamp__beam { position: relative; flex: 1; height: 40px; margin-top: -42px; }
.wiz .sl-lamp__beam::before { 
  content: ''; position: absolute; left: -16px; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%;
  background: #DDF3FF; box-shadow: 0 0 calc(6px + var(--glow) * 18px) calc(2px + var(--glow) * 6px) rgb(140 214 245 / .8);
  transition: box-shadow .8s;
}
.wiz .sl-lamp__beam i {
  position: absolute; left: -12px; top: 0; bottom: 0; width: calc(var(--b, 0) * 1%);
  background: linear-gradient(to right, rgb(28 150 210 / .9), rgb(60 175 230 / .3) 60%, rgb(60 175 230 / 0));
  clip-path: polygon(0 46%, 100% 0, 100% 100%, 0 54%);
  transition: width 1s var(--ease);
}
.wiz.is-flash .sl-lamp__beam i { animation: lampflash 1.4s var(--ease); }
@keyframes lampflash { 0%, 100% { filter: none; } 20%, 60% { filter: brightness(1.6) drop-shadow(0 0 12px rgb(60 175 230)); } 40% { filter: none; } }
.wiz .sl-quip {
  position: absolute; left: calc(var(--gutter) + 34px); right: var(--gutter); bottom: 2px;
  font-family: var(--display); font-weight: 700; font-size: 15px; letter-spacing: -.02em; color: rgb(var(--acc));
  opacity: 0; transform: translateY(6px); transition: opacity .5s, transform .6s var(--ease);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.wiz .sl-quip.is-on { opacity: 1; transform: none; }
.wiz .sl-stage { flex: 1; display: grid; padding: 18px var(--gutter) calc(96px + env(safe-area-inset-bottom)); overflow-x: clip; overflow-clip-margin: 0; }
.wiz .sl-step {
  grid-area: 1 / 1; min-width: 0;
  opacity: 0; visibility: hidden; transform: translate3d(48px, 0, 0); pointer-events: none;
  transition: opacity .45s, transform .7s var(--ease), visibility 0s .7s;
}
.wiz .sl-step.is-past { transform: translate3d(-48px, 0, 0); }
.wiz .sl-step.is-active { opacity: 1; visibility: visible; transform: none; pointer-events: auto; transition: opacity .6s .12s, transform .8s .08s var(--ease), visibility 0s; }
.wiz .sl-step .eyebrow { margin-bottom: 16px; }
.wiz .sl-q { font-family: var(--display); font-weight: 700; font-size: clamp(2rem, 9.2vw, 3.8rem); line-height: 1.02; letter-spacing: -.04em; text-wrap: balance; }
.wiz .sl-q em { color: rgb(var(--acc)); }
.wiz .sl-q:focus { outline: none; }
.wiz .sl-hint { margin: 14px 0 26px; color: rgb(var(--fg) / .62); font-size: 15.5px; }
.wiz .sl-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.wiz .sl-card {
  position: relative; display: grid; align-content: space-between; justify-items: start; gap: 14px;
  min-height: 128px; padding: 16px; border-radius: 16px; text-align: left;
  background: rgb(255 255 255 / .72); box-shadow: inset 0 0 0 1px rgb(var(--fg) / .1);
  font-family: var(--display); font-weight: 700; font-size: 18px; line-height: 1.08; letter-spacing: -.03em;
  transition: transform .5s var(--ease), background-color .4s, color .4s, box-shadow .4s;
}
.wiz .sl-card svg { width: 46px; height: 46px; color: rgb(var(--acc)); }
.wiz .sl-card svg * { stroke-dasharray: 1; stroke-dashoffset: 0; }
.wiz .sl-card:active { transform: scale(.96); }
.wiz .sl-card.is-picked { background: #081B2E; color: rgb(var(--night-fg)); box-shadow: 0 24px 40px -24px rgb(5 10 18 / .6); }
.wiz .sl-card.is-picked svg { color: rgb(var(--night-acc)); }
.wiz .sl-card.is-picked svg * { animation: redraw 1s var(--ease-io); }
@keyframes redraw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@media (hover: hover) {
.wiz .sl-card:hover { box-shadow: inset 0 0 0 1px rgb(var(--fg) / .35); }
}
.wiz .sl-list { display: grid; gap: 8px; }
.wiz .sl-row {
  display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 14px;
  min-height: 66px; padding: 0 18px 0 14px; border-radius: 16px; text-align: left;
  background: rgb(255 255 255 / .72); box-shadow: inset 0 0 0 1px rgb(var(--fg) / .1);
  transition: transform .5s var(--ease), background-color .4s, color .4s;
}
.wiz .sl-row:active { transform: scale(.98); }
.wiz .sl-row__t { font-family: var(--display); font-weight: 700; font-size: 19px; letter-spacing: -.03em; }
.wiz .sl-row__m { color: rgb(var(--fg) / .5); font-size: 10px; }
.wiz .sl-row.is-picked { background: #081B2E; color: rgb(var(--night-fg)); }
.wiz .sl-row.is-picked .sl-row__m { color: rgb(var(--night-acc)); }
.wiz .sl-row__box { width: 34px; height: 34px; display: grid; place-items: end start; border: 1px dashed rgb(var(--fg) / .25); border-radius: 3px; }
.wiz .sl-row.is-picked .sl-row__box { border-color: rgb(var(--night-fg) / .3); }
.wiz .sl-row__box i { display: block; background: rgb(var(--acc)); border-radius: 2px; transition: transform .6s var(--ease); }
.wiz .sl-row[data-scale="1"] .sl-row__box i { width: 30%; height: 30%; }
.wiz .sl-row[data-scale="2"] .sl-row__box i { width: 52%; height: 52%; }
.wiz .sl-row[data-scale="3"] .sl-row__box i { width: 76%; height: 76%; }
.wiz .sl-row[data-scale="4"] .sl-row__box i { width: 100%; height: 100%; }
.wiz .sl-row.is-picked .sl-row__box i { background: rgb(var(--night-acc)); }
.wiz .sl-row__dots { display: flex; gap: 4px; }
.wiz .sl-row__dots::before { content: ''; }
.wiz .sl-row__dots i { width: 6px; height: 6px; border-radius: 50%; background: rgb(var(--fg) / .15); }
.wiz .sl-row__dots i.on { background: rgb(var(--acc)); }
.wiz .sl-row.is-picked .sl-row__dots i.on { background: rgb(var(--night-acc)); box-shadow: 0 0 8px rgb(var(--night-acc) / .7); }
.wiz .sl-days { display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); margin: 0 calc(var(--gutter) * -1); padding: 2px var(--gutter) 10px; scrollbar-width: none; }
.wiz .sl-days::-webkit-scrollbar { display: none; }
.wiz .sl-day {
  flex: none; scroll-snap-align: start; width: 66px; height: 84px; border-radius: 16px; display: grid; place-content: center; justify-items: center; gap: 4px;
  background: rgb(255 255 255 / .72); box-shadow: inset 0 0 0 1px rgb(var(--fg) / .1);
  transition: transform .5s var(--ease), background-color .4s, color .4s;
}
.wiz .sl-day:active { transform: scale(.95); }
.wiz .sl-day .mono { font-size: 9.5px; color: rgb(var(--fg) / .55); }
.wiz .sl-day b { font-family: var(--display); font-weight: 700; font-size: 26px; line-height: 1; letter-spacing: -.03em; }
.wiz .sl-day.is-picked { background: #081B2E; color: rgb(var(--night-fg)); }
.wiz .sl-day.is-picked .mono { color: rgb(var(--night-acc)); }
.wiz .sl-slots { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; opacity: .45; transition: opacity .4s; pointer-events: none; }
.wiz .sl-slots.is-ready { opacity: 1; pointer-events: auto; }
.wiz .sl-chip { min-height: 48px; padding: 0 20px; border-radius: 99px; box-shadow: inset 0 0 0 1px rgb(var(--fg) / .22); font-size: 15px; transition: background-color .4s, color .4s, transform .4s var(--ease); }
.wiz .sl-chip:active { transform: scale(.96); }
.wiz .sl-chip.is-picked { background: rgb(var(--fg)); color: rgb(var(--bg)); box-shadow: none; }
.wiz .sl-form { display: grid; gap: 24px; margin-top: 22px; }
.wiz .sl-go {
  position: relative; overflow: hidden; display: inline-flex; align-items: center; justify-content: space-between; gap: 14px;
  width: 100%; height: 58px; padding: 0 26px; border-radius: 99px; margin-top: 4px;
  background: #081B2E; color: rgb(var(--night-fg)); font-size: 16px; font-weight: 500;
  transition: transform .5s var(--ease);
}
.wiz .sl-go::after { content: ''; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 30%, rgb(140 214 245 / .35) 48%, transparent 66%); transform: translateX(-120%); animation: goglint 3.2s var(--ease) 1s infinite; }
@keyframes goglint { 0%, 60% { transform: translateX(-120%); } 100% { transform: translateX(120%); } }
.wiz .sl-go i { font-style: normal; color: rgb(var(--night-acc)); }
.wiz .sl-go:active { transform: scale(.97); }
.wiz .sl-msg { min-height: 1.4em; font-size: 14.5px; color: rgb(var(--fg) / .75); }
.wiz .sl-msg.is-bad { color: #B23A34; }
.wiz .sl-done .sl-q { font-size: clamp(2.8rem, 13vw, 5.4rem); }
.wiz .sl-done__burst { position: absolute; left: 50%; top: 20%; width: 1px; height: 1px; pointer-events: none; }
.wiz .sl-summary { display: grid; margin: 4px 0 26px; border-top: 1px solid rgb(var(--fg) / .12); }
.wiz .sl-summary div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid rgb(var(--fg) / .12); }
.wiz .sl-summary dt { font-family: var(--mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: rgb(var(--fg) / .5); padding-top: 3px; }
.wiz .sl-summary dd { text-align: right; font-size: 15.5px; }
.wiz .sl-home { margin-top: 18px; color: rgb(var(--fg) / .7); }
.wiz.is-done .sl-nav { opacity: 0; pointer-events: none; }
.wiz.is-done .sl-count { opacity: 0; }
.wiz .sl-nav {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 20;
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px var(--gutter) calc(14px + env(safe-area-inset-bottom));
  background: linear-gradient(to top, rgb(var(--day-bg)) 60%, rgb(var(--day-bg) / 0));
  transition: opacity .4s;
}
.wiz .sl-prev { min-height: 44px; padding: 0 4px; font-size: 15px; color: rgb(var(--fg) / .7); transition: opacity .3s; }
.wiz .sl-prev[disabled] { opacity: 0; pointer-events: none; }
.wiz .sl-dots { display: flex; gap: 6px; }
.wiz .sl-dots i { width: 22px; height: 3px; border-radius: 2px; background: rgb(var(--fg) / .14); transition: background-color .4s, width .5s var(--ease); }
.wiz .sl-dots i.on { background: rgb(var(--acc)); }
.wiz .sl-dots i.now { width: 34px; background: rgb(var(--fg)); }
@media (min-width: 720px) {
.wiz .sl-stage, .wiz .sl-lamp { width: 100%; max-width: 680px; margin-inline: auto; }
.wiz .sl-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
.wiz .sl-card { min-height: 150px; font-size: 20px; padding: 20px; }
.wiz .sl-nav { max-width: 680px; margin: 0 auto; background: none; }
.wiz .sl-go { width: auto; justify-self: start; min-width: 300px; }
}
/* 03/11: tolto il blocco «riduci movimento»: animato per tutti */
/* --- da stile-2026.css --- */
.wiz .mono, .wiz .eyebrow { letter-spacing: .26em; font-weight: 500; }
.wiz .eyebrow { font-size: 11.5px; color: rgb(var(--acc)); }
@media (max-width: 420px) {
.wiz .eyebrow { font-size: 11px; letter-spacing: .16em; }
}
.wiz .eyebrow__line::after { background: rgb(var(--ambra)); box-shadow: 0 0 10px 3px rgb(var(--ambra) / .5); }
.wiz .brand__logo { filter: none; }
.wiz .brand__name { font-weight: 600; font-size: 14px; letter-spacing: .16em; }
.wiz .brand__sub { font-size: 10px; letter-spacing: .22em; text-transform: uppercase; opacity: .6; margin-top: 4px; }
.wiz .sl-q, .wiz .pv-title { font-weight: 500; letter-spacing: -.04em; line-height: .98; }
.wiz .sl-q { font-size: clamp(2.3rem, 9.6vw, 4.2rem); }
.wiz .sl-done .sl-q { font-size: clamp(2.8rem, 12.6vw, 5.4rem); }
.wiz .pv-title { font-size: clamp(2.5rem, 8vw, 4.2rem); }
.wiz .sl-q em, .wiz .pv-title em { font-style: normal; font-weight: 400; color: rgb(var(--acc)); }
.wiz .pv-main h2 { font-weight: 500; font-size: 22px; letter-spacing: -.02em; line-height: 1.15; }
.wiz .sl-quip { font-weight: 400; font-size: 15px; letter-spacing: -.01em; }
.wiz .sl-card { font-weight: 500; font-size: 18px; letter-spacing: -.02em; }
.wiz .sl-row__t { font-weight: 500; font-size: 19px; letter-spacing: -.02em; }
.wiz .sl-day b { font-weight: 500; font-size: 26px; letter-spacing: -.02em; }
@media (min-width: 720px) {
.wiz .sl-card { font-size: 20px; }
}
.wiz .brand__name { font-family: var(--display); }
.wiz .sl-card, .wiz .sl-row, .wiz .sl-day { background: rgb(var(--ice)); box-shadow: inset 0 0 0 1px rgb(var(--fg) / .1); }
.wiz .sl-card.is-picked, .wiz .sl-row.is-picked, .wiz .sl-day.is-picked { background: rgb(var(--night-bg)); }
.wiz .sl-card.is-picked { box-shadow: 0 24px 40px -24px rgb(11 18 26 / .55); }
.wiz .sl-go { background: rgb(var(--night-bg)); }
.wiz .sl-go::after { background: linear-gradient(105deg, transparent 30%, rgb(255 236 200 / .28) 48%, transparent 66%); }
.wiz .sl-go i { color: rgb(255 226 176); }
.wiz {
  background:
    radial-gradient(90% 55% at 88% -5%, rgb(var(--ambra) / calc(.05 + var(--glow) * .2)), transparent 70%),
    rgb(var(--day-bg));
}
.wiz .sl-lamp__beam::before { background: #FFF3DC; box-shadow: 0 0 calc(6px + var(--glow) * 18px) calc(2px + var(--glow) * 6px) rgb(var(--ambra) / .75); }
.wiz .sl-lamp__beam i { background: linear-gradient(to right, rgb(var(--ambra) / .85), rgb(var(--ambra) / .28) 60%, rgb(var(--ambra) / 0)); }
@keyframes lampflash { 0%, 100% { filter: none; } 20%, 60% { filter: brightness(1.35) drop-shadow(0 0 12px rgb(227 162 58)); } 40% { filter: none; } }
.wiz .sl-quip { color: rgb(var(--acc)); }
.wiz .pv-main a.link { color: rgb(var(--acc)); }
.wiz .pv-main section { border-top-color: rgb(var(--fg) / .12); }
.wiz .sl-lamp { display: block; position: relative; height: 132px; padding: 0; }
.wiz .sl-lamp__tower { position: absolute; left: var(--gutter); top: 4px; width: 40px; height: 120px; }
.wiz .sl-lamp__beam { position: absolute; left: calc(var(--gutter) + 20px); right: var(--gutter); top: -1px; height: 40px; margin: 0; flex: none; }
.wiz .sl-lamp__beam::before { left: -4px; }
.wiz .sl-lamp__beam i { left: 0; }
.wiz .sl-quip { left: calc(var(--gutter) + 58px); bottom: 10px; }
.wiz .sl-stage { padding-top: 8px; padding-bottom: calc(74px + env(safe-area-inset-bottom)); }
.wiz .sl-step .eyebrow { margin-bottom: 10px; }
.wiz .sl-q { font-size: clamp(1.75rem, 7.6vw, 3rem); line-height: 1; }
.wiz .sl-done .sl-q { font-size: clamp(2.2rem, 10vw, 3.6rem); }
.wiz .sl-hint { margin: 8px 0 16px; font-size: 14.5px; }
.wiz .sl-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
.wiz .sl-card { min-height: 96px; padding: 12px; gap: 10px; border-radius: 14px; font-size: 14.5px; letter-spacing: -.02em; }
.wiz .sl-card svg { width: 32px; height: 32px; }
.wiz .sl-list { gap: 7px; }
.wiz .sl-row { min-height: 54px; }
.wiz .sl-row__t { font-size: 17px; }
.wiz .sl-day { width: 60px; height: 70px; }
.wiz .sl-day b { font-size: 22px; }
.wiz .sl-slots { margin-top: 12px; }
.wiz .sl-chip { min-height: 44px; }
.wiz .sl-form { gap: 12px; margin-top: 8px; }
.wiz .sl-form .field input { min-height: 52px; padding: 22px 0 8px; font-size: 16px; }
.wiz .sl-form .field label { top: 20px; font-size: 16px; }
.wiz .sl-form .check { font-size: 13.5px; line-height: 1.45; }
.wiz .sl-go { height: 52px; }
.wiz .sl-summary { margin: 2px 0 16px; }
.wiz .sl-summary div { padding: 7px 0; }
.wiz .sl-summary dd { font-size: 14.5px; }
.wiz .sl-nav { padding-top: 10px; padding-bottom: calc(10px + env(safe-area-inset-bottom)); }
.wiz .sl-lamp { height: 82px; }
.wiz .sl-lamp__tower { width: 24px; height: 72px; }
.wiz .sl-lamp__beam { left: calc(var(--gutter) + 12px); top: -7px; }
.wiz .sl-quip { left: calc(var(--gutter) + 40px); bottom: 8px; }
@media (max-width: 719px) {
.wiz .sl-step .eyebrow { display: none; }
}
@media (max-width: 719px) and (max-height: 720px) {
.wiz .sl-lamp { height: 70px; }
.wiz .sl-q { font-size: clamp(1.55rem, 6.8vw, 1.9rem); }
.wiz .sl-hint { margin: 6px 0 12px; }
.wiz .sl-card { min-height: 84px; gap: 6px; }
.wiz .sl-card svg { width: 28px; height: 28px; }
.wiz .sl-row { min-height: 48px; }
.wiz .sl-form { gap: 8px; }
.wiz .sl-form .field input { min-height: 48px; padding: 20px 0 6px; }
.wiz .sl-form .field label { top: 18px; }
.wiz .sl-summary div { padding: 5px 0; }
}
@media (min-width: 720px) {
.wiz .sl-card { min-height: 118px; padding: 16px; font-size: 17px; }
.wiz .sl-card svg { width: 38px; height: 38px; }
.wiz .sl-row { min-height: 58px; }
}
@media (min-width: 720px) {
.wiz .sl-summary { grid-template-columns: 1fr 1fr; column-gap: 32px; }
}
@media (max-width: 719px) {
.wiz .sl-card { min-height: clamp(84px, 13svh, 124px); }
.wiz .sl-card svg { width: clamp(28px, 4.2svh, 38px); height: clamp(28px, 4.2svh, 38px); }
.wiz .sl-row { min-height: clamp(48px, 7.2svh, 64px); }
.wiz .sl-list { gap: clamp(6px, 1.1svh, 10px); }
.wiz .sl-day { height: clamp(66px, 9.6svh, 84px); }
.wiz .sl-form { gap: clamp(8px, 1.8svh, 18px); }
.wiz .sl-summary div { padding: clamp(5px, 1.1svh, 10px) 0; }
.wiz .sl-hint { margin-bottom: clamp(12px, 2.4svh, 22px); }
}
.wiz .sl-row__t { white-space: nowrap; }
@media (max-width: 719px) {
.wiz .sl-row { gap: 10px; padding-right: 14px; }
}
/* --- adattamenti al riquadro: niente pagina intera, niente barra fissa in basso --- */
.wiz { min-height: 0; display: block; }
.wiz .sl-stage { padding: 4px var(--gutter) 10px; }
.wiz .sl-nav { position: static; max-width: none; margin: 0; padding: 4px var(--gutter) 14px; background: none; }
.wiz .wiz-testa { display: flex; justify-content: space-between; align-items: center; padding: 16px var(--gutter) 0; }
.wiz .wiz-testa .mono { color: rgb(var(--fg) / .55); }
.wiz .sl-lamp, .wiz .sl-stage { max-width: none; }
.wiz .sl-q { font-size: clamp(1.9rem, 2.6vw, 2.6rem); }
.wiz .sl-done .sl-q { font-size: clamp(2.2rem, 3.4vw, 3.2rem); }
.wiz .sl-grid { grid-template-columns: repeat(3, 1fr); }
.wiz .touchfx { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 140; pointer-events: none; }
/* al riepilogo resta «Indietro»: in home non c'è la cronologia per tornare a correggere */
.wiz.is-done .sl-nav { opacity: 1; pointer-events: auto; }
@media (max-width: 719px) { .wiz .sl-q { font-size: clamp(1.7rem, 7.4vw, 2.2rem); } .wiz .sl-summary div { padding: clamp(4px, .8svh, 8px) 0; } }
/* telefoni bassi (iPhone SE, molti Android): il riquadro intero sta sotto il menu */
@media (max-width: 719px) and (max-height: 780px) {
  .wiz .wiz-testa { padding-top: 10px; }
  .wiz .sl-lamp { height: 58px; }
  .wiz .sl-stage { padding: 2px var(--gutter) 6px; }
  .wiz .sl-nav { padding-bottom: 8px; }
  .wiz .sl-summary { margin: 0 0 10px; }
  .wiz .sl-summary div { padding: 3px 0; }
  .wiz .sl-summary dd { font-size: 13.5px; }
  .wiz .sl-done .sl-q { font-size: 1.9rem; }
  .wiz .sl-card { min-height: 84px; }
  .wiz .sl-row { min-height: 48px; }
  .wiz .sl-form { gap: 8px; }
  .wiz .sl-hint { margin-bottom: 12px; }
}

/* 03/11/2026 · righe legali (decisioni della titolare, _claude/passaggio/DECISIONI-LEGALI-0311.md).
   Qui e non nello <style> in linea, per non cambiare le impronte CSP.
   .lv-nota: «Immagini elaborate digitalmente» subito sotto la foto del prima/dopo. Sta nella stessa cella della griglia
   della foto (posizione assoluta: non sposta nulla; righe e colonne con inizio e fine, altrimenti
   la cella arriva al bordo del contenitore). Il margine in % si misura sulla larghezza della cella, come la foto:
   metà dell'altezza della foto = min(larghezza × 1104/1440, 100vh − 170px) / 2. */
.lv-nota{position:absolute;grid-column:2/3;grid-row:1/2;left:0;right:0;top:50%;margin:calc(min(38.333%, (100vh - 170px) / 2) + 14px) 0 0;font-size:10.5px;line-height:1.3;letter-spacing:.06em;text-align:center;color:var(--grigio);opacity:.8;pointer-events:none}
@media (max-width:899px){.lv-nota{grid-column:1/2;top:100%;margin:5px 0 0}}
/* riga sull'IA nel piede: ultima voce del piede basso, su una riga sua */
.piede-basso .piede-ia{flex-basis:100%}

/* (04/11/2026, AI Act art. 50 par. 4, decisione della titolare) «Video generato con IA» nella hero:
   telefono subito sotto il video (prima riga del testo), computer nell'angolo in basso a destra, piccolissima */
.ia-hero{margin:0;font-size:10px;line-height:1.3;letter-spacing:.04em;color:rgba(255,255,255,.5);pointer-events:none}
.ia-hero-pc{position:absolute;right:clamp(16px,2vw,32px);bottom:12px;z-index:3}
.ia-hero-tel{display:none}
@media (max-width:899px){.ia-hero-pc{display:none}.testo p.ia-hero-tel{display:block;max-width:none;margin:-14px 0 22px;font-size:10.5px;line-height:1.3;color:rgba(255,255,255,.55)}}
