@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

.a24f-wrap { --a24-navy:#0c2744; --a24-yellow:#FBB824; font-family:Inter,-apple-system,sans-serif; max-width:720px; margin:24px auto; }
.a24f-wrap *,
.a24f-wrap *::before,
.a24f-wrap *::after { box-sizing:border-box; }

.a24f-card { background:#fff; border:1px solid #e8edf4; border-radius:16px; overflow:hidden; box-shadow:0 4px 24px rgba(12,39,68,.08); }

.a24f-head { background:var(--a24-navy); padding:22px 24px; display:flex; align-items:flex-start; gap:14px; }
.a24f-head-txt { min-width:0; flex:1; }
.a24f-title { font-size:20px; font-weight:800; color:#fff; letter-spacing:-.03em; margin:0 0 6px; line-height:1.25; }
.a24f-sub { font-size:13.5px; color:rgba(255,255,255,.72); margin:0; line-height:1.55; }

.a24f-partner { flex-shrink:0; text-align:right; padding-top:2px; }
.a24f-partner-lbl { display:block; font-size:10px; color:rgba(255,255,255,.5); letter-spacing:.05em; text-transform:uppercase; margin-bottom:2px; }
.a24f-partner-logo { display:block; font-size:13px; font-weight:700; color:#fff; white-space:nowrap; letter-spacing:-.02em; }
.a24f-partner-logo span { color:var(--a24-yellow); }

.a24f-body { padding:22px 24px 24px; }

.a24f-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.a24f-field { margin-bottom:14px; display:flex; flex-direction:column; }
.a24f-field label { font-size:12.5px; font-weight:700; color:#334155; margin-bottom:6px; }
.a24f-opt { font-weight:500; color:#94a3b8; }

.a24f-wrap input[type=text],
.a24f-wrap input[type=tel],
.a24f-wrap input[type=email],
.a24f-wrap select,
.a24f-wrap textarea {
  width:100%; font-family:Inter,sans-serif; font-size:14.5px; color:#0f172a;
  border:1.5px solid #e2e8f0; border-radius:10px; padding:11px 13px; background:#fff;
  transition:border-color .15s, box-shadow .15s; outline:none;
}
.a24f-wrap select { appearance:none; background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%2364748b' d='M1 1l5 5 5-5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 13px center; padding-right:34px; }
.a24f-wrap textarea { resize:vertical; line-height:1.55; }

.a24f-wrap input:focus,
.a24f-wrap select:focus,
.a24f-wrap textarea:focus { border-color:var(--a24-navy); box-shadow:0 0 0 3px rgba(12,39,68,.08); }
.a24f-wrap .a24f-invalid { border-color:#dc2626 !important; box-shadow:0 0 0 3px rgba(220,38,38,.08) !important; }
.a24f-wrap .a24f-ok { border-color:#16a34a; }

/* ── AUTOCOMPLETE CITTÀ ─────────────────────────────────────── */
.a24f-ac-wrap { position:relative; }
.a24f-drop {
  position:absolute; top:100%; left:0; right:0; z-index:9999;
  background:#fff; border:1.5px solid var(--a24-navy); border-top:none;
  border-radius:0 0 10px 10px; max-height:230px; overflow-y:auto;
  box-shadow:0 8px 24px rgba(12,39,68,.14); margin-top:-2px;
}
.a24f-drop-opt { padding:10px 13px; font-size:14px; color:#0f172a; cursor:pointer; border-bottom:1px solid #f1f5f9; }
.a24f-drop-opt:last-child { border-bottom:none; }
.a24f-drop-opt:hover { background:#f0f7ff; }
.a24f-drop-empty { padding:12px 13px; font-size:13px; color:#94a3b8; }

.a24f-hint { font-size:11.5px; color:#94a3b8; margin-top:5px; line-height:1.5; }
.a24f-hint-ok { color:#16a34a; font-weight:600; }

.a24f-privacy { display:flex; align-items:center; gap:9px; margin:4px 0 16px; font-size:12.5px; color:#64748b; line-height:1.55; cursor:pointer; }
.a24f-privacy input { width:15px; height:15px; flex-shrink:0; accent-color:var(--a24-navy); }
.a24f-privacy a { color:var(--a24-navy); font-weight:600; }

.a24f-website { position:absolute !important; left:-9999px !important; opacity:0 !important; height:0 !important; }

.a24f-alert { border-radius:10px; padding:11px 14px; font-size:13px; margin-bottom:14px; line-height:1.5; }
.a24f-error { background:#fef2f2; border:1px solid #fca5a5; color:#991b1b; }

.a24f-submit {
  width:100%; background:var(--a24-yellow); color:#2c1600; border:none; border-radius:10px;
  padding:14px; font-size:15.5px; font-weight:800; font-family:Inter,sans-serif; cursor:pointer;
  transition:background .15s, opacity .15s;
}
.a24f-submit:hover { background:#f5a800; }
.a24f-submit:disabled { opacity:.55; cursor:not-allowed; }

.a24f-legal { font-size:11.5px; color:#94a3b8; text-align:center; margin:12px 0 0; }

.a24f-success { padding:44px 28px; text-align:center; }
.a24f-check { font-size:44px; margin-bottom:12px; }
.a24f-success h3 { font-size:20px; font-weight:800; color:#0f172a; margin:0 0 10px; letter-spacing:-.02em; }
.a24f-success-msg { font-size:14px; color:#475569; line-height:1.6; margin:0 0 18px; }
.a24f-success-box { background:#f8fafc; border:1px solid #e8edf4; border-radius:10px; padding:13px 16px; text-align:left; display:flex; gap:10px; align-items:flex-start; font-size:12.5px; color:#475569; line-height:1.6; }
.a24f-success-ico { flex-shrink:0; font-size:15px; line-height:1.4; }
.a24f-success-box strong { color:var(--a24-navy); font-weight:800; }
.a24f-success-box .a24f-24 { color:#b8860b; }

@media (max-width:600px) {
  .a24f-wrap { margin:16px auto; }
  .a24f-row { grid-template-columns:1fr; gap:0; }
  .a24f-head { padding:18px; flex-direction:column-reverse; align-items:flex-start; gap:10px; }
  .a24f-partner { text-align:left; padding-top:0; display:flex; align-items:center; gap:7px; }
  .a24f-partner-lbl { margin-bottom:0; }
  .a24f-title { font-size:18px; }
  .a24f-body { padding:18px 18px 20px; }
  .a24f-wrap input, .a24f-wrap select, .a24f-wrap textarea { font-size:16px; }
}
