/* Shared header: one layout for home, inner pages and the sticky state. */
.site-header.refreshed-header{position:fixed;inset:0 0 auto;z-index:100;height:108px;display:flex;align-items:center;transition:transform .25s ease,background-color .2s ease;isolation:isolate}
.refreshed-header.header-hidden{transform:translateY(-110%)}
.site-header.refreshed-header .desktop-nav{position:static;top:auto;bottom:auto;translate:none;transform:none;align-self:center;align-items:center;margin:0;padding:0;gap:clamp(16px,1.8vw,30px);white-space:nowrap}
.refreshed-header .desktop-nav>a{position:relative;top:auto;translate:none;transform:none}
.refreshed-header.inner-header,.refreshed-header.is-scrolled{background:#fff;color:#10283d;border-bottom:1px solid #e4eaf0}
.refreshed-header.inner-header:before,.refreshed-header.is-scrolled:before{display:none}
.site-header.refreshed-header .nav-contact{display:flex;align-items:center;justify-content:center;gap:24px;min-height:64px;background:#003989;color:#fff;border-radius:12px;padding:18px 28px}
.refreshed-header.is-scrolled .desktop-nav>a:not(.nav-contact):after,.inner-header .desktop-nav>a:not(.nav-contact):after{content:"";position:absolute;bottom:-7px;left:0;right:0;height:1px;background:#003989;transform:scaleX(0);transform-origin:left;transition:transform .2s}
.refreshed-header .desktop-nav>a:hover:after,.refreshed-header .desktop-nav>a:focus-visible:after{transform:scaleX(1)}
.mobile-menu-trigger{display:none}
.site-header.refreshed-header .brand{align-self:center;flex-shrink:0;margin:0;transform:none;translate:none}
@media(min-width:901px){
 .site-header.refreshed-header{padding:0 clamp(28px,3.5vw,54px);gap:24px}
 .site-header.refreshed-header .desktop-nav{display:flex;height:100%;font-size:13px;line-height:1.5}
 .site-header.refreshed-header .nav-contact{height:64px;min-height:64px;flex-shrink:0;margin:0;line-height:1.5}
}

/* Contact CTA: colour blooms from below, with a gently travelling arrow. */
.contact>a{isolation:isolate;overflow:hidden;background:var(--blue)}
.contact>a::before{content:"";position:absolute;inset:-1px;border-radius:inherit;background:#1764b6;transform:translateY(105%);transition:transform .65s cubic-bezier(.16,1,.3,1);pointer-events:none;z-index:-1}
.contact>a>span,.contact>a>svg{transition:transform .5s cubic-bezier(.16,1,.3,1)}
.contact>a:focus-visible{outline:3px solid #1764b6;outline-offset:6px}
.contact>a:focus-visible::before{transform:translateY(0)}
.contact>a:focus-visible>svg{transform:translate(5px,-5px)}
@media(hover:hover){
 .contact>a:hover{background:var(--blue)}
 .contact>a:hover::before{transform:translateY(0)}
 .contact>a:hover>svg{transform:translate(5px,-5px)}
 .contact>a:hover>span{transform:translateY(-2px)}
}
@media(prefers-reduced-motion:reduce){
 .contact>a,.contact>a::before,.contact>a>span,.contact>a>svg{transition:none}
 .contact>a:hover,.contact>a:hover>span,.contact>a:hover>svg,.contact>a:focus-visible>svg{transform:none}
}
/* Compatibility rules below retain the approved mobile layout. */
.mobile-menu-dialog[data-slot="dialog-content"]{position:fixed;inset:0;z-index:200;translate:none;transform:none;max-width:none;width:100%;height:100dvh;border:0;border-radius:0;padding:0;gap:0;display:flex;flex-direction:column;overflow-y:auto;background:#fff;color:#10283d;box-shadow:none;animation:none}
.mobile-menu-top{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;padding-top:max(18px,env(safe-area-inset-top));flex-shrink:0;min-height:84px}
.mobile-menu-top img{width:150px;height:auto}
.mobile-menu-close,.mobile-menu-trigger{align-items:center;justify-content:center;gap:14px;background:#003989;color:white;border:0;border-radius:12px;font:700 12px/1.2 Arial,sans-serif;letter-spacing:.06em;min-width:96px;height:48px;cursor:pointer}
.mobile-menu-close{display:flex}
.mobile-menu-links{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:36px 20px;font-size:14px;font-weight:700;min-height:360px}
.mobile-menu-links a{padding:3px 12px;transition:color .2s}
.mobile-menu-links a:hover{color:#1685bf}
.mobile-menu-waves{display:block;width:100%;height:clamp(85px,15dvh,150px);flex-shrink:0}
.mobile-menu-trigger:focus-visible,.mobile-menu-close:focus-visible,.mobile-menu-links a:focus-visible{outline:3px solid #60b5df;outline-offset:4px}
.inner-page-content{width:min(1200px,86%);margin:auto;padding:160px 0 110px}
.inner-breadcrumb{font-size:11px;color:#667e90;margin-bottom:70px}
.inner-page-heading{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:50px;margin-bottom:65px}
.inner-page-heading .page-en{font:700 clamp(60px,8vw,105px)/1.05 Arial,sans-serif;letter-spacing:-.04em;color:#003989;margin:0 0 18px}
.inner-page-heading h1{font-size:20px;font-weight:700;letter-spacing:.15em}
.inner-page-heading>p{font-size:14px;line-height:2.2;padding-left:38px;border-left:2px solid #c8dceb}
.works-filter{display:flex;align-items:center;gap:18px;padding:26px 30px;background:#f0f5f8;border-radius:8px;margin-bottom:32px;font-size:14px}
.works-filter select{background:#fff;border:1px solid #cad4de;padding:13px;min-width:210px;border-radius:3px}
.works-filter button{background:#003989;color:#fff;border:0;border-radius:3px;padding:14px 28px;font-weight:700;cursor:pointer}
.works-count{display:flex;justify-content:space-between;font-size:12px;color:#667e90;margin-bottom:20px}
.works-data{width:100%;border-collapse:collapse;font-size:13px;line-height:1.8}
.works-data th{background:#003989;color:#fff;text-align:left;padding:16px 22px;white-space:nowrap}
.works-data td{padding:22px;border-bottom:1px solid #d5dfe6}.works-data td:first-child{font-weight:700;width:35%}.works-data tbody tr:nth-child(even){background:#f6f8fa}
@media(max-width:900px){
 .site-header.refreshed-header{height:84px;padding:14px 22px;background:#fff;color:#003989;border-bottom:0}
 .site-header.refreshed-header:before,.hero .hero-corner{display:none}
 .refreshed-header .brand img{width:150px}
 .refreshed-header .desktop-nav{display:none}
 .mobile-menu-trigger{display:flex;margin-left:auto}
 .hero{padding-top:84px}
 .hero .hero-bg,.hero .hero-grid{inset:84px 10px 10px;border-radius:16px}
 .inner-page-content{padding-top:120px;width:calc(100% - 40px)}
 .inner-breadcrumb{margin-bottom:40px}
 .inner-page-heading{grid-template-columns:1fr;gap:28px;margin-bottom:38px}
 .inner-page-heading>p{font-size:12px;padding-left:20px}
 .works-filter{flex-wrap:wrap;padding:20px;gap:12px}.works-filter label{width:100%}
 .works-data,.works-data tbody{display:block}.works-data thead{display:none}.works-data tr{display:grid;grid-template-columns:1fr 1fr;padding:18px 0;border-bottom:1px solid #d5dfe6}
 .works-data td,.works-data td:first-child{display:block;border:0;padding:7px 14px;width:auto;font-size:12px}.works-data td:first-child{grid-column:1/-1;font-size:15px;padding-bottom:14px}
 .works-data td:not(:first-child):before{content:attr(data-label);display:block;font-size:10px;color:#667e90}
}
@media(prefers-reduced-motion:reduce){.site-header.refreshed-header,.mobile-menu-links a{transition:none}}

/* Fullscreen menu must not inherit the centred dialog's half-screen offset. */
.mobile-menu-dialog[data-slot="dialog-content"]{--tw-translate-x:0px;--tw-translate-y:0px;--tw-enter-translate-x:0px;--tw-enter-translate-y:0px;flex-shrink:0;isolation:isolate}
.mobile-menu-dialog .mobile-menu-top{width:100%;position:relative;z-index:2}
.mobile-menu-dialog .mobile-menu-links{width:100%;position:relative;z-index:2}
.mobile-menu-route{display:block;width:100%;height:clamp(120px,22dvh,220px);flex:0 0 auto;overflow:hidden;margin-bottom:env(safe-area-inset-bottom)}
.mobile-menu-route path{fill:none;stroke:url(#menuRouteGradient);stroke-width:35;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:menuRouteDraw 2.25s cubic-bezier(.3,.05,.2,1) .35s forwards}
@keyframes menuRouteDraw{to{stroke-dashoffset:0}}
@media(max-width:900px){
 :root{--mobile-logo-width:min(52vw,230px);--mobile-header-height:84px;--mobile-corner:20px}
 .site-header.refreshed-header.home-header:not(.is-scrolled){background:transparent}
 .site-header.refreshed-header.home-header:not(.is-scrolled):before{display:block;left:10px;top:10px;width:var(--mobile-logo-width);height:74px;border-radius:0 0 var(--mobile-corner) 0}
 .hero{--hero-inset:10px;--logo-panel-width:var(--mobile-logo-width);--logo-panel-height:74px;--hero-corner-radius:var(--mobile-corner);padding:10px}
 .hero .hero-bg,.hero .hero-grid{inset:10px;border-radius:20px}
 .hero .hero-grid:after{border-radius:20px}
 .hero .hero-corner{display:block}
 .hero .hero-content{padding-inline:26px}
 .hero h1{font-size:clamp(24px,6.6vw,48px);letter-spacing:.03em;line-height:1.5}
 .hero h1 .headline-line{white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){.mobile-menu-route path{animation:none;stroke-dashoffset:0}}

/* No image-grid outline or subpixel seams around the white logo cutout. */
.hero .hero-grid:after{display:none;border:0}
.hero .hero-grid{clip-path:polygon(0 calc(var(--logo-panel-height) + 1px),calc(var(--logo-panel-width) + 1px) calc(var(--logo-panel-height) + 1px),calc(var(--logo-panel-width) + 1px) 0,100% 0,100% 100%,0 100%)}
.site-header .brand,.site-header .brand img,.mobile-menu-top img{border:0;box-shadow:none}
.site-header.refreshed-header.home-header:not(.is-scrolled):before{border:0;box-shadow:0 0 0 1px #fff}
.hero-corner{border:0;box-shadow:none}
.mobile-menu-links a.mobile-menu-contact{display:flex;align-items:center;justify-content:space-between;gap:30px;width:min(280px,calc(100vw - 64px));min-height:60px;padding:18px 26px;margin-top:12px;background:#003989;color:#fff;border-radius:12px;font-weight:700;transition:background-color .2s}
.mobile-menu-links a.mobile-menu-contact:hover{background:#1457a8;color:#fff}

/* One continuous mobile cutout eliminates joins between rounded pieces. */
/* Mobile content tuning is scoped separately from the desktop layout. */
@media(max-width:700px){
 .hero h1{font-size:clamp(26px,7.3vw,52px);letter-spacing:.02em}
 .about-marquee{font-size:78px;line-height:1.1}
 .about-marquee-track{animation-duration:36s}
 .intro .about-map{position:relative;top:-200px;left:auto;right:auto;width:min(330px,72%);margin:10px -28px -200px auto;justify-content:flex-end;z-index:0;pointer-events:none}
 .intro .about-map img{width:77.5%;max-width:none;transform:none}
 .intro .intro-main{z-index:2}
 .about-heading h2,.business-copy h2,.strength-head h2,.works-copy h2,.company-heading h2{font-size:32px;line-height:1.5;letter-spacing:.02em}
 .contact h2{font-size:23px;line-height:1.65;letter-spacing:.02em}
 .contact{flex-direction:column;align-items:center}
 .contact>div{width:100%}
 .contact>a{align-self:center;margin-inline:auto;width:140px;height:140px;flex:0 0 140px}
 .works-preview .works-routes{top:auto;bottom:0;height:calc(83.64vw + 240px);overflow:visible}
 .works-preview .works-copy{position:relative;z-index:5}
 footer{grid-template-columns:1fr;justify-items:center;text-align:center;gap:30px}
 footer>.brand{justify-content:center;margin-inline:auto}
 footer>div{width:100%;text-align:center}
 footer .footer-links{grid-column:1;align-items:center}
 footer>small{width:100%;text-align:center}
}
@media(max-width:700px) and (prefers-reduced-motion:reduce){.about-marquee-track{animation:none}}
@media(max-width:900px){
 .site-header.refreshed-header.home-header:not(.is-scrolled):before{
  left:0;top:0;width:226px;height:104px;border-radius:0;box-shadow:none;
  background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='226' height='104' viewBox='0 0 226 104'%3E%3Cpath fill='white' d='M0 0H226V10Q206 10 206 30V64Q206 84 186 84H30Q10 84 10 104H0Z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
 }
 .hero .hero-corner{display:none}
 .hero .hero-grid{clip-path:none}
 .site-header.refreshed-header.home-header:not(.is-scrolled) .mobile-menu-trigger{align-self:flex-start;margin-top:8px}
 .mobile-menu-links a.mobile-menu-contact{width:min(240px,calc(100vw - 80px))}
}

/* Native WordPress dialog; the browser handles focus trapping and Escape. */
dialog.mobile-menu-dialog:not([open]){display:none}
dialog.mobile-menu-dialog[open]{display:flex;position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#fff;color:#10283d;flex-direction:column;overflow:auto;z-index:2000}
dialog.mobile-menu-dialog::backdrop{background:#fff}
.mobile-menu-top svg,.mobile-menu-contact svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.site-header.refreshed-header .brand img{max-width:none}
.site-header.refreshed-header:before{max-width:none}
@media(min-width:901px){.site-header.refreshed-header.home-header:not(.is-scrolled):before{left:0;top:0;width:calc(18px + min(400px,34vw));height:108px;border-radius:0 0 38px 0}.hero .hero-corner-top{left:calc(18px + min(400px,34vw));top:18px}.hero .hero-corner-left{left:18px;top:108px}
 .site-header.refreshed-header:not(.is-scrolled) .desktop-nav{transform:translateY(12px)}
 .site-header.refreshed-header.is-scrolled .desktop-nav{transform:none}
}

/* Horizontal colour sweep; the existing one-time shine remains on ::before. */
.site-header.refreshed-header .nav-contact::after,
.works-copy>a::after{content:"";position:absolute;inset:-1px;width:auto;height:auto;border:0;border-radius:inherit;background:#1764b6;z-index:-1;pointer-events:none;transform:translateX(-105%);transition:transform .65s cubic-bezier(.16,1,.3,1)}
.site-header.refreshed-header .nav-contact:focus-visible::after,
.works-copy>a:focus-visible::after{transform:translateX(0)}
@media(hover:hover){
 .site-header.refreshed-header .nav-contact:hover::after,.works-copy>a:hover::after{transform:translateX(0);width:auto}
 .site-header.refreshed-header .nav-contact:hover,.works-copy>a:hover{translate:none;box-shadow:none}
 .site-header.refreshed-header .nav-contact:hover svg{translate:4px -4px}
 .works-copy>a:hover svg{translate:5px 0}
}
@media(prefers-reduced-motion:reduce){
 .site-header.refreshed-header .nav-contact::after,.works-copy>a::after{transition:none}
 .site-header.refreshed-header .nav-contact:hover svg,.works-copy>a:hover svg{translate:none}
}
@media(max-width:700px){.intro .about-map{transform:none!important}.hero h1{font-size:clamp(26px,7.3vw,52px)}.about-heading h2,.business-copy h2,.strength-head h2,.works-copy h2,.company-heading h2{font-size:32px}.contact h2{font-size:23px}.about-marquee{top:4px;color:#003989!important;opacity:.08;font-size:78px;line-height:1.1}}
.admin-bar .site-header.refreshed-header{top:32px}
@media(max-width:782px){.admin-bar .site-header.refreshed-header{top:46px}}
@media(max-width:600px){.admin-bar .site-header.refreshed-header.is-scrolled{top:0}}
