/* Live shared places on the production compact editorial shell. */
:root { --map-height: 410px; }
[hidden] { display:none!important; }
.sr-only {position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link {position:fixed;left:12px;top:8px;z-index:2000;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;padding:0;background:var(--paper);border:0}
.skip-link:focus {clip-path:none;width:auto;height:auto;overflow:visible;padding:12px;border:2px solid var(--pine)}
main {max-width:1120px;padding-bottom:90px}
#content:focus {outline:none}
.intro {max-width:760px;margin-bottom:20px}
.intro h1 {font-size:clamp(27px,4vw,37px)}
.filter-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(180px,1.3fr);gap:12px;padding:16px 0 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.filter-grid label {margin:0 0 6px;font-size:12px;color:var(--muted)}
.filter-grid select,.filter-grid input {display:block;width:100%;max-width:100%;min-width:0;min-height:48px;background:var(--surface-input);font-size:13px}
.filter-grid input {color:var(--ink)}
.filter-grid>div {min-width:0}
.results-bar {display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;font-size:13px}
.results-bar strong {font-weight:650;color:var(--pine)}
.results-bar button {flex:none}
.map-layout {display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.55fr);gap:18px;align-items:start}
.list-panel,.map-panel {min-width:0}
.place-list {list-style:none;margin:0;padding:0;max-height:none;overflow:visible;border-top:2px solid var(--pine);scrollbar-gutter:stable}
.place-list li {border-bottom:1px solid var(--line)}
.place-button {display:block;width:100%;text-align:left;border:0;border-radius:0;padding:12px 12px 13px;min-height:80px;background:transparent}
.place-button:hover {background:var(--surface-input)}
.place-button[aria-pressed=true] {background:var(--surface-active);box-shadow:inset 3px 0 var(--pine)}
.place-button small {display:block;color:var(--pine);font-size:10px;line-height:1.5;margin-bottom:3px}
.place-button strong {display:block;font-size:16px;line-height:1.45;font-weight:650}
.place-button .summary {display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--text-summary);font-size:12px;line-height:1.55;margin-top:5px}
#map {height:var(--map-height);width:100%;border:1px solid var(--line-shell);border-radius:4px;background:var(--surface-table);isolation:isolate;z-index:0}
#map.empty-map {filter:grayscale(.6)}
.map-empty {margin:0 0 10px;padding:16px;border:1px solid var(--line);background:var(--surface-input);font-size:13px;line-height:1.7}
.map-note,.disclosure {font-size:11px;line-height:1.75;color:var(--muted);margin:10px 0}
.disclosure {border-left:2px solid var(--clay);padding:7px 12px;background:var(--surface-route)}
.leaflet-container {font-family:var(--font-ui);font-size:12px}
.leaflet-bar a {width:44px!important;height:44px!important;line-height:44px!important}
.leaflet-control-attribution a {text-decoration:underline}
.leaflet-marker-icon:focus-visible {outline:3px solid var(--focus);outline-offset:3px}
.map-pin {background:none;border:none}
.map-pin span {display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--pine);border:2px solid var(--paper);box-shadow:0 1px 5px #283b3555;color:white}
.map-pin span b {transform:rotate(45deg);font-size:11px;font-weight:650}
.map-pin.selected span {background:var(--clay);width:34px;height:34px}
.detail {margin-top:12px;padding-top:16px;border-top:2px solid var(--clay);min-width:0}
.detail h2 {margin:5px 0 8px;font:600 24px/1.4 var(--font-editorial)}
.detail .description {font-size:14px;line-height:1.75;margin:8px 0 16px}
.detail dl {display:grid;grid-template-columns:140px minmax(0,1fr);gap:8px 16px;font-size:12px;line-height:1.65;margin:14px 0}
.detail dt {color:var(--muted)}
.detail dd {margin:0;overflow-wrap:anywhere}
.detail a,.article-links a,.course-row a,.article-places a,.return-link {display:flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px;font-size:13px;line-height:1.6;overflow-wrap:anywhere;padding:6px 0}
.detail a {display:inline-flex;margin-right:16px}
.article-links {list-style:none;margin:6px 0 0;padding:0}
.article-links li {border-bottom:1px solid var(--line)}
.subheading {margin:20px 0 4px;font-size:16px}
#course-area {margin-top:18px;padding-top:2px;border-top:1px solid var(--line-shell)}
#course-area h2 {font-family:var(--font-editorial);font-size:22px;margin:18px 0 6px}
.course-list {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.course-row {border-bottom:1px solid var(--line);padding:9px 0;min-width:0}
.course-row small {display:block;font-size:10px;color:var(--muted)}
.course-row .selector-link {font-size:11px;color:var(--pine)}
.article-meta {font:11px/1.6 var(--font-meta);color:var(--muted)}
.article-cover {margin:20px 0}
.article-cover img {display:block;width:100%;height:auto;max-height:480px;object-fit:contain}
.article-inline-image {margin:20px 0}
.article-inline-image-media {display:block;width:100%;height:auto}
.article-prose {overflow-wrap:anywhere}
.article-prose a {text-decoration:underline;text-underline-offset:3px}
.article-prose h2,.article-prose h3,.article-prose h4 {scroll-margin-top:24px}
.article-prose pre {overflow:auto;background:var(--surface-table);padding:14px;font-size:12px}
.article-prose blockquote {margin:20px 0;padding:0 16px;border-left:2px solid var(--pine);font-size:14px;line-height:1.9}
.article-prose li {line-height:1.9;font-size:15px}
.article-source-marker {color:var(--muted);font-size:12px}
.article-places {border-top:1px solid var(--line);margin-top:28px;padding-top:4px}
.article-places h2 {margin-top:14px}
.failure {padding:20px;background:var(--surface-route);border-left:3px solid var(--clay);line-height:1.7;overflow-wrap:anywhere}
.compact-disclosure {border-top:1px solid var(--line);margin:10px 0;min-width:0}
.compact-disclosure>summary {display:flex;align-items:center;gap:8px;cursor:pointer;min-height:44px;padding:8px 0;list-style:none;font-size:13px;overflow-wrap:anywhere}
.compact-disclosure>summary:before {content:'+';flex:none;font-size:18px}
.compact-disclosure[open]>summary:before {content:'−'}
.compact-disclosure>summary::-webkit-details-marker {display:none}
.pager {display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0}
.pager button {min-height:44px;min-width:44px;font-size:12px}
.pager span {font-size:12px;white-space:nowrap}
.course-tools {display:flex;flex-wrap:wrap;gap:8px 16px}
.course-tools a {display:flex;align-items:center;min-height:44px;font-size:12px;overflow-wrap:anywhere}
:focus-visible {outline:3px solid var(--focus);outline-offset:3px}
@media(max-width:780px) {
 .filter-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
 .map-layout {grid-template-columns:1fr;gap:16px}
 .map-panel {grid-row:1}
 :root {--map-height:320px}
 .place-list {max-height:none}
 .course-list {grid-template-columns:1fr}
}
@media(max-width:350px) {
 :root {--map-height:280px}
 .filter-grid {gap:10px 8px}
 .filter-grid select,.filter-grid input {font-size:12px;padding-left:7px;padding-right:7px}
 .results-bar {align-items:flex-start}
 .detail dl {grid-template-columns:1fr;gap:3px}
 .detail dd {margin-bottom:8px}
 header {gap:8px}
}

.article-places .hubs {list-style:none;padding:0}.article-places a {min-height:44px} #content {min-width:0} .map-panel .detail {max-width:none} .leaflet-control-attribution {font-size:10px}
