.request-hero{min-height:540px}.booking-request-shell{display:grid;grid-template-columns:minmax(250px,.58fr) minmax(0,1.42fr);gap:clamp(2rem,5vw,5rem);align-items:start}.booking-summary{position:sticky;top:105px}.booking-summary h2{font-size:clamp(2rem,3.5vw,3.4rem);margin:.35rem 0 1.5rem}.booking-steps{list-style:none;padding:0;margin:0;display:grid;gap:1rem}.booking-steps li{display:grid;grid-template-columns:2rem 1fr;column-gap:.8rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.booking-steps li:before{content:counter(list-item);display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--ink);color:#fff;font-weight:900}.booking-steps strong,.booking-steps span{grid-column:2}.booking-steps span{color:var(--muted);margin-top:.2rem}.booking-note,.booking-contact{margin-top:1.5rem;padding:1.25rem;background:rgba(255,255,255,.66);border-left:4px solid var(--accent)}.booking-note p{color:var(--muted);margin:.35rem 0 0}.booking-contact{display:grid;gap:.35rem}.booking-contact a{color:var(--ink);font-weight:800}.request-form-card{background:#fff;padding:clamp(1.25rem,4vw,3.25rem);box-shadow:0 20px 60px rgba(16,39,44,.1)}.form-heading{margin-bottom:1.5rem}.form-heading h2{font-size:clamp(2rem,4vw,3.35rem);margin:.2rem 0}.form-heading p:last-child{color:var(--muted)}.request-form{display:grid;gap:1.5rem}.form-section{border:0;border-top:1px solid var(--line);padding:1.6rem 0 0;margin:0}.form-section legend{font-size:1.25rem;font-weight:900;padding:0 .8rem 0 0}.form-section legend span{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--accent);color:#fff;margin-right:.55rem}.request-form label{display:block;font-weight:800}.request-form input,.request-form select,.request-form textarea{width:100%;margin-top:.45rem;padding:.9rem;border:1px solid var(--line);border-radius:.25rem;background:#fff;font:inherit;color:var(--ink)}.request-form input:focus,.request-form select:focus,.request-form textarea:focus{outline:3px solid rgba(30,127,136,.18);border-color:var(--accent)}.request-form textarea{resize:vertical}.form-grid{display:grid;gap:1rem}.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.single-date-row{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(220px,1.3fr);gap:1rem;align-items:end}.date-status{padding:1rem;border-radius:.25rem;background:#f2f5f4;color:var(--muted);font-weight:800}.date-status.open{background:#e5f4ec;color:#165d3b}.date-status.tentative{background:#fff3d6;color:#76540a}.date-status.unavailable{background:#f9e3df;color:#7c241c}.field-help{color:var(--muted);font-size:.94rem;margin:.75rem 0 0}.package-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.package-option{position:relative}.package-option input{position:absolute;opacity:0;pointer-events:none}.package-card{height:100%;display:grid;gap:.45rem;padding:1.15rem;border:2px solid var(--line);border-radius:.35rem;cursor:pointer;transition:.15s ease}.package-card small{font-weight:500;color:var(--muted);line-height:1.45}.package-meta{font-size:.9rem;color:var(--accent);font-weight:900}.package-option input:checked+.package-card{border-color:var(--accent);box-shadow:0 0 0 3px rgba(30,127,136,.14);background:#f4fbfa}.package-option input:focus-visible+.package-card{outline:3px solid rgba(30,127,136,.25)}.submit-row{display:flex;gap:1.25rem;align-items:center;padding-top:.5rem}.submit-row p{margin:0;color:var(--muted);font-size:.92rem}.notice{padding:1rem;margin-bottom:1rem}.notice.error{background:#f9e3df;color:#7c241c}.honeypot{position:absolute!important;left:-10000px!important}.confirmation-page{max-width:900px;margin:10vh auto}.confirmation-page h1{font-size:clamp(3rem,7vw,6rem)}.confirmation-page .lead{color:var(--muted)}.reference-code{margin-top:2rem;font-size:1.15rem}@media(max-width:900px){.booking-request-shell{grid-template-columns:1fr}.booking-summary{position:static}.package-grid{grid-template-columns:1fr}.single-date-row{grid-template-columns:1fr}}@media(max-width:640px){.two-column{grid-template-columns:1fr}.request-form-card{padding:1.1rem}.submit-row{align-items:stretch;flex-direction:column}.submit-row .button{width:100%;text-align:center}}
