/* One owner per full-width boundary. Keep card/field outlines separate. */
html{--section-rule:#c9a66b;--section-rule-width:6px;--header-rule:var(--section-rule)}
html[data-city="okc"]{--section-rule:#fdbb30;--header-rule:#ef3b24}
html[data-city="tulsa"]{--section-rule:#bd8647}
html[data-city]{--chapter-edge:var(--section-rule);--panorama-divider:var(--section-rule)}
html[data-city] body>.topbar{border-bottom:var(--section-rule-width) solid var(--header-rule)}
html[data-city] body>.city-picker{border-bottom:var(--section-rule-width) solid var(--section-rule)}
html[data-city] body>.guide-search{border-bottom:0}
/* Each section owns its top edge, so adjacent sections never double it. */
html[data-city] body #main>:is(section,aside){border-top:var(--section-rule-width) solid var(--section-rule);border-bottom:0}
/* The city picker already owns this edge; retain section landing offsets below. */
html[data-city] body #main>:is(section,aside):first-child{border-top:0}
html[data-city] body #main>.scoreboard-shortcut{border-block:0}
/* Tulsa hides the homepage scoreboard, making local-now touch the city picker. */
html[data-city="tulsa"] body[data-page="index"] #main>.local-now{border-top:0}
html[data-city] body #main>.hero-home{border-top:var(--section-rule-width) solid var(--section-rule);border-bottom:0}
html[data-city] body #main .hero-panorama{border-bottom:var(--section-rule-width) solid var(--section-rule)}
html[data-city] body>.footer{margin-top:0;border-top:var(--section-rule-width) solid var(--section-rule)}
/* Smaller accents remain proportionate and use the same city rule color. */
html[data-city] body .chapter-related-card{border-top:2px solid var(--section-rule)}
html[data-city] body .statewide-plan-note{border-block:2px solid var(--section-rule)}
html[data-city] body[data-page="casinos"] .casinos-intro{border:1px solid var(--line);border-top:2px solid var(--section-rule)}

/* Interior chapter separators use the same city gold as their outer edges. */
html[data-city] body :is(.city-history+.city-history,.chapter-reading,.route66-sources,.daily-panel){border-top-color:var(--section-rule)}
html[data-city] body .route66-facts{border-block-color:var(--section-rule)}
/* One fallback for native anchors and programmatic reveals, including map panels. */
html body :is(main [id],main summary,.place-actions,.daily-tabs,.pagehero,.game-hero,.smash-hero,.editorial-hero,.browse-filter-status,.guide-result h2){scroll-margin-top:calc(var(--page-header-offset,80px) + 8px)!important}

/* Section navigation includes the divider itself, flush with the sticky header. */
html body :is(main section[id],main aside[id],main[id],#city-stories,.pagehero,.game-hero,.smash-hero,.editorial-hero){scroll-margin-top:var(--page-header-offset,80px)!important}

/* The header owns the visible rule when a full-width section lands beneath it. */
html body #main>:is(section,aside),html body :is(.pagehero,.game-hero,.smash-hero,.editorial-hero){scroll-margin-top:calc(var(--page-header-offset,80px) - var(--section-rule-width,6px))!important}
