/* Final public-site polish: extends, rather than replaces, the shared visual system. */
.portal-access-bar{background:#051824;border-bottom:1px solid #ffffff14}
.portal-access-bar .container{display:flex;justify-content:flex-end}
.portal-access-bar a{display:inline-flex;align-items:center;gap:12px;min-height:40px;padding:6px 0;color:#ead1aa;font-size:14px;font-weight:500;line-height:1.5}
.portal-access-bar a:hover{color:#fff}.portal-access-bar a:focus-visible{outline:2px solid #d8b682;outline-offset:3px}
/* Reading mode on every screen: retain navigation without moving page content. */
.site-header{transition:top .22s ease}
.site-header.is-scroll-compact{top:calc(-1 * var(--portal-strip-height,41px))}
@media(prefers-reduced-motion:reduce){.site-header{transition:none}}
/* Shared navigation: submenus must stay in flow on touch layouts, not cover sibling links. */
.site-nav .nav-faq[open]{z-index:2}
.site-nav .nav-contact{color:#f3f6f7;font-weight:600;white-space:nowrap}
.site-nav .nav-contact::after{content:'\2197';margin-left:7px;color:#d8b682;font-size:12px}
.site-nav .nav-faq-menu{z-index:3;max-width:calc(100vw - 40px)}
.site-nav .nav-faq-menu a{min-height:44px;display:flex;align-items:center;line-height:1.6}
html{scroll-padding-top:calc(var(--site-header-height,88px) + 22px)}
.nsm-faq .faq-group{scroll-margin-top:22px}
.faq-page .faq-sidebar{top:calc(var(--site-header-height,88px) + 24px)}
.enquiry-layout .enquiry-field :is(input,select,textarea){font-size:16px}
html:has(.quote-page),html:has(#discussion-form){scroll-behavior:auto}
.edit-step{min-height:44px;min-width:44px}
/* Reflow rather than clip when visitors enlarge text or use a narrow viewport. */
.header-inner,.site-nav{flex-wrap:wrap}
.site-brand{min-width:0;flex-shrink:1}
.site-brand img{flex-shrink:0}
.brand-copy{min-width:0}
.brand-name{white-space:normal}
.section-heading>*,.editorial-grid>*,.two-col>*,.hero-grid>*,.faq-directory>*,.faq-embed-grid>*,.guide-layout>*,.footer-grid>*{min-width:0}
h1,h2,h3,p,.eyebrow,.text-link,.brand-copy,.button,.nav-quote{overflow-wrap:anywhere}
.site-nav .nav-quote{white-space:normal}
.form-actions{flex-wrap:wrap}
.form-actions .right-actions{min-width:0;max-width:100%;flex-wrap:wrap}
.step-progress{grid-template-columns:repeat(7,minmax(0,1fr))}
@media(min-width:901px){.step-progress{grid-template-columns:1fr}}
.step-progress button{min-height:44px}
.enquiry-field label{overflow-wrap:anywhere}
.faq-topic-links{grid-template-columns:minmax(0,1fr)}
.faq-topic-links a,.region-list>div{min-width:0;overflow-wrap:anywhere}
.region-list{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.faq-topic-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.region-list{grid-template-columns:1fr}}
@media(max-width:1100px){
 .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;padding-block:16px;gap:16px;min-height:80px}
 .menu-toggle{display:block;min-height:44px;min-width:58px}
 .site-nav,.js .site-nav.is-open{display:grid;grid-column:1/-1;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:0;font-size:15px;line-height:1.6;width:100%;padding:12px 24px 24px;background:var(--navy);border-top:1px solid #ffffff24}
 .js .site-nav{display:none;position:absolute;top:100%;left:0;right:0;max-height:calc(100vh - var(--site-header-height,88px) - 8px);max-height:calc(100dvh - var(--site-header-height,88px) - 8px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 18px 30px #00111f30}
 .site-nav>a,.site-nav>.nav-faq{width:100%;min-width:0;margin:0;border-bottom:1px solid #ffffff20}
 .site-nav>a,.site-nav summary{min-height:48px;padding:12px 8px}
 .site-nav summary{justify-content:space-between}
 .site-nav .nav-faq{position:static}
 .site-nav .nav-faq-menu,.nav-services .nav-faq-menu{position:static;width:100%;min-width:0;max-width:none;margin:0 0 12px;padding:6px;background:#102c3e;border:1px solid #ffffff24;box-shadow:none;border-radius:3px}
 .site-nav .nav-faq-menu a{padding:12px 14px;color:#e1e9ee;overflow-wrap:anywhere}
 .site-nav .nav-faq-menu a:hover,.site-nav .nav-faq-menu a[aria-current=page]{background:#1c3c50;color:#f1d7b1}
 .site-nav .nav-quote{margin-top:16px;text-align:center;white-space:normal;padding:13px 16px}
}
@media(max-width:360px){.header-inner{gap:8px}.site-nav,.js .site-nav.is-open{padding-inline:20px}.home-hero h1{font-size:40px}.page-hero h1{font-size:36px}}
.footer-grid.footer-polished{grid-template-columns:1.2fr 1.05fr .85fr 1.15fr;gap:30px}
.footer-grid.footer-polished>div:last-child{display:block;grid-column:auto}
.footer-polished .footer-links a{font-size:13px;line-height:1.7;overflow-wrap:anywhere}
.footer-polished p{font-size:13px;line-height:1.8}
.footer-polished .site-brand{gap:10px}
.footer-polished .brand-name{font-size:17px}
.footer-polished .brand-tagline{font-size:8px}
.footer-polished .text-link{width:fit-content;color:#e2c39a;margin-top:10px}
@media(max-width:1050px){.footer-grid.footer-polished{grid-template-columns:1fr 1fr;gap:36px}}
@media(max-width:600px){.footer-grid.footer-polished{grid-template-columns:1fr;gap:32px}}
.quick-contact{margin-top:20px;font-size:15px;line-height:1.6}
.service-assurance{padding-block:44px;background:var(--navy);color:white}
.service-assurance>.container{display:flex;align-items:center;justify-content:space-between;gap:32px}
.service-assurance h2{font-size:26px;line-height:1.35;margin:12px 0}
.service-assurance p{color:#bbcbd5;font-size:15px}
.service-assurance .eyebrow{color:#d8b682}
.service-assurance .text-link{flex-shrink:0;font-size:14px}
.short-enquiry-note{font-size:15px!important;line-height:1.6;margin:18px 0!important}
.short-enquiry-note a,.enquiry-privacy a{text-decoration:underline;text-underline-offset:4px}
.enquiry-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;align-items:start}
.enquiry-layout aside>h2{font-size:clamp(30px,3vw,42px);margin:16px 0 22px}
.contact-options{margin:30px 0;border-top:1px solid var(--line)}
.contact-options>a{display:grid;grid-template-columns:1fr 20px;gap:5px 12px;border-bottom:1px solid var(--line);padding:20px 0}
.contact-options>a>span:first-child{font-size:13px;color:var(--muted);grid-column:1}
.contact-options strong{font-size:16px;overflow-wrap:anywhere;grid-column:1}
.contact-options>a>span:last-child{grid-column:2;grid-row:1/3;align-self:center;color:var(--gold-dark)}
.contact-options>a:hover strong{text-decoration:underline;text-underline-offset:4px}
.enquiry-next{margin:30px 0}
.enquiry-next h3{font-size:20px;margin-bottom:16px}
.enquiry-next ol{padding-left:20px;font-size:15px;color:var(--muted);line-height:1.8}
.enquiry-next li+li{margin-top:12px}
.enquiry-card{border:1px solid var(--line);border-top:3px solid var(--gold);padding:38px;background:#fff;box-shadow:0 12px 38px #071b2d08;min-width:0}
.enquiry-card h2{font-size:30px;line-height:1.25;margin:14px 0 18px}
.enquiry-card p{font-size:15px;line-height:1.75}
.enquiry-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px;margin-top:28px}
.enquiry-field{min-width:0}
.enquiry-field.full{grid-column:1/-1}
.enquiry-field label{display:block;font-size:13px;font-weight:600;line-height:1.5;margin-bottom:8px;color:var(--navy)}
.enquiry-field .optional{font-size:11px;font-weight:400;color:var(--muted);margin-left:4px}
.enquiry-field input,.enquiry-field select,.enquiry-field textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:3px;background:#fff;padding:13px 12px;font:inherit;font-size:14px;color:var(--navy);line-height:1.5}
.enquiry-field input,.enquiry-field select{height:49px}
.enquiry-field textarea{resize:vertical}
.enquiry-field input::placeholder,.enquiry-field textarea::placeholder{color:#667985;opacity:1}
.enquiry-field :is(input,select,textarea):focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.enquiry-privacy{font-size:12px!important;color:var(--muted);margin:24px 0!important}
.enquiry-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
#discussion-status{margin-top:16px}
#discussion-success p+p{margin-top:18px}
#discussion-success .text-link{margin-top:24px}
#discussion-form button:disabled{opacity:.65;cursor:wait}
@media(max-width:1000px){.enquiry-layout{gap:36px;grid-template-columns:minmax(0,.75fr) minmax(0,1fr)}.enquiry-card{padding:26px}.enquiry-fields{grid-template-columns:1fr}}
@media(max-width:750px){.enquiry-layout{grid-template-columns:1fr}.enquiry-card{padding:25px 20px}.enquiry-layout aside{order:2}.enquiry-card{order:1}.enquiry-card h2{font-size:28px}}
@media(max-width:850px){.service-assurance>.container{align-items:start;flex-direction:column;gap:22px}}
