/* Grouped top navigation: natural height, all destinations visible. */
.site-header .utility-bar { background:#f5f8fa; border-bottom:1px solid #dbe4eb; color:#334d60; }
.site-header .utility-inner { display:block; height:auto; min-height:0; padding-block:4px; }
.site-header .utility-links { display:block; width:100%; overflow:visible; }
.utility-group { display:grid; grid-template-columns:96px minmax(0,1fr); align-items:start; gap:0 12px; }
.utility-group+.utility-group { margin-top:2px; padding-top:2px; border-top:1px solid #dce5eb; }
.utility-group-label { display:flex; align-items:center; min-height:36px; padding-left:2px; color:#5b7182; font-size:11px; font-weight:650; line-height:16px; letter-spacing:.055em; text-transform:uppercase; }
.utility-group-links { display:flex; flex-wrap:wrap; align-items:center; gap:0 4px; min-width:0; }
.site-header .utility-group-links>a,
.site-header .utility-group-links>a:first-child { display:inline-flex; align-items:center; justify-content:flex-start; min-height:36px; padding:7px 9px; border:0; border-radius:3px; color:#294458; background:transparent; font-size:14px; font-weight:650; line-height:22px; text-align:left; white-space:nowrap; text-decoration:none; }
.site-header .utility-group--company .utility-group-links>a { color:#4c6273; font-weight:500; }
.site-header .utility-group-links>a:hover,
.site-header .utility-group-links>a[aria-current=page] { color:#8e3d15; background:#e7eef3; }
.site-header .utility-group-links>a:focus-visible { outline:2px solid #b34b1e; outline-offset:1px; background:#fff; }
@media(max-width:1150px) {
 .utility-group { grid-template-columns:88px minmax(0,1fr); gap:0 7px; }
 .utility-group-links { gap:0 2px; }
 .site-header .utility-group-links>a { padding-inline:7px; }
}
@media(max-width:700px) {
 .site-header .utility-inner { padding-block:6px; }
 .utility-group { display:block; }
 .utility-group-label { min-height:22px; padding:0 7px; font-size:10px; line-height:16px; }
 .utility-group+.utility-group { margin-top:4px; padding-top:5px; }
 .utility-group-links { gap:0 2px; }
 .site-header .utility-group-links>a,
 .site-header .utility-group-links>a:first-child { min-height:34px; padding:6px 7px; font-size:14px; line-height:22px; }
}

.header-partner-links>a { display:flex; align-items:center; justify-content:center; min-width:0; color:#28475c; text-decoration:none; }
.header-partner-links img { display:block; max-width:100%; object-fit:contain; }
.header-partner-links>a>span { white-space:nowrap; }
/* Partner windows are inside the primary dark navigation bar. */
.header-directions .header-directions-inner { padding-block:5px; }
.main-nav .header-partner-links { display:flex; flex:0 0 auto; align-items:center; gap:8px; padding:0; border:0; margin-left:auto; }
.main-nav .header-partner-links>a { min-height:44px; height:44px; box-sizing:border-box; min-width:112px; padding:4px 9px; flex-direction:row; gap:7px; border:1px solid #b6c8d5; background:#fff; border-radius:3px; }
.main-nav .header-partner-links img { display:block; width:106px; height:33px; object-fit:contain; }
.main-nav .header-partner-links>a:last-child img { width:46px; height:30px; }
.main-nav .header-partner-links>a>span { font-size:12px; line-height:18px; color:#29495f; }
.main-nav .nav-request { margin-left:18px; }
@media(max-width:1150px) and (min-width:851px) { .main-nav .header-partner-links>a { min-width:96px; padding-inline:6px; } .main-nav .header-partner-links img { width:92px; } .main-nav .header-partner-links>a:last-child img { width:40px; } .main-nav .header-partner-links>a>span { font-size:11px; } .main-nav .nav-request { font-size:12px; margin-left:10px; } }
@media(max-width:850px) { .main-nav .nav-inner { flex-wrap:wrap; } .main-nav .header-partner-links { margin-left:auto; gap:6px; } .main-nav .header-partner-links>a { min-width:92px; height:40px; min-height:40px; padding:4px 6px; } .main-nav .header-partner-links img { width:86px; height:29px; } .main-nav .header-partner-links>a:last-child img { width:35px; height:27px; } .main-nav .header-partner-links>a>span { font-size:11px; } }
@media(max-width:600px) { .main-nav .header-partner-links { flex-basis:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:5px 0 7px; margin:0; } .main-nav .header-partner-links>a { min-width:0; } .main-nav .header-partner-links img { width:105px; } .main-nav .header-partner-links>a:last-child img { width:42px; } .main-nav .header-partner-links>a>span { font-size:12px; } }


.header-main .header-search-wrap { display:grid; grid-template-rows:17px 44px; gap:2px; flex:1; min-width:0; max-width:620px; }
.header-main .header-search-wrap .header-search { margin:0; width:100%; max-width:none; }
.header-main .header-city { display:flex; align-items:center; gap:4px; font-size:12px; font-weight:500; line-height:17px; color:#5a7184; }
.header-main .header-city .icon { width:13px; height:13px; }
.main-nav .header-partner-links>a:last-child { min-width:116px; }
@media(max-width:850px) { .header-main .header-search-wrap { grid-column:1/-1; grid-row:2; width:100%; max-width:none; } }
@media(max-width:600px) { .header-main .header-search-wrap { gap:1px; } }

/* Full composition of each image, with a separate text column and brand mark. */
.main-nav .nav-links>a.navigation-card { display:grid; grid-template-columns:36% minmax(0,1fr); align-items:center; gap:14px; min-height:132px; padding:12px; }
.main-nav .nav-links>a.navigation-card>.navigation-card-photo { display:grid; place-items:center; position:static; width:auto; height:auto; min-height:0; margin:0; padding:0; overflow:visible; background:transparent; }
.main-nav .nav-links>a.navigation-card>.navigation-card-photo .navigation-photo { position:static; inset:auto; transform:none; display:block; width:100%; height:auto; min-height:0; max-height:none; max-width:100%; margin:0; object-fit:contain; object-position:center; aspect-ratio:auto; }
.main-nav .nav-links>a.navigation-card>.navigation-card-copy { display:flex; flex-direction:column; align-self:center; gap:7px; min-width:0; padding:0; }
.main-nav .nav-links>a.navigation-card>.navigation-card-copy strong { margin:0; font-size:16px; line-height:22px; font-weight:700; }
.main-nav .nav-links>a.navigation-card>.navigation-card-copy small { margin:0; font-size:13px; line-height:18px; }
.main-nav .navigation-card-brand { display:flex; margin-top:1px; }
.main-nav .navigation-card-brand>.institution-logo { position:static; inset:auto; width:auto; min-height:0; max-width:100%; transform:none; padding:0; margin:0; background:none; border:0; box-shadow:none; }
.main-nav .navigation-card-brand .institution-logo--naks img { width:80px; height:32px; max-width:80px; max-height:32px; object-fit:contain; }
.main-nav .navigation-card-brand .institution-logo--nspk img { width:28px; height:26px; max-width:28px; max-height:26px; object-fit:contain; }
@media(max-width:700px) {
 .main-nav .nav-links>a.navigation-card { grid-template-columns:32% minmax(0,1fr); gap:12px; min-height:120px; padding:10px; }
 .main-nav .nav-links>a.navigation-card>.navigation-card-copy strong { font-size:15px; line-height:21px; }
 .main-nav .nav-links>a.navigation-card>.navigation-card-copy small { font-size:12px; line-height:17px; }
}
/* Use the full card width for photographs with their original proportions. */
.service-grid .service-card,.service-intro-grid .service-card { padding:24px; }
.service-grid .service-card>.service-photo,.service-intro-grid .service-card>.service-photo { width:calc(100% + 48px); max-width:none; margin:-24px -24px 18px; }
.service-grid .service-card>.service-photo-frame,.service-intro-grid .service-card>.service-photo-frame { width:calc(100% + 48px); max-width:none; margin:-24px -24px 18px; }
.service-grid .service-photo-frame>.service-photo,.service-intro-grid .service-photo-frame>.service-photo { width:100%; max-width:100%; margin:0; }

/* Menu service infographics are compact; the homepage carries the photographs. */
.main-nav .nav-links>a.navigation-card { grid-template-columns:96px minmax(0,1fr); min-height:120px; padding:12px; gap:14px; }
.main-nav .nav-links>a.navigation-card>.navigation-card-photo { width:96px; height:96px; align-self:center; display:grid; place-items:center; padding:0; margin:0; background:#f1f5f8; border-radius:3px; }
.main-nav .nav-links>a.navigation-card>.navigation-card-photo .navigation-photo { position:static; width:100%; height:100%; max-height:100%; object-fit:contain; object-position:center; }
.main-nav .nav-links>a.navigation-card>.navigation-card-copy { padding:0; gap:5px; }
.main-nav .nav-links>a.navigation-card>.navigation-card-copy strong { font-size:16px; line-height:21px; }
.main-nav .nav-links>a.navigation-card>.navigation-card-copy small { font-size:12px; line-height:17px; }
.main-nav .navigation-card-brand .institution-logo--naks img { width:68px; height:26px; }
.main-nav .navigation-card-brand .institution-logo--nspk img { width:24px; height:22px; }
.external-site-note { display:inline-block; margin-left:5px; color:#586f80; font-size:11px; line-height:15px; font-weight:500; letter-spacing:0; }
.btn-primary .external-site-note,.btn-dark .external-site-note { color:inherit; }
.navigation-card-copy>.external-site-note,.direction-copy>.external-site-note { display:block; margin:1px 0 0; }
.main-nav .header-partner-links>a { height:auto; min-height:58px; flex-wrap:wrap; gap:2px 7px; }
.main-nav .header-partner-links>a>.external-site-note { flex:0 0 100%; margin:0; text-align:center; color:#4d6576; font-size:10px; line-height:13px; }
.section-heading-brand>a,.section-visual-brand>a { flex-wrap:wrap; }
.section-heading-brand a>.external-site-note,.section-visual-brand a>.external-site-note { flex-basis:100%; margin:0; }
.service-grid .service-photo-frame>.institution-logo,.service-intro-grid .service-photo-frame>.institution-logo { min-height:0; height:38px; padding:3px 8px; }
.service-grid .service-photo-frame>.institution-logo img,.service-intro-grid .service-photo-frame>.institution-logo img { width:auto; height:28px; max-height:28px; max-width:90px; object-fit:contain; }
.service-grid .service-photo-frame>.institution-logo strong,.service-intro-grid .service-photo-frame>.institution-logo strong { font-size:15px; }
.service-grid .service-card,.service-intro-grid .service-card { min-height:0; }
.service-grid .service-card h3 { font-size:20px; line-height:26px; }
.service-grid .service-card p { font-size:14px; line-height:21px; }
.directions-section .directions-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.directions-section .direction-card { display:flex; flex-direction:column; grid-column:auto; min-height:0; padding:0; overflow:hidden; background:#fff; color:#203b51; border:1px solid #d1dde5; }
.directions-section .direction-card::after,.directions-section .direction-card::before { display:none; }
.directions-section .direction-photo { position:static; width:100%; height:auto; aspect-ratio:auto; object-fit:contain; opacity:1; }
.directions-section .direction-copy { padding:22px; color:#203b51; }
.directions-section .direction-copy p { color:#526c7e; }
.directions-section .direction-copy h3 { font-size:24px; line-height:30px; }
@media(min-width:1200px) {
 .service-grid.service-grid--control-split { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
 .service-grid.service-grid--control-split>.service-card { grid-column:auto!important; }
}
@media(max-width:1100px) { .main-nav .nav-links>a.navigation-card { grid-template-columns:82px minmax(0,1fr); gap:10px; padding:10px; } .main-nav .nav-links>a.navigation-card>.navigation-card-photo { width:82px; height:82px; } }
@media(max-width:700px) {
 .main-nav .nav-links>a.navigation-card { grid-template-columns:84px minmax(0,1fr); min-height:112px; }
 .main-nav .nav-links>a.navigation-card>.navigation-card-photo { width:84px; height:84px; }
 .main-nav .nav-links>a.navigation-card>.navigation-card-copy strong { font-size:15px; line-height:20px; }
 .directions-section .directions-grid { grid-template-columns:1fr; }
 .main-nav .header-partner-links>a { min-height:56px; }
}

/* Compact direction directories follow the equipment category layout. */
.main-nav .nav-links.open { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; padding:14px; }
.main-nav .nav-links>a.navigation-card { grid-template-columns:76px minmax(0,1fr); min-height:96px; padding:8px; gap:10px; }
.main-nav .nav-links>a.navigation-card>.navigation-card-photo { width:76px; height:76px; }
.main-nav .nav-links>a.navigation-card>.navigation-card-copy { gap:4px; }
.main-nav .nav-links>a.navigation-card>.navigation-card-copy strong { font-size:14px; line-height:20px; overflow-wrap:anywhere; }
.main-nav .nav-links>a.navigation-card>.navigation-card-copy small { display:none; }
.service-grid.service-grid--compact,.service-intro-grid.service-grid--compact { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; padding:1px; background:#d6e1e8; }
.service-grid--compact>a.service-card { display:grid; grid-template-columns:104px minmax(0,1fr); grid-column:auto!important; align-items:center; gap:12px; min-height:124px; padding:10px; margin:0; border:0; background:#fff; color:#203b51; border-radius:0; }
.service-grid--compact>a.service-card:hover { background:#f1f6f8; }
.service-grid--compact>a.service-card>.service-photo { position:static; width:104px; height:104px; max-width:104px; min-height:0; margin:0; aspect-ratio:1; object-fit:contain; }
.service-grid--compact .service-tile-copy { display:flex; flex-direction:column; min-width:0; gap:5px; }
.service-grid--compact .service-tile-copy>h3 { margin:0; font-size:15px; line-height:21px; color:#203b51; }
.service-grid--compact .service-tile-copy>p { margin:0; font-size:12px; line-height:17px; color:#546e80; }
.service-grid--compact .service-tile-copy>.service-card-top,.service-grid--compact .service-tile-copy>.service-card-bottom { display:none; }
.service-grid--compact .service-tile-copy>.institution-logo { position:static; margin:0; padding:0; min-height:0; height:22px; width:max-content; max-width:100%; border:0; box-shadow:none; background:none; }
.service-grid--compact .service-tile-copy>.institution-logo img { width:auto; max-width:65px; height:22px; max-height:22px; object-fit:contain; }
.service-grid--compact .service-tile-copy>.institution-logo strong { font-size:12px; }
.directions-section .direction-card { display:grid; grid-template-columns:112px minmax(0,1fr); align-items:center; gap:12px; min-height:132px; padding:10px; }
.directions-section .direction-photo { width:112px; height:112px; object-fit:contain; margin:0; }
.directions-section .direction-copy { padding:0; min-width:0; }
.directions-section .direction-copy p { display:none; }
.directions-section .direction-copy .direction-label { font-size:11px; line-height:15px; letter-spacing:0; text-transform:none; }
.directions-section .direction-copy h3 { margin:5px 0; font-size:19px; line-height:25px; }
.directions-section .direction-copy .direction-link { font-size:12px; line-height:17px; }
@media(max-width:1150px) {
 .main-nav .nav-links.open { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .service-grid.service-grid--compact,.service-intro-grid.service-grid--compact { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .service-grid--compact>a.service-card { grid-template-columns:90px minmax(0,1fr); gap:10px; }
 .service-grid--compact>a.service-card>.service-photo { width:90px; height:90px; max-width:90px; }
}
@media(max-width:900px) { .service-grid.service-grid--compact,.service-intro-grid.service-grid--compact { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) {
 .main-nav .nav-links.open { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .main-nav .nav-links>a.navigation-card { grid-template-columns:minmax(0,1fr); grid-template-rows:58px auto; gap:5px; min-height:124px; text-align:center; }
 .main-nav .nav-links>a.navigation-card>.navigation-card-photo { width:58px; height:58px; justify-self:center; }
 .main-nav .nav-links>a.navigation-card>.navigation-card-copy { text-align:center; align-items:center; }
 .main-nav .navigation-card-brand { justify-content:center; }
 .service-grid.service-grid--compact,.service-intro-grid.service-grid--compact { grid-template-columns:1fr; }
 .service-grid--compact>a.service-card { grid-template-columns:92px minmax(0,1fr); min-height:112px; }
 .service-grid--compact>a.service-card>.service-photo { width:92px; height:92px; max-width:92px; }
}

/* Complete service photo directory: retain compact tiles without blank grey cells. */
.service-grid.service-grid--complete,.service-intro-grid.service-grid--complete { gap:0; padding:0; border-top:1px solid #d6e1e8; border-left:1px solid #d6e1e8; background:#fff; }
.service-grid--complete>a.service-card { border-right:1px solid #d6e1e8; border-bottom:1px solid #d6e1e8; }
.service-grid--complete .service-tile-copy>h3,.service-grid--complete .service-tile-copy>p { min-width:0; max-width:100%; overflow-wrap:break-word; }
.service-grid--complete .service-tile-copy>.external-site-note { display:block; margin:0; font-size:11px; line-height:16px; color:#526c7e; }
@media(min-width:1000px) and (max-width:1150px) {
 .service-grid.service-grid--complete,.service-intro-grid.service-grid--complete { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .service-grid--complete>a.service-card { grid-template-columns:78px minmax(0,1fr); gap:10px; min-height:112px; }
 .service-grid--complete>a.service-card>.service-photo { width:78px; height:78px; max-width:78px; }
 .service-grid--complete .service-tile-copy>h3 { font-size:14px; line-height:20px; }
}

/* Homepage service photographs are larger; compact menus and overviews stay compact. */
.service-grid.service-grid--home { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; border:0; background:transparent; }
.service-grid--home>a.service-card { grid-template-columns:128px minmax(0,1fr); align-items:center; gap:14px; min-height:172px; padding:12px; border:1px solid #cfdae3; border-radius:4px; background:#fff; }
.service-grid--home>a.service-card:hover { border-color:#ad6b42; background:#f7f9fb; box-shadow:0 4px 14px #18364b0b; }
.service-grid--home>a.service-card>.service-photo { width:128px; height:128px; max-width:128px; margin:0; object-fit:contain; border-radius:3px; }
.service-grid--home .service-tile-copy { gap:6px; }
.service-grid--home .service-tile-copy>h3 { font-size:18px; line-height:24px; letter-spacing:-.02em; }
.service-grid--home .service-tile-copy>p { font-size:14px; line-height:20px; }
.service-grid--home .service-tile-copy>.institution-logo { height:26px; }
.service-grid--home .service-tile-copy>.institution-logo img { height:26px; max-height:26px; max-width:80px; }
.service-grid--home .service-tile-copy>.external-site-note { font-size:12px; line-height:17px; }
.legacy-heading--team.has-visual { grid-template-columns:minmax(0,1fr) minmax(320px,420px); gap:28px; align-items:center; }
.legacy-heading.legacy-heading--team figure.section-visual--team { display:block; width:100%; min-width:0; margin:0; align-self:center; }
.legacy-heading--team .section-visual--team>.section-visual-photo { display:block; width:100%; height:auto; max-height:none; aspect-ratio:950/535; object-fit:cover; object-position:center; padding:0; border:0; border-radius:3px; }
.legacy-heading--team .section-visual--team>figcaption { margin:10px 0 0; font-size:13px; line-height:19px; }
@media(max-width:1199px) {
 .service-grid.service-grid--home { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .service-grid--home>a.service-card { grid-template-columns:120px minmax(0,1fr); }
 .service-grid--home>a.service-card>.service-photo { width:120px; height:120px; max-width:120px; }
}
@media(max-width:900px) {
 .service-grid.service-grid--home { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .legacy-heading--team.has-visual { grid-template-columns:minmax(0,1fr); gap:20px; }
 .legacy-heading.legacy-heading--team figure.section-visual--team { max-width:620px; justify-self:center; }
}
@media(max-width:600px) {
 .service-grid.service-grid--home { grid-template-columns:minmax(0,1fr); gap:10px; }
 .service-grid--home>a.service-card { grid-template-columns:112px minmax(0,1fr); min-height:156px; gap:12px; }
 .service-grid--home>a.service-card>.service-photo { width:112px; height:112px; max-width:112px; }
 .service-grid--home .service-tile-copy>h3 { font-size:17px; line-height:23px; }
 .service-grid--home .service-tile-copy>p { font-size:13px; line-height:19px; }
}
@media(max-width:360px) {
 .service-grid--home>a.service-card { grid-template-columns:92px minmax(0,1fr); padding:10px; }
 .service-grid--home>a.service-card>.service-photo { width:92px; height:92px; max-width:92px; }
}
