/*
 * Steel Ledger global design: only paper white, coal black, and Mahoning Signal Red (#CE2029).
 * The system uses industrial editorial typography, street-grid linework, sharp corners, and direct map-forward hierarchy.
 */
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Source+Sans+3:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');
:root {
  --paper: #FFFFFF;
  --coal: #0A0A0A;
  --signal: #CE2029;
  --background: var(--paper);
  --foreground: var(--coal);
  --primary: var(--signal);
  --primary-foreground: var(--paper);
  --border: var(--coal);
  --ring: var(--signal);
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; background: var(--coal); }
body { margin: 0; min-width: 320px; background: var(--coal); color: var(--paper); font-family: "Source Sans 3", Arial, sans-serif; font-kerning: normal; font-synthesis: none; letter-spacing: .002em; line-height: 1.5; text-rendering: optimizeLegibility; word-spacing: .01em; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:not(:disabled), a[href] { cursor: pointer; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid var(--signal); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

.site-canvas { min-height: 100vh; display: block; background: var(--coal); }
.site-rail { position: sticky; z-index: 50; top: 0; width: 100%; min-height: 82px; display: flex; flex-direction: row; align-items: center; gap: 28px; padding: 13px 54px; color: var(--paper); background: var(--coal); border-right: 0; border-bottom: 2px solid var(--signal); }
.brand-lockup { display: flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.brand-mark { flex: 0 0 auto; width: 51px; height: 51px; object-fit: contain; filter: drop-shadow(0 0 5px #CE202966); }
.brand-lockup span { display: grid; line-height: .85; }
.brand-lockup strong { font: 700 23px/1.02 "Oswald", Impact, sans-serif; letter-spacing: .005em; word-spacing: .025em; }
.brand-lockup small { margin-top: 4px; color: var(--signal); font: 700 9px/1 "Source Sans 3", sans-serif; letter-spacing: .18em; }
.rail-rule { width: 1px; height: 37px; margin: 0; background: var(--paper); }
.rail-kicker { margin: 0; color: var(--paper); font-size: 10px; font-weight: 700; letter-spacing: .13em; line-height: 1.45; word-spacing: .025em; }
.rail-nav { display: flex; align-items: center; gap: 20px; width: auto; margin-left: auto; }
.rail-nav a { display: flex; align-items: baseline; gap: 7px; padding: 8px 0; color: var(--paper); text-decoration: none; font-size: 15px; font-weight: 700; word-spacing: .02em; transition: color 160ms var(--ease-out), transform 160ms var(--ease-out); }
.rail-nav a span { color: var(--signal); font-size: 10px; letter-spacing: .1em; }
.rail-nav a:hover { color: var(--signal); transform: translateX(3px); }
.rail-listing-button { display: flex; align-items: center; justify-content: space-between; width: 154px; margin: 0 0 0 4px; padding: 11px 12px; color: var(--coal); background: var(--signal); border: 0; font-size: 13px; font-weight: 700; transition: transform 160ms var(--ease-out), background 160ms var(--ease-out); }
.rail-listing-button:hover { color: var(--signal); background: var(--paper); }
.rail-footnote { display: none; }
main { min-width: 0; overflow: hidden; background: var(--coal); }

.hero-section { position: relative; min-height: 710px; display: flex; align-items: stretch; padding: 76px 54px 48px; color: var(--paper); background: var(--coal) url('youngstown-all-reference-connected-hero.png') left center/cover no-repeat; isolation: isolate; }
.hero-section::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, var(--coal) 0%, #0A0A0AF2 45%, #0A0A0A52 71%, #0A0A0A0A 100%); }
.hero-texture { position: absolute; inset: 0; z-index: -1; opacity: .18; background-image: linear-gradient(90deg, #FFFFFF21 1px, transparent 1px), linear-gradient(#FFFFFF15 1px, transparent 1px); background-size: 37px 37px; mask-image: linear-gradient(90deg, black 0%, black 30%, transparent 65%); }
.hero-content { width: min(100%, 690px); align-self: center; position: relative; z-index: 2; animation: rise-in 520ms var(--ease-out) both; }
.section-index { display: inline-block; color: var(--signal); font-size: 10px; font-weight: 800; letter-spacing: .17em; line-height: 1; }
.section-index-light { color: var(--paper); }
h1, h2, h3, p { margin-top: 0; }
.hero-content h1 { max-width: 510px; margin: 21px 0 23px; font: 600 clamp(62px, 6.1vw, 96px)/.94 "Oswald", Impact, sans-serif; letter-spacing: -.008em; word-spacing: .035em; text-transform: uppercase; }
.hero-content h1 em { color: var(--signal); font-style: normal; }
.hero-lede { max-width: 490px; margin-bottom: 31px; color: var(--paper); font-size: 20px; font-weight: 500; line-height: 1.48; }
.hero-search { display: flex; align-items: center; max-width: 635px; min-height: 63px; padding-left: 17px; color: var(--coal); background: var(--paper); border: 2px solid var(--paper); }
.hero-search svg { flex: 0 0 auto; color: var(--signal); }
.hero-search input { min-width: 0; flex: 1; height: 57px; padding: 0 13px; color: var(--coal); background: transparent; border: 0; outline: 0; font-size: 17px; }
.hero-search input::placeholder { color: var(--coal); opacity: .72; }
.hero-search button { display: flex; align-items: center; gap: 8px; align-self: stretch; padding: 0 19px; color: var(--paper); background: var(--signal); border: 0; font-size: 14px; font-weight: 700; transition: color 160ms var(--ease-out), background 160ms var(--ease-out); }
.hero-search button:hover { color: var(--coal); background: var(--paper); outline: 2px solid var(--signal); }
.hero-tags { display: flex; flex-wrap: wrap; gap: 9px 16px; margin-top: 16px; font-size: 12px; font-weight: 600; }
.hero-tags span::before { content: "•"; padding-right: 6px; color: var(--signal); }
.hero-aside { position: absolute; z-index: 3; top: 55px; right: 53px; display: flex; align-items: center; gap: 14px; }
.hero-aside-index { display: grid; min-width: 59px; height: 37px; padding: 0 8px; place-items: center; color: var(--coal); background: var(--signal); font: 700 12px/1 "Source Sans 3", sans-serif; letter-spacing: .09em; }
.hero-aside div { display: grid; }
.hero-aside strong { font: 500 17px/.9 "Oswald", Impact, sans-serif; letter-spacing: .03em; }
.hero-aside small { margin-top: 7px; color: var(--paper); font-size: 8px; font-weight: 700; letter-spacing: .13em; }
.hero-scroll { position: absolute; left: 54px; bottom: 32px; display: flex; align-items: center; gap: 10px; color: var(--paper); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }
.hero-scroll span { width: 52px; height: 2px; background: var(--signal); }

.directory-section, .map-section, .notables-section { padding: 96px 54px; }
.directory-section { color: var(--paper); background: var(--coal); border-top: 2px solid var(--signal); }
.section-heading { display: flex; justify-content: space-between; gap: 35px; }
.section-heading h2, .history-content h2, .notables-header h2, .footer-cta h2, .listing-dialog h2 { margin: 15px 0 0; font: 600 clamp(47px, 5.2vw, 78px)/.96 "Oswald", Impact, sans-serif; letter-spacing: .004em; word-spacing: .035em; text-transform: uppercase; }
.directory-heading { padding-bottom: 55px; border-bottom: 2px solid var(--paper); }
.section-heading-copy { display: grid; align-content: end; justify-items: start; max-width: 380px; }
.section-heading-copy p, .map-heading > p { margin-bottom: 18px; font-size: 16px; font-weight: 500; line-height: 1.52; }
.outline-action { display: flex; align-items: center; gap: 8px; padding: 11px 14px; color: var(--paper); background: var(--coal); border: 2px solid var(--paper); font-size: 13px; font-weight: 800; transition: color 160ms var(--ease-out), background 160ms var(--ease-out), transform 160ms var(--ease-out); }
.outline-action:hover { color: var(--coal); background: var(--paper); }
.directory-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 67px; border-bottom: 1px solid var(--paper); }
.directory-status { display: flex; gap: 8px; align-items: center; color: var(--signal); font-size: 13px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.directory-helper { color: var(--paper); font-size: 13px; }
.clear-button { display: flex; gap: 6px; align-items: center; padding: 5px 0; color: var(--paper); background: transparent; border: 0; border-bottom: 1px solid var(--paper); font-size: 12px; font-weight: 700; }
.category-board { display: grid; grid-template-columns: repeat(4, 1fr); border-left: 1px solid var(--paper); }
.category-card { position: relative; min-height: 177px; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; padding: 19px; color: var(--paper); background: var(--coal); border: 0; border-right: 1px solid var(--paper); border-bottom: 1px solid var(--paper); text-align: left; overflow: hidden; transition: color 180ms var(--ease-out), background 180ms var(--ease-out), transform 180ms var(--ease-out); }
.category-card span { color: var(--signal); font-size: 10px; font-weight: 800; letter-spacing: .16em; }
.category-card strong { max-width: 150px; font: 600 27px/1.1 "Oswald", Impact, sans-serif; letter-spacing: .004em; word-spacing: .03em; text-transform: uppercase; }
.category-card svg, .category-card b { align-self: flex-end; color: var(--signal); font-weight: 800; transition: transform 180ms var(--ease-out); }
.category-card::after { content: ""; position: absolute; width: 0; height: 0; right: 0; bottom: 0; border-style: solid; border-width: 0 0 30px 30px; border-color: transparent transparent var(--signal) transparent; opacity: 0; transition: opacity 180ms var(--ease-out); }
.category-card:hover, .category-card.is-active { color: var(--coal); background: var(--paper); transform: translateY(-3px); }
.category-card:hover svg, .category-card.is-active svg, .category-card:hover b, .category-card.is-active b { color: var(--signal); transform: translate(3px, 3px); }
.category-card.is-active span { color: var(--signal); }
.category-card.is-active::after { opacity: 1; }
.directory-pledge { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 20px; margin-top: 32px; padding: 25px; color: var(--paper); background: var(--coal); border: 1px solid var(--paper); border-top: 3px solid var(--signal); }
.pledge-marker { display: grid; width: 54px; height: 54px; place-items: center; color: var(--coal); background: var(--signal); }
.directory-pledge strong { font: 500 22px/1 "Oswald", Impact, sans-serif; letter-spacing: .01em; text-transform: uppercase; }
.directory-pledge p { max-width: 630px; margin: 6px 0 0; font-size: 14px; line-height: 1.35; }
.directory-pledge :is(button, .listing-action-link) { display: flex; align-items: center; gap: 7px; padding: 12px 14px; color: var(--coal); background: var(--paper); border: 0; font-size: 12px; font-weight: 800; white-space: nowrap; text-decoration: none; transition: color 160ms var(--ease-out), background 160ms var(--ease-out); }
.directory-pledge :is(button, .listing-action-link):hover { color: var(--paper); background: var(--signal); }

.businesses-section { padding: 96px 54px; color: var(--paper); background: var(--coal); border-top: 2px solid var(--signal); }
.businesses-heading { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(260px, .7fr); align-items: end; gap: 54px; margin-bottom: 42px; padding-bottom: 39px; border-bottom: 2px solid var(--paper); }
.businesses-heading h2 { margin: 15px 0 0; font: 600 clamp(47px, 5.2vw, 78px)/.98 "Oswald", Impact, sans-serif; letter-spacing: .008em; word-spacing: .035em; text-transform: uppercase; }
.businesses-heading > p { max-width: 420px; margin: 0; font-size: 16px; font-weight: 500; line-height: 1.52; }
.businesses-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.businesses-card { display: flex; flex-direction: column; min-height: 390px; padding: 28px 24px; color: var(--paper); background: var(--coal); border: 1px solid var(--paper); border-top: 3px solid var(--signal); }
.businesses-card > span { color: var(--signal); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.businesses-card h3 { margin: 20px 0 16px; font: 600 clamp(30px, 3vw, 44px)/1.02 "Oswald", Impact, sans-serif; letter-spacing: .004em; word-spacing: .03em; text-transform: uppercase; }
.businesses-card p { margin: 0 0 15px; color: #ffffffd4; font-size: 15px; line-height: 1.5; }
.businesses-card :is(button, .listing-action-link) { display: inline-flex; align-items: center; justify-content: space-between; gap: 9px; width: max-content; max-width: 100%; margin-top: auto; padding: 12px 14px; color: var(--paper); background: var(--signal); border: 0; font-size: 12px; font-weight: 800; letter-spacing: .015em; text-decoration: none; transition: color 160ms var(--ease-out), background 160ms var(--ease-out); }
.businesses-card :is(button, .listing-action-link):hover { color: var(--coal); background: var(--paper); }
.businesses-card .button-like { display: inline-flex; align-items: center; justify-content: space-between; gap: 9px; width: max-content; max-width: 100%; margin-top: auto; padding: 12px 14px; color: var(--paper); background: var(--signal); border: 0; font-size: 12px; font-weight: 800; letter-spacing: .015em; text-decoration: none; transition: color 160ms var(--ease-out), background 160ms var(--ease-out); }
.businesses-card .button-like:hover { color: var(--coal); background: var(--paper); }
.businesses-card-featured { position: relative; grid-column: span 2; min-height: 440px; background: radial-gradient(circle at 88% 9%, #ce202938, transparent 23%), var(--coal); }
.businesses-card-featured h3 { max-width: 480px; margin-top: 10px; }
.businesses-card-featured p { max-width: 790px; }
.businesses-card-featured p a { color: var(--paper); font-weight: 700; text-decoration-color: var(--signal); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.businesses-price { display: flex; align-items: baseline; gap: 8px; margin-top: 25px; color: var(--signal); }
.businesses-price strong { font: 600 clamp(52px, 5vw, 76px)/.85 "Oswald", Impact, sans-serif; letter-spacing: .005em; }
.businesses-price small { color: var(--paper); font-size: 13px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.businesses-card-control { min-height: 440px; }
.businesses-detail-row { display: flex; align-items: flex-start; gap: 9px; margin-top: 13px; padding-top: 13px; color: var(--paper); border-top: 1px solid #ffffff55; font-size: 13px; font-weight: 600; line-height: 1.35; }
.businesses-detail-row svg { flex: 0 0 auto; color: var(--signal); }

.route-graphic-section { position: relative; min-height: 420px; display: block; color: var(--paper); background: var(--coal); border-top: 2px solid var(--signal); border-bottom: 2px solid var(--signal); overflow: hidden; }
.route-graphic-section::before { content: ""; position: absolute; inset: 0; opacity: .65; background-image: linear-gradient(115deg, transparent 0 43%, var(--signal) 43.1% 43.3%, transparent 43.4%), linear-gradient(18deg, transparent 0 58%, var(--signal) 58.1% 58.35%, transparent 58.5%), linear-gradient(90deg, var(--paper) 1px, transparent 1px), linear-gradient(var(--paper) 1px, transparent 1px); background-size: auto, auto, 51px 51px, 51px 51px; mask-image: linear-gradient(90deg, transparent, black 25%, black 77%, transparent); }
.route-graphic-section img { display: none; }
.route-graphic-copy { position: relative; display: flex; min-height: 420px; flex-direction: column; align-items: flex-start; justify-content: center; padding: 68px 54px; color: var(--paper); }
.route-graphic-copy h2 { margin: 17px 0; font: 500 clamp(46px, 5vw, 74px)/.92 "Oswald", Impact, sans-serif; letter-spacing: -.02em; word-spacing: .045em; text-transform: uppercase; }
.route-graphic-copy p { max-width: 360px; margin-bottom: 25px; font-size: 17px; line-height: 1.42; }
.route-graphic-copy a { display: flex; align-items: center; gap: 8px; padding-bottom: 5px; color: var(--paper); border-bottom: 2px solid var(--signal); font-size: 13px; font-weight: 800; letter-spacing: .04em; text-decoration: none; }

.landmark-lightline { padding: 96px 54px; color: var(--paper); background: var(--coal); border-top: 2px solid var(--signal); }
.lightline-heading { display: flex; justify-content: space-between; gap: 35px; margin-bottom: 42px; padding-bottom: 29px; border-bottom: 1px solid var(--paper); }
.lightline-heading h2 { margin: 16px 0 0; font: 600 clamp(47px, 5.2vw, 78px)/.9 "Oswald", Impact, sans-serif; letter-spacing: -.022em; word-spacing: .045em; text-transform: uppercase; }
.lightline-heading > p { align-self: end; max-width: 395px; margin: 0; font-size: 16px; line-height: 1.45; }
.landmark-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.landmark-art-card { position: relative; min-height: 270px; overflow: hidden; color: var(--paper); background: var(--coal); border: 1px solid var(--signal); isolation: isolate; }
.redline-note::after { display: none; }
.landmark-art-signal { position: absolute; top: 13px; left: 13px; display: grid; width: 28px; height: 28px; place-items: center; color: var(--coal); background: var(--signal); font-size: 10px; font-weight: 800; letter-spacing: .09em; }
.landmark-art-caption { position: absolute; inset: 0; display: grid; align-content: center; justify-items: center; gap: 7px; padding: 28px 18px 18px; text-align: center; }
.landmark-art-caption small { color: var(--signal); font-size: 9px; font-weight: 800; letter-spacing: .13em; }
.landmark-art-caption strong { font: 600 30px/1.08 "Oswald", Impact, sans-serif; letter-spacing: .004em; word-spacing: .03em; text-transform: uppercase; }
.landmark-art-caption > span { color: var(--paper); font-size: 10px; font-weight: 700; letter-spacing: .1em; }
.landmark-art-caption a { display: flex; align-items: center; gap: 6px; width: max-content; margin-top: 8px; color: var(--paper); border-bottom: 1px solid var(--signal); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-decoration: none; }
.landmark-art-caption a:hover { color: var(--signal); }

.map-section { color: var(--paper); background: var(--coal); border-top: 2px solid var(--signal); }
.map-heading { margin-bottom: 44px; padding-bottom: 27px; border-bottom: 2px solid var(--paper); }
.map-heading > p { max-width: 360px; align-self: end; margin-bottom: 0; }
.map-shell { display: grid; grid-template-columns: 350px minmax(0, 1fr); border: 2px solid var(--paper); }
.map-directory { display: flex; flex-direction: column; color: var(--paper); background: var(--coal); }
.map-directory-heading { padding: 24px 23px 22px; border-bottom: 1px solid var(--paper); }
.map-directory-heading h3 { margin: 13px 0 6px; font: 500 36px/.92 "Oswald", Impact, sans-serif; letter-spacing: -.02em; text-transform: uppercase; }
.map-directory-heading p { margin: 0; font-size: 14px; line-height: 1.3; }
.map-filter-panel { padding: 16px 20px 18px; border-bottom: 1px solid var(--paper); }
.map-filter-title { display: flex; align-items: center; gap: 7px; margin-bottom: 11px; color: var(--signal); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.map-filter-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.map-filter-chips button { padding: 6px 7px; color: var(--paper); background: transparent; border: 1px solid var(--paper); font-size: 10px; font-weight: 700; line-height: 1; transition: color 160ms var(--ease-out), background 160ms var(--ease-out), border-color 160ms var(--ease-out); }
.map-filter-chips button:hover, .map-filter-chips button.is-active { color: var(--coal); background: var(--signal); border-color: var(--signal); }
.map-results-note { padding: 13px 20px; border-bottom: 1px solid var(--paper); }
.map-results-note span { color: var(--signal); font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.map-results-note p { margin: 5px 0 0; font-size: 11px; line-height: 1.3; }
.landmark-list { display: grid; }
.landmark-item { display: grid; grid-template-columns: 25px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 14px 20px; color: var(--paper); background: var(--coal); border: 0; border-bottom: 1px solid var(--paper); text-align: left; transition: color 160ms var(--ease-out), background 160ms var(--ease-out); }
.landmark-item:hover, .landmark-item.is-selected { color: var(--coal); background: var(--paper); }
.landmark-item.is-center { color: var(--coal); background: var(--signal); }
.landmark-item.is-center .landmark-number { color: var(--coal); }
.landmark-number { color: var(--signal); font-size: 10px; font-weight: 800; }
.landmark-item.is-selected .landmark-number { color: var(--coal); }
.landmark-copy { display: grid; gap: 3px; }
.landmark-copy strong { font-size: 14px; line-height: 1.1; }
.landmark-copy small { font-size: 11px; }
.map-empty-state { padding: 21px 20px; color: var(--paper); border-bottom: 1px solid var(--paper); }
.map-empty-state strong { display: block; margin-bottom: 5px; font: 500 20px/1 "Oswald", Impact, sans-serif; letter-spacing: .01em; text-transform: uppercase; }
.map-empty-state p { margin: 0; font-size: 12px; line-height: 1.35; }
.map-directions { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: auto; padding: 17px; color: var(--coal); background: var(--signal); font-size: 13px; font-weight: 800; text-decoration: none; transition: color 160ms var(--ease-out), background 160ms var(--ease-out); }
.map-directions:hover { color: var(--paper); background: var(--coal); outline: 1px solid var(--signal); }
.map-directions-muted { color: var(--paper); background: var(--coal); border-top: 1px solid var(--paper); text-align: center; }
.map-frame { position: relative; min-height: 600px; background: var(--coal); overflow: hidden; }
.schematic-map { position: relative; min-height: 600px; overflow: hidden; background: var(--coal); }
.county-map-frame, .county-schematic-map { min-height: 680px; }
.county-map-art { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 53%; filter: contrast(1.12) saturate(1.14); }
.county-map-veil { position: absolute; z-index: 1; inset: 0; background: radial-gradient(circle at 52% 50%, #CE202918 0%, #0A0A0A0F 36%, #0A0A0A45 100%); pointer-events: none; }
.county-schematic { position: absolute; inset: 0; width: 100%; height: 100%; }
.county-boundary { fill: var(--coal); stroke: var(--signal); stroke-width: 1.1; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 5px #CE2029); }
.county-road { fill: none; stroke: var(--paper); stroke-width: .65; vector-effect: non-scaling-stroke; }
.county-route { fill: none; stroke: var(--signal); stroke-width: 1.3; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 3px #CE2029); }
.county-route-secondary { stroke-width: .85; }
.county-grid { position: absolute; inset: 5% 8%; opacity: .36; background-image: linear-gradient(90deg, var(--paper) 1px, transparent 1px), linear-gradient(var(--paper) 1px, transparent 1px); background-size: 36px 36px; clip-path: polygon(7% 2%, 41% 0, 74% 3%, 94% 16%, 100% 48%, 92% 75%, 71% 96%, 35% 100%, 8% 84%, 0 54%); }
.county-label { position: absolute; z-index: 2; padding: 4px 5px; color: var(--paper); background: var(--coal); font-size: 8px; font-weight: 800; letter-spacing: .11em; }
.county-label-north { top: 9%; left: 44%; }
.county-label-west { top: 44%; left: 10%; }
.county-label-east { top: 46%; right: 7%; }
.county-label-south { bottom: 12%; left: 42%; }
.schematic-routes { position: absolute; inset: 0; width: 100%; height: 100%; }
.schematic-routes path { fill: none; stroke: var(--coal); stroke-width: .56; vector-effect: non-scaling-stroke; }
.schematic-routes .river-route { stroke: var(--signal); stroke-width: 1.4; }
.map-grid { position: absolute; inset: 0; opacity: 1; background-image: linear-gradient(90deg, var(--coal) 1px, transparent 1px), linear-gradient(var(--coal) 1px, transparent 1px); background-size: 45px 45px; mask-image: linear-gradient(135deg, transparent 0%, black 22%, black 73%, transparent 100%); }
.route-label { position: absolute; padding: 4px 6px; color: var(--paper); background: var(--coal); font-size: 9px; font-weight: 800; letter-spacing: .11em; }
.route-label-top { top: 23%; left: 43%; }
.route-label-side { top: 58%; left: 11%; transform: rotate(-31deg); }
.map-point { position: absolute; z-index: 3; display: grid; width: 31px; height: 31px; place-items: center; color: var(--coal); background: var(--paper); border: 3px solid var(--coal); border-radius: 50%; font-size: 10px; font-weight: 800; transform: translate(-50%, -50%); transition: color 160ms var(--ease-out), background 160ms var(--ease-out), border-color 160ms var(--ease-out), box-shadow 160ms var(--ease-out); }
.map-point:hover, .map-point.is-active { color: var(--paper); background: var(--signal); border-color: var(--coal); box-shadow: 0 0 0 5px var(--paper), 0 0 0 7px var(--signal); }
.county-point { width: 27px; height: 27px; }
.county-point small { position: absolute; top: calc(100% + 6px); left: 50%; color: var(--paper); background: var(--coal); border-bottom: 2px solid var(--signal); font-size: 8px; font-weight: 800; letter-spacing: .05em; line-height: 1; opacity: 0; padding: 3px 4px; pointer-events: none; text-transform: uppercase; transform: translateX(-50%); transition: opacity 160ms var(--ease-out); white-space: nowrap; }
.county-point:hover small, .county-point.is-active small { opacity: 1; }
.county-point.is-center { z-index: 5; width: 50px; height: 50px; color: var(--paper); background: var(--signal); border-color: var(--coal); font: 700 28px/1 "Oswald", Impact, sans-serif; box-shadow: 0 0 0 5px var(--paper), 0 0 0 8px var(--signal), 0 0 20px var(--signal); }
.county-point.is-center:hover, .county-point.is-center.is-active { color: var(--paper); background: var(--signal); box-shadow: 0 0 0 5px var(--paper), 0 0 0 8px var(--signal), 0 0 20px var(--signal); }
.county-point.is-center small { top: calc(100% + 9px); color: var(--paper); background: var(--coal); border-color: var(--signal); opacity: 1; }
.map-selection-card { position: absolute; z-index: 20; right: 24px; bottom: 24px; display: grid; width: min(280px, 48%); gap: 5px; padding: 16px; color: var(--paper); background: var(--coal); border-bottom: 4px solid var(--signal); }
.map-selection-card span { color: var(--signal); font-size: 9px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.map-selection-card strong { font: 500 26px/.96 "Oswald", Impact, sans-serif; text-transform: uppercase; }
.map-selection-card small { font-size: 12px; }
.map-selection-empty { border-bottom-color: var(--paper); }
.county-selection-card { width: min(300px, 52%); }
.map-frame-label { position: absolute; z-index: 2; top: 16px; left: 16px; padding: 9px 11px; color: var(--paper); background: var(--coal); font-size: 10px; font-weight: 800; letter-spacing: .15em; }
.map-key { position: absolute; z-index: 2; right: 15px; bottom: 15px; display: flex; align-items: center; gap: 8px; padding: 8px 10px; color: var(--paper); background: var(--coal); border: 1px solid var(--paper); font-size: 10px; font-weight: 700; letter-spacing: .05em; }
.map-key span { width: 12px; height: 12px; background: var(--signal); border: 2px solid var(--paper); border-radius: 50%; }

.map-radius-panel { display: grid; gap: 10px; padding: 18px 0; border-bottom: 1px solid #ffffff42; }
.map-radius-panel > span { color: var(--paper); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; word-spacing: .025em; }
.map-radius-options { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.map-radius-options button { min-height: 33px; color: var(--paper); background: transparent; border: 1px solid #ffffff70; font: 800 11px/1 "Source Sans 3", Arial, sans-serif; letter-spacing: .04em; cursor: pointer; transition: color 160ms var(--ease-out), background 160ms var(--ease-out), border-color 160ms var(--ease-out); }
.map-radius-options button:hover, .map-radius-options button.is-active { color: var(--paper); background: var(--signal); border-color: var(--signal); }

.live-provider-map { min-height: 680px; overflow: hidden; }
.live-provider-map .county-map-art { filter: contrast(1.17) saturate(1.1); }
.live-provider-map .county-map-veil { background: radial-gradient(circle at 52% 49%, #CE202930 0%, #0A0A0A12 35%, #0A0A0A5A 100%); }
.live-business-list { max-height: 432px; overflow-y: auto; scrollbar-color: var(--signal) var(--coal); scrollbar-width: thin; }
.live-provider-pin { z-index: 3; width: 10px; height: 10px; color: var(--paper); background: var(--signal); border: 1px solid var(--coal); box-shadow: 0 0 0 1px var(--paper), 0 0 6px var(--signal); font-size: 4px; }
.live-provider-pin::before, .live-provider-cluster::before { position: absolute; inset: -7px; content: ""; }
.live-provider-pin:hover, .live-provider-pin.is-active { color: var(--paper); background: var(--signal); border-color: var(--coal); box-shadow: 0 0 0 2px var(--paper), 0 0 11px var(--signal); }
.live-provider-pin.is-cluster-member { z-index: 4; width: 8px; height: 8px; font-size: 3px; }
.live-provider-cluster { z-index: 5; width: 18px; height: 18px; color: var(--paper); background: var(--coal); border: 1px solid var(--signal); box-shadow: 0 0 0 1px var(--paper), 0 0 8px var(--signal); font-size: 6px; }
.live-provider-cluster:hover, .live-provider-cluster.is-active { color: var(--coal); background: var(--paper); border-color: var(--signal); box-shadow: 0 0 0 2px var(--signal), 0 0 12px var(--paper); }
.live-business-card { display: grid; gap: 8px; width: min(320px, 54%); }
.live-business-card small, .live-business-card > a { display: flex; align-items: flex-start; gap: 7px; color: var(--paper); font-size: 12px; line-height: 1.32; text-decoration: none; }
.live-business-card > a:hover { color: var(--signal); }
.live-business-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 5px; }
.live-business-actions a { display: flex; align-items: center; gap: 6px; padding: 8px 9px; color: var(--coal); background: var(--paper); font-size: 11px; font-weight: 800; text-decoration: none; }
.live-business-actions a:hover { color: var(--paper); background: var(--signal); }

.live-map-shell { grid-template-columns: 350px minmax(0, 1fr); }
.live-map-frame { min-height: 680px; background: var(--coal); }
.live-google-map { position: absolute; inset: 0; z-index: 0; width: 100% !important; height: 100% !important; min-height: 680px; filter: grayscale(1) contrast(1.4) sepia(.75) hue-rotate(302deg) saturate(1.8); }
.live-map-veil { position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(135deg, #CE202933, transparent 42%, #0A0A0A55 100%); mix-blend-mode: screen; }
.live-map-frame .map-frame-label, .live-map-frame .map-key, .live-map-frame .map-selection-card { z-index: 3; }
.live-business-list { max-height: 432px; overflow-y: auto; scrollbar-color: var(--signal) var(--coal); scrollbar-width: thin; }
.live-business-card { display: grid; gap: 8px; width: min(310px, 52%); }
.live-business-card small, .live-business-card > a { display: flex; align-items: flex-start; gap: 7px; color: var(--paper); font-size: 12px; line-height: 1.32; text-decoration: none; }
.live-business-card > a:hover { color: var(--signal); }
.live-business-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 5px; }
.live-business-actions a { display: flex; align-items: center; gap: 6px; padding: 8px 9px; color: var(--coal); background: var(--paper); font-size: 11px; font-weight: 800; text-decoration: none; }
.live-business-actions a:hover { color: var(--paper); background: var(--signal); }
.live-map-pin { display: grid; width: 33px; height: 33px; place-items: center; color: var(--paper); background: var(--signal); border: 3px solid var(--coal); border-radius: 50%; box-shadow: 0 0 0 3px var(--paper), 0 0 15px var(--signal); cursor: pointer; font: 800 9px/1 "Source Sans 3", Arial, sans-serif; letter-spacing: .04em; transition: transform 160ms var(--ease-out), box-shadow 160ms var(--ease-out); }
.live-map-pin:hover { box-shadow: 0 0 0 4px var(--paper), 0 0 25px var(--signal); transform: scale(1.14); }

.featured-map-list { display: grid; gap: 7px; padding: 18px 20px 20px; border-top: 1px solid var(--paper); }
.featured-map-list > div { display: flex; align-items: center; gap: 7px; color: var(--signal); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.featured-map-list > div span { display: grid; min-width: 18px; height: 18px; place-items: center; color: var(--coal); background: var(--paper); font-size: 9px; }
.featured-map-list button { display: flex; align-items: center; justify-content: space-between; gap: 9px; width: 100%; padding: 9px 8px; color: var(--paper); background: transparent; border: 1px solid #ffffff45; cursor: pointer; text-align: left; }
.featured-map-list button span { color: var(--signal); font-size: 8px; font-weight: 800; letter-spacing: .09em; }
.featured-map-list button strong { font-size: 12px; word-spacing: .06em; }
.featured-map-list button:hover, .featured-map-list button.is-selected { border-color: var(--signal); background: #CE20291A; }
.featured-map-list > p { margin: 0; color: #ffffffaa; font-size: 12px; line-height: 1.4; }
.featured-provider-pin { z-index: 4; display: grid; width: 30px; height: 30px; place-items: center; color: var(--coal); background: var(--paper); border: 2px solid var(--signal); box-shadow: 0 0 0 2px var(--coal), 0 0 14px var(--signal); }
.featured-provider-pin span { display: grid; place-items: center; }
.featured-provider-pin:hover, .featured-provider-pin.is-active { color: var(--paper); background: var(--signal); border-color: var(--paper); box-shadow: 0 0 0 4px var(--coal), 0 0 24px var(--signal); }
.live-business-card > span { display: flex; align-items: center; gap: 5px; }
.live-featured-crest { width: 76px; height: 76px; margin: 2px 0 3px; object-fit: contain; background: var(--coal); filter: drop-shadow(0 0 9px var(--signal)); }
.live-featured-crest.is-metalico-crest { width: 142px; height: 92px; }

.history-section { display: block; min-height: 0; color: var(--paper); background: var(--coal); border-top: 2px solid var(--signal); }
.history-image { display: none; }
.history-content { display: flex; flex-direction: column; justify-content: center; max-width: 860px; padding: 92px 54px; }
.history-lede { max-width: 530px; margin: 23px 0 37px; color: var(--paper); font-size: 18px; line-height: 1.47; }
.history-fact { padding-top: 17px; border-top: 1px solid var(--paper); }
.history-fact span { color: var(--signal); font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.history-fact p { margin: 8px 0 0; font-size: 14px; line-height: 1.43; }
.history-fact a { color: var(--signal); font-weight: 700; text-decoration: none; }

.notables-section { color: var(--paper); background: var(--coal); border-top: 2px solid var(--signal); }
.notables-header { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .7fr); column-gap: 54px; padding-bottom: 45px; border-bottom: 2px solid var(--paper); }
.notables-header .section-index { grid-column: 1 / -1; }
.notables-header h2 { grid-column: 1; }
.notables-header > p { grid-column: 2; align-self: end; margin: 0 0 4px; font-size: 16px; line-height: 1.43; }
.notables-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-left: 1px solid var(--paper); }
.notable-card { display: flex; flex-direction: column; min-height: 310px; padding: 26px; border-right: 1px solid var(--paper); border-bottom: 1px solid var(--paper); }
.notable-card > span { color: var(--signal); font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.notable-card > p { margin: 25px 0 8px; font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.notable-card h3 { max-width: 340px; margin-bottom: 22px; font: 500 clamp(29px, 3vw, 42px)/.95 "Oswald", Impact, sans-serif; letter-spacing: -.02em; text-transform: uppercase; }
.notable-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-top: auto; }
.notable-bottom p { max-width: 500px; margin: 0; font-size: 14px; line-height: 1.39; }
.notable-bottom a { flex: 0 0 auto; color: var(--coal); background: var(--paper); padding: 7px 8px; font-size: 10px; font-weight: 800; text-decoration: none; transition: color 160ms var(--ease-out), background 160ms var(--ease-out); }
.notable-bottom a:hover { color: var(--coal); background: var(--signal); }
.source-strip { display: flex; flex-wrap: wrap; gap: 7px 15px; padding: 20px 0 0; font-size: 11px; line-height: 1.25; }
.source-strip strong { color: var(--signal); letter-spacing: .08em; text-transform: uppercase; }
.source-strip a { color: var(--paper); font-weight: 600; text-decoration-color: var(--signal); text-decoration-thickness: 2px; text-underline-offset: 3px; }

.search-visibility { padding: 96px 54px; color: var(--paper); background: var(--coal); border-top: 2px solid var(--signal); }
.search-visibility-heading { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(260px, .7fr); align-items: end; gap: 54px; margin-bottom: 42px; padding-bottom: 39px; border-bottom: 2px solid var(--paper); }
.search-visibility-heading h2 { margin: 15px 0 0; font: 600 clamp(47px, 5.2vw, 78px)/.9 "Oswald", Impact, sans-serif; letter-spacing: -.022em; word-spacing: .05em; text-transform: uppercase; }
.search-visibility-heading > p { max-width: 420px; margin: 0; font-size: 16px; line-height: 1.46; }
.search-visibility-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--paper); border-left: 1px solid var(--paper); }
.search-visibility-item { min-height: 116px; color: var(--paper); border-right: 1px solid var(--paper); border-bottom: 1px solid var(--paper); }
.search-visibility-item summary { display: grid; grid-template-columns: minmax(90px, .3fr) minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 114px; padding: 18px; cursor: pointer; list-style: none; transition: color 180ms var(--ease-out), background 180ms var(--ease-out); }
.search-visibility-item summary::-webkit-details-marker { display: none; }
.search-visibility-item summary > span { color: var(--signal); font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.search-visibility-item summary strong { font: 500 22px/1.08 "Oswald", Impact, sans-serif; letter-spacing: 0; word-spacing: .065em; text-transform: uppercase; }
.search-visibility-item summary svg { color: var(--signal); transition: transform 180ms var(--ease-out); }
.search-visibility-item[open] summary, .search-visibility-item summary:hover { color: var(--coal); background: var(--paper); }
.search-visibility-item[open] summary svg { transform: rotate(180deg); }
.search-visibility-item > p { max-width: 670px; margin: 0; padding: 0 18px 22px 122px; color: var(--paper); font-size: 15px; line-height: 1.48; }

.featured-listings-section { padding: 96px 54px; color: var(--paper); background: var(--coal); border-top: 2px solid var(--signal); }
.featured-listings-heading { display: flex; align-items: end; justify-content: space-between; gap: 36px; padding-bottom: 29px; border-bottom: 1px solid var(--paper); }
.featured-listings-heading h2 { margin: 16px 0 0; font: 600 clamp(47px, 5.2vw, 78px)/.9 "Oswald", Impact, sans-serif; color: var(--paper); text-transform: uppercase; }
.featured-listings-heading > div:last-child { display: grid; justify-items: start; gap: 17px; max-width: 400px; }
.featured-listings-heading p { margin: 0; font-size: 16px; line-height: 1.45; }
.featured-manage-link, .featured-listings-empty a { display: inline-flex; align-items: center; gap: 7px; padding-bottom: 4px; color: var(--paper); border-bottom: 2px solid var(--signal); font-size: 12px; font-weight: 800; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }
.featured-manage-link:hover, .featured-listings-empty a:hover { color: var(--signal); }
.featured-listings-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 34px; }
.featured-listing-card { position: relative; display: grid; align-content: start; gap: 13px; min-height: 250px; padding: 28px 23px 21px; color: var(--paper); background: linear-gradient(145deg, #161616, var(--coal) 67%); border: 1px solid var(--paper); border-top: 3px solid var(--signal); }
.featured-listing-card > span { position: absolute; top: 12px; right: 13px; color: var(--signal); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.featured-listing-category { display: flex; align-items: center; gap: 6px; color: var(--signal); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.featured-listing-card h3 { max-width: 88%; margin: 0; font: 500 34px/.98 "Oswald", Impact, sans-serif; letter-spacing: .01em; word-spacing: .03em; text-transform: uppercase; }
.featured-listing-card p { margin: 0; color: #ffffffc9; font-size: 14px; line-height: 1.4; }
.featured-listing-card > div:last-child { display: flex; flex-wrap: wrap; gap: 15px; margin-top: auto; }
.featured-listing-card a { display: inline-flex; align-items: center; gap: 5px; color: var(--paper); border-bottom: 1px solid var(--signal); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.featured-listing-card a:hover { color: var(--signal); }
.featured-listing-crest { width: 112px; height: 112px; object-fit: contain; background: var(--coal); filter: drop-shadow(0 0 11px var(--signal)); }
.featured-listing-card.is-major-sponsor { grid-column: 1 / -1; grid-template-columns: 156px minmax(0, 1fr); column-gap: 28px; min-height: 280px; padding: 30px; border-top-width: 4px; background: var(--coal); }
.featured-listing-card.is-metalico-sponsor { background: var(--coal); }
.featured-listing-card.is-metalico-sponsor .featured-listing-crest { width: min(100%, 232px); height: 118px; justify-self: start; }
.featured-listing-card.is-major-sponsor .featured-listing-crest { grid-column: 1; grid-row: 1 / span 4; width: 142px; height: 142px; justify-self: center; }
.featured-listing-card.is-major-sponsor .featured-listing-category, .featured-listing-card.is-major-sponsor h3, .featured-listing-card.is-major-sponsor p, .featured-listing-card.is-major-sponsor .featured-listing-contact { grid-column: 2; }
.featured-listing-card.is-major-sponsor h3 { font-size: clamp(34px, 4vw, 56px); }
.featured-listing-contact { display: flex; flex-wrap: wrap; gap: 13px; margin-top: auto; }
.featured-listings-empty { display: grid; justify-items: start; gap: 12px; grid-column: 1 / -1; padding: 35px; color: var(--paper); border: 1px solid var(--paper); border-top: 3px solid var(--signal); }
.featured-listings-empty svg { color: var(--signal); }
.featured-listings-empty strong { font: 500 29px/1 "Oswald", Impact, sans-serif; letter-spacing: .015em; word-spacing: .03em; text-transform: uppercase; }
.featured-listings-empty p { max-width: 570px; margin: 0; color: #ffffffc9; line-height: 1.45; }

.partner-network { padding: 96px 54px; color: var(--paper); background: var(--coal); border-top: 2px solid var(--signal); }
.partner-network-heading { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(260px, .7fr); align-items: end; gap: 54px; margin-bottom: 42px; padding-bottom: 39px; border-bottom: 2px solid var(--paper); }
.partner-network-heading h2 { margin: 15px 0 0; font: 600 clamp(47px, 5.2vw, 78px)/.9 "Oswald", Impact, sans-serif; letter-spacing: -.022em; word-spacing: .05em; text-transform: uppercase; }
.partner-network-heading p { max-width: 390px; margin: 0; font-size: 16px; line-height: 1.46; }
.partner-network-heading p strong { color: var(--signal); }
.partner-network-intro { display: grid; justify-items: start; gap: 19px; }
.partner-network-manage { display: flex; align-items: center; gap: 7px; padding: 9px 0; color: var(--paper); background: transparent; border: 0; border-bottom: 2px solid var(--signal); font-size: 12px; font-weight: 800; letter-spacing: .06em; text-decoration: none; }
.partner-network-manage:hover { color: var(--signal); }
.partner-network-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--paper); border-left: 1px solid var(--paper); }
.partner-network-item { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 73px; padding: 14px 13px; color: var(--paper); background: var(--coal); border: 0; border-right: 1px solid var(--paper); border-bottom: 1px solid var(--paper); text-align: left; transition: color 160ms var(--ease-out), background 160ms var(--ease-out); }
.partner-network-item { text-decoration: none; }
.partner-network-item-unlinked { opacity: .78; }
.partner-network-loading { grid-column: 1 / -1; margin: 0; padding: 18px; color: var(--paper); border-right: 1px solid var(--paper); border-bottom: 1px solid var(--paper); font-size: 13px; }
.partner-network-item > span { align-self: start; color: var(--signal); font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.partner-network-item strong { font: 500 18px/1.08 "Oswald", Impact, sans-serif; letter-spacing: 0; word-spacing: .075em; text-transform: uppercase; }
.partner-network-item svg { color: var(--signal); transition: transform 160ms var(--ease-out); }
.partner-network-item:hover { color: var(--coal); background: var(--paper); }
.partner-network-item:hover svg { transform: translate(3px, -3px); }

.footer-cta { position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) auto; align-items: end; gap: 30px; min-height: 354px; padding: 75px 54px; color: var(--paper); background: var(--coal); border-top: 2px solid var(--signal); overflow: hidden; }
.footer-cta h2 { margin-top: 17px; max-width: 620px; }
.footer-art { display: none; }
.footer-cta button, .footer-cta .listing-action-link, .listing-dialog form button { display: flex; gap: 9px; align-items: center; padding: 18px 20px; color: var(--paper); background: var(--signal); border: 0; font-size: 14px; font-weight: 800; text-decoration: none; transition: color 160ms var(--ease-out), background 160ms var(--ease-out), transform 160ms var(--ease-out); }
.footer-cta button:hover, .footer-cta .listing-action-link:hover, .listing-dialog form button:hover { color: var(--coal); background: var(--paper); }
.footer-actions { display: grid; justify-items: start; gap: 17px; }
.social-share { display: grid; gap: 8px; }
.social-share > span { color: var(--signal); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.social-share-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.footer-cta .social-share-actions a, .footer-cta .social-share-actions button { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 8px 10px; color: var(--paper); background: transparent; border: 1px solid #ffffff78; font-size: 10px; font-weight: 800; letter-spacing: .035em; text-decoration: none; text-transform: uppercase; }
.footer-cta .social-share-actions a:hover, .footer-cta .social-share-actions button:hover { color: var(--coal); background: var(--paper); border-color: var(--paper); }
.footer-cta .social-share-actions .social-share-copy { border-color: var(--signal); color: var(--paper); }
.footer-cta .social-share-actions .social-share-copy:hover { background: var(--signal); border-color: var(--signal); color: var(--paper); }
.footer-attribution { margin: 0; color: var(--paper); font-size: 11px; font-weight: 700; letter-spacing: .05em; line-height: 1.4; word-spacing: .025em; }
.footer-attribution a { color: var(--paper); text-decoration-color: var(--signal); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.footer-attribution a:hover { color: var(--signal); }
.footer-attribution span { margin: 0 6px; color: var(--signal); }

.partner-manager { min-height: calc(100vh - 2rem); color: var(--paper); background: var(--coal); border: 2px solid var(--signal); }
.partner-manager-topbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 61px; padding: 14px 22px; border-bottom: 1px solid var(--paper); color: var(--signal); font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.partner-back { display: flex; align-items: center; gap: 7px; color: var(--paper); font-size: 12px; letter-spacing: .05em; text-decoration: none; }
.partner-back:hover { color: var(--signal); }
.partner-manager-heading { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .65fr); align-items: end; gap: 42px; padding: 56px 42px; border-bottom: 2px solid var(--paper); }
.partner-manager-heading h1 { margin: 12px 0 0; font: 600 clamp(45px, 6vw, 82px)/.88 "Oswald", Impact, sans-serif; letter-spacing: -.022em; word-spacing: .05em; text-transform: uppercase; }
.partner-manager-heading h1 em { color: var(--signal); font-style: normal; }
.partner-manager-heading > p { max-width: 380px; margin: 0; font-size: 16px; line-height: 1.45; }
.partner-manager-restricted, .partner-manager-workspace { padding: 42px; }
.partner-manager-restricted { max-width: 680px; }
.partner-manager-restricted strong { display: block; color: var(--signal); font: 500 30px/1 "Oswald", Impact, sans-serif; letter-spacing: .01em; text-transform: uppercase; }
.partner-manager-restricted p { max-width: 520px; margin: 13px 0 0; line-height: 1.5; }
.partner-manager-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 25px; padding-bottom: 24px; border-bottom: 1px solid var(--paper); }
.partner-manager-toolbar h2 { margin: 10px 0 0; font: 500 clamp(28px, 3vw, 42px)/1 "Oswald", Impact, sans-serif; letter-spacing: -.02em; text-transform: uppercase; }
.partner-manager-add, .partner-entry-actions button { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 42px; padding: 0 13px; color: var(--paper); background: var(--signal); border: 0; font-size: 12px; font-weight: 800; }
.partner-manager-add:hover, .partner-entry-actions button:hover { color: var(--coal); background: var(--paper); }
.partner-manager-list { display: grid; border-top: 1px solid var(--paper); }
.partner-manager-row { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 17px; min-height: 76px; padding: 14px 0; border-bottom: 1px solid var(--paper); }
.partner-manager-order { color: var(--signal); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.partner-manager-entry { min-width: 0; display: grid; gap: 5px; }
.partner-manager-entry strong { font: 500 22px/1.07 "Oswald", Impact, sans-serif; letter-spacing: 0; word-spacing: .075em; text-transform: uppercase; }
.partner-manager-entry small { overflow: hidden; color: var(--paper); font-size: 12px; opacity: .72; text-overflow: ellipsis; white-space: nowrap; }
.partner-manager-row-actions { display: flex; gap: 5px; align-items: center; }
.partner-manager-row-actions button, .partner-manager-row-actions a, .partner-manager-link-muted { display: grid; width: 33px; height: 33px; place-items: center; color: var(--paper); background: transparent; border: 1px solid var(--paper); }
.partner-manager-row-actions a { text-decoration: none; }
.partner-manager-row-actions button:hover, .partner-manager-row-actions a:hover { color: var(--coal); background: var(--paper); }
.partner-manager-row-actions button:disabled { cursor: not-allowed; opacity: .3; }
.partner-manager-row-actions .partner-delete:hover { color: var(--paper); background: var(--signal); border-color: var(--signal); }
.partner-manager-link-muted { color: var(--signal); opacity: .6; }
.partner-entry-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 13px; padding: 16px 0; border-bottom: 1px solid var(--paper); }
.partner-entry-form-new { margin-bottom: 20px; border-top: 2px solid var(--signal); }
.partner-entry-form label { display: grid; gap: 6px; color: var(--signal); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.partner-entry-form input { width: 100%; min-height: 42px; padding: 0 10px; color: var(--coal); background: var(--paper); border: 1px solid var(--paper); font-size: 14px; letter-spacing: 0; text-transform: none; }
.partner-entry-form textarea { width: 100%; min-height: 82px; padding: 10px; color: var(--coal); background: var(--paper); border: 1px solid var(--paper); font: 400 14px/1.4 "Source Sans 3", Arial, sans-serif; letter-spacing: 0; resize: vertical; }
.featured-entry-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.featured-coordinate-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.featured-coordinate-help { margin-top: -4px; color: #ffffff9e; font-size: 11px; line-height: 1.35; }

.hero-content h1, .section-heading h2, .history-content h2, .notables-header h2, .footer-cta h2, .listing-dialog h2, .lightline-heading h2, .search-visibility-heading h2, .partner-network-heading h2, .featured-listings-heading h2, .partner-manager-heading h1 { font-kerning: normal; font-weight: 600; letter-spacing: .008em; word-spacing: .035em; line-height: .98; text-wrap: balance; }
.lightline-heading h2 { display: grid; gap: .04em; letter-spacing: .015em; word-spacing: .035em; line-height: .98; }
.lightline-heading h2 span { display: block; }
.partner-entry-actions { display: flex; align-items: end; gap: 7px; }
.partner-entry-actions .partner-cancel { color: var(--paper); background: transparent; border: 1px solid var(--paper); }
.partner-entry-actions .partner-cancel:hover { color: var(--coal); background: var(--paper); }
.partner-manager-status { margin: 0 0 15px; color: var(--signal); font-size: 13px; font-weight: 700; }

.listing-overlay { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 20px; background: #0A0A0AE8; }
.listing-dialog { position: relative; width: min(100%, 570px); padding: 38px; color: var(--coal); background: var(--paper); border: 3px solid var(--signal); box-shadow: 12px 12px 0 var(--signal); animation: dialog-in 220ms var(--ease-out) both; }
.dialog-close { position: absolute; top: 13px; right: 13px; display: grid; width: 35px; height: 35px; place-items: center; color: var(--paper); background: var(--coal); border: 0; }
.listing-dialog h2 { margin: 16px 0; font-size: clamp(43px, 7vw, 66px); }
.listing-dialog > p { max-width: 440px; font-size: 15px; line-height: 1.4; }
.listing-dialog form { display: grid; gap: 16px; margin-top: 24px; }
.listing-dialog label { display: grid; gap: 6px; font-size: 12px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.listing-dialog input, .listing-dialog select { width: 100%; min-height: 47px; padding: 0 12px; color: var(--coal); background: var(--paper); border: 2px solid var(--coal); border-radius: 0; outline-color: var(--signal); font-size: 16px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.listing-dialog form button { justify-content: center; width: 100%; margin-top: 6px; color: var(--paper); background: var(--signal); }
.listing-dialog form button:hover { color: var(--paper); background: var(--coal); }

button:active, a:active { transform: scale(.97); }

/* White-surface refinement: preserve the established geometry and red signal while
   locally reversing the black/white tokens used throughout public page sections. */
html, body, .site-canvas, main { background: var(--paper); color: var(--coal); }
main > section {
  --paper: #0A0A0A;
  --coal: #FFFFFF;
  color: var(--paper);
  background-color: var(--coal);
}
.hero-section {
  background-color: var(--coal);
  background-blend-mode: normal;
}
.hero-section::after { background: linear-gradient(90deg, #FFFFFFF2 0%, #FFFFFFD9 45%, #FFFFFF80 71%, #FFFFFF0A 100%); }
.hero-texture { background-image: linear-gradient(90deg, #0A0A0A21 1px, transparent 1px), linear-gradient(#0A0A0A15 1px, transparent 1px); }
.hero-aside strong, .hero-aside small { color: var(--paper); text-shadow: 0 1px 0 var(--coal); }

/* User-requested dark exceptions to the white page surface. */
main > .hero-section, main > .route-graphic-section, main > .map-section, main > .notables-section, main > .footer-cta {
  --paper: #FFFFFF;
  --coal: #0A0A0A;
  color: var(--paper);
  background-color: var(--coal);
}
main > .hero-section::after { background: linear-gradient(90deg, #0A0A0AF2 0%, #0A0A0AD9 45%, #0A0A0A80 71%, #0A0A0A0A 100%); }
main > .hero-section .hero-texture { background-image: linear-gradient(90deg, #FFFFFF21 1px, transparent 1px), linear-gradient(#FFFFFF15 1px, transparent 1px); }
main > .hero-section .hero-aside strong, main > .hero-section .hero-aside small { color: var(--paper); text-shadow: none; }
main > .route-graphic-section .route-graphic-copy, main > .route-graphic-section .route-graphic-copy a { color: var(--paper); }
main > .map-section .section-heading > p { color: #FFFFFFD4; }
main > .notables-section .notables-header > p, main > .footer-cta > p { color: #FFFFFFD4; }
main > .footer-cta .social-share-actions a, main > .footer-cta .social-share-actions button { color: var(--paper); border-color: #FFFFFF78; }
.businesses-card p, .featured-listing-card p, .featured-listings-empty p, .featured-map-list > p { color: #0A0A0AD4; }
.businesses-detail-row { border-top-color: #0A0A0A55; }
.featured-listing-card, .featured-listing-card.is-major-sponsor, .featured-listing-card.is-metalico-sponsor { background: var(--coal); }
.featured-listings-empty { color: var(--paper); }
.partner-entry-form input, .partner-entry-form textarea { color: var(--paper); background: var(--coal); border-color: var(--paper); }
.featured-coordinate-help { color: #0A0A0A9E; }
.footer-cta .social-share-actions a, .footer-cta .social-share-actions button { border-color: #0A0A0A78; }
.footer-cta .social-share-actions .social-share-copy:hover { color: #FFFFFF; }
.businesses-card button, .footer-cta button, .listing-dialog form button { color: #FFFFFF; }
.businesses-card button:hover, .footer-cta button:hover { color: var(--paper); background: var(--coal); }

/* The geographic map remains an intentionally dark redline canvas, while its
   directory controls inherit the new white panel treatment from .map-section. */
.live-provider-map, .live-map-frame, .map-frame, .schematic-map {
  --paper: #FFFFFF;
  --coal: #0A0A0A;
}
main .map-section .map-directory { scrollbar-color: var(--signal) var(--coal); }

@keyframes rise-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes dialog-in { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }
@media (max-width: 1120px) {
  .site-canvas { display: block; }
  .site-rail { width: 100%; min-height: 76px; padding: 12px 37px; gap: 18px; }
  .rail-kicker { font-size: 9px; }
  .rail-listing-button { width: 145px; }
  .hero-section, .directory-section, .landmark-lightline, .map-section, .featured-listings-section, .notables-section, .search-visibility, .partner-network, .footer-cta { padding-left: 37px; padding-right: 37px; }
  .businesses-section { padding-left: 37px; padding-right: 37px; }
  .hero-aside { right: 37px; }
  .hero-scroll { left: 37px; }
  .route-graphic-copy, .history-content { padding: 48px 39px; }
  .map-shell { grid-template-columns: 315px minmax(0, 1fr); }
  .live-map-shell { grid-template-columns: 315px minmax(0, 1fr); }
}
@media (max-width: 850px) {
  .site-canvas { display: block; }
  .site-rail { position: sticky; width: 100%; height: auto; min-height: 73px; flex-direction: row; align-items: center; padding: 14px 18px; border-right: 0; border-bottom: 3px solid var(--signal); }
  .brand-mark { width: 45px; height: 45px; }
  .rail-rule, .rail-kicker, .rail-footnote, .rail-listing-button { display: none; }
  .rail-nav { display: flex; justify-content: flex-end; gap: 14px; margin-left: auto; width: auto; }
  .rail-nav a { padding: 4px 0; font-size: 13px; }
  .rail-nav a span { display: none; }
  main { margin-left: 0; }
  .hero-section { min-height: 660px; padding-top: 92px; background-position: 57% center; }
  .hero-aside { top: 27px; }
  .category-board { grid-template-columns: repeat(2, 1fr); }
  .route-graphic-section, .history-section { grid-template-columns: 1fr; }
  .route-graphic-section img { max-height: 420px; }
  .route-graphic-copy { min-height: 380px; }
  .history-image { min-height: 390px; border-right: 0; border-bottom: 2px solid var(--signal); }
  .map-shell { grid-template-columns: 1fr; }
  .live-map-shell { grid-template-columns: 1fr; }
  .featured-listings-section { padding-top: 68px; padding-bottom: 68px; }
  .featured-listings-heading { display: grid; align-items: start; gap: 25px; }
  .featured-listings-grid { grid-template-columns: 1fr; }
  .businesses-grid { grid-template-columns: 1fr; }
  .businesses-card-featured { grid-column: auto; }
  .featured-listing-card { min-height: 0; }
  .featured-listing-card.is-major-sponsor { grid-template-columns: 1fr; min-height: 0; }
  .featured-listing-card.is-major-sponsor .featured-listing-crest, .featured-listing-card.is-major-sponsor .featured-listing-category, .featured-listing-card.is-major-sponsor h3, .featured-listing-card.is-major-sponsor p, .featured-listing-card.is-major-sponsor .featured-listing-contact { grid-column: 1; grid-row: auto; justify-self: start; }
  .landmark-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .partner-network-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .search-visibility-heading { grid-template-columns: 1fr; gap: 20px; }
  .partner-manager-heading { padding: 40px 28px; }
  .partner-manager-restricted, .partner-manager-workspace { padding: 28px; }
  .map-directory { min-height: 400px; }
  .map-frame, .schematic-map { min-height: 500px; }
  .county-map-frame, .county-schematic-map { min-height: 600px; }
}
@media (max-width: 620px) {
  .site-rail { min-height: 65px; padding: 11px 14px; }
  .brand-mark { width: 39px; height: 39px; }
  .brand-lockup strong { font-size: 20px; }
  .brand-lockup small { font-size: 8px; }
  .rail-nav { gap: 9px; }
  .rail-nav a { font-size: 11px; }
  .hero-section, .directory-section, .landmark-lightline, .map-section, .featured-listings-section, .notables-section, .search-visibility, .partner-network, .footer-cta { padding-left: 20px; padding-right: 20px; }
  .businesses-section { padding: 58px 20px; }
  .hero-section { min-height: 620px; padding-top: 86px; padding-bottom: 64px; background-position: 62% center; }
  .hero-aside { display: none; }
  .hero-content h1 { font-size: clamp(53px, 17vw, 79px); }
  .hero-lede { font-size: 17px; }
  .hero-search { min-height: 55px; padding-left: 12px; }
  .hero-search input { height: 51px; padding: 0 8px; font-size: 14px; }
  .hero-search button { padding: 0 11px; font-size: 0; }
  .hero-search button svg { font-size: initial; }
  .hero-scroll { left: 20px; bottom: 25px; }
  .section-heading, .notables-header, .footer-cta { display: flex; flex-direction: column; align-items: flex-start; }
  .businesses-heading { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; margin-bottom: 27px; padding-bottom: 25px; }
  .businesses-heading h2 { font-size: clamp(46px, 14vw, 70px); }
  .businesses-card { min-height: 0; padding: 23px 18px; }
  .businesses-card-featured, .businesses-card-control { min-height: 0; }
  .directory-heading { padding-bottom: 35px; }
  .section-heading h2, .history-content h2, .notables-header h2, .footer-cta h2 { font-size: clamp(46px, 14vw, 70px); }
  .section-heading-copy p { margin-bottom: 14px; }
  .directory-toolbar { align-items: flex-start; flex-direction: column; padding: 13px 0; }
  .category-card { min-height: 142px; padding: 14px; }
  .category-card strong { font-size: 23px; }
  .directory-pledge { grid-template-columns: 47px minmax(0, 1fr); padding: 18px; gap: 13px; }
  .pledge-marker { width: 47px; height: 47px; }
  .directory-pledge strong { font-size: 19px; }
  .directory-pledge p { font-size: 13px; }
  .directory-pledge :is(button, .listing-action-link) { grid-column: 1 / -1; justify-content: center; width: 100%; }
  .route-graphic-section img { max-height: 310px; }
  .route-graphic-copy, .history-content { padding: 45px 20px; }
  .landmark-lightline { padding-top: 58px; padding-bottom: 58px; }
  .lightline-heading { display: flex; flex-direction: column; align-items: flex-start; margin-bottom: 27px; padding-bottom: 25px; }
  .lightline-heading h2 { font-size: clamp(46px, 14vw, 70px); }
  .landmark-gallery { grid-template-columns: 1fr; gap: 10px; }
  .landmark-art-card { min-height: 235px; }
  .map-heading { margin-bottom: 28px; }
  .map-directory-heading { padding: 20px; }
  .landmark-item { padding: 12px 15px; }
  .map-frame, .schematic-map { min-height: 440px; }
  .county-map-frame, .county-schematic-map { min-height: 525px; }
  .county-label { font-size: 7px; }
  .county-point { width: 24px; height: 24px; font-size: 8px; }
  .county-point.is-center { width: 43px; height: 43px; font-size: 24px; }
  .county-selection-card { right: 14px; bottom: 14px; width: min(260px, 66%); padding: 13px; }
  .history-image { min-height: 330px; }
  .history-lede { font-size: 16px; }
  .notables-header { padding-bottom: 29px; }
  .notables-header > p { margin-top: 16px; }
  .notables-grid { grid-template-columns: 1fr; }
  .search-visibility { padding-top: 58px; padding-bottom: 58px; }
  .search-visibility-heading { gap: 17px; margin-bottom: 27px; padding-bottom: 25px; }
  .search-visibility-heading h2 { font-size: clamp(46px, 14vw, 70px); }
  .search-visibility-grid { grid-template-columns: 1fr; }
  .search-visibility-item summary { grid-template-columns: 1fr auto; align-items: start; min-height: 0; }
  .search-visibility-item summary > span { grid-column: 1; }
  .search-visibility-item summary strong { grid-column: 1; font-size: 24px; }
  .search-visibility-item summary svg { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
  .search-visibility-item > p { padding: 0 18px 22px; }
  .partner-network { padding-top: 58px; padding-bottom: 58px; }
  .partner-network-heading { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; margin-bottom: 27px; padding-bottom: 25px; }
  .partner-network-heading h2 { font-size: clamp(46px, 14vw, 70px); }
  .partner-network-grid { grid-template-columns: 1fr; }
  .partner-network-item { min-height: 63px; }
  .partner-manager { min-height: calc(100vh - 2rem); }
  .partner-manager-topbar { padding: 13px 16px; }
  .partner-manager-topbar > span { display: none; }
  .partner-manager-heading { grid-template-columns: 1fr; gap: 17px; padding: 32px 20px; }
  .partner-manager-heading h1 { font-size: clamp(42px, 15vw, 66px); }
  .partner-manager-restricted, .partner-manager-workspace { padding: 20px; }
  .partner-manager-toolbar { align-items: flex-start; flex-direction: column; }
  .partner-entry-form { grid-template-columns: 1fr; }
  .featured-entry-form { grid-template-columns: 1fr; }
  .featured-coordinate-fields { grid-template-columns: 1fr; }
  .partner-entry-actions { align-items: stretch; }
  .partner-entry-actions button { flex: 1; }
  .partner-manager-row { grid-template-columns: 27px minmax(0, 1fr); gap: 10px; }
  .partner-manager-row-actions { grid-column: 2; justify-content: flex-start; }
  .notable-card { min-height: 275px; padding: 21px; }
  .notable-card h3 { font-size: 34px; }
  .notable-bottom { gap: 12px; }
  .notable-bottom p { font-size: 13px; }
  .footer-cta { display: flex; min-height: 330px; padding-top: 52px; padding-bottom: 52px; }
  .footer-art { display: none; }
  .footer-actions, .footer-cta > .footer-actions > :is(button, .listing-action-link) { width: 100%; }
  .footer-cta > .footer-actions > :is(button, .listing-action-link) { justify-content: center; }
  .listing-dialog { padding: 31px 20px 25px; box-shadow: 8px 8px 0 var(--signal); }
}
