:root { --red:#923e4a; --green:#2c6c61; --gold:#b18b48; --ink:#283a39; --muted:#687773; --line:#e0e6e3; --paper:#fff; }
html { scroll-padding-top:28px; scroll-padding-bottom:88px; }
body { background:#f5f7f6; }
.platform-header { background:white; color:var(--ink); border-top:4px solid var(--red); border-bottom:1px solid var(--line); }
.platform-header .brand { max-width:1200px; padding:24px 48px 20px; }
.brand-home { display:flex; align-items:center; gap:13px; min-width:0; }
.platform-header .brand-mark { width:42px; height:46px; display:grid; place-items:center; background:var(--red); color:white; border-radius:3px; flex-shrink:0; }
.brand-mark .lucide { width:25px; height:25px; }
.platform-header .brand-name { display:flex; flex-direction:column; gap:3px; color:var(--ink); min-width:0; }
.brand-name strong { line-height:1.5; font-size:21px; }
.brand-name small { color:var(--muted); font-size:11px; }
.listen-entry { display:inline-flex; align-items:center; gap:9px; min-height:44px; color:var(--green); font-size:13px; }
.listen-entry:hover { color:var(--red); }
.platform-header .listen-entry>span { color:inherit; }
.platform-nav { max-width:1200px; padding:0 48px; gap:38px; border:0; background:white; }
.platform-nav a { display:inline-flex; gap:9px; align-items:center; padding:13px 0 14px; min-height:52px; font-size:14px; color:var(--muted); }
.platform-nav a[aria-current] { color:var(--red); border-bottom-color:var(--red); }
.skip-link { position:fixed; left:16px; top:-80px; z-index:10; background:white; padding:12px; color:var(--red); }
.skip-link:focus { top:10px; }
main { max-width:1200px; background:white; }
.wrap { max-width:1200px; padding:48px; }
h1 { font-size:34px; line-height:1.6; margin-bottom:16px; }
.eyebrow { font-size:12px; color:var(--red); margin-bottom:16px; }
.eyebrow::before { width:22px; flex-basis:22px; height:2px; }
.lead { max-width:850px; font-size:15px; line-height:1.95; margin-bottom:0; }
.breadcrumbs { font-size:12px; margin-bottom:26px; }
.actions .action { gap:9px; border-radius:3px; }
.action .lucide { width:17px; height:17px; }
.platform-footer { max-width:1200px; padding:30px 48px; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:24px; text-align:left; background:#f9fbfa; }
body>.platform-footer::before { display:none; }
.platform-footer strong { display:block; color:var(--ink); font-size:15px; font-weight:600; margin-bottom:6px; }
.platform-footer span { display:block; color:var(--muted); font-size:11px; }
.platform-footer>a { display:inline-flex; align-items:center; gap:8px; min-height:44px; color:var(--green); white-space:nowrap; }
.mobile-navigation { display:none; }
.back-to-top { position:fixed; right:24px; bottom:24px; width:42px; height:42px; border:1px solid #d2ddd6; background:white; color:var(--green); border-radius:4px; display:grid; place-items:center; cursor:pointer; box-shadow:0 3px 14px #263b3912; z-index:3; }
.back-to-top:hover { border-color:var(--green); }
[hidden] { display:none!important; }

.overview-article { max-width:1200px; }
.overview-article>h1 { border-bottom:0; padding-bottom:0; margin-bottom:28px; }
.overview-photo { margin:0 0 36px; padding:0; border:0; background:#eff4f1; }
.overview-photo::before { display:none; }
.overview-photo img { max-height:560px; object-fit:contain; aspect-ratio:auto; }
.overview-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:44px; align-items:start; }
.overview-layout>.prose { max-width:none; min-width:0; }
.article-toc { position:sticky; top:24px; border-top:3px solid var(--gold); padding:18px 0; }
.article-toc summary { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:15px; font-weight:600; list-style:none; cursor:pointer; }
.article-toc summary::-webkit-details-marker { display:none; }
.article-toc summary .lucide { width:16px; height:16px; transition:transform .15s; }
.article-toc[open] summary .lucide { transform:rotate(180deg); }
.article-toc ol { list-style:none; padding:14px 0 0; margin:0; }
.article-toc a { display:flex; gap:12px; align-items:center; padding:13px 4px; font-size:13px; color:var(--muted); border-bottom:1px solid var(--line); }
.article-toc a span { color:var(--gold); font:15px Georgia,serif; }
.article-toc a:hover,.article-toc a[aria-current] { color:var(--red); }
.overview-article .prose>p:first-child { font-size:16px; color:#465b53; padding-bottom:28px; border-bottom:1px solid var(--line); }
.overview-article section { margin-top:36px; }
.overview-article section h2 { padding:0 0 15px; margin-bottom:24px; background:none; border:0; border-bottom:1px solid var(--line); font-size:22px; line-height:1.7; color:var(--ink); }
.overview-article h3 { font-size:16px; font-weight:600; display:flex; align-items:center; gap:10px; margin-top:24px; }
.overview-article h3::before { content:""; width:4px; height:16px; background:var(--gold); flex-shrink:0; }
.prose p { font-size:15px; line-height:2.15; }
.overview-article .closing { padding:24px; background:#eff5f1; border:0; border-left:3px solid var(--green); }

.directory-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:30px 0 0; padding:24px 0; border-block:1px solid var(--line); }
.directory-summary>div { display:flex; align-items:center; gap:14px; padding:0 22px; border-left:1px solid var(--line); }
.directory-summary>div:first-child { padding-left:0; border-left:0; }
.directory-summary b { font:32px/1.2 Georgia,serif; color:var(--red); }
.directory-summary>div:nth-child(2) b { color:var(--green); }
.directory-summary>div:nth-child(3) b { color:#4e7894; }
.directory-summary span { font-size:13px; color:var(--muted); }
.filterbar { margin:24px 0 18px; border-top:0; padding:0 0 20px; gap:22px; }
.tabs { gap:26px; }.tabs button { font-size:13px; }
.directory-search { display:flex; align-items:center; gap:9px; border-bottom:1px solid #c7d7ce; min-width:240px; }
.directory-search .lucide { color:var(--muted); }
.directory-search input[type=search] { max-width:260px; min-width:0; border:0; padding:10px 0; font-size:13px; }
.cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.card { --point-accent:var(--red); padding:24px; min-height:242px; border-radius:4px; box-shadow:none; }
.card[data-point-level="9"] { --point-accent:var(--green); }
.card[data-point-level="N"] { --point-accent:#4e7894; }
.card::before,.card:nth-child(3n+2)::before,.card:nth-child(3n)::before { background:var(--point-accent); width:32px; left:24px; height:2px; }
.card-top { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:18px; }
.card-top small { margin:0; font-size:11px; color:var(--point-accent); }
.card-top>.lucide { width:17px; height:17px; color:#9ba9a2; }
.card h3 { font-size:17px; line-height:1.8; margin-bottom:0; }
.card p { margin-top:10px; -webkit-line-clamp:2; }
.card .more { display:flex; gap:9px; align-items:center; justify-content:space-between; color:var(--point-accent); font-size:12px; }
article.wrap:not(.overview-article):has(>.badge) { max-width:1000px; }
article.wrap>.badge+h1 { font-size:30px; margin-bottom:24px; padding-bottom:22px; }
.badge { border:0; background:none; padding:0; margin-bottom:14px; color:var(--red); }
.point-maps { background:#f0f6f2; padding:16px 22px; border:0; border-left:3px solid var(--green); }
.figure { background:#f4f7f5; padding:14px; border:0; margin-block:28px; }
.figure::before { width:14px; height:14px; border-width:1px; }
.tier { gap:30px; padding-block:36px; }.band { background:#f3f7f4; }

.page-summary { margin-top:28px; padding:16px 0; }
.route-item { grid-template-columns:80px minmax(0,1fr); gap:28px; padding:32px 0; }
.route-no { display:grid; place-items:center; align-self:start; width:72px; height:78px; padding:0; border:0; border-bottom:3px solid var(--accent); color:var(--accent); background:#f7f3f3; font-size:32px; }
.route-item:nth-child(2n) .route-no { background:#eff5f1; }
.route-item:nth-child(3) .route-no { background:#f7f5ef; }
.route-item:nth-child(4) .route-no { background:#edf4f7; }
.route-item h2 { font-size:24px; margin:8px 0 12px; }
.route-item p { max-width:820px; }
.route-features { padding:24px 28px; background:#f0f6f2; border-left:3px solid var(--green); }
.route-features ul { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; list-style:none; padding:0; }
.route-features li { border-left:1px solid #d1e0d6; padding:4px 0 4px 16px; }
.route-features li:first-child { border:0; padding-left:0; }
.route-stops { max-width:900px; margin-inline:auto; }
.stop { padding-block:24px; }
.stop h3 { font-size:16px; }.stop-number { font-size:20px; color:#91a49a; }
.stop-heading { gap:14px; }
.point-detail { background:none; border:1px solid var(--line); color:var(--green); }
.point-detail:hover { background:#f0f6f2; }
.map-entry { margin-block:30px; padding:28px; background:#eef4f7; border-left:3px solid #4e7894; }
.map-entry h2 { color:#2e5268; font-size:24px; }
.map-entry .region-label { color:#4e7894; }
.region-actions>span { color:#4e6878; }
.map-controls { margin-block:28px; gap:24px; }
.map-controls select,.search-field { border-color:#cbd8d1; }
.results-heading { padding-bottom:16px; }
.map-links a { font-size:12px; gap:6px; }
.map-results { column-gap:40px; }

@media(max-width:900px) {
  .platform-header .brand { padding:20px 28px 16px; }.platform-nav { padding-inline:28px; }
  .wrap { padding:36px 28px; }.platform-footer { padding:28px; }
  .overview-layout { grid-template-columns:1fr; gap:28px; }
  .article-toc { position:static; border-top:0; border-block:1px solid var(--line); padding:14px 0; }
  .article-toc ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
  .filterbar { flex-direction:column; align-items:stretch; }.directory-search { max-width:none; }
  .directory-search input[type=search] { max-width:none; }.tabs { justify-content:space-between; }
  .route-features ul { grid-template-columns:1fr; gap:10px; }.route-features li { border:0; padding:4px 0; }
}
@media(max-width:700px) {
  body { padding-bottom:calc(66px + env(safe-area-inset-bottom)); background:white; }
  .platform-header .brand { padding:17px 20px; gap:12px; }.platform-header .brand-name { display:flex; }
  .platform-header .brand-mark { display:grid; width:34px; height:39px; }.brand-mark .lucide { width:22px; height:22px; }
  .brand-home { gap:10px; }.brand-name strong { font-size:18px; }.brand-name small { font-size:10px; }
  .listen-entry { width:40px; height:40px; justify-content:center; flex-shrink:0; }.listen-entry>span,.listen-entry>.lucide:last-child { display:none; }
  .listen-entry>.lucide { width:22px; height:22px; }
  .platform-nav { display:none; }
  .mobile-navigation { position:fixed; z-index:5; inset:auto 0 0; max-width:none; margin:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; border:0; border-top:1px solid #dbe4df; padding:0 8px env(safe-area-inset-bottom); background:#fff; box-shadow:0 -3px 18px #263b3907; }
  .mobile-navigation a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:8px 0; height:65px; font-size:11px; color:var(--muted); border:0; min-width:0; }
  .mobile-navigation .lucide { width:21px; height:21px; }.mobile-navigation a[aria-current] { color:var(--red); background:none; font-weight:600; }
  .wrap { padding:30px 20px 36px; }h1 { font-size:27px; }.eyebrow { font-size:11px; margin-bottom:12px; }.lead { font-size:14px; }
  .overview-article>h1 { margin-bottom:22px; }.overview-photo { margin-bottom:24px; }.overview-layout { gap:24px; }
  .article-toc summary { font-size:14px; }.article-toc a { font-size:12px; gap:9px; }.article-toc ol { gap:0 16px; }
  .overview-article .prose>p:first-child { font-size:15px; padding-bottom:22px; }
  .overview-article section h2 { font-size:20px; padding:0 0 12px; }.overview-article h3 { font-size:16px; }
  .prose p { font-size:15px; line-height:2.1; }.overview-article .closing { padding:18px; }
  .directory-summary { margin-top:26px; padding:22px 0; }.directory-summary>div { flex-direction:column; align-items:flex-start; gap:8px; padding-inline:14px; }.directory-summary b { font-size:28px; }.directory-summary span { font-size:11px; }
  .filterbar { display:flex; gap:15px; margin-top:18px; }.tabs { gap:10px; margin-bottom:0; }.tabs button { font-size:12px; }.directory-search { min-width:0; }
  .cards { grid-template-columns:1fr; gap:14px; }.card { padding:22px; min-height:0; }.card::before,.card:nth-child(3n+2)::before,.card:nth-child(3n)::before { left:22px; }.card-top { margin-bottom:12px; }.card h3 { font-size:16px; }
  article.wrap>.badge+h1 { font-size:25px; }.point-maps { padding:14px 16px; }.figure { padding:10px; }
  .route-item { grid-template-columns:48px minmax(0,1fr); gap:16px; padding:26px 0; }.route-no { width:44px; height:54px; font-size:25px; }.route-item h2 { font-size:21px; }
  .route-meta { font-size:11px; gap:10px; }.route-meta span+span { padding-left:10px; }.route-features { padding:20px; }
  .map-entry { padding:22px; gap:18px; }.map-entry h2 { font-size:22px; }.map-controls { margin-block:24px; gap:16px; }.region-actions { border-top-color:#d2dfe6; }
  .map-links { gap:14px; }.map-links a { font-size:12px; }.stop { padding-block:22px; }
  .platform-footer { display:block; padding:26px 20px; }.platform-footer>a { display:none; }.platform-footer span { font-size:10px; line-height:1.9; }
  .back-to-top { right:14px; bottom:calc(80px + env(safe-area-inset-bottom)); width:38px; height:38px; }
}
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
