/* Camping map keeps the site's forest, cream and gold palette. */
.camp-booking{--camp-text:#f5f0e5;--camp-muted:#c0c9c1;--camp-line:#ffffff24;color:var(--camp-text);text-align:left;margin-top:30px;scroll-margin-top:90px}
.camp-booking [hidden]{display:none!important}
.camp-stay{display:flex;align-items:end;gap:18px;border-block:1px solid var(--camp-line);padding:20px 0}
.camp-stay label{display:grid;gap:8px;flex:0 1 220px;font-size:.88rem;font-weight:600}
.camp-booking input{font:inherit;color:var(--camp-text);background:#15251f;border:1px solid #627366;border-radius:7px;min-height:46px;padding:11px 12px;min-width:0;width:100%;color-scheme:dark}
.camp-booking input:focus-visible,.camp-booking button:focus-visible,.camp-map-viewport:focus-visible{outline:3px solid #f5d395;outline-offset:3px}
.camp-stay p{margin:0 auto 12px 0;color:var(--camp-muted);font-size:.9rem}
.camp-stay>button,.camp-map-tools button{background:transparent;color:var(--camp-text);border:1px solid var(--camp-line);border-radius:6px;padding:10px 12px;font:inherit;cursor:pointer;min-height:42px;font-size:.84rem}
.camp-stay>button:hover,.camp-map-tools button:hover{background:#ffffff12}
.camp-availability{min-height:26px;font-size:.9rem!important;color:var(--camp-muted)!important;margin:15px 0!important;text-align:left!important;max-width:none!important}
.camp-booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start}
.camp-map-tools{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 12px}
.camp-map-tools>span{font-size:.88rem;color:var(--camp-muted)}
.camp-map-tools>div{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.camp-map-tools button[data-zoom="in"],.camp-map-tools button[data-zoom="out"]{font-size:1.3rem;line-height:1;padding:8px 13px}
.camp-map-viewport{overflow:auto;border:1px solid var(--camp-line);border-radius:10px;background:#172c23;max-height:none;overscroll-behavior:contain;scrollbar-color:#9eae9d #25392e;touch-action:pan-x pan-y pinch-zoom}
.camp-map-viewport[data-zoomed="true"]{max-height:75svh}
.camp-map-viewport svg{display:block;width:100%;height:auto;max-width:none}
.camp-plot{cursor:pointer;outline:none}
.camp-plot .camp-plot-shape{fill:#ab2438;fill-opacity:.83;stroke:#ffece359;stroke-width:1.5;transition:fill .15s,stroke-width .15s}
.camp-plot text{fill:#fff;font-family:Arial,sans-serif;font-size:14px;font-weight:700;text-anchor:middle;dominant-baseline:central;pointer-events:none;paint-order:stroke;stroke:#402016;stroke-width:.6px}
.camp-plot[data-state="occupied"] .camp-plot-shape{fill:#4e5554;fill-opacity:.96;stroke:#dde3df80;stroke-dasharray:4 3}
.camp-plot[data-state="closed"] .camp-plot-shape{fill:#b59b33;fill-opacity:.95}
.camp-plot[data-state="unknown"] .camp-plot-shape{fill:#686d68;fill-opacity:.93;stroke:#ffffff35}
.camp-plot[data-state="selected"] .camp-plot-shape{fill:#fff2d1;fill-opacity:1;stroke:#e7ac53;stroke-width:4}
.camp-plot[data-state="selected"] text{fill:#273523;stroke:none}
.camp-plot[aria-disabled="true"]{cursor:not-allowed}
.camp-plot[aria-disabled="false"]:hover .camp-plot-shape,.camp-plot:focus-visible .camp-plot-shape{stroke:#fff;stroke-width:4;fill-opacity:1}
.camp-map-legend{display:flex;flex-wrap:wrap;gap:12px 20px;margin:15px 0 8px;font-size:.8rem;color:var(--camp-muted)}
.camp-map-legend span{display:flex;align-items:center;gap:7px}
.camp-map-legend i{width:13px;height:13px;display:block;border:1px solid #ffffff55;border-radius:2px}
.camp-map-legend .available{background:#ab2438}.camp-map-legend .selected{background:#fff2d1}.camp-map-legend .occupied{background:#4e5554}.camp-map-legend .closed{background:#b59b33}
.camp-map-hint,.camp-map-foot{font-size:.78rem!important;color:var(--camp-muted)!important;line-height:1.5;margin:10px 0!important;max-width:none!important;text-align:left!important}
.camp-site-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:590px;overflow:auto;align-content:start;padding:2px}
.camp-site-list button{display:grid;grid-template-columns:36px 1fr;gap:3px 8px;background:#1c3025;border:1px solid #5d7662;color:var(--camp-text);text-align:left;padding:12px;border-radius:7px;cursor:pointer;min-height:72px;font:inherit}
.camp-site-list strong{font-size:1.3rem;grid-row:span 2}.camp-site-list span,.camp-site-list small{font-size:.8rem;line-height:1.4}.camp-site-list small{color:#c0c9c1}.camp-site-list button:disabled{opacity:.63;cursor:not-allowed}.camp-site-list [aria-pressed="true"]{border-color:#f5d395;background:#354332}
.camp-booking-panel{background:#18271e;padding:24px;border:1px solid #a7b6994a;border-radius:12px;margin-top:54px;position:sticky;top:100px;scroll-margin-top:100px}
.camp-panel-caption{font-size:.65rem!important;letter-spacing:.12em;color:#bfceb4!important;margin:0 0 16px!important;text-align:left!important}
.camp-booking-panel h3{font-family:inherit;font-size:1.45rem;line-height:1.22;font-weight:600;margin:0 0 14px;color:#f4eddb}
.camp-booking-panel>[data-selection-detail]{font-size:.95rem;line-height:1.6;color:var(--camp-muted);margin:0 0 14px;max-width:none;text-align:left}
.camp-total{font-size:1.05rem;font-weight:600;line-height:1.65;margin-bottom:17px;color:#f2d49a}
.camp-booking-panel form{display:grid;gap:14px}
.camp-booking-panel form>label:not(.camp-consent){display:grid;gap:6px;font-size:.83rem;font-weight:500}
.camp-consent{display:flex;align-items:flex-start;gap:10px;font-size:.74rem;line-height:1.5;color:var(--camp-muted)}
.camp-consent input{width:18px;height:18px;min-height:18px;flex:0 0 18px;margin-top:2px;accent-color:#debe77}
.camp-consent a{color:#f2d49a;text-decoration:underline;text-underline-offset:3px}
.camp-booking-panel .btn{white-space:normal;text-align:center;width:100%;min-height:48px;font-size:.88rem;justify-content:center}
.camp-booking button:disabled{cursor:not-allowed;opacity:.6}
.camp-payment{font-size:.74rem!important;line-height:1.4;color:var(--camp-muted)!important;margin:0!important;text-align:center!important}
[data-booking-message]{font-size:.85rem!important;line-height:1.6;color:#f3dbab!important;margin:16px 0 0!important;text-align:left!important;max-width:none!important}
[data-booking-message]:empty{display:none}
.rez.camping-active{max-width:1360px}.rez.camping-active #tab-camping{padding:0;background:transparent;border:0;box-shadow:none}
.rez .camp-booking{margin-top:0}.rez .camp-booking-panel h3{font-family:inherit}
.camp-non-numbered{margin-top:25px;border-top:1px solid #ffffff30;padding-top:20px}.camp-non-numbered summary{cursor:pointer;color:#edd199;font-size:.95rem;padding:12px 0}.camp-non-numbered .rent-form{max-width:640px;margin:20px auto}
.camp__inner:has(.camp-booking){max-width:1400px}
@media(max-width:1050px){.camp-booking-layout{grid-template-columns:minmax(0,1fr) 250px;gap:18px}.camp-booking-panel{padding:18px}.camp-map-tools>span{font-size:.8rem}}
@media(max-width:780px){.camp-booking-layout{grid-template-columns:1fr}.camp-booking-panel{display:block;position:static;margin-top:24px;padding:24px 0}.camp-stay{flex-wrap:wrap;gap:12px}.camp-stay label{flex:1 1 calc(50% - 12px)}.camp-stay p{flex:1 1 auto;margin-bottom:8px}.camp-stay>button{margin-left:auto}.camp-map-tools{justify-content:flex-end}.camp-map-viewport{max-height:none}.camp-map-viewport svg{min-width:0}.camp-site-list{grid-template-columns:repeat(2,minmax(0,1fr))}.camp-booking-panel .btn{max-width:none}.camp-map-foot{margin-bottom:20px!important}}
@media(max-width:380px){.camp-site-list{grid-template-columns:1fr}.camp-map-tools button{padding-inline:9px}}
@media(prefers-reduced-motion:reduce){.camp-plot .camp-plot-shape{transition:none}}

.camp-selection-action{display:none;justify-content:flex-end;margin:16px 0}.camp-selection-action button{border:1px solid #d3b57b;border-radius:7px;background:#eed39d;color:#18271e;padding:12px 20px;min-height:46px;font:inherit;font-weight:600;cursor:pointer}
@media(max-width:780px){.camp-map-tools>span{display:none}.camp-selection-action{display:flex}.camp-selection-action button{width:100%}}
