:root{--navy:#071b2e;--blue:#0d4168;--ink:#102336;--muted:#5e7183;--amber:#ffb21a;--paper:#f4f7fa;--white:#fff;--line:#dce5ec;--green:#16834f;--shadow:0 24px 70px rgba(7,27,46,.13)}
.booking-page{background:linear-gradient(180deg,#f2f7fa 0,#fff 520px)}
.booking-main{padding:46px 0 64px}
.booking-layout{display:grid;grid-template-columns:minmax(270px,.74fr) minmax(0,1.26fr);gap:52px;align-items:start}
.booking-intro{position:sticky;top:116px;padding:21px 0}
.booking-intro h1{font:800 clamp(2.55rem,4.7vw,4.15rem)/1.03 Manrope,sans-serif;letter-spacing:-.052em;margin:12px 0 18px;max-width:580px}
.booking-intro>p{font-size:1.05rem;color:var(--muted);margin:0;max-width:520px}
.booking-trust{display:grid;gap:12px;margin:29px 0;padding-top:23px;border-top:1px solid #cfdce5}
.booking-trust div{display:grid;grid-template-columns:118px 1fr;gap:13px;align-items:start}
.booking-trust b{font:800 .9rem Manrope,sans-serif;color:var(--navy)}
.booking-trust span{color:var(--muted);font-size:.9rem}
.booking-intro .booking-help{font-size:.88rem}.booking-help a{color:#075e95;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.booking-card{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);overflow:hidden}
.request-definition{display:grid;gap:3px;padding:14px 22px;border-bottom:1px solid #ead8a7;background:#fff8e8;color:#4f3d12;font-size:.84rem;line-height:1.45}.request-definition strong{font:800 .88rem Manrope,sans-serif}.request-definition span{color:#67552c}
.booking-progress{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0;padding:20px 26px;border-bottom:1px solid var(--line);background:#fbfdfe}
.booking-progress li{display:flex;align-items:center;gap:9px;color:#7b8d9c;font-size:.8rem;position:relative}
.booking-progress li:not(:last-child):after{content:"";position:absolute;right:10px;width:22px;height:1px;background:#d4e0e8}
.booking-progress span{display:grid;place-items:center;width:27px;height:27px;border:1px solid #bfccd6;border-radius:50%;font-weight:900;background:#fff}
.booking-progress .is-current,.booking-progress .is-complete{color:var(--navy)}
.booking-progress .is-current span{border-color:var(--amber);background:var(--amber)}
.booking-progress .is-complete span{border-color:var(--navy);background:var(--navy);color:#fff}
.booking-step{padding:31px 32px 30px}.booking-step[hidden]{display:none}
.step-heading{margin-bottom:24px}.step-heading>span{color:#7a8d9b;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.step-heading h2{font:800 clamp(1.6rem,3.2vw,2.25rem)/1.1 Manrope,sans-serif;letter-spacing:-.035em;margin:5px 0 8px}.step-heading p{color:var(--muted);font-size:.93rem;margin:0}
.recommendation-note{min-height:0;margin:-9px 0 18px;padding:11px 13px;border-left:4px solid var(--amber);border-radius:0 9px 9px 0;background:#fff7e5;color:#5c481c;font-size:.82rem;font-weight:700}.recommendation-note:empty{display:none}
.field{display:grid;gap:7px}.field label,.availability-block legend{font-weight:800;font-size:.91rem}.field label span{color:var(--muted);font-weight:500}.field input,.field textarea{width:100%;min-height:51px;padding:12px 14px;border:1px solid #afc0cd;border-radius:11px;background:#fff;color:var(--ink);font:inherit}.field textarea{min-height:86px;resize:vertical}.field input:focus,.field textarea:focus{outline:3px solid rgba(255,178,26,.3);border-color:#c17b00}.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:#a22a22;box-shadow:0 0 0 2px rgba(162,42,34,.12)}.field small{color:var(--muted);font-size:.78rem}.booking-postcode{max-width:390px;margin-bottom:20px}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:0;margin:0;border:0}.choice-wide{grid-column:1/-1}.choice-card,.package-card,.specialist-card,.day-grid label,.time-grid label{position:relative;cursor:pointer;touch-action:manipulation}.choice-card input,.package-card input,.specialist-card input,.day-grid input,.time-grid input{position:absolute;opacity:0;pointer-events:none}.choice-card>span{display:block;height:100%;padding:16px 17px;border:1px solid var(--line);border-radius:13px;background:#fff}.choice-card b{display:block;font:800 .97rem Manrope,sans-serif}.choice-card small{display:block;color:var(--muted);font-size:.78rem;margin-top:3px}.choice-card:hover>span{border-color:#9eb3c3}.choice-card input:checked+span{border-color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy);background:#f2f7fa}.choice-card input:focus-visible+span,.package-card:has(input:focus-visible),.specialist-card input:focus-visible+span,.day-grid input:focus-visible+span,.time-grid input:focus-visible+span{outline:3px solid rgba(255,178,26,.45);outline-offset:2px}
.package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0;margin:0;border:0}.package-card{display:flex;flex-direction:column;min-height:226px;padding:17px 15px;border:1px solid var(--line);border-radius:14px;background:#fff}.package-card:hover{border-color:#9eb3c3}.package-card:has(input:checked){border-color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy);background:#f2f7fa}.package-badge{align-self:flex-start;padding:4px 7px;border-radius:999px;background:#eaf2f7;color:#31566e;font-size:.65rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;margin-bottom:9px}.is-popular .package-badge{background:#fff0c8;color:#6d4700}.package-title{font:800 .98rem/1.25 Manrope,sans-serif}.package-price{font:800 1.55rem Manrope,sans-serif;margin:9px 0 7px}.package-price small{font:600 .72rem DM Sans,sans-serif;color:var(--muted)}.package-copy,.package-note{color:var(--muted);font-size:.76rem;line-height:1.4}.package-note{margin-top:8px;color:#31566e;font-weight:700}
.specialist-options{margin-top:14px;border:1px solid var(--line);border-radius:13px;background:#fbfdfe}.specialist-options summary{padding:13px 15px;font-weight:800;cursor:pointer}.specialist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 12px 12px}.specialist-card>span{display:block;height:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff}.specialist-card b,.specialist-card small{display:block}.specialist-card b{font-size:.82rem}.specialist-card small{font-size:.7rem;color:var(--muted);margin-top:3px}.specialist-card input:checked+span{border-color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy);background:#f2f7fa}
.availability-block{padding:0;margin:26px 0 0;border:0}.availability-block>p{color:var(--muted);font-size:.8rem;margin:2px 0 11px}.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.day-grid span{display:grid;place-items:center;min-height:43px;border:1px solid var(--line);border-radius:9px;font-size:.78rem;font-weight:800}.day-grid input:checked+span{border-color:var(--navy);background:var(--navy);color:#fff}.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px}.time-grid span{display:grid;place-items:center;min-height:58px;padding:7px;border:1px solid var(--line);border-radius:10px;font-size:.79rem;font-weight:800}.time-grid small{display:block;font-size:.67rem;color:var(--muted);font-weight:600}.time-grid input:checked+span{border-color:var(--amber);box-shadow:inset 0 0 0 2px var(--amber);background:#fff8e8}.time-grid input:checked+span small{color:#674600}
.details-grid,.test-details{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field-full{grid-column:1/-1}.test-details{margin-top:13px;padding:14px;border-radius:13px;background:#f2f7fa}.test-details[hidden]{display:none}.notes-field{margin-top:13px}.request-summary{display:grid;gap:2px;margin:18px 0;padding:14px 16px;border-left:4px solid var(--amber);border-radius:0 11px 11px 0;background:#fff7e5}.request-summary>span{font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#7a5b18}.request-summary strong{font:800 .94rem Manrope,sans-serif}.request-summary small{color:var(--muted)}.confirm-check{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;font-size:.78rem;color:var(--muted);cursor:pointer}.confirm-check input{width:19px;height:19px;accent-color:var(--navy);margin-top:1px}.confirm-check a{color:#075e95;font-weight:800;text-decoration:underline;text-underline-offset:2px}
.step-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:22px}.step-actions .btn{min-width:148px}.step-error{min-height:1.3em;margin:11px 0 0;color:#a22a22;font-size:.82rem;font-weight:700}.privacy-line{color:var(--muted);font-size:.74rem;text-align:right;margin:8px 0 0}.noscript-note{margin:20px;padding:15px;background:#fff3cd;border-radius:10px}.noscript-note a{font-weight:800;text-decoration:underline}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.step-actions .btn:disabled{opacity:.65;cursor:wait}.booking-send-status{display:grid;gap:3px;margin-top:13px;padding:13px 15px;border:1px solid #b8dcc9;border-radius:11px;background:#edf8f2;color:#244b38;font-size:.82rem}.booking-send-status[hidden]{display:none}.booking-send-status strong{font:800 .9rem Manrope,sans-serif}.booking-send-status a{color:#075e95;font-weight:800;text-decoration:underline;text-underline-offset:2px}
@media(max-width:920px){.booking-layout{grid-template-columns:1fr;gap:25px}.booking-intro{position:static;padding:0}.booking-intro h1{max-width:720px}.booking-trust{grid-template-columns:repeat(3,1fr)}.booking-trust div{display:block}.booking-trust span{display:block;margin-top:4px}}
@media(max-width:680px){.booking-main{padding:24px 0 35px}.booking-layout{width:min(100% - 22px,1120px);gap:18px}.booking-intro h1{font-size:2.25rem}.booking-intro>p{font-size:.96rem}.booking-trust{grid-template-columns:1fr;gap:9px;margin:20px 0}.booking-trust div{display:grid;grid-template-columns:112px 1fr;padding:9px 0;border-bottom:1px solid #dbe5ec}.booking-trust div:last-child{border:0}.booking-help{font-size:.82rem}.booking-card{border-radius:18px}.booking-progress{padding:13px 14px}.booking-progress li{gap:6px}.booking-progress li b{font-size:.7rem}.booking-progress li:not(:last-child):after{display:none}.booking-progress span{width:25px;height:25px}.booking-step{padding:23px 18px 22px}.choice-grid,.package-grid,.specialist-grid,.details-grid,.test-details{grid-template-columns:1fr}.choice-wide,.field-full{grid-column:auto}.package-card{min-height:0}.specialist-grid{padding:0 10px 10px}.day-grid{grid-template-columns:repeat(4,1fr)}.time-grid{grid-template-columns:1fr 1fr}.step-actions{position:sticky;bottom:76px;padding:10px 0 2px;background:#fff;z-index:5}.step-actions .btn{min-width:0;flex:1}.privacy-line{text-align:center}.booking-page footer{display:none}}
@media(max-width:370px){.booking-progress li b{display:none}.day-grid{grid-template-columns:repeat(3,1fr)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
