/* AppuntaPro - sito pubblico di prenotazione - tema dark */

:root{
  --brand:#22D3EE;
  --brand-soft:rgba(34,211,238,.14);
  --brand-line:rgba(34,211,238,.42);
  --brand-glow:rgba(34,211,238,.34);
  --on-brand:#04222B;
  --accent:#F0A63C;
  --bg:#080C11;
  --card:#121A22;
  --card2:#0D141B;
  --raise:#18222B;
  --line:#1E2B36;
  --line2:#26333F;
  --txt:#E7EFF4;
  --muted:#7F94A3;
  --bad:#F87171;
  --font-d:'Bricolage Grotesque',ui-sans-serif,system-ui,sans-serif;
  --font-b:'Inter Tight',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font-b);
  background:
    radial-gradient(105% 62% at 50% -8%,rgba(34,211,238,.13) 0%,transparent 58%),
    var(--bg);
  background-attachment:fixed;
  color:var(--txt);font-size:16px;line-height:1.55;
  -webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;
}
a{color:var(--brand);text-decoration:none}
h1,h2,h3{font-family:var(--font-d);font-weight:700;letter-spacing:-.03em;margin:0;color:#F4F9FB}
main{display:block}
::selection{background:var(--brand-soft)}

/* ---------- topnav ---------- */
.topnav{
  position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;
  padding:14px 20px;background:rgba(8,12,17,.82);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:10px;color:#F4F9FB;font-family:var(--font-d);
  font-weight:800;font-size:15px;letter-spacing:.01em;text-transform:uppercase}
.brand img{max-height:34px;max-width:170px;display:block}
.topnav nav{margin-left:auto;display:flex;align-items:center;gap:12px}
.nav-tel{color:var(--muted);font-size:14px;font-weight:600}
.nav-tel:hover{color:var(--txt)}
.nav-area{color:var(--muted);font-size:14px;font-weight:600}
.nav-area:hover{color:var(--txt)}
.nav-cta{
  padding:9px 17px;border-radius:99px;background:var(--brand-soft);border:1px solid var(--brand-line);
  color:var(--brand);font-weight:700;font-size:13.5px;box-shadow:0 0 22px -8px var(--brand-glow);
}
.nav-cta:hover{background:rgba(34,211,238,.24)}

/* ---------- hero ---------- */
.hero{
  max-width:1120px;margin:0 auto;padding:44px 20px 30px;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,470px);gap:44px;align-items:start;
}
.hero-txt{padding-top:14px}
.eyebrow{
  display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.16em;
  color:var(--brand);margin-bottom:14px;
}
.hero h1{font-size:clamp(34px,6vw,52px);line-height:1.03;margin-bottom:16px}
.lead{font-size:17.5px;color:#B4C6D2;margin:0 0 16px;max-width:46ch}
.intro{font-size:15px;color:var(--muted);margin:0 0 18px;max-width:52ch}
.punti{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:11px}
.punti li{display:flex;align-items:flex-start;gap:10px;font-size:15px;color:#C6D6E0}
.punti svg{width:17px;height:17px;flex:0 0 auto;margin-top:3px;color:var(--brand)}
.hero-tel{margin:24px 0 0;font-size:14.5px;color:var(--muted)}
.hero-tel a{font-weight:700}

/* ---------- box prenotazione ---------- */
.book{
  background:linear-gradient(180deg,var(--card) 0%,var(--card2) 100%);
  border:1px solid var(--line);border-radius:26px;overflow:hidden;
  box-shadow:0 40px 90px -40px #000,0 0 0 1px rgba(34,211,238,.05);
  position:relative;
}
.book::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--brand-line),transparent);
}
.book-pad{padding:24px 22px 26px}
.book-title{font-size:26px;margin:0 0 18px;letter-spacing:-.035em}
.alert{
  margin:20px 22px 0;padding:12px 14px;border-radius:13px;font-size:14px;
  background:rgba(248,113,113,.11);border:1px solid rgba(248,113,113,.38);color:#FCA5A5;
}

/* barra avanzamento */
.barra{display:flex;align-items:center;gap:13px;padding:20px 22px 4px}
.barra-back{
  width:34px;height:34px;flex:0 0 auto;border-radius:50%;background:var(--raise);
  border:1px solid var(--line2);color:var(--muted);display:grid;place-items:center;cursor:pointer;
  visibility:hidden;
}
.barra-back:hover{color:var(--txt);border-color:#3A4C5C}
.barra-back svg{width:16px;height:16px}
.barra-track{flex:1;height:4px;border-radius:99px;background:var(--line2);overflow:hidden}
.barra-track i{
  display:block;height:100%;width:33%;border-radius:99px;background:var(--brand);
  box-shadow:0 0 14px var(--brand-glow);transition:width .3s ease;
}
.barra-num{font-size:13px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}

.step{display:none}
.step.on{display:block}

.lbl{
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;
  color:var(--muted);margin:22px 0 11px;
}
.lbl:first-of-type{margin-top:0}

/* servizi */
.servizi{display:grid;gap:10px;margin-bottom:20px}
.serv{display:block;cursor:pointer;position:relative}
.serv input{position:absolute;opacity:0;pointer-events:none}
.serv-body{
  display:block;padding:15px 16px;border-radius:16px;border:1px solid var(--line2);
  background:var(--raise);transition:border-color .15s,box-shadow .15s,background .15s;
}
.serv:hover .serv-body{border-color:#3A4C5C}
.serv input:checked + .serv-body{
  border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 26px -10px var(--brand-glow);
}
.serv-body b{display:block;font-size:16px;font-weight:600;color:#F4F9FB}
.serv-body b:only-child{font-size:16.5px}
.serv-body small{display:block;font-size:13.5px;color:var(--muted);margin-top:3px;line-height:1.45}
.serv-body em{display:block;font-style:normal;font-size:12.5px;color:var(--brand);font-weight:700;margin-top:7px}

/* striscia giorni */
.cal-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.cal-head .lbl{margin:0;flex:1}
.cal-navs{display:flex;gap:6px}
.cal-nav{
  width:32px;height:32px;border-radius:10px;background:var(--raise);border:1px solid var(--line2);
  color:var(--muted);display:grid;place-items:center;cursor:pointer;
}
.cal-nav:hover:not([disabled]){color:var(--brand);border-color:var(--brand-line)}
.cal-nav[disabled]{opacity:.32;cursor:default}
.cal-nav svg{width:16px;height:16px}
.cal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.cal-load{grid-column:1/-1;padding:26px 0;text-align:center;color:var(--muted);font-size:14px}
.cal-day{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  padding:11px 4px 12px;border-radius:14px;border:1px solid var(--line2);background:var(--raise);
  color:var(--txt);font:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s;
}
.cal-day i{font-style:normal;font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--muted)}
.cal-day b{font-family:var(--font-d);font-size:20px;font-weight:700;line-height:1.1;letter-spacing:-.03em}
.cal-day:hover:not([disabled]){border-color:#3A4C5C}
.cal-day[disabled]{opacity:.3;cursor:default;background:transparent}
.cal-day.on{
  border-color:var(--brand);background:var(--brand-soft);color:var(--brand);
  box-shadow:0 0 26px -8px var(--brand-glow);
}
.cal-day.on i{color:var(--brand)}

/* orari */
.orari{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.orari .vuoto{grid-column:1/-1;font-size:14px;color:var(--muted);padding:10px 0}
.ora{
  padding:13px 4px;border-radius:13px;border:1px solid var(--line2);background:var(--raise);
  color:var(--txt);font:inherit;font-size:14.5px;font-weight:600;cursor:pointer;
  font-variant-numeric:tabular-nums;transition:border-color .15s,box-shadow .15s,background .15s;
}
.ora:hover{border-color:#3A4C5C}
.ora.on{
  border-color:var(--brand);background:var(--brand-soft);color:var(--brand);
  box-shadow:0 0 26px -8px var(--brand-glow);
}

/* modalita */
.modi{display:flex;flex-wrap:wrap;gap:9px}
.modo{position:relative;cursor:pointer}
.modo input{position:absolute;opacity:0;pointer-events:none}
.modo span{
  display:block;padding:10px 16px;border-radius:99px;border:1px solid var(--line2);
  background:var(--raise);font-size:13.5px;font-weight:600;color:var(--muted);
}
.modo input:checked + span{
  border-color:var(--brand);background:var(--brand-soft);color:var(--brand);
  box-shadow:0 0 22px -8px var(--brand-glow);
}

/* bottoni */
.btn-big{
  display:block;width:100%;margin-top:22px;padding:16px 22px;border-radius:99px;
  background:transparent;border:1px solid var(--brand);color:var(--brand);
  font:inherit;font-family:var(--font-d);font-weight:700;font-size:16.5px;letter-spacing:-.01em;
  cursor:pointer;text-align:center;box-shadow:0 0 30px -12px var(--brand-glow),inset 0 0 26px -18px var(--brand);
  transition:background .16s,box-shadow .16s;
}
.btn-big:hover:not([disabled]){background:var(--brand-soft);box-shadow:0 0 36px -10px var(--brand-glow)}
.btn-big[disabled]{opacity:.35;cursor:default;border-color:var(--line2);color:var(--muted);box-shadow:none}
.btn-ghost{
  padding:16px 22px;border-radius:99px;background:transparent;border:1px solid var(--line2);
  color:var(--muted);font:inherit;font-weight:600;font-size:15px;cursor:pointer;
}
.btn-ghost:hover{color:var(--txt);border-color:#3A4C5C}
.book-nav{display:flex;gap:10px;align-items:center;margin-top:22px}
.book-nav .btn-big{margin-top:0;flex:1}
.book-nav .btn-ghost{flex:0 0 auto}

/* dati cliente */
.riepilogo{
  margin:0 0 20px;padding:14px 16px;border-radius:15px;background:var(--brand-soft);
  border:1px solid var(--brand-line);font-size:14.5px;color:#CFEFF6;line-height:1.5;
}
.riepilogo b{color:var(--brand);font-weight:700}
.ff{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.f{display:flex;flex-direction:column;gap:6px;min-width:0}
.f.w{grid-column:1/-1}
.f label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.f .opt{text-transform:none;letter-spacing:0;font-weight:400;opacity:.75}
.ff input,.ff textarea{
  font:inherit;font-size:16px;padding:13px 14px;border-radius:13px;border:1px solid var(--line2);
  background:#0C1319;color:var(--txt);width:100%;
}
.ff input::placeholder,.ff textarea::placeholder{color:#5C7180}
.ff input:focus,.ff textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(34,211,238,.16)}
.ff textarea{resize:vertical;min-height:86px;line-height:1.55}
.privacy{display:flex;gap:11px;align-items:flex-start;margin-top:18px;font-size:13.5px;color:var(--muted);cursor:pointer}
.privacy input{width:19px;height:19px;flex:0 0 auto;margin-top:1px;accent-color:var(--brand)}

/* ---------- servizi pubblici ---------- */
.servizi-pub{max-width:1120px;margin:14px auto 0;padding:44px 20px 10px}
.servizi-pub h2{font-size:clamp(24px,4vw,32px);margin-bottom:22px}
.serv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:14px}
.serv-card{
  background:linear-gradient(180deg,var(--card) 0%,var(--card2) 100%);
  border:1px solid var(--line);border-radius:19px;padding:20px 19px;display:flex;flex-direction:column;
}
.serv-card:hover{border-color:var(--brand-line)}
.serv-card h3{font-size:18px;margin-bottom:8px}
.serv-card p{font-size:14px;color:var(--muted);margin:0 0 14px;line-height:1.55;flex:1}
.serv-card .prezzo{font-family:var(--font-d);font-weight:700;font-size:19px;color:var(--brand);
  letter-spacing:-.02em;margin-bottom:12px;display:block}
.link-prenota{font-size:13.5px;font-weight:700;display:inline-flex;align-items:center;gap:6px}
.link-prenota::after{content:"\2192"}

/* ---------- pagine esito / documento ---------- */
.pagina{max-width:640px;margin:0 auto;padding:44px 20px 60px}
.pagina-doc{max-width:900px}
.tick{
  width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin-bottom:20px;
  background:var(--brand-soft);border:1px solid var(--brand-line);color:var(--brand);
  box-shadow:0 0 34px -10px var(--brand-glow);
}
.tick svg{width:28px;height:28px}
.pagina h1{font-size:clamp(28px,5vw,38px);margin-bottom:12px}
.pagina .lead{margin-bottom:26px}
.riep-tbl{
  width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);
  border-radius:18px;overflow:hidden;font-size:15px;
}
.riep-tbl th,.riep-tbl td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line)}
.riep-tbl th{color:var(--muted);font-weight:600;font-size:12.5px;width:38%;
  text-transform:uppercase;letter-spacing:.08em}
.riep-tbl td{font-weight:600;color:#F1F7FA}
.riep-tbl tr:last-child th,.riep-tbl tr:last-child td{border-bottom:0}
/* un indirizzo su cui si pu&ograve; cliccare per farsi portare l&igrave; */
.lnk-mappa{
  color:var(--brand);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.lnk-mappa:hover{text-decoration-thickness:2px}
.riep-tbl td .lnk-mappa{font-weight:600}

/* card esito / risposta preventivo */
.card-esito,.risposta{
  background:linear-gradient(180deg,var(--card) 0%,var(--card2) 100%);
  border:1px solid var(--line);border-radius:22px;padding:28px 24px;
  box-shadow:0 30px 70px -40px #000;
}
.risposta{margin-top:20px}
.risposta h2{font-size:21px;margin-bottom:8px}
.card-esito h1{font-size:clamp(24px,4.6vw,30px)}
.sub{font-size:16px;color:#B4C6D2;margin:0 0 22px;line-height:1.6}
.alert.ok{background:rgba(52,211,153,.11);border-color:rgba(52,211,153,.4);color:#6EE7B7}
.azioni{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.azioni a,.azioni button{
  flex:1 1 auto;min-width:170px;padding:14px 20px;border-radius:99px;text-align:center;
  font:inherit;font-family:var(--font-d);font-weight:700;font-size:15px;cursor:pointer;
  background:transparent;border:1px solid var(--line2);color:var(--txt);
}
.azioni a:hover,.azioni button:hover{border-color:#3A4C5C}
.azioni .p{border-color:var(--brand);color:var(--brand);box-shadow:0 0 28px -12px var(--brand-glow)}
.azioni .p:hover{background:var(--brand-soft)}
.azioni .d{border-color:rgba(248,113,113,.4);color:var(--bad)}
.azioni .d:hover{background:rgba(248,113,113,.12)}

/* ---------- area riservata cliente ---------- */
.area{max-width:720px}
.area-top{display:flex;align-items:flex-start;gap:16px;margin-bottom:26px}
.area-top .eyebrow{margin-bottom:6px}
.area-top h1{font-size:clamp(28px,5vw,38px)}
.esci{
  margin-left:auto;flex:0 0 auto;padding:9px 16px;border-radius:99px;
  border:1px solid var(--line2);color:var(--muted);font-size:13.5px;font-weight:600;
}
.esci:hover{color:var(--txt);border-color:#3A4C5C}
.area .lbl{margin:30px 0 12px}
.area .lbl:first-of-type{margin-top:0}

.app-card{
  background:linear-gradient(180deg,var(--card) 0%,var(--card2) 100%);
  border:1px solid var(--line);border-radius:20px;padding:20px 20px 22px;margin-bottom:12px;
}
.app-quando{
  padding-bottom:14px;margin-bottom:4px;border-bottom:1px solid var(--line);
}
.app-quando b{
  display:block;font-family:var(--font-d);font-size:19px;font-weight:700;
  letter-spacing:-.03em;color:var(--brand);text-shadow:0 0 26px var(--brand-glow);
}
.app-quando span{display:block;font-size:13.5px;color:var(--muted);margin-top:3px}
.app-card .riep-tbl{border:0;border-radius:0;background:transparent}
.app-card .riep-tbl th,.app-card .riep-tbl td{padding:10px 0}
.app-card .azioni{margin-top:16px}
.app-card .azioni button,.app-card .azioni a{padding:12px 18px;font-size:14px;min-width:140px}

.prev-card,.storico{
  display:flex;align-items:center;gap:14px;padding:15px 18px;margin-bottom:10px;
  background:var(--card);border:1px solid var(--line);border-radius:16px;color:inherit;
}
.prev-card:hover{border-color:var(--brand-line)}
.prev-card.spento{opacity:.55;pointer-events:none}
.prev-card .grow,.storico .grow{flex:1;min-width:0}
.prev-card b,.storico b{display:block;font-size:15.5px;font-weight:600;color:#F4F9FB}
.prev-card span span,.storico span span,.prev-card .grow > span,.storico .grow > span{
  display:block;font-size:13px;color:var(--muted);margin-top:3px;
}
.prev-card .tot{
  flex:0 0 auto;font-family:var(--font-d);font-weight:700;font-size:18px;
  color:var(--brand);letter-spacing:-.02em;white-space:nowrap;
}
.storico{background:transparent}
.storico .stato{
  flex:0 0 auto;font-size:12px;font-weight:700;color:var(--muted);
  padding:4px 11px;border-radius:99px;border:1px solid var(--line2);white-space:nowrap;
}
.storico .stato.ko{color:var(--bad);border-color:rgba(248,113,113,.4)}

/* scelta della soluzione di pagamento */
.scelta-pag{margin-bottom:18px}
.opz-pag{display:block;position:relative;cursor:pointer;margin-bottom:9px}
.opz-pag input{position:absolute;opacity:0;pointer-events:none}
.opz-pag > span{
  display:block;padding:14px 16px;border-radius:15px;border:1px solid var(--line2);
  background:var(--raise);transition:border-color .15s,background .15s,box-shadow .15s;
}
.opz-pag:hover > span{border-color:#3A4C5C}
.opz-pag input:checked + span{
  border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 26px -10px var(--brand-glow);
}
.opz-pag b{display:block;font-size:15.5px;font-weight:700;color:#F4F9FB}
.opz-pag input:checked + span b{color:var(--brand)}
.opz-pag small{display:block;font-size:13px;color:var(--muted);margin-top:4px;line-height:1.5}

/* scelta fra accettare e rifiutare */
.scelta-risposta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.risp-btn{
  display:block;text-align:left;padding:18px 19px;border-radius:16px;cursor:pointer;
  border:1px solid var(--line2);background:var(--raise);color:var(--txt);font:inherit;
  text-decoration:none;
  transition:border-color .18s,background .18s,transform .18s;
}
.risp-btn:hover{transform:translateY(-2px)}
.risp-btn b{display:block;font-size:16px;font-weight:600;margin-bottom:4px}
.risp-btn small{display:block;font-size:13px;color:var(--muted);line-height:1.5}
.risp-si{border-color:var(--brand-line);background:var(--brand-soft)}
.risp-si b{color:var(--brand)}
.risp-si:hover{border-color:var(--brand)}
.risp-no:hover{border-color:rgba(248,113,113,.5)}
.risp-no b{color:#E7EFF4}
.riepilogo-doc{
  display:flex;align-items:center;gap:14px;padding:14px 16px;margin:0 0 16px;
  border-radius:14px;background:var(--raise);border:1px solid var(--line);
}
.riepilogo-doc .grow{flex:1;min-width:0}
.riepilogo-doc b{display:block;font-size:15px;color:#F1F7FA}
.riepilogo-doc small{display:block;font-size:13px;color:var(--muted);margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.riep-tot{font-family:var(--font-d);font-size:19px;font-weight:700;color:var(--brand);
  letter-spacing:-.02em;white-space:nowrap}

.indietro{
  display:inline-block;font-size:14px;color:var(--muted);text-decoration:none;
  padding:6px 0;
}
.indietro:hover{color:var(--brand)}
.passo-num{
  display:inline-block;font-size:11px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--brand);
}
.azioni a.d,.azioni button.d{
  border-color:rgba(248,113,113,.4);color:#F87171;
}
.azioni a.d:hover,.azioni button.d:hover{
  border-color:#F87171;background:rgba(248,113,113,.1);
}

.btn-big.rifiuto{
  background:transparent;border:1px solid rgba(248,113,113,.45);color:#F87171;
  box-shadow:none;
}
.btn-big.rifiuto:hover{background:rgba(248,113,113,.1);border-color:#F87171}

.torna-scelta{
  background:none;border:0;color:var(--muted);font:inherit;font-size:14px;
  cursor:pointer;padding:14px 18px;text-decoration:underline;text-underline-offset:3px;
}
.torna-scelta:hover{color:var(--txt)}
.opz-pag.compatta span small{display:none}
.opz-pag.compatta span b{font-weight:500;font-size:15px}

/* importo richiesto */
.riquadro-importo{
  text-align:center;padding:26px 20px;border-radius:18px;margin-bottom:20px;
  background:var(--brand-soft);border:1px solid var(--brand-line);
}
.ri-lab{display:block;font-size:14px;color:var(--muted);margin-bottom:8px}
.ri-cifra{
  display:block;font-family:var(--font-d);font-size:40px;font-weight:800;
  color:var(--brand);letter-spacing:-.04em;line-height:1;
}
.ri-nota{display:block;font-size:13px;color:var(--muted);margin-top:10px}
.ri-nota.scaduta{color:var(--warn);font-weight:600}

/* piano di pagamento concordato */
.piano-cliente{display:flex;flex-direction:column;gap:2px}
.piano-riga{
  display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;
  background:var(--raise);border:1px solid var(--line);
}
.piano-riga .grow{flex:1;min-width:0}
.piano-riga b{display:block;font-size:14.5px;color:#F1F7FA;font-weight:600}
.piano-riga small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.piano-imp{font-family:var(--font-d);font-size:16px;font-weight:700;color:var(--brand);
  white-space:nowrap;text-align:right}
.piano-imp small{display:block;font-family:var(--font-b);font-size:11px;font-weight:600;
  color:var(--ok);text-transform:uppercase;letter-spacing:.06em}
.piano-riga.pagata{opacity:.6}
.piano-riga.pagata .piano-imp{color:var(--muted)}

/* istruzioni del metodo scelto */
.box-metodo{
  padding:15px 17px;border-radius:14px;margin-top:-4px;margin-bottom:18px;
  background:var(--brand-soft);border:1px solid var(--brand-line);
}
.box-metodo b{display:block;font-size:14.5px;color:var(--brand);margin-bottom:8px}
.box-metodo small{display:block;font-size:13.5px;color:var(--muted);line-height:1.6}
.box-metodo dl{display:grid;grid-template-columns:auto 1fr;gap:5px 16px;margin:0 0 10px}
.box-metodo dt{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}
.box-metodo dd{margin:0;font-size:14px;color:#F1F7FA;font-weight:600;word-break:break-word}

@media (max-width:620px){
  .scelta-risposta{grid-template-columns:1fr}
  .box-metodo dl{grid-template-columns:1fr;gap:2px 0}
  .box-metodo dd{margin-bottom:8px}
}

/* servizi acquistati nell'area cliente */
.serv-card{
  background:linear-gradient(180deg,var(--card) 0%,var(--card2) 100%);
  border:1px solid var(--line);border-radius:18px;padding:18px 19px;margin-bottom:12px;
}
.serv-top{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.serv-top b{font-size:16.5px;font-weight:600;color:#F4F9FB;flex:1;min-width:0}
.serv-res{
  font-family:var(--font-d);font-size:14px;font-weight:700;color:var(--brand);
  letter-spacing:-.01em;white-space:nowrap;
}
.serv-res.esaurito{color:var(--muted)}
.serv-barra{height:7px;border-radius:99px;background:var(--line2);overflow:hidden}
.serv-barra i{display:block;height:100%;border-radius:99px;background:var(--brand);
  box-shadow:0 0 12px var(--brand-glow);min-width:2px}
.serv-nota{display:block;font-size:12.5px;color:var(--muted);margin-top:8px}
.serv-elenco{list-style:none;margin:14px 0 0;padding:14px 0 0;border-top:1px solid var(--line)}
.serv-elenco li{display:flex;gap:12px;align-items:baseline;font-size:13.5px;padding:5px 0;color:#C6D6E0}
.serv-elenco .serv-data{flex:0 0 auto;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.serv-elenco em{display:block;font-style:normal;font-size:12px;color:var(--muted);margin-top:2px}
.serv-elenco .grow{flex:1;min-width:0}

/* firma del contratto */
.firma-area{
  position:relative;background:#fff;border:1px solid var(--line2);border-radius:15px;
  overflow:hidden;margin-bottom:12px;
}
.firma-area canvas{display:block;width:100%;height:190px;touch-action:none;cursor:crosshair}
.firma-hint{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-size:15px;color:#9aa8b0;pointer-events:none;letter-spacing:.04em;
}

/* finestra di pagamento */
.modale{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px}
.modale[hidden]{display:none}
.modale-sfondo{position:absolute;inset:0;background:rgba(4,8,11,.78);backdrop-filter:blur(6px)}
.modale-box{
  position:relative;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;
  background:linear-gradient(180deg,var(--card) 0%,var(--card2) 100%);
  border:1px solid var(--line);border-radius:24px;padding:30px 26px 26px;
  box-shadow:0 40px 90px -30px #000;
  animation:modale-su .22s ease;
}
@keyframes modale-su{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.modale-box h2{font-size:23px;margin:0 0 8px;letter-spacing:-.03em}
.modale-x{
  position:absolute;top:14px;right:16px;width:34px;height:34px;border-radius:50%;
  background:var(--raise);border:1px solid var(--line2);color:var(--muted);
  font-size:22px;line-height:1;cursor:pointer;
}
.modale-x:hover{color:var(--txt);border-color:#3A4C5C}
.modale-dopo{display:block;width:100%;margin-top:10px;padding:13px;font-size:14px}
.riep-pag{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding:16px 18px;border-radius:15px;background:var(--brand-soft);
  border:1px solid var(--brand-line);margin-bottom:4px;
}
.riep-pag span{font-size:13px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.riep-pag b{font-family:var(--font-d);font-size:26px;color:var(--brand);letter-spacing:-.03em}

@media (max-width:620px){
  .modale{padding:12px;align-items:flex-end}
  .modale-box{max-width:none;border-radius:22px 22px 16px 16px;padding:26px 18px 20px;max-height:92vh}
}

/* ---------- footer ---------- */
.sitefoot{
  border-top:1px solid var(--line);margin-top:56px;padding:34px 20px 30px;
  background:rgba(13,20,27,.6);
}
/* Colonne affiancate in alto, non centrate: i blocchi hanno altezze diverse
   e allinearli al centro li faceva sembrare disallineati fra loro. */
.foot-in{
  max-width:1120px;margin:0 auto;display:grid;gap:22px 40px;align-items:start;
  grid-template-columns:minmax(0,2fr) minmax(0,1fr);
  font-size:13.5px;color:var(--muted);line-height:1.7;
}
.foot-in b{display:block;color:#E7EFF4;font-size:14.5px;font-weight:600;margin-bottom:6px}
.foot-in p{margin:0}
.foot-in a{color:var(--muted)}
.foot-in a:hover{color:var(--brand)}
.foot-note{grid-column:1/-1;font-size:12.5px;color:#5C7180;line-height:1.65}
.foot-note p{margin:0}
.foot-bar{
  max-width:1120px;margin:26px auto 0;padding-top:18px;border-top:1px solid var(--line);
  display:flex;gap:8px 20px;flex-wrap:wrap;align-items:center;
  font-size:13px;color:var(--muted);
}
.foot-bar a{color:var(--muted)}
.foot-bar a:hover{color:var(--brand)}
.foot-bar a:last-child{margin-left:auto}

/* ---------- responsive ---------- */
@media (max-width:940px){
  .hero{grid-template-columns:1fr;gap:28px;padding:32px 16px 22px}
  .hero-txt{padding-top:0}
  .punti{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  body{font-size:15.5px}
  .topnav{padding:12px 15px}
  .nav-tel{display:none}
  .nav-area{font-size:13px}
  .hero{padding:26px 14px 18px}
  .book{border-radius:22px}
  .book-pad{padding:20px 16px 22px}
  .barra{padding:16px 16px 2px}
  .alert{margin:16px 16px 0}
  .punti{grid-template-columns:1fr}
  .ff{grid-template-columns:1fr}
  .sitefoot{padding:28px 15px 26px}
  .foot-in{grid-template-columns:1fr;gap:16px}
  .foot-bar{gap:10px 16px}
  .foot-bar a:last-child{margin-left:0}
  .servizi-pub{padding:32px 14px 6px}
  .app-card{padding:17px 16px 18px;border-radius:17px}
  .app-card .azioni button,.app-card .azioni a{min-width:0;flex:1 1 100%}
  .prev-card,.storico{padding:13px 15px;gap:10px}
  .pagina{padding:32px 14px 48px}
  .cal-grid{gap:8px}
  .orari{gap:8px}
}


/* ---------- stampa ---------- */
/* Su carta serve il solo documento: barra, pi&egrave; di pagina, moduli di risposta
   e finestre di pagamento non hanno senso e sprecano un foglio. */
@media print{
  .topnav,.sitefoot,.modale,.no-print,.foot-in,.foot-note,.foot-bar{display:none!important}
  /* Dal telefono il viewport resta stretto: in stampa si lascia decidere al foglio */
  html,body{width:auto;min-width:0;background:#fff!important;color:#000}
  .pagina,.pagina-doc{max-width:none;margin:0;padding:0}
  .card-esito,.risposta,.alert{display:none!important}
  a[href]::after{content:none!important}
  /* Niente spazio residuo in fondo: bastava un margine per far uscire un foglio in pi&ugrave; */
  main,.pagina,.pagina-doc{padding:0!important;margin:0!important}
  main > *:last-child,.pagina > *:last-child{margin-bottom:0!important}
}
