/* Moduli di richiesta Aesthetic Digital Studio — ticket.aestheticdigital.it */
:root{
  --ink:#1e2123;--ink-2:#4b5357;--ink-3:#7c8589;
  --accent:#59bad3;--accent-ink:#1d7f99;
  --bg:#f3f5f5;--card:#ffffff;--line:#e1e6e7;--line-2:#cfd7d9;
  --ok:#2f8f5b;--err:#c2453d;
  --r:14px;
  --f:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:400 16px/1.55 var(--f);-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
.wrap{width:100%;max-width:640px;margin:0 auto;padding:48px 20px 32px;flex:1}
.brand{display:flex;justify-content:center;margin-bottom:36px}
.brand img{height:44px;width:auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:36px 36px 32px;box-shadow:0 1px 2px rgba(30,33,35,.04),0 12px 40px rgba(30,33,35,.06)}
.eyebrow{margin:0 0 10px;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-ink)}
h1{margin:0 0 10px;font-size:28px;line-height:1.15;font-weight:300;letter-spacing:-.01em}
h1 b{font-weight:600}
.lead{margin:0 0 28px;color:var(--ink-2);font-size:15px}
form{display:grid;gap:18px}
.f{display:grid;gap:7px}
.f>label,.f>.lbl{font-size:13px;font-weight:600;color:var(--ink)}
.f>label .req,.f>.lbl .req{color:var(--accent-ink);margin-left:2px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
input[type=text],input[type=email],input[type=tel],input[type=date],textarea{width:100%;font:inherit;font-size:15px;color:var(--ink);background:#fff;border:1px solid var(--line-2);border-radius:var(--r);padding:12px 14px;outline:0;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}
input[type=date]{min-height:48px}
textarea{min-height:130px;resize:vertical}
input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(89,186,211,.18)}
input::placeholder,textarea::placeholder{color:#a5adb0}
.f.invalid input,.f.invalid textarea{border-color:var(--err)}
.f .msg{display:none;font-size:12.5px;color:var(--err)}
.f.invalid .msg{display:block}
.choices{display:flex;flex-wrap:wrap;gap:8px}
.choices label{position:relative;cursor:pointer}
.choices input{position:absolute;opacity:0;pointer-events:none}
.choices span{display:inline-block;padding:10px 16px;border:1px solid var(--line-2);border-radius:999px;font-size:14px;color:var(--ink-2);background:#fff;transition:all .15s;user-select:none}
.choices label:hover span{border-color:var(--accent)}
.choices input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}
.choices input:focus-visible+span{box-shadow:0 0 0 4px rgba(89,186,211,.25)}
.f.invalid .choices span{border-color:var(--err)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.privacy{margin:2px 0 0;font-size:12.5px;color:var(--ink-3)}
button[type=submit]{justify-self:start;display:inline-flex;align-items:center;gap:10px;margin-top:4px;font:inherit;font-size:15px;font-weight:600;color:#fff;background:var(--ink);border:0;border-radius:999px;padding:14px 28px;cursor:pointer;transition:transform .1s,background .15s}
button[type=submit]:hover{background:#000}
button[type=submit]:active{transform:translateY(1px)}
button[type=submit][disabled]{opacity:.6;cursor:default}
button[type=submit] .dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.err-box{display:none;margin:0;padding:12px 14px;border-radius:12px;background:#fbeceb;color:var(--err);font-size:14px}
.err-box.on{display:block}
.done{display:none;text-align:center;padding:12px 0 6px}
.done .ic{width:56px;height:56px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:rgba(89,186,211,.15);color:var(--accent-ink)}
.done .ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.done h2{margin:0 0 8px;font-size:22px;font-weight:600}
.done p{margin:0;color:var(--ink-2)}
.sent form,.sent .lead{display:none}
.sent .done{display:block}
footer{text-align:center;padding:8px 20px 28px;font-size:12px;color:var(--ink-3);letter-spacing:.02em}
footer a{color:inherit}
@media (max-width:560px){
  .wrap{padding:28px 14px 20px}
  .brand{margin-bottom:24px}.brand img{height:36px}
  .card{padding:26px 20px 22px;border-radius:18px}
  h1{font-size:24px}
  .row2{grid-template-columns:1fr}
  button[type=submit]{justify-self:stretch;justify-content:center}
}
