/* Camp date selection uses the site's existing navy, cream, blue and type scale. */
.camp-product-layout{grid-template-columns:minmax(0,1.45fr) minmax(310px,1fr)!important;gap:48px!important}
.camp-product-layout .product-heading h2{font-size:clamp(29px,3vw,40px);margin-bottom:12px}
.camp-calendar-intro{font-size:13px;line-height:1.8;color:var(--muted);margin:0 0 28px;max-width:530px}
.camp-product-layout .product-meta{display:none}
.camp-calendar-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}
.camp-calendar-head .eyebrow{font-size:8px;margin-bottom:8px}
.camp-calendar-head h3{font-family:'Fraunces',Georgia,serif;font-size:29px;line-height:1.15;margin:0;letter-spacing:-.025em}
.camp-month-controls{display:flex;align-items:center;gap:7px}
.camp-month-controls button{border:1px solid var(--line);background:#fff;color:var(--navy);width:34px;height:36px;font:16px 'DM Sans',sans-serif;cursor:pointer}
.camp-month-controls select{font:10px 'DM Sans',sans-serif;width:116px;border:1px solid var(--line);height:36px;padding:0 8px;background:transparent;color:var(--navy)}
.camp-month-controls button:disabled{opacity:.3;cursor:default}
.camp-weekdays,.camp-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.camp-weekdays{margin-bottom:9px;text-align:center;font-size:10px;color:var(--muted)}
.camp-day{height:60px;border:1px solid transparent;background:transparent;color:var(--navy);font:600 16px 'DM Sans',sans-serif;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:3px;cursor:pointer;min-width:0}
.camp-day small{font-size:8px;line-height:1;font-weight:500}
.camp-day.has-camp{background:var(--surface-blue,#edf6f8);border-color:var(--line)}
.camp-day.has-camp:not(:disabled):hover{border-color:var(--navy);background:#e0f0f4}
.camp-day:disabled{color:#a4acb4;cursor:default}
.camp-day.has-camp:disabled{background:transparent;border-color:var(--line);border-style:dashed}
.camp-day.is-past{opacity:.55}
.camp-day.is-selected,.camp-day.is-selected:disabled{background:var(--navy,#20365b);border-color:var(--navy,#20365b);color:#fff}
.camp-day.has-camp.is-selected:not(:disabled):hover{background:var(--navy,#20365b)}
.camp-day[aria-current=date]>span{text-decoration:underline;text-underline-offset:4px}
.camp-day:focus-visible,.camp-package:focus-visible,.camp-month-controls button:focus-visible,.camp-month-controls select:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.camp-calendar-legend{display:flex;flex-wrap:wrap;align-items:center;gap:12px 19px;font-size:9px;color:var(--muted);margin:17px 0 25px;line-height:1.6}
.camp-calendar-legend>span{display:flex;align-items:center;gap:6px}.camp-calendar-legend i{width:10px;height:10px;display:inline-block;border:1px solid var(--line);border-radius:2px}
.camp-key-available{background:var(--surface-blue,#edf6f8)}.camp-key-selected{background:var(--navy,#20365b)}
.camp-package-section{border-top:1px solid var(--line);padding-top:21px;margin-top:22px}
.camp-package-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.camp-package-heading h4,.camp-package-section>h4{font:600 21px/1.25 'Fraunces',Georgia,serif;margin:0}
.camp-package-heading p{font-size:10px;color:var(--muted);margin:0}
.camp-package-list{display:grid;gap:9px}
.camp-package{width:100%;padding:15px 17px;background:white;border:1px solid var(--line);text-align:left;display:flex;align-items:center;justify-content:space-between;gap:15px;border-radius:3px;font-family:'DM Sans',sans-serif;color:var(--navy);cursor:pointer}
.camp-package strong{font-size:12px;line-height:1.6;display:block}.camp-package small{display:block;font-size:10px;line-height:1.7;color:var(--muted);margin-top:4px}.camp-package-mark{font-size:18px}
.camp-package[aria-pressed=true]{border-color:var(--navy);background:var(--surface-blue,#edf6f8)}.camp-package[aria-pressed=true] .camp-package-mark{font-size:20px}
.camp-package:disabled{opacity:.5;cursor:default}.camp-other-sessions,.camp-empty{font-size:12px;line-height:1.8;margin-top:20px}.camp-other-sessions .camp-package{margin-top:10px}
.camp-selection{border-bottom:1px solid var(--line);padding-bottom:21px;margin-bottom:22px;min-height:72px}
.camp-selection strong{display:block;font-family:'Fraunces',Georgia,serif;font-size:24px;line-height:1.3;letter-spacing:-.02em}
.camp-selection span{display:block;font-size:11px;color:var(--muted);line-height:1.8;margin-top:8px}
.camp-calendar-buy .buy-price-note{margin-bottom:17px}.camp-calendar-buy .purchase-field{margin-top:17px}.camp-calendar-buy .buy-question{margin-top:15px}
.camp-selection-feedback{margin:0 0 16px;padding:10px 12px;background:var(--surface-blue,#edf6f8);border-left:2px solid var(--navy);font-size:13px;line-height:1.55}
.camp-selection-feedback:empty{display:none}
.camp-review-link{display:none}
@media(max-width:760px){.camp-review-link{display:inline-flex;align-items:center;min-height:44px;margin-top:-10px;color:var(--navy);font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:4px}}
.camp-selected-list{list-style:none;margin:12px 0 0;padding:0}
.camp-selected-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line)}
.camp-selected-list li span{margin:0;font-size:13px;line-height:1.5}
.camp-selected-list button{flex:none;min-height:44px;padding:0 4px;border:0;background:transparent;color:var(--navy);font:inherit;font-size:12px;text-decoration:underline;cursor:pointer}
.camp-selected-list button:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
@media(max-width:1050px) and (min-width:761px){.camp-product-layout{gap:30px!important;grid-template-columns:minmax(0,1.25fr) minmax(290px,1fr)!important}.camp-calendar-head{align-items:start;flex-direction:column;gap:15px}.camp-month-controls{width:100%;justify-content:flex-end}.camp-calendar-buy{padding:24px}}
@media(max-width:760px){.camp-product-layout{grid-template-columns:minmax(0,1fr)!important;gap:28px!important}.camp-product-layout .product-heading h2{font-size:30px}.camp-calendar-intro{font-size:12px;margin-bottom:25px}.camp-calendar-head{gap:14px;align-items:start;flex-wrap:wrap;margin-bottom:21px}.camp-calendar-head h3{font-size:27px}.camp-month-controls{margin-left:auto}.camp-month-controls select{font-size:10px;width:111px}.camp-weekdays,.camp-days{gap:4px}.camp-day{height:48px;font-size:15px}.camp-day small{font-size:7px}.camp-calendar-legend{gap:9px 15px;font-size:8px;margin-top:15px}.camp-calendar-muted{width:100%}.camp-package-heading h4{font-size:21px}.camp-package-heading p{display:none}.camp-package{padding:14px}.camp-package strong{font-size:11px}.camp-selection strong{font-size:23px}.camp-calendar-buy .purchase-field input{font-size:16px;min-height:45px}.camp-registration-section .camp-calendar-buy{padding:23px}.camp-calendar-buy .buy-price{font-size:31px}.camp-calendar-buy .buy-price-note{margin-bottom:16px}}
@media(prefers-reduced-motion:reduce){.camp-day,.camp-package{scroll-behavior:auto}}

/* The document already offsets anchor jumps for the fixed header. */
.rba-subpage main #camp-registration{scroll-margin-top:0}
