/* Раздел стилей: 08-forms.css */
.booking-page { background:#111e2b; color:#f3f6fa; }
.booking-page .booking-nav { display:flex;gap:28px;align-items:center; }
.booking-nav a { color:#d6e3ef;font-weight:700;font-size:13px; }
.booking-nav a:hover { color:#ffbe76; }
.booking-page .booking-intro { background:radial-gradient(ellipse at 100% 10%,#2c4860 0%,transparent 50%),linear-gradient(120deg,#111f2e,#172a3b);border-bottom:1px solid #3c5468;padding:54px 0 34px; }
.booking-intro h1 { font:600 clamp(42px,5.1vw,76px)/1.06 var(--display);text-transform:uppercase;max-width:930px;margin:0 0 18px; }
.booking-intro h1 span { color:#f3aa5f; }
.booking-intro p:not(.overline) { color:#cbd8e4;font-size:16px;line-height:1.65;max-width:760px; }
.booking-steps { display:flex;flex-wrap:wrap;gap:10px;margin-top:34px; }
.booking-steps span { border:1px solid #476073;color:#bccbd7;padding:10px 18px;font-size:13px;font-weight:750;border-radius:4px; }
.booking-steps span b { color:#eaa05a;margin-right:8px; }
.booking-steps .is-current { border-color:#f4a24a;background:#f4a24a;color:#192533; }
.booking-steps .is-current b { color:#192533; }
.booking-steps .is-complete { background:#273f52;border-color:#50728b;color:#f1f6fa; }
.booking-layout { display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:25px;padding-top:36px;padding-bottom:85px; }
.booking-panel { background:#172a3a;border:1px solid #375268;border-radius:9px;padding:29px;min-width:0; }
.wizard-step[hidden],.choice-card[hidden],.booking-no-results[hidden],.booking-done[hidden],.wizard-warning[hidden] { display:none!important; }
.step-heading h2 { font:600 clamp(30px,3.6vw,48px)/1.1 var(--display);text-transform:uppercase;margin:0 0 8px; }
.step-heading>p:last-child { color:#cad7e2;font-size:14px;line-height:1.6;margin:0 0 26px; }
.booking-tools { border-top:1px solid #38566c;padding-top:23px;margin-bottom:20px; }
.booking-tools input { width:100%;background:#21394e;color:#fff;border:1px solid #5a7286;border-radius:4px;min-height:49px;padding:12px 14px;font-size:14px; }
.booking-tools input::placeholder { color:#b4c9db; }
.booking-filters { display:flex;gap:8px;flex-wrap:wrap;margin-top:15px; }
.booking-filter { background:#233a4e;border:1px solid #45647c;border-radius:4px;color:#e9f1f6;font-size:12px;font-weight:750;padding:10px 13px; }
.booking-filter[aria-pressed="true"] { background:#f4a24a;border-color:#f4a24a;color:#15212a; }
.choice-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px; }
.choice-card { border:1px solid #466177;background:#1c3245;border-radius:5px;display:flex;align-items:flex-start;gap:12px;padding:16px 13px;cursor:pointer;min-height:112px;transition:border-color .16s,background .16s;position:relative; }
.choice-card:hover { background:#274258;border-color:#faac62; }
.choice-card.is-selected { border-color:#f4a24a;background:#2c4050; }
.choice-card input { position:absolute;opacity:0;width:1px;height:1px; }
.choice-card:focus-within { outline:2px solid #ffba74;outline-offset:2px; }
.choice-mark { display:grid;place-items:center;flex:none;width:29px;height:29px;border:1px solid #e6a566;color:#f4b273;font-weight:850;border-radius:3px;font-size:18px;line-height:1; }
.choice-card.is-selected .choice-mark { color:#172532;background:#f4a24a;border-color:#f4a24a; }
.choice-card.is-selected .choice-mark::before { content:"✓"; }
.choice-card.is-selected .choice-mark { font-size:0; }
.choice-card.is-selected .choice-mark::before { font-size:18px; }
.choice-copy { display:flex;flex-direction:column;gap:6px;flex:1;min-width:0; }
.choice-copy strong { color:#fff;font-weight:800;font-size:14px;line-height:1.35; }
.choice-copy small { color:#b9cdda;font-size:12px;line-height:1.55; }
.choice-price { white-space:nowrap;font-size:13px;color:#f6b776;font-weight:800; }
.booking-no-results { padding:20px;background:#263c4e;color:#dce8ef; }
.unknown-choice { display:flex;align-items:flex-start;gap:15px;margin-top:20px;border:1px dashed #b88b5c;background:#253747;padding:18px 20px;cursor:pointer; }
.unknown-choice input,.test-confirm input { width:18px;height:18px;accent-color:#f4a24a;flex:none;margin:2px 0 0; }
.unknown-choice span { display:flex;flex-direction:column;gap:5px; }
.unknown-choice strong { font-size:14px; }
.unknown-choice small { color:#c8d7e2;font-size:12px;line-height:1.5; }
.wizard-actions { display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin-top:27px; }
.wizard-actions .button { min-height:52px;font-size:13px; }
.subtle-link { font:750 13px var(--font);color:#f7b676;border:0;background:transparent;padding:12px 0; }
.subtle-link:hover { text-decoration:underline; }
.wizard-warning { color:#ffb78c;border-left:3px solid #ff9b65;background:rgba(255,100,75,.07);padding:12px 15px;margin:15px 0 0;font-size:13px; }
.booking-panel .form-row { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0; }
.booking-panel label:not(.choice-card):not(.unknown-choice):not(.test-confirm) { display:flex;flex-direction:column;gap:8px;color:#eff6fa;font-weight:750;font-size:14px; }
.booking-panel .form-row input,.booking-panel .form-row select,.booking-panel textarea { border:1px solid #61788a;background:#21384b;color:#fff;padding:13px 14px;border-radius:4px;min-height:49px;width:100%;font-size:14px; }
.booking-panel textarea { min-height:140px;resize:vertical; }
.booking-panel input::placeholder,.booking-panel textarea::placeholder { color:#b4c8d7; }
.booking-help { color:#c0d2df;font-size:13px;margin:18px 0; }
.booking-review { border:1px solid #4a657c;background:#1c3245;padding:12px 19px;margin:20px 0; }
.review-row { display:grid;grid-template-columns:150px 1fr;gap:15px;padding:12px 0;border-bottom:1px solid #3b5267;font-size:13px;line-height:1.6; }
.review-row:last-child { border-bottom:0; }
.review-row span { color:#b4cbde; }
.review-row strong { color:#fff;font-weight:750;overflow-wrap:anywhere; }
.test-confirm { display:flex;gap:12px;align-items:flex-start;font-size:13px;font-weight:550;line-height:1.5;color:#d5e2ed;margin-top:21px;cursor:pointer; }
.booking-summary { position:sticky;top:98px;border:1px solid #3e5a70;border-radius:7px;background:#1c3041;padding:23px; }
.booking-summary h2 { font:650 23px/1.2 var(--display);margin:0 0 17px; }
.summary-list { display:flex;flex-direction:column;gap:0;max-height:40vh;overflow:auto;border-top:1px solid #48657a;border-bottom:1px solid #48657a; }
.summary-placeholder { font-size:13px;line-height:1.7;color:#bcd0df;padding:16px 0; }
.summary-entry { padding:12px 0;display:flex;justify-content:space-between;gap:13px;border-bottom:1px solid #364e62;font-size:12px;line-height:1.5; }
.summary-entry:last-child { border-bottom:0; }
.summary-entry span { color:#e7f0f5;flex:1; }
.summary-entry strong { white-space:nowrap;color:#ffd19c; }
.unknown-entry { color:#ffd7ab; }
.summary-bottom { padding-top:21px; }
.summary-bottom>span { font-size:12px;color:#bed0de; }
.summary-bottom>strong { display:block;font:600 32px var(--display);color:#ffb46a;margin:6px 0; }
.summary-bottom p { color:#c2d2de;line-height:1.6;font-size:12px;margin:8px 0 0; }
#summary-edit { border:1px solid #faaf66;color:#fac18e;background:transparent;padding:10px;font-size:12px;font-weight:800;margin-top:18px; }
.booking-done { padding:20px;background:#233c4b;border:1px solid #70a09b;margin-top:23px;border-radius:4px; }
.booking-done strong { font-size:17px;color:#f8c18c; }
.booking-done p { font-size:13px;color:#d7e5ee; }
.booking-done button { padding:10px 15px;color:#182839;background:#f0b577;border:0;font-weight:800; }
.booking-invite { background:#f5f7f8;padding:29px;max-width:650px;border:1px solid #d9e4eb;color:#182838;border-radius:6px; }
.booking-invite h3 { font:600 33px/1.1 var(--display);text-transform:uppercase; }
.booking-invite>p:not(.overline) { color:#425568;font-size:14px;line-height:1.65; }
.booking-invite-steps { display:flex;gap:11px;flex-wrap:wrap;margin:23px 0; }
.booking-invite-steps span { border:1px solid #d9e4eb;padding:9px;font-weight:750;font-size:12px;background:white; }
.booking-invite-steps b { color:#dd8744; }
.booking-invite .form-hint { margin-top:15px;font-size:12px; }
