:root { color-scheme: light; --navy:#0C2A42; --gold:#DAAC25; --ink:#183447; --muted:#526573; --border:#cbd5dc; --red:#a32626; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:#f6f5f1; font-family:Tajawal,"Segoe UI",Tahoma,Arial,sans-serif; font-size:16px; line-height:1.75; }
.page { width:min(100% - 32px,760px); margin:36px auto 24px; }
.brand { display:flex; justify-content:center; align-items:center; gap:12px; margin-bottom:26px; color:var(--navy); }
.brand-logo { display:block; object-fit:contain; width:42px; height:58px; }
.brand-name { font-size:26px; font-weight:700; }
.brand-name small { display:block; font-size:12px; font-weight:400; line-height:1.6; color:var(--muted); }
.card { background:white; border:1px solid #e3e6e6; border-radius:20px; padding:40px 46px; box-shadow:0 12px 42px #0c2a4208; }
.badge { display:inline-block; margin:0 0 24px; padding:5px 13px; color:#5d4910; background:#fbf5e2; border:1px solid #ead797; border-radius:99px; font-size:13px; font-weight:600; }
.eyebrow { margin:0 0 6px; color:#786323; font-size:14px; }
h1 { font-size:30px; line-height:1.45; margin:0 0 10px; color:var(--navy); }
.intro { margin:0 0 6px; color:var(--muted); }
.required-note { font-size:13px; color:var(--muted); margin:0 0 30px; }
label,legend { font-weight:600; }
label:not(.choice) { display:block; margin-bottom:8px; }
.optional { font-weight:400; color:var(--muted); font-size:13px; white-space:nowrap; }
.field { margin:0 0 23px; min-width:0; }
.name-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
input:not([type=checkbox]):not([type=radio]),textarea { display:block; width:100%; border:1px solid var(--border); border-radius:9px; padding:12px 14px; color:var(--ink); background:#fff; font:inherit; line-height:1.6; transition:border-color .15s,box-shadow .15s; }
input:not([type=checkbox]):not([type=radio]) { min-height:50px; }
textarea { resize:vertical; min-height:112px; }
input::placeholder,textarea::placeholder { color:#7b8791; opacity:1; }
input:focus,textarea:focus { outline:2px solid var(--gold); outline-offset:2px; border-color:var(--navy); }
input[aria-invalid=true],textarea[aria-invalid=true] { border-color:var(--red); }
fieldset { padding:0; border:0; }
legend { padding:0; margin-bottom:12px; max-width:100%; }
.choices { margin-top:30px; }
.choice { display:flex; align-items:flex-start; gap:11px; cursor:pointer; margin:0 0 10px; font-weight:400; }
.choice input { width:19px; height:19px; flex:0 0 19px; margin:5px 0 0; accent-color:var(--navy); }
.choice input:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.acknowledgement { margin-top:30px; padding:20px 0 0; border-top:1px solid #e7ebee; }
.hint,.privacy-note { color:var(--muted); font-size:13px; margin:6px 0 0; }
.privacy-note { margin:24px 0 16px; }
.field-error { color:var(--red); font-size:13px; margin:6px 0 0; }
.error-summary { padding:14px 18px; margin:0 0 24px; color:var(--red); background:#fff5f4; border:1px solid #e7b9b5; border-radius:9px; }
.error-summary ul { margin:6px 0 0; padding-inline-start:20px; }
.error-summary a { color:inherit; }
button { display:flex; justify-content:center; align-items:center; gap:16px; width:100%; border:1px solid var(--gold); border-radius:10px; padding:13px 20px; min-height:54px; color:white; background:var(--navy); font:700 18px Tajawal,"Segoe UI",Tahoma,Arial,sans-serif; cursor:pointer; }
button:hover { background:#173d58; }
button:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
button:disabled { cursor:wait; opacity:.7; }
.result { margin-top:24px; border:1px solid #b8c7cd; background:#f3f7f7; border-radius:10px; padding:18px; overflow-wrap:anywhere; }
.result p { margin:0 0 8px; }
.result p:last-child { margin-bottom:0; }
.result code { direction:ltr; unicode-bidi:embed; font-size:12px; }
.booking-next { display:block; padding:13px 20px; margin-top:16px; text-align:center; border:1px solid var(--gold); border-radius:10px; background:var(--navy); color:white; font-weight:700; text-decoration:none; }
.booking-next:hover { background:#173d58; }
.booking-next:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
footer { text-align:center; color:#687985; margin:23px 0; font-size:13px; }
.honeypot { display:none; }
[hidden] { display:none !important; }
@media(max-width:560px) { .page { width:min(100% - 20px,760px); margin:20px auto; } .brand { margin-bottom:20px; } .card { padding:26px 20px; border-radius:14px; } h1 { font-size:26px; } .name-grid { grid-template-columns:1fr; gap:0; } .badge { font-size:12px; } }
@media(prefers-reduced-motion:reduce) { * { transition:none !important; } }
