/* NorthLink V44 - editorial typography and service-page layout. Built on the actual V37 palette. */
:root{--nl-blue:#072b5b;--nl-deep:#021d43;--nl-gold:#deb24d;--nl-gold-light:#f6df9c;--nl-ink:#17314c;--nl-muted:#5f6e80;--nl-border:#e4eaf1;--nl-wash:#f6f8fb}
.nav-logo-text{min-width:0;line-height:1.03;white-space:nowrap}
.nav-logo-name{display:flex!important;white-space:nowrap;align-items:baseline;gap:0;letter-spacing:.055em!important;font-weight:900!important;font-family:Archivo,Arial,sans-serif!important;font-size:clamp(19px,1.6vw,23px)!important;overflow:visible!important}
.nav-logo-name .nl-word-north{color:#062953}.nav-logo-name .nl-word-link{color:#063367}
.nav-logo-name .nl-word-link::first-letter{color:#063367}
.nav-logo-sub{font-size:9px!important;letter-spacing:3.2px!important;white-space:nowrap}
@media(max-width:1100px){.nav-logo-name{font-size:19px!important}.nav-logo-sub{font-size:8px!important;letter-spacing:2.4px!important}}
@media(max-width:430px){.nav-logo-name{font-size:18px!important}.nav-logo-sub{letter-spacing:2.1px!important}.nav{padding-left:12px;padding-right:12px}}
.nav-logo:focus-visible,.nav-link:focus-visible,.dispatch-btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid #174a88;outline-offset:3px}
html{scroll-padding-top:90px}
.nl-editorial{background:#f6f8fb;font-family:'DM Sans',system-ui,sans-serif;line-height:1.7;color:var(--nl-ink);padding:0 0 100px}
.nl-editorial *{box-sizing:border-box}
.nl-editorial .nl-container{max-width:1240px;margin:0 auto;padding:0 26px}
.nl-editorial-hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(26px,4vw,65px);align-items:center;padding:72px 0 60px}
.nl-editorial-copy{max-width:640px}
.nl-kicker{display:block;font-family:Archivo,Arial,sans-serif;font-weight:800;font-size:12px;letter-spacing:.18em;color:#946313;margin-bottom:20px}
.nl-editorial-copy h2{font-family:Archivo,Arial,sans-serif;color:var(--nl-deep);font-size:clamp(35px,3.7vw,59px);line-height:1.09;letter-spacing:-.035em;margin:0 0 23px}
.nl-editorial-copy>p{color:#4d6074;font-size:17px;line-height:1.8;margin:0 0 20px}
.nl-editorial-copy .nl-editorial-opening{font-weight:400;color:#2c435a;font-size:18px}
.nl-editorial-hero-image{margin:0;border-radius:18px;overflow:hidden;position:relative;min-height:400px;box-shadow:0 20px 48px rgba(3,31,67,.15);background:#dce5eb}
.nl-editorial-hero-image img{display:block;width:100%;height:100%;min-height:400px;object-fit:cover;object-position:center}
.nl-editorial-hero-image:after{content:'';position:absolute;right:0;bottom:0;width:38%;height:5px;background:var(--nl-gold)}
.nl-editorial-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.nl-action-primary,.nl-action-secondary{display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none!important;font-size:14px;font-weight:800;border-radius:8px;padding:13px 18px;min-height:48px;transition:transform .2s,box-shadow .2s}
.nl-action-primary{background:#d8a93d;color:#062747!important;box-shadow:0 8px 20px #c8963429}
.nl-action-secondary{border:1px solid #d3dce7;color:#0c376a!important;background:white}
.nl-action-primary:hover,.nl-action-secondary:hover{transform:translateY(-2px)}
.nl-editorial-layout{display:grid;grid-template-columns:238px minmax(0,1fr);gap:42px;align-items:start;padding-bottom:30px}
.nl-chapter-aside{position:sticky;top:94px;padding:25px 18px 20px;background:#fff;border:1px solid var(--nl-border);border-radius:14px;box-shadow:0 7px 20px rgba(2,30,64,.035)}
.nl-aside-label{font:800 11px Archivo,Arial,sans-serif!important;letter-spacing:.16em;color:#91681f!important;margin:0 0 18px!important}
.nl-chapter-aside nav{display:flex;flex-direction:column;gap:3px}
.nl-chapter-aside nav a{padding:9px 9px 9px 13px;color:#586b80;text-decoration:none;font-size:12.5px;font-weight:700;line-height:1.45;border-left:2px solid transparent;border-radius:0 5px 5px 0}
.nl-chapter-aside nav a:hover,.nl-chapter-aside nav a:focus-visible{color:#092d5c;background:#f5f7fb;border-left-color:#d5a436}
.nl-editorial-main{min-width:0}
.nl-chapter{background:#fff;border:1px solid #e4eaf1;border-radius:16px;padding:clamp(24px,3vw,41px);box-shadow:0 6px 24px rgba(2,30,64,.035);margin-bottom:27px;scroll-margin-top:95px}
.nl-chapter-title{display:flex;align-items:flex-start;gap:15px;padding-bottom:20px;border-bottom:1px solid #e8edf3;margin-bottom:23px}
.nl-chapter-num{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;flex:0 0 42px;width:42px;height:42px;color:#9b6e18;background:#fcf5e6;font:bold 14px Archivo,Arial,sans-serif}
.nl-chapter h2{font-family:Archivo,Arial,sans-serif;color:#052b59;font-size:clamp(24px,2.4vw,31px);line-height:1.22;letter-spacing:-.02em;margin:2px 0 0;overflow-wrap:anywhere}
.nl-chapter h3{font-family:Archivo,Arial,sans-serif;color:#123e70;font-size:19px;line-height:1.34;margin:28px 0 10px}
.nl-chapter>p,.nl-chapter>div:not(.nl-chapter-title):not(.nl-table-wrap):not(.nl-story-images):not(.nl-technical-detail),.nl-chapter>ul,.nl-chapter>ol{font-size:16px;color:#40546a;line-height:1.82}
.nl-chapter>p{margin:0 0 16px;max-width:78ch}
.nl-chapter>p:last-child{margin-bottom:0}
.nl-chapter ul,.nl-chapter ol{padding-left:25px;margin:16px 0 24px}
.nl-chapter li{padding-left:6px;margin-bottom:12px;line-height:1.7}
.nl-chapter li::marker{color:#ad7c22;font-weight:800}
.nl-chapter .nl-note{border-left:3px solid #d8a93d;background:#fdf9ee;border-radius:0 8px 8px 0;padding:15px 17px;font-size:14px;color:#5e4b24}
.nl-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:24px 0 28px;border:1px solid #dce4ed;border-radius:12px;box-shadow:0 5px 17px rgba(2,24,54,.035)}
.nl-data-table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px;line-height:1.55;color:#34495f;text-align:left;table-layout:auto;background:#fff}
.nl-data-table th{background:#0c315f;color:#fff;font:700 12px/1.45 'DM Sans',sans-serif;letter-spacing:.025em;padding:16px 14px;vertical-align:top}
.nl-data-table td{padding:16px 14px;border-top:1px solid #e6ecf1;vertical-align:top;min-width:90px}
.nl-data-table .nl-first-col{font-weight:800;color:#082e5d;min-width:128px}
.nl-data-table tbody tr:nth-child(even){background:#f7f9fc}
.nl-data-table tbody tr:hover{background:#fffaf1}
.nl-numbered-list{list-style:decimal;counter-reset:item;display:grid;gap:12px}
.nl-numbered-list li{border-radius:9px;background:#f7f9fc;border:1px solid #e8eef4;padding:16px 18px 16px 13px!important;margin:0!important}
.nl-info-list{display:grid;gap:8px;margin:15px 0 22px!important;list-style:none!important;padding-left:0!important}
.nl-info-list li{position:relative;border-left:3px solid #ddb351;background:#f7f9fc;border-radius:0 7px 7px 0;padding:12px 15px!important;margin:0!important;line-height:1.65}
.nl-technical-detail{padding:15px 17px;background:#f7f9fc;border:1px solid #e4eaf1;border-radius:9px;margin:14px 0}
.nl-technical-detail p{margin:0;font-size:15px;line-height:1.7}
.nl-story-images{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:25px 0 12px}
.nl-story-images figure{margin:0;border-radius:12px;overflow:hidden;background:#dce8ee;height:200px}
.nl-story-images img{width:100%;height:100%;object-fit:cover;display:block}
.nl-bottom-cta{border-radius:16px;padding:40px 48px;background:linear-gradient(125deg,#092e5a,#021d43);color:#fff;display:flex;flex-direction:column;align-items:start;gap:12px;position:relative;overflow:hidden;margin:24px 0 0}
.nl-bottom-cta:after{content:'';position:absolute;top:0;right:0;height:7px;width:30%;background:#dfb653}
.nl-bottom-cta h2{font:800 clamp(26px,2.7vw,36px)/1.2 Archivo,Arial,sans-serif;color:#fff;margin:0}
.nl-bottom-cta p{font-size:16px;line-height:1.7;color:#d8e3ef;margin:0 0 7px;max-width:560px}
.nl-bottom-cta .nl-action-primary{margin-top:4px}
/* The specialist page's original V37 navy breadcrumb masthead remains, with readable sizing */
body:has(.nl-editorial) .page-hero{padding-top:55px;padding-bottom:50px}
body:has(.nl-editorial) .page-hero .section-title{font-size:clamp(29px,3.3vw,43px);line-height:1.14;max-width:1000px;color:#fff}
body:has(.nl-editorial) .page-hero .section-desc{font-size:15px;line-height:1.65;color:#e4edf7}
/* V37 site core sections preserved. These constraints improve responsive readability without rearranging them. */
:where(.site-header) .nav-logo{text-decoration:none}
@media(max-width:1070px){.nl-editorial-layout{grid-template-columns:190px minmax(0,1fr);gap:20px}.nl-chapter-aside{padding:18px 11px}.nl-editorial .nl-container{padding:0 18px}}
@media(max-width:800px){.nl-editorial-hero{grid-template-columns:1fr;padding:46px 0 40px;gap:24px}.nl-editorial-copy{max-width:none}.nl-editorial-hero-image,.nl-editorial-hero-image img{height:330px;min-height:0}.nl-editorial-layout{display:block}.nl-chapter-aside{position:static;margin:0 0 24px;padding:16px}.nl-chapter-aside nav{display:grid;grid-template-columns:1fr 1fr;gap:2px 8px}.nl-chapter{margin-bottom:18px}.nl-editorial{padding-bottom:55px}}
@media(max-width:620px){.nl-editorial .nl-container{padding:0 14px}.nl-editorial-copy h2{font-size:34px}.nl-editorial-copy>p,.nl-editorial-copy .nl-editorial-opening{font-size:16px}.nl-editorial-hero-image,.nl-editorial-hero-image img{height:225px}.nl-chapter{padding:23px 18px}.nl-chapter-title{gap:12px}.nl-chapter-num{width:33px;height:33px;flex-basis:33px;font-size:12px}.nl-chapter h2{font-size:23px}.nl-chapter>p,.nl-chapter ul,.nl-chapter ol{font-size:15.5px}.nl-chapter-aside nav{grid-template-columns:1fr 1fr}.nl-chapter-aside nav a{font-size:12px}.nl-story-images{grid-template-columns:1fr}.nl-story-images figure{height:210px}.nl-bottom-cta{padding:28px 22px}.nl-data-table{font-size:14px}.nl-data-table thead{display:none}.nl-data-table,.nl-data-table tbody,.nl-data-table tr,.nl-data-table td{display:block;width:100%}.nl-data-table tr{border-bottom:1px solid #e0e8f0;padding:12px 12px 14px}.nl-data-table tr:last-child{border-bottom:0}.nl-data-table td{min-width:0;padding:8px 4px!important;border:0!important;display:grid;grid-template-columns:minmax(92px,34%) minmax(0,1fr);gap:10px;overflow-wrap:anywhere;font-size:13.5px;line-height:1.56}.nl-data-table td:before{content:attr(data-label);color:#63768a;font-size:11px;line-height:1.35;font-weight:800;text-transform:uppercase;letter-spacing:.045em}.nl-data-table .nl-first-col{font-weight:800;color:#092d5d}}
@media(prefers-reduced-motion:reduce){.nl-action-primary,.nl-action-secondary{transition:none}}
/* Editorial specialist pages carry their single PDF H1 alongside the hero image. */
.nl-editorial-hero{padding-top:76px}
.nl-editorial-copy h1{font-family:Archivo,Arial,sans-serif;color:var(--nl-deep);font-size:clamp(34px,3.25vw,50px);line-height:1.12;letter-spacing:-.035em;margin:0 0 24px}
@media(max-width:800px){.nl-editorial-hero{padding-top:42px}}
@media(max-width:620px){.nl-editorial-copy h1{font-size:31px}}
.nl-standfirst{margin:-10px 0 38px;padding:20px 25px 20px 28px;border-left:4px solid #d8ab46;background:#fff;border-radius:0 10px 10px 0;box-shadow:0 5px 20px rgba(2,30,64,.03);max-width:1150px}
.nl-standfirst>span{display:block;font:800 11px Archivo,Arial,sans-serif;letter-spacing:.15em;color:#936914;margin-bottom:9px}
.nl-standfirst>p{font-size:17px;line-height:1.8;margin:0;color:#43566a;max-width:105ch}
@media(max-width:620px){.nl-standfirst{margin:0 0 24px;padding:17px 18px}.nl-standfirst>p{font-size:15.5px}.nl-editorial-hero{gap:18px;padding-bottom:22px}.nl-editorial-hero-image,.nl-editorial-hero-image img{height:215px}}
.nl-dispatch-overview{padding:78px 0 92px}
.nl-overview-head{max-width:820px;margin:0 auto 33px;text-align:center}
.nl-overview-head h2{font:800 clamp(30px,3vw,44px)/1.14 Archivo,Arial,sans-serif;color:#062650;letter-spacing:-.027em;margin:0 0 14px}
.nl-overview-head p{font-size:16px;line-height:1.8;color:#566a7c;margin:0 auto;max-width:670px}
.nl-overview-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin:0 auto 43px}
.nl-overview-gallery figure{margin:0;overflow:hidden;height:215px;border-radius:12px;background:#e2e8ed}
.nl-overview-gallery img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:800px){.nl-dispatch-overview{padding:50px 0}.nl-overview-gallery{gap:10px;margin-bottom:25px}.nl-overview-gallery figure{height:150px}}
@media(max-width:540px){.nl-overview-gallery{grid-template-columns:1fr 1fr}.nl-overview-gallery figure{height:155px}.nl-overview-gallery figure:last-child{display:none}.nl-overview-head h2{font-size:30px}}
.nl-chapter .nl-stat-highlight{font-size:17px;font-weight:800;color:#082f5c;padding:14px 18px;border-left:4px solid #d5a634;background:#fcf6e7;border-radius:0 9px 9px 0;margin:22px 0 0}
.nl-load-example{background:#f7f9fc;border:1px solid #dfe7ef;border-radius:12px;overflow:hidden;margin:15px 0 21px}
.nl-load-example h4{font:800 15px Archivo,Arial,sans-serif;color:#fff;margin:0;background:#0d3569;padding:16px 20px}
.nl-load-example dl{padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:14px 19px;margin:0}
.nl-load-example dl>div{min-width:0}.nl-load-example dt{font:800 10px Archivo,Arial,sans-serif;color:#7d6336;letter-spacing:.08em;text-transform:uppercase}
.nl-load-example dd{margin:4px 0 0;color:#263f58;font-size:14px;line-height:1.6}
.nl-chapter .nl-sub-bullets{margin:11px 0 0;padding-left:20px!important;list-style:circle}
.nl-chapter .nl-sub-bullets li{border:0!important;background:none!important;padding:4px 0!important}
@media(max-width:520px){.nl-load-example dl{grid-template-columns:1fr;padding:16px}}


/* === R45 navbar/logo stability fix === */
.nav-logo{display:flex!important;align-items:center!important;gap:12px!important;min-width:max-content!important;overflow:visible!important}
.nav-logo img{flex:0 0 auto!important;width:auto!important;max-width:none!important;object-fit:contain!important}
.nav-logo-text{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;width:auto!important;min-width:175px!important;max-width:none!important;overflow:visible!important;line-height:1.02!important;white-space:nowrap!important;flex:0 0 auto!important}
.nav-logo-name{display:flex!important;align-items:baseline!important;justify-content:flex-start!important;line-height:1!important;letter-spacing:.045em!important;overflow:visible!important;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased}
.nav-logo-name .nl-word-link{padding-left:.04em}
.nav-logo-sub{text-align:left!important;display:block!important}
@media (max-width:1100px){.nav-logo-text{min-width:164px!important}}
@media (max-width:430px){.nav-logo img{height:36px!important}.nav-logo-text{min-width:145px!important}.nav-logo-name{font-size:16px!important}.nav-logo-sub{font-size:7px!important;letter-spacing:1.9px!important}}

/* V46 desktop logo resilience */
.nav{overflow:visible!important}.nav-logo,.footer-brand-row{overflow:visible!important}.nav-logo-text{min-width:178px!important}.nav-logo-name{flex-wrap:nowrap!important}.nav-logo-name .nl-word-north,.nav-logo-name .nl-word-link{display:inline-block;white-space:nowrap}@media (max-width:1260px){.nav-logo-text{min-width:168px!important}.nav-logo-name{font-size:18px!important}.nav-logo-sub{font-size:8px!important;letter-spacing:2.4px!important}}@media (max-width:1140px){.nav-logo-text{min-width:160px!important}}


/* === V47 logo stability and spacing === */
.nav{overflow:visible!important}
.nav-logo{gap:11px!important;position:relative}
.nav-logo-text{min-width:182px!important}
.nav-logo-name{font-size:clamp(18px,1.5vw,21px)!important;letter-spacing:.038em!important}
.nav-logo-name .nl-word-link{padding-left:.015em!important}
.nav-logo-sub{font-size:8.5px!important;letter-spacing:2.65px!important}
@media (max-width:1260px){.nav-logo-text{min-width:170px!important}.nav-logo-name{font-size:18px!important}.nav-logo-sub{font-size:8px!important;letter-spacing:2.25px!important}}
@media (max-width:430px){.nav-logo{gap:9px!important}.nav-logo-text{min-width:146px!important}.nav-logo-name{font-size:15px!important;letter-spacing:.03em!important}.nav-logo-sub{font-size:6.8px!important;letter-spacing:1.55px!important}}
