/* Camping: editorial photography, forest tones and an ivory stay summary. */
.camp {
  background: linear-gradient(180deg,rgba(9,22,23,.93),rgba(9,22,23,.985) 78%),
    url("assets/lieu-3.jpg") center top / cover;
}
.camp__inner:has(.camp-booking) { max-width:1360px; }
.camp-intro { display:grid;grid-template-columns:1.35fr 1fr;gap:60px;align-items:end;text-align:left; }
.camp-intro .kicker { color:#cfb889;font-size:.68rem;letter-spacing:.2em;margin-bottom:20px; }
.camp-intro h2 { font-size:clamp(2.2rem,4vw,3.65rem);line-height:1.09;letter-spacing:-.035em;color:#f2eddf; }
.camp-intro>p { max-width:37ch;margin:0 0 5px;line-height:1.8;font-size:.96rem;color:#aebdb6; }
.camp .camp-cards { gap:28px;margin:44px 0 60px; }
.camp .camp-card {
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;
  padding:0;background:none;border:0;border-radius:0;box-shadow:none;
  transition:none;align-content:start;
}
.camp .camp-card:hover { transform:none;box-shadow:none; }
.camp .cc-img { grid-column:1 / -1;height:172px;aspect-ratio:auto;border-radius:7px;box-shadow:none;margin-bottom:9px; }
.camp .camp-card h3 { grid-column:1;grid-row:2;font-size:1.4rem;letter-spacing:-.02em;align-self:center; }
.camp .cc-price { grid-column:2;grid-row:2;align-self:center;color:#dbc597;font-size:1.35rem;line-height:1.3;white-space:nowrap; }
.camp .cc-price small { font-size:.64rem; }
.camp .cc-desc { grid-column:1 / -1;font-size:.8rem;line-height:1.65;color:#a7b7af;min-height:0;max-width:37ch; }
.camp-booking { --camp-text:#ececdf;--camp-muted:#aebdb3;--camp-line:#b5c6b125;margin-top:0; }
.camp-booking-heading { display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:25px; }
.camp-eyebrow { display:block;font-size:.59rem;font-weight:600;letter-spacing:.19em;color:#b7c9b2;margin-bottom:10px; }
.camp-booking-heading h3 { font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:clamp(1.7rem,2.6vw,2.3rem);line-height:1.2;letter-spacing:-.025em; }
.camp-booking-heading>p { font-size:.8rem;color:var(--camp-muted);margin:0 0 3px; }
.camp-stay { gap:22px;padding:20px 24px;border:1px solid #adc3b02b;border-radius:10px;background:#112622; }
.camp-stay label { gap:9px;font-size:.62rem;text-transform:uppercase;letter-spacing:.13em;color:#b2c5b8;font-weight:500;flex-basis:240px; }
.camp-stay input { background:#192e29;border-color:#a9bbaa40;font-size:.94rem;letter-spacing:.015em;padding:12px 14px;border-radius:5px;min-height:48px; }
.camp-stay>button { border:0;color:#d2cfb9;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#8f9e874d; }
.camp-stay>button:hover { background:transparent;color:#fff3d2; }
.camp-stay p { font-size:.8rem; }
.camp-booking .camp-availability { display:flex;align-items:center;gap:9px;font-size:.75rem!important;margin:18px 0 24px!important; }
.camp-availability::before { content:"";width:6px;height:6px;flex:0 0 6px;background:#b9b29d;border-radius:50%; }
[data-availability-state="ready"] .camp-availability::before { background:#9dc6a4;box-shadow:0 0 0 4px #9dc6a40c; }
[data-availability-state="error"] .camp-availability::before { background:#dbad82; }
.camp-booking-layout { grid-template-columns:minmax(0,1fr) 292px;gap:26px; }
.camp-map-tools { min-height:40px;margin-bottom:14px; }
.camp-map-tools>span { font-size:.6rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase; }
.camp-map-tools>div { gap:0;align-items:center;border:1px solid var(--camp-line);border-radius:6px;padding:2px;background:#0d211d; }
.camp-map-tools button { border:0;font-size:.7rem;min-height:36px;padding:8px 10px; }
.camp-map-tools button[data-zoom="out"],.camp-map-tools button[data-zoom="in"] { font-size:1.05rem;padding:8px 11px; }
.camp-map-tools button[data-map-toggle] { margin-left:4px;border-left:1px solid var(--camp-line);border-radius:0 4px 4px 0; }
.camp-map-viewport { border-color:#b5c6b138;border-radius:8px;box-shadow:0 16px 35px -24px #000b; }
.camp-plot .camp-plot-shape { fill:#a72e40;fill-opacity:.86;stroke:#f3dec966; }
.camp-plot[data-state="selected"] .camp-plot-shape { fill:#fbefd0;stroke:#dab16d;stroke-width:4; }
.camp-map-legend { gap:12px 20px;font-size:.68rem;margin-top:18px; }
.camp-map-legend i { width:10px;height:10px;border-radius:2px; }
.camp-map-hint,.camp-map-foot { font-size:.68rem!important;line-height:1.7; }
.camp-map-foot a { color:#e0cda9;text-underline-offset:4px;text-decoration:underline;text-decoration-color:#e0cda950; }
.camp-booking-panel {
  --camp-text:#243a30;--camp-muted:#626f61;--camp-line:#425b3824;
  background:#f1eddf;color:#243a30;border:1px solid #e7dfca;border-radius:9px;
  padding:27px 24px;margin-top:56px;box-shadow:0 15px 45px -28px #000b;
}
.camp-booking-panel .camp-panel-caption { color:#64734f!important;font-size:.57rem!important;font-weight:600;letter-spacing:.16em;margin-bottom:22px!important; }
.camp-booking-panel h3,.rez .camp-booking-panel h3 { font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:2.2rem;line-height:1.13;letter-spacing:-.035em;color:#253c2c;margin:0 0 15px; }
.camp-booking-panel>[data-selection-detail] { color:#626f61;font-size:.83rem;line-height:1.7; }
.camp-booking-panel .camp-total { display:grid;gap:3px;margin:23px 0;padding:19px 0;border-block:1px solid #5360432b;color:#2c432d; }
.camp-booking-panel .camp-total:empty { display:none; }
.camp-total strong { font-family:'Fraunces',Georgia,serif;font-size:2.1rem;font-weight:400;line-height:1.2;letter-spacing:-.025em; }
.camp-total span { font-size:.68rem;font-weight:400;color:#66715f; }
.camp-booking-panel form { gap:14px; }
.camp-booking-panel form>label:not(.camp-consent) { font-size:.69rem;color:#526149;font-weight:500;gap:7px; }
.camp-booking-panel input { color:#293f2e;background:#fffdf6;border:1px solid #536c4542;border-radius:5px;font-size:.85rem;min-height:44px;color-scheme:light;padding:10px 11px; }
.camp-booking-panel input:focus-visible { outline:2px solid #446940;outline-offset:2px; }
.camp-booking-panel .camp-consent { font-size:.64rem;line-height:1.6;color:#606b57;gap:8px; }
.camp-booking-panel .camp-consent input { padding:0;min-height:16px;width:16px;height:16px;flex-basis:16px;accent-color:#375538; }
.camp-booking-panel .camp-consent a { color:#304e31; }
.camp-booking-panel .btn { background:#29472f;border:1px solid #29472f;color:#fff7e5;box-shadow:none;border-radius:5px;min-height:48px;font-size:.76rem;padding:13px 10px;letter-spacing:0;transform:none;transition:background .18s,border-color .18s; }
.camp-booking-panel .btn:hover { background:#385c3b;border-color:#385c3b;transform:none;box-shadow:none; }
.camp-booking-panel .btn::after { display:none; }
.camp-booking-panel .camp-payment { display:none; }
.camp-panel-assurance { border-top:1px solid #5360432b;padding-top:18px;margin-top:25px;display:grid;gap:9px;font-size:.66rem;color:#647158; }
.camp-panel-assurance span { display:flex;align-items:center;gap:8px; }
.camp-panel-assurance span::before { content:"";width:4px;height:4px;flex:0 0 4px;background:#7e9064;border-radius:50%; }
.camp-booking-panel [data-booking-message] { color:#3a5635!important;font-size:.75rem!important; }
.camp-site-list button { border-color:#7c977547;border-radius:5px; }
.camp-site-list [aria-pressed="true"] { border-color:#d7c091;background:#304631; }
.camp-site-list strong { font-family:'Fraunces',Georgia,serif;font-size:1.55rem;font-weight:400; }
@media(max-width:1050px) {
  .camp-intro { gap:35px;grid-template-columns:1.3fr 1fr; }
  .camp-intro>p { font-size:.86rem; }
  .camp .camp-cards { gap:20px; }
  .camp .cc-img { height:148px; }
  .camp .camp-card h3 { font-size:1.15rem; }
  .camp .cc-price { font-size:1.1rem; }
  .camp-booking-layout { grid-template-columns:minmax(0,1fr) 258px;gap:22px; }
  .camp-booking-panel { padding:23px 20px; }
  .camp-booking-panel h3,.rez .camp-booking-panel h3 { font-size:1.85rem; }
  .camp-map-tools>span { display:none; }.camp-map-tools { justify-content:flex-end; }
}
@media(max-width:780px) {
  .camp-intro { grid-template-columns:1fr;gap:22px; }
  .camp-intro h2 { font-size:clamp(2rem,6vw,3rem); }
  .camp-intro>p { max-width:48ch;font-size:.9rem; }
  .camp .camp-cards { margin:32px 0 48px; }
  .camp-booking-heading { align-items:start;flex-direction:column;gap:9px;margin-bottom:20px; }
  .camp-booking-heading>p { font-size:.73rem; }
  .camp-stay { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 12px;padding:17px; }
  .camp-stay input { min-width:0;width:100%;font-size:.8rem;padding:10px 8px; }
  .camp-stay p { margin:0;align-self:center;font-size:.74rem; }
  .camp-stay>button { padding:7px 0;min-height:36px;justify-self:end; }
  .camp-booking-layout { grid-template-columns:minmax(0,1fr);gap:0; }
  .camp-booking-panel { position:static;margin-top:25px;padding:26px; }
  .camp-booking-panel h3,.rez .camp-booking-panel h3 { font-size:2rem; }
  .camp-map-viewport { max-height:none; }
  .camp-map-legend { gap:10px 15px; }
  .camp-selection-action button { font-size:.82rem;background:#e4d2a9; }
}
@media(max-width:720px) {
  .camp .camp-cards { grid-template-columns:1fr;gap:22px; }
  .camp .camp-card { grid-template-columns:104px minmax(0,1fr) auto;gap:6px 16px; }
  .camp .cc-img { grid-column:1;grid-row:1 / span 2;height:104px;width:104px;margin:0;border-radius:5px; }
  .camp .camp-card h3 { grid-column:2;grid-row:1;align-self:end;font-size:1.2rem; }
  .camp .cc-price { grid-column:3;grid-row:1;align-self:end; }
  .camp .cc-price small { display:block;text-align:right;font-size:.6rem; }
  .camp .cc-desc { grid-column:2 / -1;grid-row:2;font-size:.72rem;line-height:1.6; }
}
@media(max-width:380px) {
  .camp .camp-card { grid-template-columns:76px minmax(0,1fr) auto;gap:5px 11px; }
  .camp .cc-img { width:76px;height:94px; }
  .camp .camp-card h3 { font-size:1.03rem; }
  .camp .cc-price { font-size:1.05rem; }
  .camp-map-tools button { font-size:.65rem;padding-inline:8px; }
}
@media(prefers-reduced-motion:reduce) { .camp-booking-panel .btn { transition:none; } }

/* Keep the selected stay compact enough to scan beside the photograph. */
.camp-has-selection .camp-booking-panel h3{font-size:1.72rem;line-height:1.2;letter-spacing:-.025em}
.camp-booking-panel .camp-consent{font-size:.7rem}
.camp-has-selection .camp-booking-panel .camp-total{margin:18px 0;padding:16px 0}
.camp-has-selection .camp-panel-assurance{margin-top:20px;padding-top:15px}

.camp-booking-panel button:focus-visible{outline:2px solid #446940;outline-offset:3px}

/* Exact PDF paths; opaque state fills cover the source numbers cleanly. */
.camp-plot .camp-plot-shape{fill-opacity:1}
.camp-plot text{font-size:10px;stroke-width:.3px}
.camp-area path{fill:transparent;stroke:transparent;stroke-width:2}
.camp-area:hover path,.camp-area:focus-visible path{stroke:#f5dfb1;fill:#ffffff0a}
.camp-area{cursor:pointer;outline:none}

/* Homepage: the complete photographic plan, visible without JavaScript. */
.camp__inner { max-width:1360px; }
.camp-intro { display:block;max-width:760px;text-align:left; }
.camp-intro>p { max-width:52ch;margin-top:22px; }
.camp-overview { margin:36px 0 0;text-align:left; }
.camp-overview__image { display:block;overflow:hidden;border:1px solid #adc3b02b;border-radius:10px;background:#112622; }
.camp-overview__image img { display:block;width:100%;height:auto; }
.camp-overview figcaption { display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0 0; }
.camp-overview h3 { font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:clamp(1.25rem,2vw,1.6rem);line-height:1.3;color:#f2eddf; }
.camp-overview figcaption p { margin-top:6px;font-size:.84rem;line-height:1.6;color:#aebdb6; }
.camp-overview__zoom { display:inline-flex;align-items:center;gap:14px;min-height:44px;color:#dbc597;font-size:.82rem;text-decoration:underline;text-underline-offset:5px;flex-shrink:0; }
.camp-overview__zoom span[aria-hidden] { font-size:1.2rem; }
.camp-overview a:focus-visible { outline:3px solid #dbc597;outline-offset:5px; }
.camp-overview__booking { padding-top:28px;border-top:1px solid #adc3b02b;text-align:center; }
.camp-overview__booking p { font-size:.82rem;line-height:1.6;margin-top:12px; }
.camp:has(.camp-overview) .camp-cards { margin:38px 0 32px; }
@media(max-width:640px) {
  .camp-overview { margin-top:28px; }
  .camp-overview figcaption { display:block;padding-top:18px; }
  .camp-overview__zoom { margin-top:8px; }
  .camp-overview__booking .btn { width:100%;white-space:normal; }
  .camp-intro h2 { font-size:clamp(2rem,7vw,2.7rem); }
}

/* Homepage plot links share the exact geometry of the reservation map. */
.camp-overview__image { position:relative; }
.camp-overview__image>svg { position:absolute;inset:0;width:100%;height:100%;display:block; }
.camp-overview__image svg a { cursor:pointer;outline:none; }
.camp-overview__image svg path { fill:transparent;stroke:transparent;stroke-width:2;vector-effect:non-scaling-stroke; }
.camp-overview__image svg a:hover path,.camp-overview__image svg a:focus path { fill:#f0c97e45;stroke:var(--gold2); }
.camp-overview__choices { margin-top:20px;padding-top:16px;border-top:1px solid var(--line); }
.camp-overview__choices summary { color:var(--gold2);font-size:.84rem;cursor:pointer;min-height:44px;align-content:center; }
.camp-overview__list { display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:8px;margin-top:12px; }
.camp-overview__list a { display:grid;place-items:center;min-height:48px;color:var(--cream);background:var(--panel);border:1px solid var(--line2);border-radius:8px;font-variant-numeric:tabular-nums; }
.camp-overview__list a:hover { border-color:var(--gold);color:var(--gold2); }
@media(prefers-reduced-motion:no-preference) { .camp-overview__image svg path { transition:fill .15s,stroke .15s; } }

/* Clear service comparison using the existing site identity. */
.camp-services { list-style:none;display:grid;gap:0;margin:14px 0 0;padding:0;text-align:left; }
.camp-services li { display:flex;align-items:center;gap:12px;min-height:42px;max-width:100%;padding:9px 0;border-bottom:1px solid var(--line);color:var(--cream);font-size:.82rem;line-height:1.4; }
.camp-services li:last-child { border-bottom:0; }
.camp-services li::before { content:"";display:block;width:20px;height:20px;flex:0 0 20px;background:var(--gold2);mask:url("assets/icon-service-water.svg") center / contain no-repeat;-webkit-mask:url("assets/icon-service-water.svg") center / contain no-repeat; }
.camp-services li:nth-child(2)::before { mask-image:url("assets/icon-service-power.svg");-webkit-mask-image:url("assets/icon-service-power.svg"); }
.camp-services[data-without-services] li { color:var(--muted); }
.camp-services[data-without-services] li::before { background:var(--muted); }
.camp-service-guide { margin:0 0 32px;text-align:left; }
.camp-service-guide__header { display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px; }
.camp-service-guide__header h4 { font-family:'Fraunces',Georgia,serif;font-size:1.4rem;font-weight:500;color:var(--cream); }
.camp-service-guide__header p { font-size:.8rem;color:var(--muted);line-height:1.6; }
.camp-service-guide__cards { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px; }
.camp-service-guide article { min-width:0;padding:24px;border:1px solid var(--line2);border-radius:16px;background:var(--panel); }
.camp-service-guide__title { display:flex;align-items:center;gap:14px; }
.camp-service-symbol { display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border:1px solid var(--line2);border-radius:12px;background:var(--bg);color:var(--gold2); }
.camp-service-symbol svg { display:block;width:24px;height:24px; }
.camp-service-guide h5 { font-family:'Fraunces',Georgia,serif;color:var(--cream);font-size:1.24rem;font-weight:500;line-height:1.25; }
.camp-service-guide article>p { color:var(--muted);font-size:.77rem;line-height:1.6;margin:16px 0;min-height:2.5em; }
.camp-service-guide .camp-services { padding:8px 14px;margin:0;border:1px solid var(--line);border-radius:10px;background:var(--bg2); }
.camp-booking-panel .camp-services { padding:8px 12px;margin:12px 0 20px;background:var(--bg2);border:1px solid var(--line);border-radius:10px; }
.camp-booking-panel .camp-services li { font-size:.8rem; }
.camp-site-list button strong { grid-row:span 3; }
.camp-site-list button .camp-site-services { color:var(--gold2);font-size:.72rem; }

/* Photographic cards put the nightly rate and hookups at the same level. */
.camp .camp-cards { gap:22px;align-items:stretch; }
.camp .camp-card { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 10px;padding:0 22px;overflow:hidden;border:1px solid var(--line2);border-radius:18px;background:var(--panel);align-content:start; }
.camp .camp-card .cc-img { grid-column:1 / -1;grid-row:1;width:calc(100% + 44px);height:190px;max-width:none;aspect-ratio:auto;margin:0 -22px 8px;border-radius:0;align-self:start;object-fit:cover; }
.camp .camp-card h3 { grid-column:1;grid-row:2;font-size:1.4rem;line-height:1.25;align-self:center;color:var(--cream); }
.camp .camp-card .cc-price { grid-column:2;grid-row:2;color:var(--gold2);font-size:1.75rem;line-height:1.15;align-self:center; }
.camp .camp-card .cc-price small { display:block;font-family:Inter,sans-serif;font-size:.65rem;line-height:1.5;text-align:right;color:var(--muted); }
.camp .camp-card .cc-desc { grid-column:1 / -1;grid-row:3;min-height:3.4em;max-width:none;font-size:.8rem;line-height:1.65;color:var(--muted); }
.camp .camp-card .camp-services { grid-column:1 / -1;grid-row:4;margin:0;padding:6px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg2); }
.camp-card__link { grid-column:1 / -1;grid-row:5;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:62px;margin-top:4px;border-top:1px solid var(--line);color:var(--gold2);font-size:.8rem; }
.camp-card__link>span { display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line2);border-radius:50%;font-size:1rem; }
.camp-card__link:hover>span { background:var(--gold2);border-color:var(--gold2);color:var(--bg); }
.camp-card__link:focus-visible { outline:2px solid var(--gold2);outline-offset:-3px;border-radius:4px; }
@media(prefers-reduced-motion:no-preference) {
 .camp .camp-card { transition:border-color .2s; }
 .camp .camp-card:has(.camp-card__link:hover) { border-color:var(--gold); }
 .camp-card__link>span { transition:background .2s,color .2s; }
}
@media(max-width:1050px) {
 .camp-service-guide article { padding:18px; }
 .camp-service-guide__title { gap:10px; }
 .camp-service-guide h5 { font-size:1.12rem; }
 .camp .camp-cards { gap:16px; }
 .camp .camp-card { padding-inline:16px; }
 .camp .camp-card .cc-img { width:calc(100% + 32px);height:165px;margin-inline:-16px; }
 .camp .camp-card h3 { font-size:1.16rem; }
 .camp .camp-card .cc-price { font-size:1.5rem; }
}
@media(max-width:780px) {
 .camp-service-guide__header { display:block; }
 .camp-service-guide__header p { margin-top:6px; }
 .camp-service-guide__cards { grid-template-columns:1fr;gap:10px; }
 .camp-service-guide article { display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;align-items:center;padding:18px; }
 .camp-service-guide .camp-services { grid-column:2;grid-row:1 / span 2; }
 .camp-service-guide article>p { grid-column:1;min-height:0;margin:0; }
}
@media(max-width:720px) {
 .camp .camp-cards { grid-template-columns:1fr;gap:22px; }
 .camp .camp-card { grid-template-columns:minmax(0,1fr) auto;padding-inline:20px; }
 .camp .camp-card .cc-img { width:calc(100% + 40px);height:175px;margin-inline:-20px; }
 .camp .camp-card h3 { font-size:1.45rem; }
 .camp .camp-card .cc-price { font-size:1.8rem; }
 .camp .camp-card .cc-desc { min-height:0; }
}
@media(max-width:430px) {
 .camp-service-guide article { grid-template-columns:.9fr 1.1fr;gap:12px;padding:14px; }
 .camp-service-guide__title { flex-direction:column;align-items:flex-start;gap:8px; }
 .camp-service-guide .camp-services { grid-column:2;grid-row:1;padding:4px 10px; }
 .camp-service-guide article>p { display:none; }
 .camp-service-guide h5 { font-size:1.05rem; }
 .camp-service-guide .camp-services li { font-size:.72rem;gap:8px; }
 .camp-services li { font-size:.8rem; }
}

.camp-booking-panel textarea,#cNotes{box-sizing:border-box;width:100%;min-height:88px;resize:vertical;border:1px solid var(--line,#ccc8b9);border-radius:10px;padding:12px 14px;background:var(--panel,#17201b);color:var(--cream,#f4efe4);font:inherit;line-height:1.5}
.camp-booking-panel textarea:focus-visible,#cNotes:focus-visible{outline:3px solid #b28c43;outline-offset:3px}
.camp-booking-panel textarea:disabled,#cNotes:disabled{opacity:.65}

.camp-note-label{display:grid;gap:8px;font-size:.85rem;line-height:1.5;margin:12px 0 20px;color:var(--cream)}.camp-note-label>span{font-size:.75rem;color:var(--muted)}

/* One stay can include several numbered plots. */
.camp-selected-sites{list-style:none;margin:1rem 0;padding:0;display:grid;gap:.6rem}
.camp-selected-sites li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem 0;border-bottom:1px solid rgba(35,61,49,.14);font-size:.82rem;line-height:1.5}
.camp-selected-sites li span{min-width:0}
.camp-selected-sites button{flex:none;min-height:44px;padding:.5rem .7rem;border:1px solid rgba(35,61,49,.25);border-radius:8px;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer}
.camp-selected-sites button:hover{background:rgba(35,61,49,.07)}
.camp-selected-sites button:active{transform:translateY(1px)}
.camp-selected-sites button:focus-visible{outline:3px solid var(--gold,#c79443);outline-offset:3px}
.camp-selected-sites button:disabled{opacity:.5;cursor:default;transform:none}

/* Stay hours remain visible before the date picker and on small screens. */
.camp-check-times{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0 0 24px;border:1px solid #d8c18c80;border-radius:12px;background:#ede5d2;color:#172631;overflow:hidden}
.camp-check-times>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:19px 25px}
.camp-check-times>div+div{border-left:1px solid #17263130}
.camp-check-times span{font-size:15px;font-weight:650;letter-spacing:.02em}
.camp-check-times strong{font-family:'Fraunces',Georgia,serif;font-size:30px;line-height:1.2;font-weight:600;white-space:nowrap}
.camp-check-times small{font-size:14px;font-weight:500;opacity:.75;margin-left:6px}
@media(max-width:600px){.camp-check-times>div{align-items:flex-start;flex-direction:column;gap:7px;padding:16px 20px}.camp-check-times strong{font-size:27px}.camp-check-times small{font-family:inherit;font-size:13px}}
