.parking-wrap { width:min(1200px,100%); margin:auto; padding-inline:24px; box-sizing:border-box; }
#site-content:has(.parking-hero) { color:#244b5c; background:#fbfaf6; font:18px/1.7 Arial,Helvetica,sans-serif; }
#site-content:has(.parking-hero) * { box-sizing:border-box; }
#site-content:has(.parking-hero) [hidden] { display:none !important; }
.parking-hero { padding-block:72px; }
.parking-eyebrow { font-size:14px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.parking-hero h1 { font:400 clamp(44px,6.5vw,82px)/1.04 Georgia,serif; letter-spacing:-.04em; margin:24px 0; }
.parking-hero > p:not(.parking-eyebrow) { max-width:700px; line-height:1.75; }
.parking-lead { font:400 25px/1.5 Georgia,serif; }
.parking-actions { display:flex; flex-wrap:wrap; gap:24px; align-items:center; margin-top:28px; }
.parking-button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; padding:12px 22px; background:#396f86; color:#fff; border:0; border-radius:999px; font:700 17px Arial,sans-serif; text-decoration:none; cursor:pointer; }
.parking-guide { padding-block:56px; background:#eef4f7; border-block:1px solid #d5dfe3; }
.parking-intro,.parking-notes { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
.parking-intro h2,.parking-notes h2 { font:400 clamp(30px,3.8vw,46px)/1.12 Georgia,serif; letter-spacing:-.03em; margin:14px 0; }
.parking-intro p,.parking-notes p { line-height:1.75; }
.parking-filters { display:flex; gap:24px; align-items:center; flex-wrap:wrap; margin-top:28px; }
.parking-filters label:not(.parking-check) { display:block; font-size:17px; font-weight:700; margin-bottom:8px; }
.parking-filters select { min-height:44px; padding:8px 36px 8px 12px; background:white; color:#244b5c; border:1px solid #758f9a; border-radius:6px; font:inherit; }
.parking-check { display:flex; gap:10px; align-items:center; min-height:44px; font-size:17px; line-height:1.5; cursor:pointer; }
.parking-check input { width:20px; height:20px; flex:none; accent-color:#396f86; }
.parking-detail { font-size:17px; line-height:1.65; }
.parking-explorer { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:28px; margin-top:28px; }
.parking-map-panel,.parking-results { min-width:0; }
.parking-panel-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.parking-panel-heading h3,.parking-results > h3 { font:400 24px/1.3 Georgia,serif; margin:0 0 16px; }
.parking-panel-heading button,.parking-card button { padding:8px 10px; min-height:44px; border:1px solid #396f86; color:#244b5c; background:#fff; border-radius:6px; font:700 16px Arial,sans-serif; cursor:pointer; }
.parking-map-placeholder { display:flex; flex-direction:column; justify-content:center; align-items:center; min-height:500px; padding:32px; border:1px solid #c5d4db; border-radius:12px; text-align:center; background:repeating-linear-gradient(45deg,#e1eaeb,#e1eaeb 1px,#edf1ed 1px,#edf1ed 38px); }
.parking-map-placeholder > p:not(.parking-detail) { font:400 28px Georgia,serif; margin-bottom:8px; }
.parking-map-placeholder .parking-detail { max-width:330px; }
.parking-map-symbol { display:grid; place-items:center; width:64px; height:64px; background:#396f86; color:#fff; border:5px solid white; border-radius:50%; font:700 30px Georgia,serif; }
#parking-map { height:500px; border:1px solid #aebfc7; border-radius:12px; z-index:0; font-family:Arial,Helvetica,sans-serif; }
.parking-map-legend { display:flex; flex-wrap:wrap; gap:10px; align-items:center; font-size:16px; }
.parking-cafe-key { display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; background:#edd6a6; color:#244b5c; font-weight:800; line-height:1; border:2px solid #244b5c; }
.parking-dot { width:14px; height:14px; border:2px dashed #396f86; border-radius:50%; margin-left:12px; }
.parking-list { margin:0; padding:0; list-style:none; max-height:650px; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.parking-card { border:1px solid #c5d4db; border-radius:10px; background:white; padding:22px; margin-bottom:14px; }
.parking-card[data-selected="true"] { border:3px solid #396f86; padding:20px; background:#fdf8eb; }
.parking-card__heading { display:flex; gap:12px; align-items:start; }
.parking-number { display:grid; place-items:center; width:30px; height:30px; flex:none; border-radius:50%; background:#396f86; color:#fff; font-weight:800; font-size:13px; }
.parking-kind { font-size:14px; font-weight:700; margin:0 0 6px; line-height:1.6; }
.parking-card h3 { font:400 23px/1.25 Georgia,serif; margin:0; }
.parking-card > p { line-height:1.65; }
.parking-card > p:not(.parking-detail):not(.parking-source) { font-size:17px; }
.parking-card__actions { display:flex; flex-wrap:wrap; gap:6px 16px; align-items:center; }
.parking-card__actions a { display:inline-flex; align-items:center; min-height:44px; font-size:16px; font-weight:700; gap:4px; }
.parking-source { font-size:16px; margin-bottom:0; }
.parking-pin { display:grid !important; place-items:center; border-radius:50%; border:3px solid white; background:#244b5c; color:#fff; box-shadow:0 1px 5px #244b5c88; font-weight:800; }
.parking-pin--cafe { background:#edd6a6; color:#244b5c; border-color:#244b5c; }
.parking-pin--street { background:#745222; }
#parking-map .leaflet-popup-content { color:#244b5c; line-height:1.6; }
#parking-map .leaflet-popup-content a { color:#244b5c; }
#parking-map .leaflet-control-attribution { color:#244b5c; background:#fff; font-size:11px; }
#parking-map .leaflet-control-attribution a { color:#244b5c; }
.parking-notes { padding-block:64px; }
.parking-notes h3 { font:400 24px Georgia,serif; margin-block:20px 10px; }
#site-content:has(.parking-hero) a:not(.parking-button) { color:#244b5c; text-underline-offset:3px; }
#site-content:has(.parking-hero) :is(a,button,input,select):focus-visible { outline:3px solid #9a5c14; outline-offset:3px; }
@media(max-width:850px) {
  .parking-explorer,.parking-intro,.parking-notes { grid-template-columns:1fr; gap:24px; }
  .parking-list { max-height:none; overflow:visible; }
  #parking-map { height:400px; }
  .parking-map-placeholder { min-height:380px; }
}
@media(max-width:400px) {
  .parking-wrap { padding-inline:18px; }
  .parking-hero { padding-block:44px; }
  .parking-card { padding:18px; }
  .parking-card[data-selected="true"] { padding:16px; }
  .parking-panel-heading { align-items:start; }
}
