[hidden] { display: none !important; }
.preview-tools a { font-size: .8rem; }
#news-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding-top: 1.5rem; }
#news-pagination a { padding: .45rem .85rem; border: 1px solid currentColor; border-radius: 6px; text-decoration: none; }
#news-pagination a[aria-current="page"] { background: #173b62; color: #fff; }
#news-pagination p { width: 100%; margin: 0; }
.article-illustration { display: block; width: 100%; max-height: 420px; object-fit: cover; border-radius: 12px; margin: 1.5rem 0; }
.preview-banner, .preview-tools { overflow-wrap: anywhere; }

.main-menu a[aria-current="page"] { background: #29618c; box-shadow: inset 0 -3px 0 #e8b66b; }
.subpage-heading { max-width: 820px; margin: 1.8rem 0 2rem; }
.subpage-heading h1 { color: var(--ink); font-size: clamp(2rem, 4vw, 3rem); line-height: 1.16; letter-spacing: -.025em; margin: .55rem 0 1rem; }
.information-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; margin: 1.4rem 0; }
.information-card { padding: clamp(1.2rem, 3vw, 2rem); border: 1px solid var(--line); border-radius: 12px; background: var(--paper); margin: 1.4rem 0; }
.information-grid .information-card { margin: 0; }
.information-card h2, .resident-services h2 { font-size: 1.3rem; line-height: 1.35; margin: 0 0 .85rem; color: var(--ink); }
.information-card p { max-width: 75ch; }
.information-card address { font-style: normal; }
.contact-details { display: grid; grid-template-columns: max-content 1fr; gap: .45rem 1rem; }
.contact-details dt { font-weight: 700; }
.contact-details dd { margin: 0; overflow-wrap: anywhere; }
.data-note { color: var(--muted); font-size: .9rem; }
@media(max-width:720px) { .information-grid { grid-template-columns: 1fr; } }
.article-figure, .institution-figure { margin: 1.5rem 0; }
.article-figure .article-illustration { margin: 0; }
.article-figure figcaption, .institution-figure figcaption { font-size: .8rem; color: var(--muted); margin-top: .5rem; }
.institution-figure img { display: block; border-radius: 12px; width: 100%; }
.generated-tag { position:absolute; right:.7rem; bottom:.7rem; z-index:1; background:#fffef0ed; color:#203b50; border-radius:4px; padding:.2rem .5rem; font-size:.7rem; }
.table-scroll { max-width: 100%; overflow-x:auto; }
.table-scroll[tabindex]:focus-visible { outline: 3px solid #10395f; outline-offset: 3px; }
html[data-contrast="high"] .table-scroll[tabindex]:focus-visible { outline-color: #ffdf00; }
.document-table { border-collapse:collapse; width:100%; text-align:left; }
.document-table th, .document-table td { padding:.8rem; border-bottom:1px solid var(--line); vertical-align: top; overflow-wrap: normal; word-break: normal; }
.document-table th { background:var(--bg); }
.document-table th:nth-child(2), .document-format { white-space: nowrap; }
.document-label { display: none; }
@media(max-width:720px) {
  /* Keep explicit table roles/header references when mobile CSS uses block layout. */
  .document-table, .document-table tbody { display: block; width: 100%; }
  .document-table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; }
  .document-table tbody tr { display: block; width: 100%; margin: 1rem 0; padding: .75rem; border: 1px solid #64758a; border-radius: 8px; }
  .document-table tbody td { display: block; width: auto; padding: .35rem 0; border: 0; white-space: normal; overflow-wrap: break-word; }
  .document-label { display: block; margin-bottom: .15rem; color: #526780; font-weight: 700; font-size: .85rem; }
  .document-table td:first-child .document-value { font-weight: 650; }
  .document-value { display: block; max-width: 100%; }
}
.brand-title { max-width:34ch; }
.brand { flex-wrap: wrap; }
.brand-copy { flex: 1 1 18rem; min-width: 0; }
.brand .bip-quick { flex: none; margin-left: 0; }
.site-search { display: flex; flex: 0 1 15rem; width: 15rem; max-width: 100%; margin-left: auto; }
.site-search input { flex: 1; min-width: 0; width: 100%; min-height: 44px; padding: .5rem .65rem; border: 1px solid #64758a; border-radius: 6px 0 0 6px; background: #fff; color: #172d46; font-size: 1rem; }
.site-search button { display: flex; align-items: center; justify-content: center; flex: 0 0 44px; min-width: 44px; min-height: 44px; padding: .5rem; border: 1px solid #17466e; border-radius: 0 6px 6px 0; background: #17466e; color: #fff; }
.site-search button:hover { background: #29618c; border-color: #29618c; }
.search-results { list-style: none; padding: 0; }
.search-results li { padding: 1.2rem 0; border-bottom: 1px solid #64758a; }
.search-results h2 { margin: .3rem 0; font-size: 1.25rem; }
.search-results p { margin: .4rem 0; overflow-wrap: anywhere; }
.search-result-kind { color: #526780; font-size: .85rem; }
@media(max-width:720px) {
  .brand-copy { flex-basis: calc(100% - 64px); }
  .site-search { flex: 1 1 11rem; margin-left: 0; }
}

[hidden] { display:none !important; }
