:root{--ink:#161414;--coral:#c44d3b;--coral-dark:#a63f30;--paper:#fff;--soft:#f8f6f2;--line:#ded8d0}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--soft);font:16px/1.55 "DM Sans",Arial,sans-serif}
[hidden]{display:none!important}
button,input{font:inherit}
button{cursor:pointer}
a{color:var(--coral-dark)}
.application-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px max(24px,calc((100vw - 1120px)/2));background:#fff;border-bottom:1px solid var(--line)}
.application-header a{display:block;line-height:0}
.application-header img{display:block;width:220px;max-width:100%;height:auto}
.application-header>span{font-weight:700;font-size:.9rem;color:#514b47}
.application-shell{max-width:850px;margin:0 auto;padding:48px 24px 80px}
.application-progress{margin:0 0 32px}
.progress-labels{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;font-size:.82rem}
.progress-labels strong{color:var(--coral-dark)}
.progress-track{height:9px;border-radius:50px;background:#ddd6d0;overflow:hidden}
.progress-track span{display:block;height:100%;width:14.285%;border-radius:50px;background:var(--coral);transition:width .22s ease}
.question-card{background:#fff;border:1px solid var(--line);border-top:5px solid var(--coral);padding:clamp(26px,5vw,52px);box-shadow:0 18px 40px rgba(24,20,17,.08)}
.question-card fieldset{border:0;margin:0;padding:0;min-width:0}
.question-card legend,.question-card h1{padding:0;margin:0 0 14px;font:800 clamp(1.8rem,3vw,2.35rem)/1.16 "Manrope",Arial,sans-serif;letter-spacing:-.04em;color:var(--ink)}
.question-help{margin:0 0 28px;color:#57514d;font-size:1.06rem;line-height:1.6}
.option{display:block;position:relative;margin-top:13px;cursor:pointer}
.option input{position:absolute;opacity:0;width:1px;height:1px}
.option span{display:flex;align-items:center;gap:18px;min-height:72px;padding:16px 20px;border:2px solid #dedde0;border-radius:12px;font-size:1.04rem;font-weight:700;line-height:1.45;transition:border-color .15s,background .15s}
.option span::before{content:"";flex:0 0 23px;width:23px;height:23px;border:2px solid #bbc0c6;border-radius:50%;background:#fff}
.option input:checked+span{border-color:var(--coral);background:#fff5f2}
.option input:checked+span::before{border:7px solid var(--coral)}
.option input:focus-visible+span{outline:3px solid #1a1613;outline-offset:3px}
.option:hover span{border-color:var(--coral)}
.application-assurance{display:flex;justify-content:center;gap:26px;margin:26px 0 0;color:#68615d;font-size:.86rem}
.application-actions{display:flex;gap:14px;margin-top:28px}
.application-actions button{border-radius:10px;min-height:60px;padding:14px 24px;font-weight:800;font-size:1rem}
.back-button{background:#fff;border:2px solid #cfc9c5;color:var(--ink)}
.continue-button{margin-left:auto;min-width:240px;background:var(--coral);border:2px solid var(--coral);color:#fff}
.continue-button:hover:not(:disabled){background:var(--coral-dark);border-color:var(--coral-dark)}
.continue-button:disabled{background:#e9e8e8;color:#8e8b8a;border-color:#e9e8e8;cursor:not-allowed}
.application-actions button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.contact-card h1{margin-bottom:15px}
.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:28px}
.contact-fields label{display:grid;gap:8px;font-weight:700}
.contact-fields input{width:100%;min-width:0;border:2px solid #dcdce0;border-radius:10px;padding:15px 17px;background:#fff;color:var(--ink)}
.contact-fields input:focus{outline:3px solid #f3b6ac;border-color:var(--coral)}
.contact-disclosure{margin:26px 0 0;color:#5e5955;font-size:.9rem}
.consent-field{display:flex;align-items:flex-start;gap:12px;margin-top:24px;font-weight:600;line-height:1.45;cursor:pointer}
.consent-field input{flex:0 0 20px;width:20px;height:20px;margin:2px 0 0;accent-color:var(--coral)}
.website-field{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.form-error{margin:18px 0 0;padding:13px 15px;border-left:4px solid #a9261b;background:#fff0ee;color:#7c1b13;font-weight:700}
.success-card p{font-size:1.08rem;max-width:58ch}
.success-card a{font-weight:700}
.success-card .success-eyebrow{margin:0 0 8px;color:var(--coral-dark);font-size:.82rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.booking-frame-shell{margin:28px calc(clamp(26px,5vw,52px)*-1) calc(clamp(26px,5vw,52px)*-1);border-top:1px solid var(--line);background:#fff;overflow:hidden}
.booking-frame-shell iframe{display:block;width:100%;min-height:760px;border:0;overflow:hidden;background:#fff}
@media(max-width:600px){
  .application-header{padding:12px 18px}.application-header img{width:166px}.application-header>span{font-size:.73rem;text-align:right}
  .application-shell{padding:25px 16px 130px}.application-progress{margin-bottom:23px}
  .question-card{padding:28px 22px}.question-card legend,.question-card h1{font-size:1.65rem}
  .question-help{font-size:1rem;margin-bottom:22px}.option span{min-height:66px;padding:13px 15px;font-size:.98rem}
  .contact-fields{grid-template-columns:1fr;gap:17px}
  .application-assurance{margin-top:18px;font-size:.8rem}
  .application-actions{position:fixed;left:0;right:0;bottom:0;z-index:20;margin:0;background:#fff;border-top:1px solid var(--line);padding:13px 16px max(13px,env(safe-area-inset-bottom));box-shadow:0 -6px 22px rgba(0,0,0,.06)}
  .application-actions button{min-height:56px}.back-button{padding-inline:17px}.continue-button{min-width:0;flex:1}
  .booking-frame-shell{margin:24px -22px -28px}.booking-frame-shell iframe{min-height:820px}
}
