:root {
  color-scheme: light;
  --navy: #192e53;
  --ink: #1e3459;
  --text: #425675;
  --secondary: #536884;
  --link: #284fba;
  --royal: #315de4;
  --line: #cbd7e9;
  --pale: #f4f7fc;
  --white: #fff;
  --wash: #eef3ff;
  --radius: 18px;
  font: 16px/1.55 Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  color: var(--ink);
  background: var(--pale);
}
* { box-sizing: border-box; }
body { margin: 0; }
main { min-height: 52vh; }
img { display: block; max-width: 100%; }
a { color: var(--link); text-underline-offset: .19em; }
a:hover { text-decoration: underline; }
button, input, textarea, select { font: inherit; }
button, summary { cursor: pointer; }
button:disabled { opacity: .59; cursor: wait; }
:focus-visible { outline: 3px solid #bf7229; outline-offset: 3px; }
[hidden] { display: none !important; }
h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { line-height: 1.16; color: var(--navy); }
h1 { font-size: clamp(2.25rem, 4.1vw, 4rem); font-weight: 730; letter-spacing: -.057em; }
h2 { font-size: clamp(1.36rem, 2.1vw, 2.05rem); letter-spacing: -.042em; }
h3 { font-size: 1.1rem; letter-spacing: -.021em; }
p { color: var(--text); }
.icon { width: 1.12em; height: 1.12em; flex: none; vertical-align: -.18em; }
.shell { width: min(1320px, calc(100% - clamp(44px, 10vw, 160px))); margin-inline: auto; }
.visually-hidden, .trap { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip { position: absolute; top: 4px; left: 8px; z-index: 5; padding: 8px 14px; background: var(--white); transform: translateY(-160%); }
.skip:focus { transform: none; }
.mast { background: var(--white); border-bottom: 1px solid #dbe3ee; }
.mast-inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand, .mast a, footer nav a { text-decoration: none; }
.brand:hover { text-decoration: none; }
.signature, .mast nav, .block-head, .department, .shortcuts, .hero-count, .search, .filter-line, .list-meta, .source-note, .record-actions, .number-meta, .route-list { display: flex; align-items: center; }
.signature { gap: 11px; color: var(--navy); }
.brand-mark { width: 44px; height: 44px; flex: none; }
.brand-type { display: grid; line-height: 1.02; font-size: 1.36rem; font-weight: 740; letter-spacing: -.047em; }
.brand-type small { font-size: .61rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--secondary); margin-top: 6px; }
.mast nav { gap: clamp(16px, 2vw, 34px); margin-left: auto; }
.mast nav a, .contact-link { font-size: .91rem; font-weight: 600; color: #344d6b; }
.mast nav a:hover, .mast a[aria-current], footer nav a:hover { color: var(--link); text-decoration: underline; }
.contact-link { border-left: 1px solid var(--line); padding-left: 26px; }
.atlas-hero { isolation: isolate; position: relative; overflow: hidden; margin-block: 26px 40px; border-radius: 23px; background: #183452; }
.atlas-coast, .atlas-hero::before { position: absolute; inset: 0; width: 100%; height: 100%; }
.atlas-coast { object-fit: cover; object-position: 68% 53%; z-index:-2; }
.atlas-hero::before { content: ''; z-index:-1; background: linear-gradient(90deg, rgba(12,38,58,.96) 2%,rgba(14,46,67,.81) 32%,rgba(14,46,62,.4) 57%,rgba(15,42,55,.03) 88%); }
.atlas-copy { padding: clamp(38px,5vw,74px); max-width: 680px; color: white; }
.hero-kicker, .eyebrow { color: var(--secondary); font-size: .75rem; font-weight: 720; letter-spacing: .115em; text-transform: uppercase; }
.hero-kicker { color: #ffe2a9; margin-bottom: 17px; }
.atlas-copy h1 { color: #fff; font-size: clamp(3.25rem,5.5vw,5.6rem); line-height: .99; letter-spacing:-.067em; }
.atlas-copy > p:not(.hero-kicker) { color:#f0f5fa; max-width: 40ch; margin: 18px 0 24px; }
.search { min-width:0; width: min(100%,520px); gap: 10px; padding: 5px 5px 5px 16px; background: var(--white); border: 1px solid #b8c6d9; border-radius: 12px; color: var(--secondary); }
.search input { min-width: 0; flex: 1; padding: 9px 0; border: 0; background: transparent; color: var(--navy); }
.search button, .solid { background:var(--royal); color:#fff; border: 1px solid transparent; border-radius: 9px; font-weight: 680; text-decoration: none; }
.search button { padding: 9px 18px; }
.solid { display: inline-flex; justify-content: center; align-items: center; gap: 9px; padding: 12px 20px; line-height: 1.35; }
.solid:hover, .search button:hover { background: #224cc9; color: white; text-decoration: none; }
.home-block { margin: 0 0 43px; }
.block-head { justify-content: space-between; gap: 15px; margin-bottom: 17px; }
.block-head a { font-size: .88rem; font-weight: 620; }
.shortcuts, .departments, .index-results { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.company-row, .department { display: flex; align-items: center; min-width: 0; background: #fff; border: 1px solid var(--line); border-radius: 13px; text-decoration: none; gap: 14px; padding: 15px 16px; }
.company-row:hover, .department:hover { border-color: #8da6cf; background:#fcfdff; text-decoration:none; }
.company-row strong, .department strong { display: block; font-size: 1rem; color:var(--ink); line-height:1.35; }
.company-row small, .department small { display:block; margin-top: 3px; color: var(--secondary); font-size: .78rem; }
.company-row span, .department span { overflow-wrap:anywhere; }
.department-icon { display: grid; place-items: center; flex:0 0 41px; height:41px; background:var(--wash); border-radius:10px; }
.department-icon .icon { width:20px; height:20px; }
.logo { flex:0 0 40px; width:40px; height:40px; border: 1px solid #d8e2ee; background:#fff; border-radius:10px; display:grid; place-items:center; color:#435d83; font-size:.85rem; font-weight:720; }
.logo img { width:72%; height:72%; object-fit:contain; }
.crumb { display:flex; gap:13px; flex-wrap:wrap; align-items:center; color:var(--secondary); font-size:.88rem; }
.crumb a { color:var(--secondary); text-decoration:none; }
.crumb a:hover { text-decoration:underline; }
.crumb [aria-current] { color:var(--navy); }
.company { padding-block: 24px 56px; }
.record-heading { margin: 25px 0 23px; }
.record-heading p { margin-top: 7px; color:#526987; font-size:clamp(1.14rem,1.65vw,1.55rem); line-height:1.35; font-weight: 460; }
.contact-record, .chapter, .prose, .paper-side { background: #fff; border:1px solid var(--line); border-radius:var(--radius); }
.contact-record { padding:clamp(23px,2.7vw,40px); }
.record-grid { display:grid; grid-template-columns:clamp(145px,14vw,202px) minmax(0,1fr); gap:clamp(25px,3.2vw,54px); align-items:start; }
.record-brand { text-align:center; padding:9px clamp(15px,2.1vw,35px) 15px 0; display:flex; flex-direction:column; align-items:center; gap:10px; border-right:1px solid #d9e2f0; min-width:0; overflow-wrap:anywhere; }
.logo.large { flex:none; width:clamp(82px,7vw,110px); height:clamp(82px,7vw,110px); border-radius:15px; margin-bottom:3px; font-size:1.7rem; }
.record-brand strong { color:var(--navy); font-size:1.12rem; line-height:1.3; }
.official-site { color:var(--secondary); font-size:.86rem; text-decoration:none; }
.official-site .icon,.source-note .icon { width: .88em; height:.88em; margin-left:2px; }
.record-focus { min-width:0; }
.record-focus h2 { font-size:clamp(1.75rem,3.5vw,3rem); margin:6px 0 10px; }
.badges { display:flex; flex-wrap:wrap; gap:8px; }
.badge { font-size:.72rem; line-height:1.2; letter-spacing:.04em; text-transform:uppercase; font-weight:720; padding:6px 9px; color:#4b6395; background:#eff2fc; border:1px solid #dce3f8; border-radius:5px; }
.badge.toll { background:#e9f5ee; border-color:#cee4d6; color:#276848; }
.number-purpose { margin:15px 0 4px; color:#536b8a; font-size:clamp(.98rem,1.35vw,1.24rem); }
.number { display:inline-block; max-width:100%; font-size:clamp(2.45rem,5.25vw,5.8rem); font-weight:750; line-height:1.14; letter-spacing:-.055em; color:#182d56; font-variant-numeric:lining-nums tabular-nums; text-decoration:none; overflow-wrap:anywhere; }
.number:hover { text-decoration: underline; text-decoration-thickness: .04em; }
.number-meta, .record-actions, .source-note, .route-list { flex-wrap:wrap; }
.number-meta { gap: 7px 20px; margin-top:12px; color:var(--secondary); font-size:.95rem; }
.number-meta:empty { display:none; }
.number-meta span { display:inline-flex; align-items:center; gap:5px; }
.record-actions { gap:14px 22px; margin:22px 0 17px; }
.record-actions a:not(.solid) { text-decoration:none; font-size:.94rem; font-weight:650; }
.record-actions a:not(.solid):hover { text-decoration:underline; }
.source-note { gap:4px 15px; line-height:1.45; color:var(--secondary); font-size:.82rem; }
.source-note a { color:#506c96; }
.fee-note, .fine, .quiet { color:var(--secondary); font-size:.87rem; }
.fee-note { margin-top:6px; font-size:.8rem; }
.independence { background:#eff3fd; color:#405b83; margin-top:24px; padding:12px 15px; border-radius:9px; font-size:.9rem; }
.independence b { color:#314b76; }
.company-content { display:grid; grid-template-columns:minmax(0,1fr) 195px; grid-template-areas:"content toc"; align-items:start; gap:22px; margin-top:18px; }
.company-content > article { grid-area:content; min-width:0; }
.toc { grid-area:toc; position:sticky; top:15px; padding: 15px 0 12px 12px; }
.toc nav, .paper-side nav { display:grid; margin-top:10px; gap:8px; }
.toc a, .paper-side a { color: var(--link); line-height:1.4; font-size:.92rem; }
.toc a { text-decoration:none; }
.toc a:hover { text-decoration:underline; }
.toc .correct { display:inline-block; margin-top:18px; font-size:.82rem; text-decoration:underline; }
.chapter { padding:clamp(19px,2.3vw,32px); margin-bottom:15px; scroll-margin-top:12px; }
.chapter h2 { font-size:clamp(1.24rem,1.7vw,1.58rem); margin-bottom:10px; }
.chapter >p, .chapter >ul { margin:5px 0 12px; }
.chapter >h3 { margin:20px 0 10px; }
.channel { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; padding:16px 0; border-bottom:1px solid #e2e9f2; align-items:center; overflow-wrap:anywhere; }
.channel:last-of-type { border-bottom:0; }
.channel .eyebrow, .specialists .eyebrow { font-size:.62rem; }
.channel h3 { margin:2px 0 4px; }
.channel .source-note { margin-top:5px; }
.channel-link, .small-number, .route-link { font-weight:620; }
.small-number { color:var(--navy); letter-spacing:-.025em; font-size:1.15rem; }
.route-list { gap:8px; }
.route-link { color:var(--link); background:#f0f4fc; border-radius:7px; padding:7px 12px; font-size:.9rem; text-decoration:none; }
.specialists { display:grid; gap:14px; }
.specialists article { padding:15px; border:1px solid var(--line); border-radius:10px; }
.specialists p { margin:6px 0; }
.sources { padding-left: 1.2rem; }
.sources li { margin-block:7px; overflow-wrap:anywhere; }
.interior { padding-block:clamp(28px,4vw,60px); }
.heading { margin-bottom:28px; }
.crumb + .heading { margin-top:20px; }
.heading h1 { margin-top:6px; max-width:27ch; }
.heading .lead { font-size:clamp(1rem,1.5vw,1.25rem); max-width:62ch; margin-top:12px; }
.filter-line { gap:14px; max-width:790px; }
.select-filter { display:flex; align-items:center; gap:8px; min-width:0; }
.select-filter select { min-width:0; }
.select-filter span { font-size:.9rem; font-weight:620; }
select,input,textarea { color:var(--navy); }
select, .field input, .field textarea { max-width:100%; background:white; border:1px solid #afc1d7; border-radius:8px; padding:9px 11px; }
.list-meta { gap:12px; margin:15px 0; color:var(--secondary); font-size:.9rem; }
.list-meta button, .admin-actions button, .moderation button { background:#fff; color:var(--link); border:1px solid var(--line); border-radius:7px; padding:5px 11px; }
.no-results { background:#fff; border-radius:12px; padding:18px; }
.article-layout { display:grid; grid-template-columns:minmax(0, 1fr) minmax(210px, 29%); gap:24px; align-items:start; }
.article-layout>section, .article-layout>.prose, .paper-side { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:clamp(20px,3vw,36px); min-width:0; }
.article-layout h2 { font-size:1.45rem; margin:0 0 12px; }
.prose section + section { margin-top:28px; }
.prose > p:last-child { margin-top:20px; }
.paper-side { align-self:start; }
.paper-side h3 { margin:15px 0 5px; }
.paper-side > a, .office-contact a { display:block; margin-top:8px; overflow-wrap:anywhere; }
.field { display:grid; gap:4px; margin-bottom:13px; }
.field span, .check { font-size:.9rem; }
.field span { color:var(--ink); font-weight:620; }
.field input, .field select, .field textarea { width:100%; min-width:0; }
.field textarea { resize:vertical; min-height:108px; }
.two-fields, .admin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.check { display:flex; gap:9px; align-items:baseline; margin:15px 0; }
.check input { accent-color:var(--royal); }
.entry { max-width:760px; }
.entry.login { max-width:370px; }
.write-review { margin-top:12px; }
.write-review summary { color:var(--link); font-weight:680; padding:8px 0; }
.write-review > p { margin:5px 0 15px; }
.form-status:not(:empty) { margin-top:10px; color:#225e48; }
.form-status.error { color:#982f37; }
.review,.moderation { padding:16px 0; border-bottom:1px solid var(--line); }
.review > *,.moderation > * { margin-bottom:6px; }
.review-score { color:var(--navy); font-weight:650; }
.admin-actions, .moderation button { margin:12px 8px 12px 0; }
footer { padding:37px 0 20px; background:#e9eef6; border-top:1px solid var(--line); }
.foot-inner { display:grid; grid-template-columns:minmax(240px,2fr) repeat(3,1fr); gap:24px; }
.foot-inner >div >p { font-size:.89rem; max-width:34ch; margin-top:14px; }
footer nav h2 { font-size:.92rem; margin-bottom:7px; }
footer nav a { display:block; width:fit-content; color:var(--secondary); margin:5px 0; font-size:.85rem; }
.imprint { margin-top:25px; color:var(--secondary); font-size:.76rem; padding-top:13px; border-top:1px solid #cdd8e6; }
@media (max-width:1000px) {
  .shell { width:calc(100% - 60px); }
  .departments,.index-results { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mast-inner { gap:18px; }
  .contact-link { padding-left:16px; }
  .company-content { grid-template-columns:minmax(0,1fr) 165px; gap:13px; }
}
@media (max-width:760px) {
  .shell { width:calc(100% - 36px); }
  .mast-inner { min-height:0; flex-wrap:wrap; padding:12px 0 8px; gap:10px; }
  .brand-mark { width:37px; height:37px; }
  .brand-type { font-size:1.18rem; }
  .brand-type small { font-size:.55rem; }
  .contact-link { margin-left:auto; border:0; padding:5px 0; font-size:.8rem; }
  .mast nav { order:3; width:100%; justify-content:flex-start; gap:22px; padding-top:5px; border-top:1px solid #edf0f6; }
  .mast nav a { font-size:.81rem; }
  .company { padding-top:16px; }
  .record-heading { margin:17px 0 16px; }
  .record-grid { grid-template-columns:112px minmax(0,1fr); gap:19px; }
  .record-brand { padding:5px 14px 8px 0; }
  .record-brand strong { font-size:1rem; }
  .record-brand .large { width:66px; height:66px; }
  .company-content { display:block; }
  .toc { position:static; padding:0 2px; margin:12px 0; }
  .toc > .eyebrow, .toc .correct { display:none; }
  .toc nav { display:flex; flex-wrap:wrap; gap:8px 17px; font-size:.84rem; }
  .toc nav a { font-size:.83rem; }
  .departments,.index-results { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .foot-inner { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .foot-inner >div { grid-column:1/-1; }
  .atlas-copy { padding:35px; }
  .article-layout { grid-template-columns:minmax(0,1fr); }
  .filter-line { flex-wrap:wrap; }
  .select-filter { flex-wrap:wrap; }
}
@media (max-width:570px) {
  .record-grid { display:flex; flex-direction:column; gap:19px; }
  .record-focus { order:-1; width:100%; }
  .record-brand { width:100%; border:0; border-top:1px solid #e0e7f1; padding:12px 0 0; display:grid; grid-template-columns:38px minmax(0,1fr); grid-template-rows:auto auto; align-items:center; gap:0 10px; text-align:left; }
  .record-brand .large { grid-row:1/3; width:38px; height:38px; border-radius:7px; margin:0; font-size:.8rem; }
  .record-brand .official-site { font-size:.74rem; }
  .record-brand strong { font-size:.89rem; }
  .shell { width:calc(100% - 28px); }
  .contact-record { padding:18px; border-radius:15px; }
  .number { font-size:clamp(2rem,10.2vw,3.4rem); letter-spacing:-.062em; }
  .badges { gap:5px; }
  .badge { font-size:.61rem; padding:5px 7px; }
  .number-purpose { margin-top:12px; }
  .number-meta { font-size:.83rem; margin-top:9px; }
  .record-actions { margin:16px 0 12px; gap:10px 14px; }
  .record-actions .solid { padding:10px 13px; font-size:.92rem; }
  .record-actions a:not(.solid) { font-size:.82rem; }
  .source-note { font-size:.75rem; }
  .fee-note { font-size:.73rem; }
  .independence { font-size:.8rem; margin-top:12px; padding:10px; }
  .channel { grid-template-columns:minmax(0,1fr); gap:5px; }
  .crumb { gap:7px; font-size:.76rem; }
  .record-heading h1 { font-size:clamp(1.98rem,8vw,2.8rem); }
  .atlas-hero { border-radius:15px; margin:15px 0 28px; }
  .atlas-copy { padding:29px 20px 24px; }
  .atlas-copy h1 { font-size:3.1rem; }
  .atlas-hero::before { background:linear-gradient(90deg,rgba(14,40,60,.93) 0%,rgba(12,41,60,.78) 47%,rgba(12,41,60,.34)); }
  .atlas-coast { object-position:74% center; }
  .hero-kicker { font-size:.65rem; }
  .atlas-copy > p:not(.hero-kicker) { font-size:.95rem; max-width:29ch; margin:14px 0 18px; }
  .search { padding:4px 4px 4px 9px; gap:5px; }
  .search button { padding:8px 10px; }
  .search input { font-size:16px; }
  .home-block { margin-bottom:28px; }
  .shortcuts,.departments,.index-results { gap:8px; }
  .company-row,.department { gap:9px; padding:11px; }
  .company-row strong,.department strong { font-size:.88rem; }
  .company-row small,.department small { font-size:.71rem; }
  .company-row .logo,.department-icon { width:33px; height:33px; flex-basis:33px; }
  .block-head { align-items:baseline; }
  .block-head a { font-size:.77rem; }
  .two-fields,.admin-grid { display:block; }
  .foot-inner { grid-template-columns:1fr 1fr; gap:17px; }
}
@media (max-width:400px) {
 .index-results,.departments { grid-template-columns:1fr; }
 .shortcuts .company-row { flex-direction:column; align-items:flex-start; }
 .contact-record { padding:14px; }
 .contact-link { font-size:.75rem; }
 .index-results .company-row,.departments .department { padding:10px 13px; }
}
@media print {
 .mast nav,.contact-link,.toc,footer,.write-review,.record-actions,.skip { display:none; }
 :root,body { background:white; }
 .shell { width:100%; }
 .company-content { display:block; }
 .chapter,.contact-record { break-inside:avoid; }
}
