/* NarrowSea shared typography and layout roles. Loaded after component styles.
   Sizes are rem-based so browser text preferences and zoom remain effective. */
:root{color-scheme:light;--text-body:1.125rem;--text-small:.875rem;--title-home:4rem;--title-page:3rem;--title-section:2.25rem;--title-card:1.5rem;--space-section:4.5rem;--slate:#526572;--mist:#cbd7df;--ink:#183140;--off:#f5f7f8;--radius:6px}
body{font-size:1rem;line-height:1.6;color:var(--ink);background:#fff}
html{scroll-behavior:auto!important}button,input,select,textarea{font-family:var(--sans)}
:is(h1,h2,h3,h4,p,li,dt,dd,a,label,button){overflow-wrap:break-word}
.display,.m-hero .display{font:500 var(--title-home)/1.12 var(--serif)!important;letter-spacing:-.015em;max-width:24ch;text-wrap:balance}
.h1,section.intro .h1,.m-intro .h1{font:500 var(--title-page)/1.15 var(--serif)!important;max-width:24ch;text-wrap:balance;margin-bottom:1.25rem!important}
.h2,.m-sec .h2,.m-head .h2{font:500 var(--title-section)/1.2 var(--serif)!important;text-wrap:balance;max-width:30ch}
.h3,.card__title,.card--copy .card__title{font:600 var(--title-card)/1.3 var(--sans)!important;text-wrap:balance}
.h4{font:600 1.25rem/1.35 var(--sans)}
.body,.ns-prose,.co-prose{font-size:var(--text-body);line-height:1.65}
/* Reading measures belong inside the page grid, never on its outer wrapper. */
.body,.ns-prose:not(.wrap),.co-prose{max-width:68ch}
.wrap.ns-prose>:is(p,ul:not(.ns-resource-list),ol:not(.ns-process),dl){max-width:68ch}
.lead,.m-hero .lead{font-size:1.25rem!important;line-height:1.55;max-width:60ch}
.card__text,.svc-card__text,.notice__text,.acc__body,.m-step p,.ns-service-row p{font-size:1rem!important;line-height:1.6}
:is(.eyebrow,.kicker,.m-intro__label,.svc-intro__label,.co-intro__label,.q-intro__eyebrow,.card__num){font-size:.8125rem!important;font-weight:600;line-height:1.5;letter-spacing:.07em}
:is(.m-intro__fine,.svc-intro__tag,.co-intro__tag){font-size:.875rem;line-height:1.5}
:is(.m-intro__lead,.svc-intro__lead,.co-intro__lead,.q-intro__lead){font-size:1.125rem!important;line-height:1.6;max-width:65ch}
.small,.meta,.field__hint,.field__error,.q-fine,.q-rate-hint,.premium__fine,.premium__note,.foot__legal{font-size:var(--text-small)!important;line-height:1.6}
.foot__legal{max-width:70ch}.foot__legal a{color:inherit;text-decoration:underline;text-underline-offset:3px}.foot__links{font-size:1rem;line-height:1.8}.foot__links a{display:inline-block;padding:5px 0}
.btn,.btn--sm,.gnav .gnav__cta.btn--sm{font:600 1rem/1.35 var(--sans)!important;min-height:48px;height:auto;white-space:normal;text-align:center;padding:12px 22px}
.btn--text{padding-left:0;padding-right:0}.btn:not(.btn--text):hover{box-shadow:0 2px 8px #071c2b12}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #287da4!important;outline-offset:4px!important}
.on-navy :is(a,button):focus-visible{outline-color:#f3ce8d!important}
.gnav__utility{border-bottom:1px solid #ffffff20;background:#061724}
.gnav__utility .wrap{display:flex;justify-content:flex-end;gap:24px;min-height:36px;align-items:center}
.gnav__utility a{color:#dce5eb;font-size:.875rem;text-decoration:underline;text-underline-offset:3px;padding:8px 0}
.gnav .gnav__in{height:auto!important;min-height:100px!important;padding-top:12px!important;padding-bottom:12px!important;width:calc(100% - 64px)!important;max-width:1440px;gap:20px!important;flex-wrap:wrap}
.gnav .wordmark{order:1}.gnav .wordmark img{width:120px;height:70px}.gnav__actions{order:2;margin-left:auto;gap:24px!important}.gnav .gnav__nav{order:3;flex:0 0 100%}
.gnav .gnav__links{justify-content:center;gap:28px!important}.gnav .gnav__links a{font-size:1rem!important;line-height:1.4;padding:10px 0}.gnav .gnav__login{font:600 1rem/1.4 var(--sans)!important;min-height:48px}
.gnav__menu{order:4}.gnav .gnav__drawer a{font-size:1.0625rem;line-height:1.4}
@media(min-width:1680px){.gnav .gnav__in{max-width:1600px;flex-wrap:nowrap}.gnav .gnav__nav{order:2;flex:1}.gnav__actions{order:3}.gnav .gnav__links{gap:22px!important}}
@media(max-width:1100px){.gnav .gnav__nav{display:none}.gnav .gnav__in{min-height:82px!important;flex-wrap:nowrap}.gnav .wordmark img{width:96px;height:56px}.gnav .gnav__menu{display:flex!important}.gnav .gnav__drawer{max-height:calc(100dvh - 130px);overflow:auto}}
/* All content is available immediately, without reveal animations or decorative camera moves. */
[data-nsx-rv],.nsx-in,.nx-hl__word,.nx-hl__line,.nx-hl,.nx-hero .eyebrow,.nx-hero .lead,.nx-hero .m-actions{opacity:1!important;transform:none!important;clip-path:none!important;animation:none!important;transition:none!important}
.m-hero__media img,section.intro::before,section.m-intro::before,.hz-map *{animation:none!important}.nx-hero__sweep{display:none!important}
.m-hero{min-height:580px}.m-hero__in{padding-top:72px;padding-bottom:64px}.m-hero__msg{gap:24px;max-width:780px}.m-hero .accent-rule{margin:0}.m-subline{font:400 1.25rem/1.5 var(--sans)!important}
body .m-intro,body section.intro{min-height:420px!important}
body .m-intro>.wrap,body section.intro .intro__in{padding-top:56px!important;padding-bottom:56px!important}
body section.task-intro{min-height:280px!important}body section.task-intro .intro__in{padding-top:32px!important;padding-bottom:32px!important}body section.task-intro .h1{font-size:2.5rem!important;max-width:28ch}
body:is([data-page="premium-calculator"],[data-page="quote"]) section.intro{min-height:0!important}body:is([data-page="premium-calculator"],[data-page="quote"]) section.intro .h1{font-size:2.5rem!important}
.m-sec,.co-sec,.svc-sec{padding-top:var(--space-section);padding-bottom:var(--space-section)}.m-head{gap:12px}.m-sec>.wrap{gap:28px}.card--copy{min-height:0!important;padding:28px}.card--copy .card__text{margin-top:16px}.card__link{font-size:1rem!important;min-height:44px;line-height:1.4}
.ns-trust{padding:28px 0;background:#edf2f5;border-bottom:1px solid #d7e0e5}.ns-trust .wrap{max-width:1280px}.ns-trust p{max-width:75ch}.ns-trust a{color:#174a66;text-underline-offset:3px}
.ns-product-grid,.ns-route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.ns-product-grid .card{display:flex;flex-direction:column;align-items:flex-start}.ns-product-grid .card__link{margin-top:20px}
.ns-service-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 0;border-top:1px solid var(--line)}.ns-service-row>div{max-width:65ch}.ns-service-row .btn{flex-shrink:0}
.ns-process{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;counter-reset:process}.ns-process>li{padding-top:20px;border-top:2px solid #bba06d;counter-increment:process}.ns-process>li::before{content:"0" counter(process);font:600 .875rem/1.5 var(--sans);color:#5c6e7b;display:block;margin-bottom:12px}.ns-process p{font-size:1rem;margin-top:12px}
.ns-resource-list{display:grid;gap:0;list-style:none;padding:0}.ns-resource-list>li,.ns-resource-list>article{border-top:1px solid var(--line);padding:24px 0}.ns-resource-list a{color:#174a66;text-underline-offset:3px}.ns-prose p+p{margin-top:20px}.ns-prose ul{padding-left:1.3em}.ns-route-grid p{font-size:1rem}
/* Shared form roles: labels above editable fields, never microtype. */
.field label,.field__label,.ctl>label,.co-form>label,.svc-form>label,.q-group__label,.q-step label{font-size:1rem!important;line-height:1.5;font-weight:600;color:var(--ink)!important}
.field input,.field select,.field textarea,.input,.ws input:not([type=checkbox]):not([type=radio]),.ws select,.ws textarea{font-size:1rem!important;line-height:1.5;min-height:44px}
input::placeholder,textarea::placeholder{color:#647582;opacity:1}.check{font-size:1rem!important;line-height:1.5}.check input{min-height:0;width:20px;height:20px;flex-shrink:0;margin-top:3px}
.field{padding:14px 16px}.field input,.field select{padding-top:4px;padding-bottom:4px}.field textarea,.input{background:#fff}.field__error{font-weight:500}.q-fields{gap:20px;align-items:stretch}.q-step>.h3{font-size:1.5rem!important}
/* Bordered composite fields own the focus ring, so it never cuts through their label or hint.
   Buttons, checks and radios inside a field retain their own focused-control indication. */
.field:focus-within{outline:3px solid #287da4!important;outline-offset:3px!important}
.field :is(input:not([type=checkbox],[type=radio],[type=file],[type=button],[type=submit],[type=reset],[type=range],[type=color],[type=hidden]),select,textarea):focus{outline:none!important;box-shadow:none!important}
.field:has(:is(button,a,input[type=checkbox],input[type=radio],input[type=file],input[type=range],input[type=color]):focus){outline:none!important}
/* Auth labels sit outside individual control borders. Keep their focus on the control,
   and leave standalone inputs/selects/textareas governed by the global focus rule. */
.auth-shell .field:focus-within{outline:none!important}
.auth-shell .field :is(input:not([type=checkbox],[type=radio],[type=file],[type=button],[type=submit],[type=reset],[type=range],[type=color],[type=hidden]),select,textarea):focus{outline:3px solid #287da4!important;outline-offset:2px!important}
@media(forced-colors:active){.field:focus-within,.auth-shell .field :is(input,select,textarea):focus{outline-color:Highlight!important}}
.co-form,.svc-form{max-width:920px}.q-wiz{max-width:1080px}.q-progress{gap:8px}.q-progress li a{font-size:.875rem!important;line-height:1.5;min-height:48px;padding:12px!important}
.q-wiz-nav{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.q-cover-card{padding:20px}.q-cover-card strong{font-size:1.125rem}.q-cover-card small{font-size:.875rem;line-height:1.5}.q-cover-card:has(input:checked){border-color:#173f55;box-shadow:inset 0 0 0 1px #173f55;background:#edf3f6}
.premium__total{font:600 2.5rem/1.15 var(--sans)!important;font-variant-numeric:tabular-nums}.premium__line{font-size:1rem!important;line-height:1.6}.premium__label{font-size:.875rem;line-height:1.5}.q-empty{font-size:1rem;line-height:1.6}.premium{padding:28px}
.upload__title,.upload__sub{font-size:1rem!important;line-height:1.5}.form-error-summary{border:2px solid #a1222b;padding:20px;margin-bottom:24px;background:#fff;max-width:70ch}.form-error-summary[hidden]{display:none}.form-error-summary a{color:#8f1e28;text-decoration:underline}.form-error-summary h2,.form-error-summary h3{font:600 1.125rem/1.5 var(--sans)}
#quote-save-panel{background:#eef3f6;border:1px solid #b8cad4;padding:24px;margin:24px 0;max-width:680px}#quote-save-panel[hidden]{display:none}[data-w="save-status"]{font-size:.875rem;line-height:1.5;color:#526572}.contact-routes{display:flex;flex-wrap:wrap;gap:12px 24px}.contact-routes a{min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:3px}
.desk-launch--footer{position:static!important;transform:none!important;margin-top:16px;box-shadow:none}.desk-launch--footer span{position:static!important;width:auto!important;height:auto!important;clip:auto!important}.desk-launch,.desk__in,.desk__send{font-size:1rem}.desk__bubble{font-size:1rem;line-height:1.6}
/* Portals use the same readable scale but a compact, functional hierarchy. */
.ws-title,.auth-shell .ws-title,.ws--signin .ws-title,.ap-title{font:600 2rem/1.25 var(--sans)!important;letter-spacing:-.015em}.ws-sub,.auth-shell .ws-sub{font-size:1rem!important;line-height:1.6}.ws-panel__title{font-size:1.125rem;line-height:1.4}.ws-panel{padding:24px;gap:14px}.ws-body{gap:24px}.ws-data{gap:24px}
.ws-lines,.ws-kv,.ws-table,.table{font-size:.9375rem!important;line-height:1.55}.table th,.ws-fine,.ws-note,.ws-panel .ws-fine,.ws-panel .ws-note,.ws-metric__label,.ws-metric__note,.tag,.ws-filter,.ws-sort{font-size:.875rem!important;line-height:1.5}.table td{padding:14px 12px}.tag{white-space:normal}.ws-nav a{font-size:.9375rem;line-height:1.5;min-height:44px}.ws-metric__value{font-size:2rem;font-variant-numeric:tabular-nums}
.ws-attention{border-left:3px solid #b99a5e}.ws-attention__list,.ws-record-list{list-style:none;margin:0;padding:0;display:grid;gap:0}.ws-attention__item{padding:16px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px}.ws-attention__item:last-child{border-bottom:0}.ws-attention__meta{font-size:.875rem;color:var(--slate)}.ws-attention__item a{min-height:44px;display:inline-flex;align-items:center}.ws-record-list>li{padding:16px 0;border-bottom:1px solid var(--line)}
.ws-filter,.ws-sort,.ws-pager button{min-height:44px}.ws-pager button{min-width:44px}.ws-table.table--cards td::before{font-size:.875rem!important}.ws-tabbar a{font-size:.875rem!important;min-height:48px;line-height:1.4;padding:10px 8px;white-space:normal;text-align:center}
.auth-shell,.auth-shell .ws-main{background:#fff}.auth-shell .field>label,.auth-label-row label{font-size:1rem!important}.auth-label-row a,.auth-register,.auth-kind-note,.auth-step-label,.auth-shell .ws-fine,.auth-top,.auth-footer{font-size:.875rem!important;line-height:1.5}.auth-story h2{font:500 3rem/1.15 var(--serif)}.auth-story__copy>p:not(.auth-eyebrow){font-size:1rem}.auth-shell .auth-content{padding-top:24px}.pass-toggle{font-size:.875rem!important;min-width:48px;min-height:44px}
@media(max-width:1100px){.ws[data-mview="policies"] [data-m]:not([data-m~="policies"]),.ws[data-mview="claims"] [data-m]:not([data-m~="claims"]){display:none!important}}
@media(max-width:700px){
 :root{--text-body:1.0625rem;--title-home:2.5rem;--title-page:2.25rem;--title-section:1.75rem;--title-card:1.375rem;--space-section:3rem}
 .gnav__utility .wrap{justify-content:space-between;gap:12px}.gnav__utility a{font-size:.8125rem}.gnav .gnav__in{width:calc(100% - 40px)!important;gap:12px!important}.gnav__actions{gap:0!important}.gnav .gnav__login{font-size:.9375rem!important}.gnav .gnav__cta{display:none!important}.gnav .wordmark img{width:88px;height:52px}
 .m-hero{min-height:0}.m-hero__in{padding-top:40px;padding-bottom:40px}.m-hero__msg{gap:20px}.m-hero .lead{font-size:1.125rem!important}.m-actions{gap:12px}.m-actions .btn{padding-left:16px;padding-right:16px}
 body .m-intro,body section.intro{min-height:0!important}body .m-intro>.wrap,body section.intro .intro__in{padding-top:36px!important;padding-bottom:36px!important}body section.task-intro .intro__in{padding-top:28px!important;padding-bottom:28px!important}body section.task-intro .h1,body:is([data-page="premium-calculator"],[data-page="quote"]) section.intro .h1{font-size:2rem!important}.svc-intro__tag,.co-intro__tag,.m-intro__fine{display:none}
 .ns-product-grid,.ns-route-grid,.ns-process{grid-template-columns:minmax(0,1fr)}.ns-process{gap:24px}.ns-service-row{flex-direction:column;align-items:flex-start}.ns-trust{padding:24px 0}.card--copy{padding:24px}.m-sec>.wrap{gap:24px}
 .q-progress{grid-template-columns:repeat(3,minmax(0,1fr))!important}.q-progress li a{font-size:.875rem!important}.q-wiz-nav .btn{flex:1 1 auto}.q-calc-result{position:static}.q-cover-card{min-height:100px}.premium__total{font-size:2.25rem!important}
 .ws-title,.auth-shell .ws-title,.ws--signin .ws-title,.ap-title{font-size:1.75rem!important}.ws-panel{padding:20px}.ws-attention__item{flex-direction:column;align-items:flex-start;gap:8px}.ws-tabbar{height:auto;flex-wrap:wrap}.ws-tabbar a{flex:1 1 auto}.ws-table.table--cards td{font-size:1rem!important;overflow-wrap:anywhere}.ws-table.table--cards td::before{max-width:48%;white-space:normal}.ws-head__end{flex-wrap:wrap}.ws-head{height:auto;min-height:64px;padding-top:12px;padding-bottom:12px}
 .auth-shell .auth-content{padding:24px}.foot__in{gap:28px}.foot__links p{display:flex;flex-wrap:wrap;gap:4px 10px}
}
@media(max-width:360px){:root{--title-home:2.25rem}.gnav__utility a{font-size:.75rem}.gnav .gnav__login{font-size:.875rem!important}.ws-tabbar a{font-size:.8125rem!important;padding-left:6px;padding-right:6px}}
/* Content structures shared by the revised public pages. */
.hero-help{font-size:1rem;line-height:1.6;color:#d5e0e8;max-width:65ch}.hero-help a,.on-navy .ns-advisories a,.on-navy .body a{color:#fff;text-decoration:underline;text-underline-offset:4px}
.ns-trust__copy{display:grid;gap:12px}.ns-trust__copy .h3{font-size:1.125rem!important}.ns-trust__copy p{font-size:1rem}
.ns-process>li::before{display:none}.ns-static-map{margin:0}.ns-static-map img{width:100%;height:auto;max-height:390px;object-fit:contain;background:#193848;border:1px solid #385564}.ns-static-map figcaption{font-size:.875rem;color:#cbd7df;margin-top:12px}.ns-advisories{font-size:.875rem;line-height:1.7}
.ns-route-grid>div{display:flex;flex-direction:column;gap:12px}.ns-route-grid>div .h3:not(:first-child){margin-top:16px}.ns-route-grid .btn{align-self:flex-start;margin-top:16px}
.ns-definition-list{margin:0}.ns-definition-list dt{font-weight:600;margin-top:20px}.ns-definition-list dd{margin:6px 0 0}.ns-document-page .ns-process{grid-template-columns:1fr}.q-direct-link{font-size:1rem;line-height:1.6;margin-top:16px}.q-save-status{font-size:.875rem}.q-save-panel .btn{margin-top:12px}
/* Task headers use short, practical copy over the retained photography. */
body section.task-intro .h1::after{display:none!important}body section.task-intro .h1{margin-top:0!important;margin-bottom:16px!important}body section.task-intro :is(.svc-intro__lead,.co-intro__lead){margin-top:0!important;margin-bottom:20px!important}body section.task-intro :is(.svc-intro__label,.co-intro__label){margin-bottom:12px!important;color:#e4cfaa}body section.task-intro :is(.svc-intro__copy,.co-intro__copy){gap:0!important}
section.intro .btn--outline,section.m-intro .btn--outline{color:#fff;border-color:#c4d2dc}section.intro .btn--outline:hover,section.m-intro .btn--outline:hover{background:#ffffff15;color:#fff}
@media(max-width:1100px){.ws-tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:0;padding:0 8px;height:auto}.ws-tabbar a{justify-content:center;padding:12px 2px;min-width:0;font-size:.875rem!important}}
body section.task-intro::after{background:linear-gradient(90deg,rgba(7,28,43,.94),rgba(7,28,43,.72) 60%,rgba(7,28,43,.45))!important}
.gnav .gnav__nav{min-width:0}.gnav .gnav__links{flex-wrap:wrap}.gnav__utility .wrap{flex-wrap:wrap}.gnav__actions{min-width:0}.ns-trust .wrap{max-width:var(--maxw)}
@media(max-width:360px){.ws-tabbar{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));padding:0 12px}.ws-tabbar a{padding:12px 6px}}
.ops-agent__name{font:600 1.25rem/1.35 var(--sans)}

/* Final page audit: native controls, reading rhythm and compact reference pages. */
input:is([type=checkbox],[type=radio]){accent-color:#183140}
.ns-prose>:is(h2,h3)+:is(p,ul,ol){margin-top:16px}
.ns-prose>h3:not(:first-child){margin-top:28px}
.ns-prose>:is(p,ul,ol)+:is(p,ul,ol,.btn){margin-top:20px}
body:is([data-page="privacy"],[data-page="disclosures"],[data-page="sanctions"],[data-page="llm-info"]) section.intro{min-height:0!important}
body:is([data-page="privacy"],[data-page="disclosures"],[data-page="sanctions"],[data-page="llm-info"]) .sec{padding-top:36px;padding-bottom:36px}
#quotation-process .ns-process{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:28px}
.co-faq{gap:0}
.co-faq .acc,.co-faq .acc:last-child{border-top:1px solid var(--line)}
.co-faq .acc:last-child{border-bottom:1px solid var(--line)}
.co-faq .acc>button{display:flex;justify-content:space-between;align-items:center;gap:24px;width:100%;min-height:64px;margin:0;padding:20px 0;font-size:1.125rem;line-height:1.5}
.co-faq .acc>button::after{content:"+";flex:none;width:24px;text-align:center;font-size:1.5rem}
.co-faq .acc.is-open>button::after{content:"−"}
.co-faq .acc__body{max-width:70ch;padding:0 36px 24px 0}
@media(max-width:700px){
 #quotation-process .ns-process{grid-template-columns:1fr}
 .co-faq .acc>button{font-size:1rem;gap:16px}
 .co-faq .acc__body{padding-right:0}
 body:is([data-page="privacy"],[data-page="disclosures"],[data-page="sanctions"],[data-page="llm-info"]) .sec{padding-top:28px;padding-bottom:28px}
}
.corridor__map{width:100%;max-width:760px;margin-inline:auto}
.co--faq .stack>.btn{align-self:flex-start}
