.places-page{background:#f6f8f5}
.places-top{--gutter:max(clamp(22px,6.7vw,80px),env(safe-area-inset-left,0px),env(safe-area-inset-right,0px));position:relative;isolation:isolate;overflow:clip;padding-top:env(safe-area-inset-top,0px);color:#fafffa;background:radial-gradient(ellipse at 34% 34%,#001c12 0,transparent 55%),radial-gradient(ellipse at 104% 62%,#389950 0,transparent 55%),linear-gradient(115deg,#00432d,#002f20 51%,#167344)}
.places-top::after{content:"";position:absolute;z-index:-1;right:-160px;bottom:-260px;width:560px;height:560px;border:1px solid #8adba52e;border-radius:50%;box-shadow:0 0 0 70px #8adba50a,0 0 0 140px #8adba507;pointer-events:none}
.places-header{max-width:1200px;margin-inline:auto;padding:20px var(--gutter) 0;display:flex;align-items:center;justify-content:space-between;gap:18px}
.places-brand{display:block;width:clamp(96px,16vw,140px);flex-shrink:0}
.places-brand img{display:block;width:100%;height:auto}
.places-nav{display:flex;align-items:center;gap:8px}
.places-nav a{display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:11px 16px;border:1px solid transparent;border-radius:15px;font-size:13px;font-weight:750;line-height:1.2;color:#e7fbec;transition:background .2s}
.places-nav a:hover{background:#ffffff12}
.places-nav .places-nav-book{background:#c4ffd2;border-color:#c4ffd2;color:#00170b}
.places-nav .places-nav-book:hover{background:#dcffe3}
.places-nav .ui-icon{width:17px;height:17px}
.places-hero{max-width:1200px;margin-inline:auto;padding:clamp(40px,8vw,80px) var(--gutter) clamp(60px,9vw,100px)}
.places-hero h1{font-size:clamp(34px,8.4vw,72px);line-height:1;letter-spacing:-.045em;margin:22px 0 20px;max-width:900px;overflow-wrap:break-word;hyphens:auto}
.places-hero .intro{max-width:660px}
.places-hero .location .ui-icon{width:16px;height:16px;color:#c4ffd3}
.places-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px 10px;margin:0 0 22px;padding:0;font-size:12px;line-height:1.5;color:#a9d4b4}
.places-crumbs li+li::before{content:"/";margin-right:10px;color:#5f9a74}
.places-crumbs a{color:#d5ffe0;text-decoration:underline;text-decoration-color:#d5ffe066;text-underline-offset:3px}
.places-crumbs a:hover{text-decoration-color:#d5ffe0}
.places-crumbs [aria-current]{color:#fafffa;font-weight:700}
.place-facts{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 0;padding:0;list-style:none}
.place-facts li{display:inline-flex;align-items:center;gap:9px;padding:9px 14px;border:1px solid #2f7f55;border-radius:100px;background:#00412c66;font-size:13px;line-height:1.3;color:#e3f8e8}
.place-facts .ui-icon{width:17px;height:17px;color:#c4ffd2}

.places-section{--ink:#13392b;--muted:#63766b;--line:#dce6dc;padding:clamp(58px,8vw,100px) max(clamp(22px,6.7vw,80px),env(safe-area-inset-left,0px),env(safe-area-inset-right,0px));background:#f6f8f5;color:var(--ink);scroll-margin-top:16px}
.places-section.is-white{background:#fff}
.places-section.is-tinted{background:#edf4ed}
.places-inner{max-width:1200px;margin-inline:auto}
.places-section h2{margin:0;font-size:clamp(30px,4.3vw,48px);line-height:1.1;letter-spacing:-.05em;font-weight:800}
.places-heading{max-width:640px}
.places-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;max-width:none}
.places-heading-row .home-inline-link{margin-top:0}
.places-lead{margin:20px 0 0;max-width:600px;font-size:clamp(15px,1.8vw,17px);line-height:1.8;color:var(--muted)}
.places-section a:focus-visible{outline:3px solid #287e53;outline-offset:5px}

.places-map-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(30px,6vw,80px);align-items:center}
.places-map{margin:0;padding:clamp(10px,2vw,20px);border:1px solid #d5e3d5;border-radius:25px;background:#f7faf6}
.places-map-svg{display:block;width:100%;height:auto;font-family:var(--font-sans)}
.places-map-svg text{stroke:none}
.places-map figcaption{margin-top:8px;text-align:center;font-size:10px;line-height:1.6;color:#7d917f}
.map-ring{fill:none;stroke:#b8d2bc;stroke-width:1.2;stroke-dasharray:4 6}
.map-ring-label{fill:#7d9a82;font-size:10px;font-weight:700}
.map-north path{fill:#9db8a2;stroke:none}
.map-north text{fill:#7d9a82;font-size:10px;font-weight:800;text-anchor:middle}
.map-home circle:first-child{fill:#c4ffd280;stroke:#2b8a57;stroke-width:1.5}
.map-home circle:nth-child(2){fill:#0c573a;stroke:none}
.map-home text{fill:#13392b;font-size:12px;font-weight:800;dominant-baseline:central}
.map-leader{stroke:#6d9a78;stroke-width:1.2}
.map-dot{fill:#0c573a;stroke:none}
.map-badge circle{fill:#0c573a;stroke:#f7faf6;stroke-width:2.5;transition:fill .2s}
.map-badge text{fill:#d5ffe0;font-size:12px;font-weight:800;text-anchor:middle;dominant-baseline:central}
.places-map-svg a:hover .map-badge circle,.places-map-svg a:focus-visible .map-badge circle{fill:#2b8a57}
.places-map-svg a:focus-visible{outline:none}
.places-map-svg a:focus-visible .map-badge circle{stroke:#13392b}
.map-legend{list-style:none;margin:30px 0 0;padding:0;border-top:1px solid #d5e3d5}
.map-legend a{display:flex;align-items:center;gap:14px;min-height:56px;padding:9px 0;border-bottom:1px solid #d5e3d5}
.map-legend-num{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;background:#0c573a;color:#d5ffe0;font-size:11px;font-weight:800}
.map-legend-name{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;min-width:0}
.map-legend-name strong{font-size:15px;font-weight:700;letter-spacing:-.02em}
.map-legend-name small{font-size:12px;color:#6f8a75}
.map-legend-km{margin-left:auto;flex:none;font-size:12px;font-weight:800;color:#2b6e49}
.map-legend a:hover strong{color:#0c573a;text-decoration:underline;text-underline-offset:3px}

.places-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:40px}
.place-card{display:flex;flex-direction:column;min-width:0;padding:27px;border:1px solid #dce6dc;border-radius:24px;background:#fff;color:#13392b;transition:transform .2s,box-shadow .2s,border-color .2s}
.places-section.is-white .place-card{background:#f7faf6;border-color:#e2ebe1}
.place-card:hover{transform:translateY(-3px);border-color:#bfd6c3;box-shadow:0 14px 34px #1e462114}
.place-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:25px}
.place-card-icon{display:grid;place-items:center;width:51px;height:51px;border-radius:16px;background:#e9f4eb;color:#24754d}
.place-card-icon .ui-icon{width:25px;height:25px;stroke-width:1.6}
.place-num{font-size:11px;font-weight:800;letter-spacing:.1em;color:#89a08b}
.place-card h3{margin:10px 0 12px;font-size:clamp(21px,2.3vw,25px);line-height:1.2;letter-spacing:-.04em}
.place-card-text{display:block;margin:0 0 24px;font-size:14px;line-height:1.8;color:#63766b}
.place-card-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:auto;padding-top:18px;border-top:1px solid #e4ece4;font-size:12px;font-weight:800;color:#226c49}
.place-distance,.place-card-more{display:inline-flex;align-items:center;gap:8px}
.place-distance{color:#4f795b}
.place-card-foot .ui-icon{width:18px;height:18px;transition:transform .2s}
.place-card:hover .place-card-more .ui-icon{transform:translateX(3px)}

.place-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:0 clamp(36px,6vw,80px);align-items:start}
.place-main,.place-sources{grid-column:1}
.place-info{grid-column:2;grid-row:1 / span 2}
.place-highlights{list-style:none;margin:32px 0 0;padding:0;border-top:1px solid var(--line)}
.place-highlights li{display:flex;gap:16px;padding:21px 0;border-bottom:1px solid var(--line)}
.place-highlights li>.ui-icon{width:20px;height:20px;margin-top:4px;color:#24754d}
.place-highlights p{margin:0;font-size:15px;line-height:1.8;color:#3b5546}
.place-highlights strong{color:#13392b;font-weight:800}
.place-tip{display:flex;gap:16px;margin-top:32px;padding:22px 24px;border:1px solid #d3e6d6;border-radius:20px;background:#e9f4eb}
.places-note .place-tip{margin-top:0;background:#f7faf6}
.place-tip>.ui-icon{width:22px;height:22px;margin-top:1px;color:#24754d}
.place-tip h2,.place-tip h3{margin:0 0 7px;font-size:10px;line-height:1.5;letter-spacing:.16em;font-weight:800;color:#4d7e63}
.place-tip p{margin:0;font-size:14px;line-height:1.8;color:#2f4d3c}
.place-sources{margin-top:36px;font-size:12px;line-height:1.7;color:#71877a}
.place-sources h3{margin:0 0 6px;font-size:10px;letter-spacing:.16em;font-weight:800;color:#5d7968;text-transform:uppercase}
.place-sources p{margin:0 0 8px}
.place-sources ul{margin:0;padding-left:18px}
.place-sources li+li{margin-top:4px}
.place-sources a{color:#2b6e49;text-decoration:underline;text-decoration-color:#2b6e4955;text-underline-offset:3px;overflow-wrap:anywhere}
.place-sources a:hover{text-decoration-color:#2b6e49}
.place-info{position:sticky;top:24px;padding:clamp(24px,3vw,32px);border:1px solid #0c573a;border-radius:24px;background:linear-gradient(150deg,#0c573a,#073d2b);color:#e0efe4}
.place-info h2{margin:0 0 6px;font-size:22px;letter-spacing:-.03em;color:#f4fff6}
.place-info-row{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid #61957540}
.place-info-row>.ui-icon{width:19px;height:19px;margin-top:2px;color:#a9d4b4}
.place-info-row>div{min-width:0}
.place-info-row strong{display:block;margin-bottom:6px;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#9cc6aa}
.place-info-row address,.place-info-row p{margin:0;font-style:normal;font-size:14px;line-height:1.7;color:#e0efe4;overflow-wrap:anywhere}
.place-info-row a{color:#c6f8cf;font-weight:700;text-decoration:underline;text-decoration-color:#c6f8cf66;text-underline-offset:3px}
.place-info .place-book{width:100%;justify-content:space-between;margin-top:24px;min-height:56px;border-radius:15px;font-size:14px;background:#c6f8cf;border:1px solid #c6f8cf;color:#103c25}
.place-info .place-book:hover{background:#dcffe3}
.place-info .place-book .ui-icon{width:19px;height:19px}
.place-info-call{margin:14px 0 0;text-align:center;font-size:12px;color:#a4beac}
.place-info-call a{color:#e0efe4;font-weight:800;white-space:nowrap}
.place-info a:focus-visible{outline:3px solid #bbffc9;outline-offset:4px}
.places-contact .home-section-copy{max-width:520px}

@media(max-width:1000px){.places-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.places-map-grid{grid-template-columns:1fr}.places-map-grid .places-heading{max-width:none}.map-legend{display:grid;grid-template-columns:1fr 1fr;column-gap:28px}.place-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}}
@media(min-width:600px){.places-hero .button.secondary{width:auto}}
@media(max-width:760px){.place-layout{grid-template-columns:1fr;row-gap:40px}.place-info{position:static;grid-column:1;grid-row:auto}.place-sources{margin-top:0}.places-heading-row{flex-direction:column;align-items:flex-start;gap:14px}}
@media(max-width:620px){.places-grid{grid-template-columns:1fr;gap:14px;margin-top:30px}.map-legend{grid-template-columns:1fr}.place-card{padding:25px}.place-highlights li{gap:13px}.place-highlights p{font-size:14px}.place-tip{padding:20px;gap:13px}}
@media(max-width:480px){.places-nav .places-nav-secondary{display:none}.places-header{padding-top:16px}.places-hero h1{margin-top:18px}.place-facts li{font-size:12px}}
@media(prefers-reduced-motion:reduce){.place-card,.place-card-foot .ui-icon,.map-badge circle{transition:none}.place-card:hover{transform:none}}
