.availability-section{max-width:1440px;padding:0 var(--gutter) 48px;margin:auto}.booking-intro{max-width:1440px;padding:24px var(--gutter);margin:auto}.booking-intro h1{font-size:clamp(32px,4vw,48px)}.booking-intro p{margin-top:8px}.availability-widget{min-width:0}.availability-heading{justify-content:space-between;align-items:end;gap:32px;margin-bottom:20px;display:flex}.availability-heading h2{margin-top:12px;font-size:clamp(30px,3vw,42px)}.availability-form{border:1px solid var(--border);border-top:3px solid var(--green);background:var(--surface);border-radius:8px;padding:28px}.availability-fields{border:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 80px 88px minmax(0,1.1fr);align-items:end;gap:20px 16px;min-width:0;margin:0;padding:0;display:grid}.availability-fields label{min-width:0;color:var(--green);font-size:13px;font-weight:600;display:block}.availability-fields input,.availability-fields select{border:1px solid var(--field-border);background:var(--surface);width:100%;min-width:0;max-width:100%;min-height:50px;color:var(--ink);font:inherit;border-radius:6px;margin-top:8px;padding:12px;font-size:16px;line-height:1.4;display:block}.availability-fields input:focus-visible,.availability-fields select:focus-visible{outline:3px solid var(--green);outline-offset:3px}.availability-fields input[type=date]{appearance:none}.availability-fields input::-webkit-date-and-time-value{text-align:left}.availability-submit{grid-column:1/-1;justify-self:start}.availability-hint{margin-top:20px}.availability-status:not(:empty){color:var(--green);margin-top:16px;font-size:14px}.availability-error{color:var(--error);margin-top:16px;font-size:15px}.availability-result-heading{padding-block:36px 20px}.availability-result-heading .eyebrow{letter-spacing:normal;font-size:14px}.availability-result-heading h3{margin:12px 0;font-size:34px}.availability-result-heading h3:focus{outline:none}.availability-result{border-top:1px solid var(--border);grid-template-columns:180px minmax(0,1fr);gap:32px;padding:28px 0;display:grid}.availability-photo{aspect-ratio:1;border-radius:8px;align-self:start;min-height:180px;display:block;position:relative;overflow:hidden}.availability-result h4{font-family:var(--font-editorial);margin:8px 0 16px;font-size:30px;font-weight:400;line-height:1.2}.availability-price{color:var(--green);font-variant-numeric:tabular-nums;font-size:30px;font-weight:600;line-height:1.4}.availability-price span{color:var(--muted);white-space:nowrap;font-size:13px;font-weight:400}.availability-breakdown{max-width:540px;margin:12px 0 20px;font-size:14px}.availability-breakdown summary,.availability-fallback summary{cursor:pointer;min-height:44px;color:var(--green);text-underline-offset:4px;padding:12px 0;text-decoration:underline}.availability-breakdown dl{margin:12px 0 16px}.availability-breakdown dl>div{justify-content:space-between;gap:20px;padding:8px 0;display:flex}.availability-breakdown dt{overflow-wrap:anywhere;min-width:0}.availability-breakdown dd{white-space:nowrap;font-variant-numeric:tabular-nums;margin:0}.availability-total{border-top:1px solid var(--border);font-weight:700}.availability-breakdown p+p{margin-top:8px}.availability-result-content>.small{margin-top:12px}.availability-result-content>p{max-width:65ch}.availability-confirmed{color:var(--green);margin-bottom:12px;font-weight:700}.availability-cash{border-top:1px solid var(--border);max-width:540px;margin-top:24px;padding-top:20px}.availability-cash p+p{margin-top:12px}.availability-cash-title{color:var(--green);font-weight:700}.availability-cash .text-link{margin-block:16px}.availability-fallback{border-top:1px solid var(--border);margin-top:20px;padding-top:12px}.availability-fallback ul{flex-wrap:wrap;gap:0 28px;margin:8px 0;padding:0;list-style:none;display:flex}.availability-compact .availability-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.availability-compact .availability-form{background:0 0;border:0;padding:0}.availability-compact .availability-result{padding-block:24px;display:block}.availability-compact .availability-result h4,.availability-compact .availability-result-heading h3{font-size:28px}.availability-compact .availability-submit{width:100%}.booking-panel .availability-compact .button{margin-top:0}.booking-panel .availability-compact .small{margin:12px 0 0}.booking-panel .availability-compact .availability-hint{margin-top:20px}.availability-compact .availability-result .button{padding-inline:12px;font-size:13px}.availability-compact .availability-breakdown dl>div{gap:12px}.availability-compact .availability-fallback{margin-top:24px}@media (min-width:1280px){.availability-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 75px 85px minmax(0,1fr) auto}.availability-submit{grid-column:auto}.availability-compact .availability-submit{grid-column:1/-1}}@media (max-width:900px){.availability-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-cabin{grid-column:1/-1}}@media (max-width:600px){.availability-section{padding-bottom:32px}.availability-heading{display:block}.availability-form{padding:20px}.availability-fields{gap:20px 12px}.availability-submit{width:100%}.availability-fields input{padding-inline:8px;font-size:15px}.availability-result{grid-template-columns:1fr;gap:20px}.availability-photo{aspect-ratio:16/9;min-height:0}.availability-result-heading h3{font-size:30px}.availability-result .button{gap:12px;width:100%;padding-inline:16px}.availability-compact .availability-fields{grid-template-columns:minmax(0,1fr)}.availability-compact .availability-submit{grid-column:1}}@media (max-width:360px){.availability-fields{grid-template-columns:minmax(0,1fr)}.availability-form{padding:20px}.availability-breakdown dl>div{gap:12px}}
