    .hidden{display:none!important}
    :root{
      --bg0:#04060d;
      --bg1:#000;
      --text: rgba(255,255,255,.92);
      --muted: rgba(255,255,255,.70);
      --muted2: rgba(255,255,255,.55);
      --blue:#16a3ff;
      --orange:#ff9a1f;
      --good:#22c55e;
      --warn:#f59e0b;
      --bad:#ef4444;
      --glass: rgba(255,255,255,.05);
      --stroke: rgba(255,255,255,.10);
      --shadow2: 0 14px 38px rgba(0,0,0,.45);
      --shadow: 0 20px 60px rgba(0,0,0,.55);
      --r: 18px;
    }
    *{box-sizing:border-box;margin:0;padding:0}
    html{scroll-behavior:smooth}
    body{
      font-family: Arial, Helvetica, sans-serif;
      color: var(--text);
      background:
        radial-gradient(900px 520px at 20% 0%, rgba(22,163,255,.16), transparent 60%),
        radial-gradient(900px 520px at 80% 10%, rgba(255,154,31,.14), transparent 62%),
        linear-gradient(135deg, var(--bg0), var(--bg1));
      min-height: 100vh;
      padding-bottom: 100px;
    }
    a{color:inherit;text-decoration:none}

    /* ── Header ── */
    .page-header{
      text-align:center;
      padding: 22px 18px 14px;
    }
    .page-header a{
      display:inline-flex; align-items:center; gap:8px;
      font-size:14px; color: var(--muted); margin-bottom:14px;
    }
    .page-header a:hover{color:var(--text)}
    .page-brand{font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--blue); margin-bottom:4px}
    .page-title{font-size:22px; font-weight:900; margin-bottom:4px}
    .page-sub{font-size:14px; color:var(--muted)}

    /* ── Wizard container ── */
    .wizard{
      max-width:640px;
      margin:0 auto;
      padding: 0 14px;
    }

    /* ── Progress bar ── */
    .progress{
      display:flex; gap:8px; align-items:center;
      padding: 0 4px 18px;
    }
    .progress-dot{
      flex:1; height:4px; border-radius:99px;
      background: rgba(255,255,255,.13);
      transition: background .25s;
    }
    .progress-dot.done{ background: var(--blue); cursor: pointer; }
    .progress-dot.done:hover{ opacity:.75; }
    .progress-dot.active{ background: var(--blue); opacity:.6; }
    .progress-label{
      font-size:12px; color:var(--muted); white-space:nowrap; margin-left:6px;
    }

    /* ── Step panel ── */
    .step{display:none}
    .step.active{display:block}
    .panel{
      background: var(--glass);
      border: 1px solid var(--stroke);
      border-radius: var(--r);
      padding: 20px 18px;
      box-shadow: var(--shadow2);
      margin-bottom: 14px;
      backdrop-filter: blur(10px);
    }
    .panel-title{
      font-size:18px; font-weight:900; margin-bottom:4px;
    }
    .panel-sub{
      font-size:13px; color:var(--muted); margin-bottom:18px; line-height:1.4;
    }

    /* ── Form fields ── */
    .field{margin-bottom:16px}
    .field-label{
      display:block; font-size:12px; color:var(--muted); margin-bottom:6px; font-weight:600;
    }
    .field-label .req{color:var(--blue)}

    input, select, textarea{
      width:100%;
      padding: 13px 14px;
      border-radius: 12px;
      border: 1px solid rgba(255,255,255,.18);
      background: rgba(0,0,0,.35);
      color: var(--text);
      font-size:16px;
      outline:none;
      font-family: inherit;
      transition: border-color .2s;
    }
    input:focus, select:focus, textarea:focus{
      border-color: rgba(22,163,255,.5);
    }
    input.err, select.err, textarea.err{
      border-color: rgba(239,68,68,.5) !important;
    }
    textarea{min-height:110px; resize:vertical}
    select option{background:#1a1a2e}

    .field-error{
      display:none;
      font-size:12px; color:var(--bad); margin-top:5px;
    }
    .field-error.show{display:block}

    .twoCol{display:grid; grid-template-columns:1fr 1fr; gap:12px}
    @media(max-width:460px){.twoCol{grid-template-columns:1fr}}

    /* ── Distance notice ── */
    .dist-notice{
      display:none;
      margin-top:10px; padding:10px 12px;
      border-radius:12px; font-size:13px; line-height:1.35;
    }
    .dist-notice.show{display:block}
    .dist-notice.in-zone{
      background: rgba(34,197,94,.10);
      border: 1px solid rgba(34,197,94,.22);
    }
    .dist-notice.out-zone{
      background: rgba(245,158,11,.10);
      border: 1px solid rgba(245,158,11,.22);
    }
    .dist-notice.unknown{
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.12);
      color: var(--muted);
    }

    /* ── Checkboxes + radio rows ── */
    .check-group{display:flex; flex-direction:column; gap:8px}
    .check-row{
      display:flex; align-items:center; gap:10px;
      padding: 10px 12px;
      border-radius:12px;
      border: 1px solid rgba(255,255,255,.10);
      background: rgba(255,255,255,.04);
      cursor:pointer;
      transition: border-color .15s, background .15s;
    }
    .check-row:has(input:checked){
      border-color: rgba(22,163,255,.35);
      background: rgba(22,163,255,.08);
    }
    .check-row input[type=checkbox],
    .check-row input[type=radio]{
      width:18px; height:18px; flex-shrink:0;
      accent-color: var(--blue);
    }
    .check-row label{font-size:14px; cursor:pointer; line-height:1.3}

    /* ── Terms panel ── */
    .terms-details{
      border: 1px solid rgba(255,255,255,.13);
      border-radius:14px;
      margin-bottom:14px;
      background: rgba(255,255,255,.04);
    }
    .terms-details > summary{
      cursor:pointer;
      padding:13px 14px;
      font-size:14px;
      font-weight:700;
      color: var(--blue);
      display:flex;
      justify-content:space-between;
      align-items:center;
      list-style:none;
      border-radius:14px;
    }
    .terms-details > summary::-webkit-details-marker{display:none}
    .terms-details[open] > summary{
      border-bottom: 1px solid rgba(255,255,255,.10);
      border-radius:14px 14px 0 0;
    }
    .terms-chevron{font-size:11px; color:rgba(255,255,255,.45); transition:transform .2s}
    .terms-details[open] .terms-chevron{transform:rotate(180deg)}
    .terms-box{
      padding:14px;
      font-size:12.5px; color: rgba(255,255,255,.84);
      line-height:1.5;
    }
    /* Legal content typography — matches tos.php / liability.php */
    .terms-box h3{
      font-size:12.5px; font-weight:700;
      color:rgba(22,163,255,.9);
      margin:14px 0 3px;
      border-bottom:1px solid rgba(255,255,255,.07);
      padding-bottom:3px;
    }
    .terms-box h3:first-child{margin-top:0}
    .terms-box p{margin:0 0 6px}
    .terms-box ul{list-style:disc;padding-left:18px;margin:4px 0 8px}
    .terms-box ul li{margin:2px 0}
    .terms-box strong{color:rgba(255,255,255,.95)}
    .terms-box a{color:rgba(22,163,255,.85)}
    .terms-fullpage{
      text-align:right; margin:-8px 0 12px;
      font-size:11px;
    }
    .terms-fullpage a{color:rgba(22,163,255,.65)}

    .deposit-box{
      background: rgba(255,154,31,.10);
      border: 1px solid rgba(255,154,31,.22);
      padding:14px; border-radius:14px; margin-bottom:14px; text-align:center;
    }
    .deposit-title{font-size:20px; font-weight:900; color:var(--orange); margin-bottom:6px}
    .deposit-text{font-size:13px; color: rgba(255,255,255,.86); line-height:1.35}

    .agree-row{
      display:flex; gap:12px; align-items:flex-start;
      padding:12px 14px; border-radius:14px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(0,0,0,.25);
      margin-bottom:14px;
    }
    .agree-row input{width:20px; height:20px; margin-top:2px; flex-shrink:0; accent-color:var(--blue)}
    .agree-row label{font-size:13px; color: rgba(255,255,255,.86); line-height:1.4; cursor:pointer}

    /* ── Submit button ── */
    .submit-btn{
      width:100%;
      background: var(--blue);
      color:#fff;
      padding:16px;
      border-radius:14px;
      border:none;
      font-size:18px; font-weight:900;
      cursor:pointer;
      box-shadow: var(--shadow2);
    }
    .submit-btn:disabled{opacity:.55; cursor:not-allowed}
    .fine{font-size:12px; color:var(--muted2); text-align:center; margin-top:8px; line-height:1.35}
    .sms-consent-label{display:flex; flex-direction:column; gap:4px}
    .sms-consent-label a{color:var(--blue); text-decoration:underline}
    .sms-consent-rec{display:inline-block; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--blue); background:rgba(22,163,255,.12); border:1px solid rgba(22,163,255,.3); border-radius:4px; padding:1px 6px; align-self:flex-start}
    .sms-consent-title{font-size:13px; font-weight:700; color:var(--text); line-height:1.35}
    .sms-consent-fine{font-size:11px; color:var(--muted); line-height:1.45}

    /* ── Status box ── */
    .status-box{
      display:none; margin-bottom:14px;
      padding:12px 14px; border-radius:12px;
      font-size:14px; line-height:1.4;
    }
    .status-box.show{display:block}
    .status-box.ok{border:1px solid rgba(34,197,94,.22); background:rgba(34,197,94,.10)}
    .status-box.err{border:1px solid rgba(239,68,68,.22); background:rgba(239,68,68,.08)}
    .status-box.info{border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.06)}

    /* ── Step 6 success state ── */
    .confirm-icon{font-size:52px; margin-bottom:14px; display:block; text-align:center}
    .confirm-title{font-size:24px; font-weight:900; color:var(--good); text-align:center; margin-bottom:6px}
    .confirm-sub{font-size:14px; color:var(--muted); text-align:center; margin-bottom:0}
    .next-steps{list-style:none; display:flex; flex-direction:column; gap:12px}
    .next-steps li{font-size:14px; color:rgba(255,255,255,.85); line-height:1.4}
    .booking-ref{
      font-family:monospace; font-size:13px;
      letter-spacing:.05em; color:var(--blue);
    }

    /* ── Sticky bottom nav ── */
    .sticky-nav{
      position:fixed; left:0; right:0; bottom:0;
      background: rgba(4,6,13,.92);
      border-top: 1px solid rgba(255,255,255,.08);
      backdrop-filter:blur(12px);
      padding:10px 14px;
      display:flex; gap:10px; z-index:50;
    }
    .nav-btn{
      flex:1; padding:14px 10px;
      border-radius:14px; border:none;
      font-size:16px; font-weight:900;
      cursor:pointer; font-family:inherit;
    }
    .nav-btn.back{
      background: rgba(255,255,255,.08);
      color:var(--text);
      border: 1px solid rgba(255,255,255,.14);
    }
    .nav-btn.next{
      background: var(--blue);
      color:#fff;
    }
    .nav-btn:disabled{opacity:.45; cursor:not-allowed}

    footer{
      text-align:center; color:var(--muted2); font-size:12px;
      padding: 10px 18px 0;
    }
    .footer-cancel-link{
      margin-top:12px; font-size:15px; color:rgba(255,255,255,.6);
    }
    .footer-cancel-link a{
      color:#16a3ff; text-decoration:underline;
    }
    .footer-sitemap-link{
      margin-top:8px; font-size:12px;
    }
    .footer-sitemap-link a{
      color:var(--muted2); text-decoration:none;
    }
    .footer-sitemap-link a:hover{
      text-decoration:underline;
    }

    /* ── CAPTCHA status pill ── */
    @keyframes wub-spin{to{transform:rotate(360deg)}}
    .captcha-pill{
      display:flex; align-items:center; gap:10px;
      padding:10px 14px; border-radius:12px;
      font-size:13px; margin-bottom:4px;
      border:1px solid; transition:background .3s, border-color .3s, color .3s;
    }
    .captcha-pill.loading{
      background:rgba(255,255,255,.04);
      border-color:rgba(255,255,255,.10);
      color:var(--muted);
    }
    .captcha-pill.verified{
      background:rgba(34,197,94,.08);
      border-color:rgba(34,197,94,.28);
      color:#22c55e;
    }
    .captcha-pill.error{
      background:rgba(239,68,68,.08);
      border-color:rgba(239,68,68,.28);
      color:var(--bad);
    }
    .captcha-spinner{
      width:15px; height:15px; flex-shrink:0;
      border:2px solid rgba(255,255,255,.14);
      border-top-color:rgba(255,255,255,.65);
      border-radius:50%;
      animation:wub-spin .7s linear infinite;
    }
    .captcha-pill.verified .captcha-spinner,
    .captcha-pill.error   .captcha-spinner{ display:none; }
    .captcha-icon{ display:none; font-style:normal; flex-shrink:0; }
    .captcha-pill.verified .captcha-icon,
    .captcha-pill.error   .captcha-icon{ display:block; }
    .captcha-retry{
      margin-left:auto; background:none; border:none;
      color:inherit; font-size:12px; cursor:pointer;
      text-decoration:underline; padding:0; font-family:inherit;
    }
