/* Public area pages only; public cards/search/footer reuse their existing styles. */
.tv-area-page .tv-area-heading { margin:22px 0; }
.tv-area-page .tv-area-heading h1 { font-size:clamp(25px,3vw,34px); line-height:1.25; font-weight:750; overflow-wrap:anywhere; margin:0 0 12px; }
.tv-area-page .tv-area-heading p { color:var(--tv-muted); font-size:15px; line-height:1.65; margin:0; }
.tv-area-page .tv-area-search { padding:18px; margin-bottom:22px; background:#f3f7fd; border:1px solid var(--tv-border); border-radius:14px; }
.tv-area-page .tv-area-search label { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:600; }
.tv-area-page .tv-area-search label svg { width:18px; height:18px; color:var(--tv-blue); }
.tv-area-page .tv-area-search>div { display:flex; gap:8px; }
.tv-area-page .tv-area-search input { min-width:0; flex:1; height:46px; border:1px solid #cdd9e9; border-radius:8px; background:#fff; padding:10px 12px; font-size:16px; }
.tv-area-page .tv-area-search button { min-height:44px; border:1px solid var(--tv-border); background:#fff; color:var(--tv-navy); border-radius:8px; padding:8px 12px; }
.tv-area-page .tv-area-search button:disabled { opacity:.5; }
.tv-area-page #area-search-status { margin:8px 0 0; color:var(--tv-muted); font-size:13px; }
.tv-area-page #area-search-status.is-empty { padding:16px; border:1px solid var(--tv-border); border-radius:8px; background:#fff; color:var(--tv-navy); font-size:14px; }
.tv-area-page .tv-area-directory { display:grid; gap:14px; }
/* Each fixed pair owns its expansion panels; opening a county never changes its header's grid span. */
.tv-area-page .tv-area-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 14px; align-items:start; }
.tv-area-page .tv-area-group { grid-row:1; grid-column:1; display:flex; align-items:center; gap:9px; min-width:0; width:100%; min-height:64px; padding:14px; border:1px solid var(--tv-border); border-radius:12px; background:#fff; box-shadow:0 2px 8px #07154005; cursor:pointer; text-align:left; font-family:inherit; font-size:15px; font-weight:600; color:var(--tv-navy); }
.tv-area-page .tv-area-group[data-slot="2"] { grid-column:2; }
.tv-area-page .tv-area-row.has-single-match .tv-area-group { grid-column:1/-1; }
.tv-area-page .tv-area-group:hover { background:#f7faff; }
.tv-area-page .tv-area-group:focus-visible { outline-offset:-3px; background:#f3f7fd; }
.tv-area-page .tv-area-group:after { content:'+'; margin-left:auto; font-size:21px; font-weight:400; }
.tv-area-page .tv-area-group[aria-expanded=true]:after { content:'−'; }
.tv-area-page .tv-area-group>span { min-width:0; overflow-wrap:anywhere; }
.tv-area-page .tv-area-group>svg { width:20px; height:20px; color:var(--tv-blue); flex-shrink:0; }
.tv-area-page .tv-area-panel { grid-column:1/-1; min-width:0; border:1px solid var(--tv-border); border-radius:12px; background:#fff; overflow:hidden; }
.tv-area-page .tv-area-count { color:var(--tv-muted); font-size:11px; font-weight:400; }
.tv-area-page .tv-area-count[data-empty=true] { color:#64748b; font-style:italic; }
.tv-area-page .tv-area-panel .tv-area-parent-link { display:block; padding:12px 16px; color:var(--tv-blue); background:#f7faff; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.tv-area-page .tv-area-children { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; list-style:none; padding:12px 14px; margin:0; max-height:390px; overflow-y:auto; }
.tv-area-page .tv-area-panel li { min-width:0; }
.tv-area-page .tv-area-panel li a { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:9px 11px; min-height:44px; height:100%; border:1px solid #e8eef6; border-radius:8px; font-size:13px; line-height:1.45; color:#243653; }
.tv-area-page .tv-area-panel li a>span { min-width:0; overflow-wrap:anywhere; font-weight:500; }
.tv-area-page .tv-area-panel li a:hover { background:#f3f7fd; border-color:#cdd9e9; }
.tv-area-page .tv-area-panel li a:focus-visible { outline-offset:-3px; background:#f3f7fd; }
.tv-area-page .tv-area-panel .tv-area-count { color:#52637a; font-style:normal; }
.tv-area-page .tv-area-local-search { padding:12px 14px 0; }
.tv-area-page .tv-area-local-search>div { display:flex; gap:8px; }
.tv-area-page .tv-area-local-search input { min-width:0; flex:1; height:44px; padding:9px 11px; border:1px solid #cdd9e9; border-radius:8px; background:#fff; color:var(--tv-navy); font-size:16px; }
.tv-area-page .tv-area-local-clear { min-height:44px; padding:8px 11px; border:1px solid var(--tv-border); border-radius:8px; background:#fff; color:var(--tv-navy); font-size:13px; }
.tv-area-page .tv-area-local-clear:disabled { opacity:.5; }
.tv-area-page .tv-area-local-clear:hover:not(:disabled) { background:#f3f7fd; }
.tv-area-page .tv-area-local-status:empty { display:none; }
.tv-area-page .tv-area-local-status,.tv-area-page .tv-area-local-empty { margin:8px 0 0; font-size:13px; color:var(--tv-muted); }
.tv-area-page .tv-area-local-empty { margin:0; padding:0 14px 14px; }
.tv-area-page [hidden] { display:none!important; }
.tv-area-page .tv-area-categories { border:1px solid var(--tv-border); border-radius:14px; padding:18px; margin:20px 0; background:#f8faff; }
.tv-area-page .tv-area-categories h2 { font-size:18px; font-weight:700; margin:0 0 14px; }
.tv-area-page .tv-area-categories>div { display:flex; flex-wrap:wrap; gap:8px; }
.tv-area-page .tv-area-categories a { display:inline-flex; align-items:center; gap:7px; min-height:44px; padding:9px 11px; color:var(--tv-navy); background:#fff; border:1px solid var(--tv-border); border-radius:9px; font-size:12px; }
.tv-area-page .tv-area-categories a[aria-current] { background:#fff2b6; border-color:#f4d76d; }
.tv-area-page .tv-area-categories a svg { width:18px; height:18px; flex-shrink:0; color:var(--tv-blue); }
.tv-area-page .tv-area-results-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin:22px 0 16px; }
.tv-area-page .tv-area-results-heading h2 { font-size:19px; font-weight:700; margin:0; }
.tv-area-page .tv-area-map-open { display:inline-flex; justify-content:center; align-items:center; gap:9px; min-height:46px; padding:11px 17px; border:1px solid var(--tv-yellow); border-radius:9px; background:var(--tv-yellow); color:var(--tv-navy); font-size:14px; font-weight:700; }
.tv-area-page .tv-area-map-open svg { width:20px; height:20px; }
.tv-area-page .tv-area-map-open:hover { background:#f5cb00; }
.tv-area-page .tv-area-pagination { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:18px; padding:24px 0 0; font-size:14px; }
.tv-area-page .tv-area-pagination a { min-height:44px; display:inline-flex; align-items:center; color:var(--tv-blue); }
/* Bootstrap Reboot sets dialog { display:block }, overriding the browser's closed-dialog rule. */
.tv-area-page .tv-area-map-dialog:not([open]) { display:none; }
.tv-area-page .tv-area-map-dialog[open] { display:flex; flex-direction:column; inset:0; width:calc(100% - 40px); max-width:1600px; height:calc(100vh - 40px); height:calc(100dvh - 40px); max-height:none; margin:auto; padding:0; border:1px solid var(--tv-border); border-radius:16px; background:#fff; color:var(--tv-navy); overflow:hidden; }
.tv-area-page .tv-area-map-dialog[open]::backdrop { background:#071540b3; }
.tv-area-page .tv-area-map-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 16px; border-bottom:1px solid var(--tv-border); flex-shrink:0; }
.tv-area-page .tv-area-map-header h2 { font-size:17px; font-weight:700; margin:0; overflow-wrap:anywhere; }
.tv-area-page #area-map-close { flex-shrink:0; width:44px; height:44px; border:1px solid var(--tv-border); border-radius:9px; background:#f4f7fc; color:var(--tv-navy); font-size:28px; line-height:1; }
.tv-area-page .tv-area-full-map { align-self:flex-start; display:inline-flex; align-items:center; min-height:40px; margin:0 16px; gap:7px; font-size:13px; color:var(--tv-blue); flex-shrink:0; }
.tv-area-page #area-map-loading { padding:8px 16px; margin:0; color:var(--tv-muted); font-size:13px; }
.tv-area-page .tv-area-map-frame-slot { min-height:0; flex:1; position:relative; }
.tv-area-page .tv-area-map-frame-slot iframe { display:block; width:100%; height:100%; border:0; }
.tv-area-detail-page.tv-area-empty-page .tv-area-heading { margin:26px 0 28px; }
.tv-area-detail-page.tv-area-empty-page .tv-area-heading h1 { margin-bottom:16px; }
.tv-area-detail-page.tv-area-empty-page .tv-area-results-heading { margin:30px 0 20px; }
.tv-area-detail-page .tv-area-empty-state { padding:40px; background:#f3f7fd; }
.tv-area-detail-page .tv-area-empty-icon { display:flex; align-items:center; justify-content:center; width:40px; height:40px; margin:0 auto 16px; border-radius:12px; background:#fff; color:var(--tv-blue); }
.tv-area-detail-page .tv-area-empty-state h2 { margin:0 0 14px; line-height:1.4; color:var(--tv-navy); }
.tv-area-detail-page .tv-area-empty-state p { max-width:640px; margin:0 auto 20px; line-height:1.7; }
.tv-area-detail-page .tv-area-empty-state a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 16px; border:1px solid #cdd9e9; border-radius:8px; background:#fff; color:var(--tv-navy); font-size:14px; font-weight:600; text-decoration:none; }
.tv-area-detail-page .tv-area-empty-state a:hover { background:#eaf1fc; }
.tv-area-page a:focus-visible,.tv-area-page button:focus-visible,.tv-area-page input:focus-visible,.tv-area-page summary:focus-visible { outline:3px solid var(--tv-blue); outline-offset:3px; }
@media(min-width:1200px) {
    .tv-area-page .tv-area-children { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:767.98px) {
    .tv-area-page .tv-area-row { display:flex; flex-direction:column; }
    .tv-area-page .tv-area-map-dialog[open] { width:100%; height:100vh; height:100dvh; border:0; border-radius:0; }
    .tv-area-page .tv-area-map-header { padding:8px 12px; }
    .tv-area-page .tv-area-search>div { flex-wrap:wrap; }
    .tv-area-page .tv-area-search input { flex-basis:100%; }
    .tv-area-page .tv-area-group { flex-wrap:wrap; }
    .tv-area-page .tv-area-panel { width:100%; }
    .tv-area-page .tv-area-children { grid-template-columns:minmax(0,1fr); max-height:min(390px,60vh); }
    .tv-area-page .tv-area-local-search>div { flex-wrap:wrap; }
    .tv-area-page .tv-area-local-search input { flex-basis:100%; }
    .tv-area-detail-page.tv-area-empty-page .tv-area-heading { margin:24px 0; }
    .tv-area-detail-page.tv-area-empty-page .tv-area-heading h1 { margin-bottom:14px; }
    .tv-area-detail-page.tv-area-empty-page .tv-area-results-heading { margin:26px 0 18px; }
    .tv-area-detail-page .tv-area-empty-state { padding:28px 20px; }
    .tv-area-detail-page .tv-area-empty-state h2 { margin-bottom:12px; font-size:18px; }
    .tv-area-detail-page .tv-area-empty-state p { margin-bottom:16px; }
}
