.prose{max-width:1050px}.timeline{border-left:2px solid #68754d;padding-left:24px}.timeline section{padding:8px 0 26px}.event-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}.event-controls button{width:48px;height:48px;background:transparent;border:1px solid #68754d;border-radius:50%}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:24px 0}.calendar>div{min-height:48px;padding:8px;border:1px solid #d8dccd;text-align:center}.calendar .marked{background:#183b3d;color:white;font-weight:bold}.calendar .weekday{font-size:12px;min-height:30px;border:0}.map-shell{background:#e8ece1;padding:24px;border-radius:12px;margin-top:24px;min-height:240px}.map-shell iframe{width:100%;height:450px;border:0}.related{padding:20px 0;max-width:1050px}select{max-width:100%;padding:10px}#event-list{padding:16px 0}@media(max-width:600px){.calendar>div{padding:6px;min-height:40px}.map-shell{padding:12px}.map-shell iframe{height:350px}.event-controls h2{font-size:24px}}
.map-filters{border:1px solid var(--line);border-radius:12px;padding:20px;margin:24px 0}.map-filters label{display:inline-flex;gap:8px;align-items:center;padding:10px;margin:4px;border:1px solid var(--line);border-radius:6px}.map-filters input{width:20px;height:20px}.map-filters button{display:block;padding:10px;margin-top:12px}.place-facts{border-top:1px solid var(--line);margin:28px 0}.place-facts>div{padding:16px 0;border-bottom:1px solid var(--line)}.place-facts dt{font-weight:700}.place-facts dd{margin:6px 0 0}.review-summary{padding:20px;border:1px solid var(--line);margin:16px 0;border-radius:10px}.review-summary p{white-space:pre-wrap;overflow-wrap:anywhere}

.beach-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; padding: 16px; }
.beach-filters label { display: grid; gap: 4px; min-width: 0; flex: 1 1 220px; padding: 0; margin: 0; border: 0; }
.beach-filters select { min-width: 0; width: 100%; min-height: 44px; padding: 6px 8px; font: inherit; color: var(--ink); }
.beach-filters button { min-height: 44px; margin: 0; cursor: pointer; }
.beach-map-legend { display: flex; flex-wrap: wrap; gap: 6px 9px; padding: 0; list-style: none; }
.beach-category { display: inline-block; padding: 4px 9px; border-radius: 16px; color: white; font-size: 13px; font-weight: 650; line-height: 1.3; }
.beach-category-swim { background: #165a73; }
.beach-category-reported { background: #25583d; }
.beach-category-local { background: #61476b; }
.beach-category-explore { background: #855221; }
.south-evia-map { position: relative; isolation: isolate; overflow: hidden; width: 100%; max-width: 800px; aspect-ratio: 4 / 3; border: 1px solid var(--line); border-radius: 14px; background: #daedf1; }
.south-evia-map > img, .beach-pin-lines { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.beach-pin-lines [hidden] { display: none; }
.beach-pin { position: absolute; left: var(--pin-x); top: var(--pin-y); transform: translate(-50%, -50%); display: grid; place-items: center; width: clamp(22px, 4.3vw, 34px); aspect-ratio: 1; padding: 0; border: 1px solid white; border-radius: 50%; text-decoration: none; box-shadow: 0 1px 4px #183b3d55; }
.beach-pin:hover, .beach-pin:focus-visible { z-index: 2; outline: 2px solid #183b3d; outline-offset: 2px; }
.beach-compass, .beach-map-label { position: absolute; color: #264a50; font-size: clamp(10px, 1.8vw, 14px); font-weight: 700; pointer-events: none; }
.beach-compass { top: 3%; right: 4%; }
.beach-map-land { top: 36%; left: 35%; letter-spacing: .08em; }
.beach-map-sea { top: 27%; right: 8%; letter-spacing: .08em; }
.beach-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 275px), 1fr)); gap: 12px; margin-bottom: 32px; }
.beach-card { margin: 0; scroll-margin-block-start: 110px; }
.beach-card:target { outline: 2px solid #25583d; outline-offset: 2px; }
.beach-card h3 { margin: 8px 0 0; }
.beach-card-region, .beach-card-number { color: #52634b; }
.beach-card-region { margin-top: 2px; font-size: 14px; }
.beach-card-links { font-size: 14px; }
