.booking-modal .booking-layout{grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr)}
.booking-modal .public-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 12px;font-size:10px}
.booking-modal .public-map-toolbar>span{color:#64746f;line-height:1.5}
.booking-modal .public-map-toolbar>div{display:flex;flex-shrink:0;border:1px solid #cbd5ca;border-radius:5px;padding:3px;background:#fff}
.booking-modal .public-map-toolbar button{background:transparent;color:#53675f;border:0;padding:8px 10px;font-size:10px;font-weight:700;border-radius:3px;white-space:nowrap;min-height:34px}
.booking-modal .public-map-toolbar button[aria-pressed=true]{background:#214c4d;color:#fff}
.booking-modal .booking-beach-map{padding:0;min-width:0;max-width:100%;overflow:hidden;border:1px solid #d7d5c7;border-radius:7px;background:#eee7d7}
.booking-modal .public-unit-grid{display:block;width:100%;max-width:100%;max-height:480px;overflow:auto;padding:0;position:relative;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8eaa9d #e9e7da;scroll-behavior:auto;touch-action:pan-x pan-y}
.booking-modal .public-unit-grid:focus-visible{outline-offset:-4px}
.booking-modal .public-map-canvas{position:relative;flex-shrink:0;max-width:none}
.booking-modal .public-beach-layout{transform-origin:0 0;max-width:none}
.booking-modal .public-map-hint{font-size:10px!important;line-height:1.6;color:#5d7168;margin:10px 0 0}
.booking-modal .map-legend{margin:15px 0 12px}
.booking-modal .public-unit{--unit-fill:#dcebd7;--unit-edge:#6b9470;--unit-ink:#254f36;--unit-stripe:#c3dcbd;position:relative;display:block;width:100%;height:100%;min-width:0;min-height:0;gap:0;padding:0;border:1px solid var(--unit-edge);border-radius:3px;background:var(--unit-fill);color:var(--unit-ink);box-shadow:0 2px 2px #173d4317;opacity:1;font:800 11px/1.1 var(--sans);transition:background .15s,box-shadow .15s}
.booking-modal .public-unit-drawing{position:absolute;inset:0;pointer-events:none}
.booking-modal .public-unit-drawing .beach-canopy-symbol{display:block;width:100%;height:100%;stroke-width:1.1}
.booking-modal .public-unit-id{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;pointer-events:none;text-shadow:0 1px 1px #ffffff80;letter-spacing:-.3px}
.booking-modal .public-unit.busy{--unit-fill:#e6dfd3;--unit-edge:#b0a695;--unit-ink:#84796a;--unit-stripe:#d2c7b8;background:var(--unit-fill);border-color:var(--unit-edge);color:var(--unit-ink);box-shadow:none}
.booking-modal .public-unit.busy:after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent 48%,#b3a79466 49% 51%,transparent 52%);pointer-events:none}
.booking-modal .public-unit.free:hover{--unit-fill:#cce1c4;--unit-edge:#2f6542;--unit-stripe:#bad5b1;background:var(--unit-fill);border-color:var(--unit-edge);box-shadow:0 0 0 2px #2f65422b}
.booking-modal .public-unit.selected,.booking-modal .public-unit.selected:hover{--unit-fill:#214c4d;--unit-edge:#fff;--unit-ink:#fff;--unit-stripe:#386564;background:var(--unit-fill);color:#fff;border-color:#214c4d;box-shadow:0 0 0 2px #fff,0 0 0 4px #214c4d}
.booking-modal .public-unit.selected .public-unit-id{text-shadow:none}
.booking-modal .public-unit:focus-visible{outline:3px solid #bb6945;outline-offset:3px;z-index:3}
.booking-modal .public-umbrella{border-radius:50%}
.booking-modal .public-umbrella .public-unit-drawing{display:flex;align-items:center;justify-content:center}
@media(max-width:960px){.booking-modal .booking-layout{gap:25px;grid-template-columns:minmax(0,1.5fr) minmax(230px,1fr)}.booking-modal .public-map-toolbar{flex-wrap:wrap;gap:8px}}
@media(max-width:760px){.booking-modal .booking-layout{grid-template-columns:minmax(0,1fr)}.booking-modal .public-unit-grid{max-height:min(460px,65svh)}.booking-modal .public-map-toolbar{align-items:center;gap:8px}.booking-modal .public-map-toolbar>span{max-width:130px;font-size:9px}.booking-modal .public-map-toolbar button{font-size:9px;padding:8px;min-height:38px}.booking-modal .public-map-hint{font-size:10px!important}.booking-modal .booking-summary{margin-top:0}}
@media(prefers-reduced-motion:reduce){.booking-modal .public-unit{transition:none}}
.tariff-home-note{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:30px;padding-top:24px;border-top:1px solid #d0d6c8}
.tariff-home-note p{font-size:12px;line-height:1.8;max-width:580px;color:#5c7068}
.tariff-home-note .text-link{flex-shrink:0}
.booking-modal .quote-package{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid #d0d7c9;font-size:11px}
.booking-modal .quote-package strong{font-weight:800;line-height:1.6}
.booking-modal .quote-package>span{font-size:10px;color:#64776c;white-space:nowrap}
.booking-modal .quote-breakdown{margin:7px 0 0}
.booking-modal .quote-breakdown>div{font-size:12px;align-items:flex-start;gap:15px;margin-bottom:15px}
.booking-modal .quote-breakdown dt{line-height:1.6;min-width:0}
.booking-modal .quote-breakdown dt>span{display:block;color:#4f685c}
.booking-modal .quote-breakdown dt>small{display:block;font-size:10px;font-weight:400;color:#687b70;margin-top:3px}
.booking-modal .quote-breakdown dd{padding-top:2px;white-space:nowrap;font-size:12px}
.booking-modal .quote-breakdown .quote-subtotal{border-top:1px solid #d0d7c9;padding-top:14px}
.booking-modal .quote-breakdown .quote-discount{color:#376e4c;font-size:12px}
.booking-modal .quote-breakdown .quote-discount dt{color:inherit}
.booking-modal .quote-deposit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 15px;background:#e0e8d9;border:1px solid #c5d3bf;padding:13px;border-radius:4px;margin:0 0 20px;font-size:11px;line-height:1.6}
.booking-modal .quote-deposit strong{white-space:nowrap}
.booking-modal .quote-deposit small{grid-column:1/-1;color:#63785e;font-size:10px}
.tariff-modal{max-width:1050px}
.tariff-modal h2{max-width:800px}
.tariff-modal>p{font-size:13px;line-height:1.85}
.tariff-table-scroll{width:100%;overflow:auto;scrollbar-width:thin;margin:28px 0 22px;border:1px solid #d2d9cd;border-radius:5px}
.tariff-table{width:100%;min-width:660px;border-collapse:collapse;font-size:12px;text-align:right}
.tariff-table caption{text-align:left;background:#e8eddf;padding:15px 17px;font-size:10px;font-weight:800;letter-spacing:.8px}
.tariff-table th,.tariff-table td{padding:15px 17px;border-top:1px solid #d9dfd2;white-space:nowrap}
.tariff-table thead th{font-size:10px;background:#f1f2e9;color:#627564;font-weight:700}
.tariff-table tr>th:first-child{text-align:left}
.tariff-table tbody th{font-weight:700}
.tariff-table tbody tr:nth-child(even){background:#f0f1e8}
.tariff-packages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}
.tariff-packages>div{background:#e8eddf;border:1px solid #d2ddc9;border-radius:4px;padding:18px;display:flex;flex-direction:column;gap:8px}
.tariff-packages strong{font-size:20px;font-weight:700}
.tariff-packages span{font-size:12px;font-weight:600}
.tariff-packages small{font-size:10px;color:#6b7b63}
.tariff-modal p.tariff-conditions{font-size:11px;line-height:1.85;color:#66765e;margin:17px 0}
.tariff-season-table{background:#f0f1e7;padding:9px 17px;border:1px solid #d4dcca;border-radius:4px}
.tariff-season-table>div{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:11px 0;border-bottom:1px solid #d9dfd1;font-size:11px}
.tariff-season-table>div:last-child{border-bottom:0}
.tariff-season-table strong{white-space:nowrap}
.tariff-references{border-top:1px solid #d3dbcc;margin-top:28px;padding-top:24px}
.tariff-references h3{font:500 29px/1.2 var(--serif);margin-bottom:10px}
.tariff-references>p,.tariff-references li>span{font-size:10px;line-height:1.8;color:#6b7a64}
.tariff-references ul{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:19px}
.tariff-references li{display:flex;flex-direction:column;gap:6px}
.tariff-references li>a{display:flex;gap:9px;align-items:center;font-size:11px;font-weight:700;text-decoration:underline;text-underline-offset:3px;line-height:1.7}
.tariff-references li>a svg{width:14px;height:14px}
@media(max-width:760px){.tariff-home-note{display:block;margin-top:25px}.tariff-home-note .text-link{margin-top:13px}.tariff-home-note p{font-size:12px}.tariff-modal{padding:45px 20px 25px}.tariff-modal h2{font-size:37px;margin-top:20px}.tariff-modal>.eyebrow{font-size:8px}.tariff-modal>p{font-size:12px}.tariff-packages{gap:7px}.tariff-packages>div{padding:13px 8px;gap:6px}.tariff-packages strong{font-size:16px}.tariff-packages span{font-size:10px}.tariff-packages small{font-size:8px}.tariff-table th,.tariff-table td{padding:13px 14px}.tariff-table{font-size:11px}.tariff-season-table{padding:6px 12px}.tariff-season-table>div{font-size:10px;line-height:1.7;gap:12px}.booking-modal .quote-deposit{font-size:11px}.booking-modal .quote-breakdown>div{font-size:12px}.booking-modal .quote-package{font-size:12px}}

.booking-modal .public-context-unit{position:relative;display:block;width:44px;height:44px;color:#94a99d;opacity:.55;pointer-events:none}.booking-modal .public-context-unit>svg{width:100%;height:100%;display:block}.booking-modal .public-context-unit>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:#647a70}
