.availability-planner{padding-block:0 30px}.annual-calendar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:45px;align-items:center;background:var(--ice);padding:38px 42px;margin-bottom:42px}.annual-calendar .eyebrow{margin-bottom:12px}.annual-calendar h2{font-size:clamp(28px,3vw,40px);margin-bottom:16px}.annual-calendar p:not(.eyebrow){max-width:680px;font-size:13px}.annual-calendar-action{max-width:265px}.annual-calendar-action .button{width:100%}.annual-calendar-action p{font-size:11px!important;line-height:1.6;margin-top:12px}.availability-modes{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--line);margin-bottom:28px}.availability-modes button{background:transparent;border:0;border-bottom:3px solid transparent;padding:17px 22px;font-size:13px;min-height:52px;line-height:1.5}.availability-modes button.is-active{border-bottom-color:var(--ink);background:var(--mist)}.availability-heading h2{font-size:clamp(25px,2.5vw,35px);margin-bottom:12px}.availability-heading p{font-size:14px;max-width:760px}.availability-search{margin-top:26px}.availability-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.availability-fields .field{min-width:0;margin:0}.availability-fields label{display:block;font-size:12px;margin-bottom:8px}.availability-fields select,.availability-fields input{width:100%;min-width:0;min-height:54px;border:1px solid var(--line);border-radius:0;background:var(--paper);padding:13px 12px;font-size:16px}.availability-fields input[readonly]{background:var(--mist)}.availability-fields [hidden]{display:none!important}.availability-search-footer{display:flex;justify-content:space-between;gap:28px;align-items:center;margin-top:24px}.availability-search-footer p{font-size:12px;line-height:1.9}.availability-search-footer p span{font-size:11px}.availability-search-footer .button{flex-shrink:0}.availability-matches:not(:empty){margin-top:30px;padding:28px;border:1px solid var(--line)}.availability-matches h3{font-size:25px;margin-bottom:14px}.availability-matches p{font-size:13px;max-width:820px}.availability-matches p+p{margin-top:10px}.availability-result-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:20px}.availability-result-actions .text-link{margin:0}.availability-month{padding-top:22px}.availability-month h4{margin:0 0 12px;font-size:15px;font-weight:500}.availability-week-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.availability-week-option{border:1px solid var(--line);background:var(--paper);text-align:left;padding:18px;min-height:108px;font-size:13px;line-height:1.6}.availability-week-option:hover{background:var(--ice)}.availability-week-option strong,.availability-week-option span{display:block}.availability-week-option strong{font-weight:500}.availability-week-option span{font-size:11px;margin-top:5px}.availability-result-pair{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.availability-result-pair .field{margin:12px 0}.availability-result-pair label{display:block;font-size:12px}.availability-result-pair select{width:100%;max-width:460px;min-height:48px;padding:10px;border:1px solid var(--line);background:var(--paper);font-size:16px}.availability-matches .availability-freshness{font-size:11px;margin-top:16px}.availability-matches button:disabled{cursor:wait}
@media(max-width:850px){.annual-calendar{grid-template-columns:1fr;gap:24px;padding:28px}.annual-calendar-action{max-width:none;display:flex;align-items:center;gap:20px}.annual-calendar-action .button{width:auto;flex-shrink:0}.annual-calendar-action p{margin:0}.availability-week-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.annual-calendar{padding:24px 20px;margin-bottom:28px}.annual-calendar-action{display:block}.annual-calendar-action .button{width:100%}.annual-calendar-action p{margin-top:12px}.availability-modes{display:grid;grid-template-columns:1fr 1fr}.availability-modes button{padding:13px 10px;font-size:12px}.availability-fields{grid-template-columns:1fr;gap:18px}.availability-search-footer{display:block}.availability-search-footer .button{margin-top:20px;width:100%}.availability-matches:not(:empty){padding:20px 16px}.availability-week-list{grid-template-columns:1fr}.availability-result-actions{align-items:stretch;flex-direction:column}.availability-result-actions .button{width:100%}.availability-heading p{font-size:13px}}
.availability-search[data-mode="week"] .availability-fields{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1000px){.availability-search[data-mode="week"] .availability-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.availability-search[data-mode="week"] .availability-fields{grid-template-columns:1fr}}


.availability-calendar-status{margin:20px 0 28px;padding:13px 17px;background:var(--ice);font-size:13px;line-height:1.6}
.availability-month{margin-top:32px}.availability-month h3{font-size:19px;font-weight:500;margin-bottom:14px}
.availability-week-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.availability-week-bar{display:block;width:100%;min-width:0;border:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink);text-align:left;padding:16px 18px;cursor:pointer;font:inherit;transition:border-color .15s,background .15s}
.availability-week-bar:hover,.availability-week-bar:focus-visible,.availability-week-bar.is-selected{border-color:var(--ink);background:var(--ice)}
.availability-week-bar:focus-visible,.availability-slot-option:focus-visible,.availability-slot-continue:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.availability-week-bar-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-size:13px}
.availability-week-bar-head strong{font-weight:600}.availability-week-bar-head span{font-size:12px;white-space:nowrap}
.availability-week-track{display:block;height:12px;margin:14px 0 8px;background:var(--mist);border:1px solid var(--line);overflow:hidden}
.availability-week-fill{display:block;height:100%;background:#9bb1b8}
.availability-week-bar.is-full{border-color:#ad3b35;background:#fff5f4}.availability-week-bar.is-full .availability-week-fill{background:#b4433d}.availability-week-bar.is-full .availability-week-bar-head span{color:#922d28;font-weight:700}
.availability-week-bar.is-unknown .availability-week-track{background:repeating-linear-gradient(135deg,var(--mist) 0,var(--mist) 7px,var(--paper) 7px,var(--paper) 14px)}
.availability-week-bar-foot{display:block;font-size:11px;line-height:1.5}
.availability-slots{border:1px solid var(--line);background:var(--ice);padding:24px;margin-top:14px}.availability-slots[hidden]{display:none!important}.availability-slots h4{font-size:21px;margin:0 0 12px}.availability-slots p{font-size:13px;line-height:1.6;max-width:760px}
.availability-slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}
.availability-slot-option{min-height:58px;border:1px solid var(--line);border-radius:0;background:var(--paper);padding:11px 14px;color:var(--ink);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.availability-slot-option:hover,.availability-slot-option.is-selected{border-color:var(--ink);background:var(--mist)}.availability-slot-option.is-selected{box-shadow:inset 4px 0 var(--ink);font-weight:600}
.availability-slot-continue:disabled{opacity:.5;cursor:not-allowed}.availability-freshness{font-size:11px!important;margin-top:15px}
@media(max-width:850px){.availability-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.availability-week-grid,.availability-slot-grid{grid-template-columns:1fr}.availability-week-bar{padding:15px}.availability-week-bar-head{font-size:12px}.availability-week-bar-head span{font-size:11px}.availability-slots{padding:20px 16px}.availability-slot-continue{width:100%}}

.availability-resource-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:20px 0}
.availability-resource-group{min-width:0;margin:0;padding:0;border:0}.availability-resource-group legend{font-weight:700;font-size:15px;margin-bottom:12px}
.availability-choice,.availability-boat-quantity{display:flex;align-items:center;gap:12px;min-height:48px;margin:0 0 8px;padding:9px 12px;border:1px solid var(--line);background:var(--paper);font-size:13px;cursor:pointer}
.availability-choice:has(input:checked){border-color:var(--ink);background:var(--mist)}.availability-choice input{accent-color:var(--ink);width:18px;height:18px;flex:none}
.availability-boat-quantity{justify-content:space-between}.availability-boat-quantity select{min-width:70px;padding:7px;border:1px solid var(--line);background:var(--paper);font:inherit}
.booking-resource-summary{padding:18px 20px;border:1px solid var(--line);background:var(--ice);margin-bottom:18px}.booking-resource-summary p{margin:0 0 8px}.booking-resource-summary p:last-child{margin-bottom:0}
@media(max-width:650px){.availability-resource-columns{grid-template-columns:1fr;gap:12px}}

.availability-resource-caption{display:flex;flex-direction:column;gap:3px;min-width:0;line-height:1.4}
.availability-resource-caption strong{font-weight:600}
.availability-resource-caption small{font-size:14px;line-height:1.45;color:var(--ink)}
.availability-boat-quantity select{flex:none}
