/* Reservation layout uses the existing site tokens from styles.css. */
.reservation-page input[aria-invalid="true"] { border-color:#efb5a4;box-shadow:0 0 0 1px #efb5a4; }
.reservation-page .rf-note[data-state] { padding:14px;border:1px solid var(--line2);border-radius:10px;text-align:left; }
.reservation-page .rf-note[data-state="error"] { color:#efb5a4;border-color:#efb5a455; }
.reservation-page .rf-note[data-state="success"] { color:#aed6b7;border-color:#aed6b755; }
.reservation-page .rf-note[data-state] a { color:inherit;text-decoration:underline; }
.reservation-page .btn:disabled { cursor:default;transform:none;box-shadow:none;opacity:.6; }
.rez-price .rez-summary-caption { display:block;font:500 .68rem 'Inter',sans-serif;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:10px; }
.rez-price>strong { display:block;font:500 1.65rem/1.25 'Fraunces',Georgia,serif;color:var(--cream);margin-bottom:14px; }
.rez-price>time { display:block;font:400 .88rem/1.6 'Inter',sans-serif;color:var(--cream); }
.rez-price .rez-summary-payment { display:block;font:400 .75rem/1.6 'Inter',sans-serif;color:var(--gold2);margin-top:14px; }
.reservation-page { background:var(--bg);color:var(--cream); }
.reservation-page .rez-nav { background:var(--bg);border-color:var(--line); }
.reservation-page .rez-nav .brand-txt { color:var(--cream); }
.reservation-page .rez-back { color:var(--muted);font-size:.85rem; }
.reservation-page .rez,.reservation-page .rez.camping-active { max-width:1320px;padding:38px clamp(18px,4vw,46px) 72px; }
.reservation-page .rez-head { position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:310px;gap:24px;text-align:left;margin:0 0 30px;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--bg2); }
.rez-head__copy { position:relative;z-index:2;padding:38px 0 38px 36px; }
.rez-eyebrow { display:block;color:var(--gold2);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:18px; }
.reservation-page .rez-head h1 { font-size:clamp(2.7rem,5vw,4rem);line-height:1.05;color:var(--cream);background:none;-webkit-text-fill-color:currentColor;letter-spacing:-.02em;font-weight:500;margin:0; }
.reservation-page .rez-head p { color:var(--muted);max-width:37ch;line-height:1.75;margin-top:18px;font-size:.95rem; }
.rez-head__photo { position:absolute;inset:0 0 0 37%;z-index:0;margin:0;overflow:hidden;background:var(--panel); }
.rez-head__photo::after { content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bg2),transparent 52%),linear-gradient(0deg,rgba(10,21,24,.75),transparent 48%); }
.rez-head__photo img { display:block;width:100%;height:100%;object-fit:cover;object-position:50% 70%; }
.rez-head__photo figcaption { position:absolute;z-index:1;bottom:24px;right:28px;color:var(--cream);font-size:.7rem;letter-spacing:.025em; }
.rez-head__photo figcaption span { color:var(--gold2);margin-inline:7px; }
.rez-choice { display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 0 30px;border-bottom:1px solid var(--line);margin-bottom:32px; }
.rez-choice>p { color:var(--cream);font-family:'Fraunces',Georgia,serif;font-size:1.3rem;margin:0;max-width:19ch; }
.reservation-page .rez-toggle { position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;width:min(100%,620px);margin:0;padding:6px;border:1px solid var(--line2);background:var(--panel);border-radius:16px;isolation:isolate; }
.reservation-page .rez-toggle::before { content:"";position:absolute;z-index:-1;inset:6px auto 6px 6px;width:calc((100% - 12px)/2);background:linear-gradient(135deg,var(--gold2),var(--gold));border-radius:11px;transform:translateX(0);transition:transform .38s cubic-bezier(.22,1,.36,1); }
.reservation-page .camping-active .rez-toggle::before { transform:translateX(100%); }
.reservation-page .rz-tab { display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-height:72px;justify-content:center;padding:13px 22px;background:none;box-shadow:none;color:var(--muted);border-radius:11px;transition:color .2s; }
.reservation-page .rz-tab>span { font-family:'Fraunces',Georgia,serif;font-size:1.3rem;font-weight:500;line-height:1.2; }
.reservation-page .rz-tab small { font-size:.71rem;font-weight:400;color:inherit;line-height:1.4; }
.reservation-page .rz-tab.on { background:none;box-shadow:none;color:#23180a; }
.reservation-page :is(button,a,input,summary):focus-visible { outline:2px solid var(--gold2);outline-offset:4px; }
.reservation-page .rez-card { background:var(--panel);border:1px solid var(--line2);border-radius:18px;box-shadow:var(--shadow); }
.reservation-page #tab-eau { max-width:none;margin-inline:auto;padding:0;background:none;box-shadow:none;border:0; }
.rez-water-heading { margin-bottom:24px; }
.rez-section-label { display:flex;align-items:center;gap:12px;font-family:'Inter',sans-serif;font-size:.84rem;font-weight:500;color:var(--cream);margin:0 0 16px; }
.rez-section-label>span { display:grid;place-items:center;flex:0 0 28px;height:28px;border:1px solid var(--line2);border-radius:50%;font-size:.66rem;color:var(--gold2);font-variant-numeric:tabular-nums; }
.reservation-page .rent-gears { margin:0 0 16px;gap:18px; }
.reservation-page .gcard { position:relative;align-items:flex-start;padding:8px 8px 18px;gap:8px;background:var(--panel);overflow:hidden; }
.reservation-page .gc-img { height:clamp(125px,15vw,178px); }
.reservation-page .gc-name { font-family:'Fraunces',Georgia,serif;font-size:1.3rem;font-weight:500;padding:4px 12px 0; }
.reservation-page .gc-stock { padding-inline:12px; }
.reservation-page .gcard.on { border-color:var(--gold);background:var(--panel2);box-shadow:inset 0 0 0 1px var(--gold); }
.reservation-page .gcard.on::after { content:'✓';position:absolute;left:auto;right:20px;top:20px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--gold2);color:var(--bg);font-size:.85rem;box-shadow:0 2px 12px #0004;transform:none;transition:none; }
.reservation-page .rent-models { justify-content:flex-start;gap:10px;margin:0 0 28px; }
.reservation-page .mcard { flex-direction:row;gap:10px;min-height:46px; }
.reservation-page .rez-water-layout { display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;align-items:start;padding-top:28px;border-top:1px solid var(--line);margin-top:28px; }
.rez-schedule { display:grid;gap:20px;min-width:0; }
.rez-schedule .rez-section-label { margin-bottom:0; }
.rez-contact { min-width:0;padding:24px;background:var(--panel);border:1px solid var(--line2);border-radius:16px; }
.reservation-page .rez-contact .rf-row { grid-template-columns:1fr;gap:16px; }
.rez-contact .rf-row label { display:grid;gap:8px;font-size:.8rem;color:var(--cream); }
.reservation-page .rez-contact .rez-price { text-align:left;border-block:1px solid var(--line);padding-block:20px;margin-block:22px; }
.reservation-page .rez-contact .rez-price b { font-size:2.5rem;color:var(--gold2);font-weight:500; }
.reservation-page .rez-contact .rez-price small { line-height:1.65;margin-top:8px; }
.reservation-page .rez-contact .btn { min-height:52px;font-size:.8rem;white-space:normal; }
.reservation-page .rez-contact .rf-note { margin-block:14px;line-height:1.6; }
.reservation-page .weekcal { padding:16px;background:var(--panel); }
.reservation-page .wc-head { margin-bottom:16px; }
.reservation-page .wc-nav { width:44px;height:44px; }
.reservation-page .wc-day { min-height:70px;justify-content:center; }
.reservation-page .chip-b { min-height:44px; }
.rez-help { display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:48px;padding-top:26px;border-top:1px solid var(--line); }
.rez-help strong { font-family:'Fraunces',Georgia,serif;font-size:1.3rem;font-weight:500; }
.rez-help p { font-size:.82rem;color:var(--muted);margin-top:8px; }
.rez-help>a { display:flex;align-items:center;gap:24px;min-height:44px;color:var(--gold2);font-size:1rem;white-space:nowrap;text-underline-offset:6px; }
.rez-help>a:hover { text-decoration:underline; }
.rez-water-heading h2,.reservation-page .camp-booking-heading h3 { font-family:'Fraunces',Georgia,serif;font-weight:500;color:var(--cream);font-size:clamp(1.7rem,2.8vw,2.3rem);line-height:1.2;letter-spacing:-.02em; }
.rez-water-heading p { color:var(--muted);font-size:.9rem;margin-top:10px;line-height:1.65; }
.reservation-page .camp-booking { --camp-text:var(--cream);--camp-muted:var(--muted);--camp-line:var(--line2); }
.reservation-page .camp-booking-heading { display:block;margin-bottom:22px; }
.reservation-page .camp-eyebrow { display:none; }
.reservation-page .camp-booking-heading>p { color:var(--muted);margin-top:10px;font-size:.85rem; }
.reservation-page .camp-stay { background:var(--panel);border:1px solid var(--line2);border-radius:14px;padding:20px 22px;gap:22px; }
.reservation-page .camp-stay label { color:var(--gold2);font-size:.72rem;letter-spacing:.08em; }
.reservation-page .camp-stay input { background:var(--bg);color:var(--cream);border:1px solid var(--line2);border-radius:8px;font-size:1rem;min-height:52px; }
.reservation-page .camp-stay>button { color:var(--gold2);text-decoration-color:var(--gold); }
.reservation-page .camp-stay p { color:var(--muted);font-size:.85rem; }
.reservation-page .camp-booking .camp-availability { font-size:.84rem!important; }
.reservation-page .camp-booking-layout { grid-template-columns:minmax(0,1fr) 300px;gap:24px; }
.reservation-page .camp-map-tools>span { font-size:.8rem;letter-spacing:0;text-transform:none;color:var(--muted); }
.reservation-page .camp-map-tools>div { background:var(--panel);border-color:var(--line2);border-radius:8px; }
.reservation-page .camp-map-tools button { color:var(--cream);min-height:44px;font-size:.74rem; }
.reservation-page .camp-map-tools button:hover { background:var(--panel2);color:var(--gold2); }
.reservation-page .camp-map-viewport { border-radius:12px;border-color:var(--line2); }
.reservation-page .camp-map-legend { color:var(--muted);font-size:.76rem; }
.reservation-page .camp-booking-panel { --camp-text:var(--cream);--camp-muted:var(--muted);--camp-line:var(--line2);background:var(--panel);color:var(--cream);border:1px solid var(--line2);border-radius:16px;box-shadow:var(--shadow);padding:28px 24px;margin-top:58px; }
.reservation-page .camp-booking-panel .camp-panel-caption { color:var(--gold2)!important;font-size:.65rem!important; }
.reservation-page .camp-has-selection .camp-booking-panel { border-top-color:var(--gold); }
.reservation-page .camp-booking-panel [data-booking-message]:empty { display:none; }
.reservation-page .camp-selection-action button { background:linear-gradient(135deg,var(--gold2),var(--gold));color:#23180a;border-radius:999px;min-height:48px; }
.reservation-page .camp-booking-panel :is(input,button):focus-visible { outline-color:var(--gold2); }
.reservation-page .camp-booking-panel h3 { color:var(--cream);font-size:2rem; }
.reservation-page .camp-booking-panel>[data-selection-detail] { color:var(--muted);font-size:.9rem; }
.reservation-page .camp-booking-panel .camp-total { color:var(--gold2);border-color:var(--line2); }
.reservation-page .camp-total strong { font-size:2.5rem; }
.reservation-page .camp-total span { color:var(--muted);font-size:.76rem; }
.reservation-page .camp-booking-panel form { gap:17px; }
.reservation-page .camp-booking-panel form>label:not(.camp-consent) { color:var(--cream);font-size:.8rem; }
.reservation-page .camp-booking-panel input { background:var(--bg);color:var(--cream);border-color:var(--line2);border-radius:8px;min-height:48px;font-size:1rem;color-scheme:dark; }
.reservation-page .camp-booking-panel .camp-consent { color:var(--muted);font-size:.74rem;line-height:1.6; }
.reservation-page .camp-booking-panel .camp-consent input { width:18px;height:18px;min-height:18px;accent-color:var(--gold); }
.reservation-page .camp-booking-panel .camp-consent a { color:var(--gold2); }
.reservation-page .camp-booking-panel .btn { background:linear-gradient(135deg,var(--gold2),var(--gold));color:#23180a;border:1px solid transparent;border-radius:999px;box-shadow:0 14px 34px -14px rgba(230,177,94,.65);min-height:52px;font-size:.84rem; }
.reservation-page .camp-booking-panel .btn:hover { background:linear-gradient(135deg,var(--gold2),var(--gold));border-color:transparent;box-shadow:0 20px 44px -16px rgba(230,177,94,.85); }
.reservation-page .camp-panel-assurance { color:var(--muted);border-color:var(--line2);font-size:.74rem; }
.reservation-page .camp-panel-assurance span::before { background:var(--gold); }
.reservation-page .camp-booking-panel [data-booking-message] { color:var(--gold2)!important;font-size:.82rem!important; }
.reservation-page .camp-site-list button { color:var(--cream);background:var(--panel);border-color:var(--line2); }
.reservation-page .camp-site-list button small { color:var(--muted); }
.reservation-page .camp-site-list [aria-pressed="true"] { background:var(--panel2);border-color:var(--gold); }
.reservation-page .camp-non-numbered { border:1px solid var(--line2);border-radius:12px;background:var(--panel);padding:16px 22px;margin-top:28px; }
.reservation-page .camp-non-numbered summary { color:var(--gold2);font-size:.9rem;min-height:44px;line-height:1.6;cursor:pointer; }
.reservation-page .footer { background:var(--bg2); }
@keyframes rez-arrive { from { opacity:0;transform:translateY(14px); } to { opacity:1;transform:translateY(0); } }
@keyframes rez-photo { from { opacity:0;transform:scale(1.035); } to { opacity:1;transform:scale(1); } }
@keyframes rez-confirm-choice { from { box-shadow:0 0 0 5px #dac39335; } to { box-shadow:0 0 0 0 #dac39300; } }
@media(prefers-reduced-motion:no-preference) {
  .reservation-page .rez-head__copy { animation:rez-arrive .65s cubic-bezier(.22,1,.36,1) both; }
  .reservation-page .rez-head__photo img { animation:rez-photo .9s cubic-bezier(.22,1,.36,1) both; }
  .reservation-page .rez-choice { animation:rez-arrive .65s .1s cubic-bezier(.22,1,.36,1) both; }
  .reservation-page .rez-card:not([hidden]) { animation:rez-arrive .45s cubic-bezier(.22,1,.36,1) both; }
  .reservation-page .camp-booking-panel form:not([hidden]) { animation:rez-arrive .32s ease-out both; }
  .reservation-page .wc-day.on, .reservation-page .chip-b.on, .reservation-page .tcard.on { animation:rez-confirm-choice .45s ease-out; }
  .reservation-page .camp-plot .camp-plot-shape { transition:fill .22s,stroke .22s; }
  .reservation-page .gcard:hover .gc-img img { transform:scale(1.045); }
  .reservation-page .gcard.on::after { animation:rez-arrive .25s ease-out both; }
  .reservation-page .camp-booking-panel { transition:border-color .25s; }
  .reservation-page .btn:hover:not(:disabled) { transform:translateY(-2px); }
  .reservation-page .btn:active:not(:disabled),.reservation-page .chip-b:active:not(:disabled) { transform:translateY(1px); }
}

@media(max-width:1050px) {
 .reservation-page .rez-water-layout { grid-template-columns:minmax(0,1fr) 300px;gap:22px; }
 .rez-contact { padding:22px 20px; }
 .rez-choice>p { font-size:1.15rem; }
 .reservation-page .rez-toggle { width:60%; }
 .reservation-page .camp-booking-layout { grid-template-columns:minmax(0,1fr) 260px;gap:20px; }
 .reservation-page .camp-booking-panel { padding:24px 20px; }
}
@media(max-width:780px) {
 .reservation-page .rez,.reservation-page .rez.camping-active { padding-top:26px; }
 .reservation-page .rez-head { grid-template-columns:1fr;gap:0;min-height:0;margin-bottom:24px; }
 .rez-head__copy { padding:28px 24px 24px; }
 .reservation-page .rez-head h1 { font-size:2.7rem; }
 .rez-eyebrow { font-size:.64rem;margin-bottom:14px; }
 .rez-head__photo { position:relative;inset:auto;height:185px; }
 .rez-head__photo::after { background:linear-gradient(0deg,rgba(10,21,24,.7),transparent 70%); }
 .rez-head__photo figcaption { bottom:18px;left:24px;right:auto;font-size:.66rem; }
 .rez-choice { display:block;margin-bottom:28px;padding-bottom:24px; }
 .rez-choice>p { max-width:none;font-size:1.15rem;margin-bottom:16px; }
 .reservation-page .rez-toggle { width:100%; }
 .reservation-page .rez-water-layout { grid-template-columns:minmax(0,1fr);gap:28px; }
 .reservation-page .rent-gears { gap:10px; }
 .reservation-page .gc-img { height:110px; }
 .reservation-page .gc-name { font-size:1.05rem;padding-inline:5px; }
 .reservation-page .gc-stock { font-size:.66rem;padding-inline:5px; }
 .reservation-page .rez-contact { padding:24px; }
 .reservation-page .rez-contact .rf-row { grid-template-columns:1fr 1fr; }
 .reservation-page .camp-stay { padding:17px 14px; }
 .reservation-page .camp-stay input { width:100%;min-width:0;padding-inline:9px;font-size:.94rem; }
 .reservation-page .camp-map-tools { justify-content:flex-start; }
 .reservation-page .camp-map-tools>div { width:100%;justify-content:space-between; }
 .reservation-page .camp-booking-layout { grid-template-columns:minmax(0,1fr);gap:0; }
 .reservation-page .camp-booking-panel { margin-top:24px;padding:28px 24px; }
}
@media(max-width:430px) {
 .rez-head__copy { padding:26px 20px 22px; }
 .rez-head__photo { height:155px; }
 .rez-head__photo figcaption { left:20px;font-size:.6rem; }
 .reservation-page .rent-gears { grid-template-columns:1fr;gap:10px; }
 .reservation-page .gcard { display:grid;grid-template-columns:96px minmax(0,1fr);gap:4px 14px;padding:8px;align-items:center;text-align:left; }
 .reservation-page .gc-img { grid-row:1 / span 2;width:96px;height:80px; }
 .reservation-page .gc-name { align-self:end;padding:0 32px 0 0; }
 .reservation-page .gc-stock { align-self:start;padding:0 0 4px; }
 .reservation-page .gcard.on::after { top:12px;right:12px;width:22px;height:22px;font-size:.7rem; }
 .reservation-page .rez-contact .rf-row { grid-template-columns:1fr; }
 .reservation-page .weekcal { padding:10px; }
 .reservation-page .wc-grid { gap:4px; }
 .reservation-page .wc-day { min-height:62px; }
 .rez-help { align-items:flex-start;flex-direction:column;gap:12px;margin-top:34px; }
 .reservation-page .rez-nav { padding:12px 16px;gap:10px; }
 .reservation-page .rez-nav .brand-txt { font-size:.95rem; }
 .reservation-page .rez-back { font-size:.7rem; }
 .reservation-page .rz-tab { padding:12px 14px; }
 .reservation-page .rz-tab>span { font-size:1.15rem; }
 .reservation-page .rz-tab small { font-size:.62rem; }
 .reservation-page .camp-stay input { font-size:.85rem;padding-inline:7px; }
 .reservation-page .camp-non-numbered { padding:14px; }
}
@media(prefers-reduced-motion:reduce) {
 .reservation-page *, .reservation-page *::before, .reservation-page *::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; }
}

/* Stay calendar — the site's own palette and type, with a visible date range. */
.reservation-page .camp-stay--calendar { position:relative;display:flex;flex-wrap:wrap;gap:0;padding:0 24px;overflow:hidden; }
.reservation-page .camp-stay--calendar>label { display:none; }
.reservation-page .camp-stay--calendar>p { display:none; }
.reservation-page .camp-stay--calendar>button { position:absolute;bottom:24px;right:24px;margin:0;min-height:44px; }
.camp-calendar { flex:0 0 100%;min-width:0;color:var(--cream); }
.camp-calendar button { font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent; }
.camp-calendar button:disabled { cursor:default; }
.camp-calendar__fields { display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:24px 0 20px;border-bottom:1px solid var(--line); }
.camp-calendar__fields button { position:relative;display:grid;gap:3px;padding:16px 20px;text-align:left;border:1px solid var(--line2);border-radius:12px;background:var(--bg);color:var(--cream); }
.camp-calendar__fields button>span { color:var(--muted);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase; }
.camp-calendar__fields button>strong { display:flex;align-items:center;gap:14px;font-family:'Fraunces',Georgia,serif;font-size:1.55rem;font-weight:500;line-height:1.3; }
.camp-calendar__fields strong b { font-size:2.8rem;font-weight:500;letter-spacing:-.04em;line-height:1.15; }
.camp-calendar__fields strong>span { font-size:1.12rem; }
.camp-calendar__fields strong small { display:block;margin-top:4px;color:var(--muted);font:400 .7rem Inter,sans-serif;letter-spacing:0; }
.camp-calendar__fields [aria-pressed="true"] { border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold);background:var(--panel2); }
.camp-calendar__fields [aria-pressed="true"]>span { color:var(--gold2); }
.camp-calendar__fields [aria-pressed="true"]::after { content:'↓';position:absolute;right:18px;top:18px;color:var(--gold2); }
.camp-calendar__toolbar { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0 10px; }
.reservation-page .camp-calendar__toolbar p { color:var(--gold2);font-size:.84rem;margin:0; }
.camp-calendar__toolbar>div { display:flex;gap:8px; }
.camp-calendar__toolbar button { display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line2);border-radius:50%;background:var(--bg);color:var(--cream);font-size:1.5rem;line-height:1; }
.camp-calendar__toolbar button:disabled { opacity:.3; }
.camp-calendar__toolbar button:hover:not(:disabled) { border-color:var(--gold);color:var(--gold2); }
.camp-calendar__months { display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:12px 0 24px; }
.camp-calendar__month+ .camp-calendar__month { position:relative; }
.camp-calendar__month+ .camp-calendar__month::before { content:"";position:absolute;left:-24px;top:0;bottom:0;width:1px;background:var(--line); }
.camp-calendar__month { min-width:0; }
.camp-calendar__month h4 { font-family:'Fraunces',Georgia,serif;font-size:1.2rem;font-weight:500;color:var(--cream);text-transform:capitalize;margin:0 0 18px; }
.camp-calendar__weekdays,.camp-calendar__days { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px 0; }
.camp-calendar__weekdays { margin-bottom:9px; }
.camp-calendar__weekdays span { text-align:center;font-size:.66rem;color:var(--muted);font-weight:500; }
.camp-calendar__days button { position:relative;isolation:isolate;display:grid;place-items:center;min-width:0;height:44px;border:0;background:transparent;border-radius:9px;color:var(--cream);font-size:.87rem;font-variant-numeric:tabular-nums; }
.camp-calendar__days button:disabled { color:var(--muted2);opacity:.35; }
.camp-calendar__days .is-between { background:rgba(216,162,63,.13);border-radius:0;color:var(--gold2); }
.camp-calendar__days button:is(.is-arrival,.is-departure) { background:linear-gradient(135deg,var(--gold2),var(--gold));color:#23180a;font-weight:600;opacity:1; }
.camp-calendar__days .is-arrival { border-radius:9px 0 0 9px; }
.camp-calendar__days .is-departure { border-radius:0 9px 9px 0; }
.camp-calendar__days button[aria-current="date"]::after { content:'';position:absolute;bottom:5px;width:3px;height:3px;border-radius:50%;background:currentColor; }
.camp-calendar__days button:hover:not(:disabled) { box-shadow:inset 0 0 0 1px var(--gold); }
.camp-calendar__days button:focus-visible { z-index:1;outline-offset:-2px; }
/* The preview never mutates the selected stay. */
.camp-calendar.is-preview .camp-calendar__days :is(.is-between,.is-departure) { background:transparent;color:var(--cream); }
.camp-calendar.is-preview .camp-calendar__days .is-preview-between { background:rgba(216,162,63,.17);color:var(--gold2);border-radius:0; }
.camp-calendar.is-preview .camp-calendar__days .is-preview-end { background:var(--panel2);box-shadow:inset 0 0 0 1px var(--gold2);border-radius:0 9px 9px 0;color:var(--gold2); }
.camp-calendar__durations { display:flex;align-items:center;gap:20px;padding:16px 0 4px; }
.camp-calendar__durations>span { font-size:.76rem;color:var(--muted); }
.camp-calendar__durations>div { display:flex;flex-wrap:wrap;gap:8px; }
.camp-calendar__durations button { min-height:40px;padding:8px 16px;border:1px solid var(--line2);border-radius:999px;background:transparent;color:var(--cream);font-size:.74rem; }
.camp-calendar__durations button[aria-pressed="true"] { border-color:var(--gold);background:rgba(216,162,63,.12);color:var(--gold2); }
.camp-calendar__durations button:hover:not(:disabled) { border-color:var(--gold2); }
.camp-calendar__durations button:disabled { opacity:.4; }
.camp-calendar__toolbar .camp-calendar__return { width:auto;min-width:80px;padding:0 14px;border-radius:999px;font-size:.73rem; }
.camp-calendar__summary { display:flex;align-items:center;gap:14px;padding:22px 90px 22px 0;border-top:1px solid var(--line);min-height:94px; }
.camp-calendar__summary-icon { display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border:1px solid var(--line2);border-radius:50%;font-size:1.7rem;color:var(--gold2); }
.camp-calendar__summary strong { font-weight:500;font-size:1rem;color:var(--gold2); }
.reservation-page .camp-calendar__summary p { margin:4px 0 0;color:var(--muted);font-size:.73rem;line-height:1.5; }
.camp-calendar__summary>small { margin-left:auto;color:var(--muted2);font-size:.68rem; }
@media(prefers-reduced-motion:no-preference) {
 .camp-calendar__month { animation:rez-arrive .25s ease-out; }
 .camp-calendar__fields button,.camp-calendar__days button,.camp-calendar__durations button { transition:background .15s,box-shadow .15s,border-color .15s; }
}
@media(max-width:780px) {
 .reservation-page .camp-stay--calendar { padding:0 16px; }
 .reservation-page .camp-stay--calendar>button { right:16px;bottom:24px;font-size:.72rem; }
 .camp-calendar__months { grid-template-columns:1fr;gap:0; }
 .camp-calendar__month+ .camp-calendar__month { display:none; }
 .camp-calendar__fields { padding-top:16px;gap:8px; }
 .camp-calendar__fields button { padding:13px 12px; }
 .camp-calendar__fields button>strong { font-size:1.2rem; }
 .camp-calendar__fields button>strong { gap:10px; }
 .camp-calendar__fields strong b { font-size:2.1rem; }
 .camp-calendar__fields strong>span { font-size:.94rem; }
 .camp-calendar__fields strong small { font-size:.62rem; }
 .camp-calendar__fields [aria-pressed="true"]::after { right:10px;top:10px; }
 .reservation-page .camp-calendar__toolbar p { font-size:.76rem;max-width:23ch;line-height:1.6; }
 .camp-calendar__toolbar { gap:12px;flex-wrap:wrap; }
 .camp-calendar__durations { flex-direction:column;align-items:flex-start;gap:10px; }
 .camp-calendar__durations>div { width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px; }
 .camp-calendar__durations button { padding:8px 4px;min-height:44px; }
 .camp-calendar__summary>small { display:none; }
 .camp-calendar__summary { padding-right:74px; }
 .camp-calendar__summary strong { font-size:.9rem; }
 .camp-calendar__toolbar>div { gap:6px; }
 .camp-calendar__days button { height:46px; }
}

@media(max-width:430px) {
 .camp-calendar__fields button>strong { gap:0;display:grid; }
 .camp-calendar__fields strong b { font-size:2.35rem; }
 .camp-calendar__fields strong>span { font-size:.95rem; }
 .camp-calendar__toolbar>p { flex:1 1 100%; }
 .camp-calendar__toolbar .camp-calendar__navigation { width:100%; }
 .camp-calendar__navigation .camp-calendar__return { margin-right:auto; }
 .camp-calendar__summary-icon { display:none; }
 .camp-calendar__summary strong { font-size:.84rem; }
}
