@charset "UTF-8";
:root{--navy:#191f4d;--ink:#252b4e;--muted:#646b81;--rule:#dfe2e9;--soft:#f5f6f9;--serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;--sans:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color-scheme:light;font-family:var(--sans);color:var(--navy);background:#fff;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;line-height:1.9;font-size:15px;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-weight:500}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%;height:auto}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid #5576ac;outline-offset:6px}a:hover .arrow{transform:translate(3px,-3px)}.arrow{display:inline-block;font-family:Arial,sans-serif;transition:transform .18s;font-weight:400}.container{width:88%;max-width:1192px;margin-inline:auto}.eyebrow,.section-kicker{font-family:Arial,sans-serif;font-size:12px;letter-spacing:2px;font-weight:400}.eyebrow.ja{font-family:var(--sans);letter-spacing:.07em}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:42px;border-bottom:1px solid var(--navy);padding:12px 0;font-size:13px;line-height:1.6}.text-link .arrow{font-size:21px}.button-primary,.button-light,.button-outline-light{min-height:54px;padding:15px 25px;display:inline-flex;justify-content:space-between;align-items:center;gap:32px;font-size:13px;border:1px solid var(--navy);line-height:1.8}.button-primary{background:var(--navy);color:#fff}.button-primary:hover{background:#303962}.button-light{background:#fff;color:var(--navy);border-color:#fff}.button-outline-light{background:transparent;color:#fff;border-color:#8a90af}.photo-note,figcaption{font-size:11px;color:#73798d;letter-spacing:.03em;line-height:1.7;margin-top:9px}.skip-link{position:absolute;left:20px;top:-60px;background:white;padding:10px;z-index:10}.skip-link:focus{top:10px}
.site-header{padding:14px 4%;display:flex;align-items:center;justify-content:space-between;gap:22px;border-bottom:1px solid #f0f1f5;background:#fff;min-height:92px}.brand{display:flex;align-items:center;justify-content:center;width:214px;flex-shrink:0;min-height:64px;padding:8px 22px;background:var(--navy)}.brand img{width:170px;height:auto}.header-nav{display:flex;align-items:center;gap:34px;font-size:13px;font-weight:500}.header-nav a{position:relative;padding:7px 0}.header-nav a[aria-current="page"]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--navy)}.header-nav .contact-link{margin-left:30px;display:flex;align-items:center;gap:35px;border-bottom:1px solid var(--navy)}.contact-link .arrow{font-size:20px}.menu-toggle{display:none;border:0;background:transparent;padding:12px 0;color:var(--navy);font-size:13px}
.home-hero{position:relative;isolation:isolate;margin-top:16px;padding-top:95px;padding-bottom:66px;min-height:620px}.hero-photo{position:absolute;inset:0 0 0 19%;z-index:-1;overflow:hidden}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:58% center}.hero-copy{width:54%;background:#fff;padding:39px 45px 37px 0}.hero-copy .eyebrow{font-size:13px;font-family:var(--sans);letter-spacing:.04em;white-space:nowrap}.hero-copy h1{font-family:var(--serif);font-size:clamp(42px,5.2vw,72px);line-height:1.49;letter-spacing:.01em;font-weight:500;margin:22px 0 24px}.hero-copy h1 span{display:block;white-space:nowrap}.hero-copy p:last-child{font-family:var(--serif);font-size:clamp(14px,1.25vw,18px);line-height:1.9;white-space:nowrap}.hero-photo-note{color:#8b90a3;text-align:right;font-size:10px;width:88%;margin:7px auto 0;line-height:1.6}.home-jump{display:grid;grid-template-columns:1fr 1fr;margin-top:26px;border-top:1px solid var(--navy);border-bottom:1px solid var(--rule)}.home-jump a{display:flex;justify-content:space-between;align-items:center;padding:23px 32px 24px 0;gap:24px}.home-jump a+a{border-left:1px solid var(--rule);padding-left:39px}.home-jump small{display:block;font:11px Arial,sans-serif;letter-spacing:1.7px;color:var(--muted);margin-bottom:10px}.home-jump strong{display:block;font-family:var(--serif);font-size:23px;font-weight:500;line-height:1.7}.home-jump p{font-size:12px;color:var(--muted);margin-top:4px}.home-jump .arrow{font-size:29px}
.approach{padding:111px 0 104px;display:grid;grid-template-columns:1fr 2fr;gap:40px}.section-label .eyebrow{margin-top:8px}.section-label h2{font-size:14px;font-weight:500;margin-top:12px}.approach-copy .approach-statement{font-family:var(--serif);font-size:clamp(30px,3vw,40px);line-height:1.75;letter-spacing:.035em;margin-bottom:25px}.approach-copy>p:not(.approach-statement){color:var(--muted);font-size:14px;line-height:2.2;max-width:570px}.approach-copy .text-link{margin-top:21px;min-width:192px}
.home-business{padding:82px 0 95px;background:var(--soft)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:52px;gap:25px}.section-heading h2{font-family:var(--serif);font-size:38px;line-height:1.4;margin-top:11px}.section-heading>p{color:var(--muted);font-size:13px}.business-feature{display:grid;grid-template-columns:1.08fr 1fr;align-items:center;gap:7%;margin-bottom:80px}.business-feature:last-child{margin-bottom:0}.business-feature.reverse .feature-image{order:2}.business-feature.reverse .feature-copy{order:1}.feature-image img{width:100%;aspect-ratio:1.4;object-fit:cover}.feature-copy .section-kicker{color:#66708c;letter-spacing:1.4px;font-size:11px}.feature-copy .feature-statement{font-family:var(--serif);font-size:33px;line-height:1.6;margin:14px 0 13px}.feature-copy h3{font-size:14px;margin-bottom:14px;font-weight:500}.feature-copy p{font-size:13px;color:var(--muted);line-height:2.1}.feature-copy .text-link{margin-top:18px;min-width:220px}.feature-copy .tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:18px}.tags span{font-size:11px;border:1px solid #d5dae5;padding:3px 9px;line-height:1.8}
.company-section{display:grid;grid-template-columns:1fr 1fr;gap:9%;padding:99px 0 104px}.company-section .company-statement{font-family:var(--serif);font-size:35px;line-height:1.8;margin:16px 0 22px}.company-section p:not(.eyebrow):not(.company-statement){color:var(--muted);font-size:14px;line-height:2.1}.company-links{align-self:center;border-top:1px solid var(--rule)}.company-links a{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--rule);padding:23px 0;font-size:16px}.company-links small{font:11px Arial,sans-serif;color:var(--muted);letter-spacing:1px;display:block;margin-top:5px}.company-links .arrow{font-size:23px}
.news-section{background:var(--soft);padding:62px 0 70px}.news-layout{display:grid;grid-template-columns:1fr 2fr;gap:40px}.news-section .section-label h2{font-family:var(--serif);font-size:27px}.news-section .section-label .text-link{margin-top:18px}.news-list{border-top:1px solid var(--rule)}.news-list a{display:grid;grid-template-columns:100px 1fr 20px;gap:18px;border-bottom:1px solid var(--rule);padding:23px 0;font-size:13px;align-items:center}.news-list time{font:12px Arial,sans-serif;color:var(--muted)}
.consult-section{background:var(--navy);color:#fff;padding:67px 0 73px}.consult-inner{position:relative}.consult-inner .eyebrow{color:#bdc3dc}.consult-inner .consult-statement{font-family:var(--serif);font-size:40px;line-height:1.7;margin-top:14px}.consult-inner>p:not(.eyebrow):not(.consult-statement){color:#ccd0e2;font-size:13px;line-height:2;margin-top:15px}.consult-actions{display:flex;gap:15px;flex-wrap:wrap;margin-top:31px}.consult-actions a{min-width:250px}.site-footer{background:#fff;padding:48px 0 25px}.footer-top{display:flex;justify-content:space-between;gap:50px;align-items:flex-start}.footer-brand .brand{width:205px;min-height:61px}.footer-brand>p{font-size:11px;color:var(--muted);margin-top:15px;line-height:2}.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:15px 46px;font-size:12px;padding-top:6px}.footer-bottom{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;border-top:1px solid var(--rule);margin-top:40px;padding-top:19px;font-size:10px;color:#737a91;line-height:1.8}.footer-bottom a{margin-right:16px}.design-note{padding:11px 6%;text-align:center;color:#737b91;background:#f5f6f9;font-size:11px;line-height:1.7}
.page-intro{padding-top:29px;padding-bottom:49px}.breadcrumb{font-size:11px;color:var(--muted);margin-bottom:46px}.breadcrumb a{text-decoration:underline;text-underline-offset:4px}.page-intro>.eyebrow{color:#68718c}.page-intro h1{font-family:var(--serif);font-size:54px;letter-spacing:.06em;line-height:1.5;margin:11px 0 23px}.intro-lead{max-width:720px;color:var(--muted);line-height:2.1;font-size:14px}.business-jump{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--navy);border-bottom:1px solid var(--rule);margin-bottom:80px}.business-jump a{display:grid;grid-template-columns:1fr 20px;gap:7px;padding:21px 28px 23px 0}.business-jump a+a{padding-left:35px;border-left:1px solid var(--rule)}.business-jump small{font:11px Arial,sans-serif;letter-spacing:1.5px;color:var(--muted);grid-column:1}.business-jump strong{grid-column:1;font-size:17px;font-weight:500}.business-jump span{grid-column:2;grid-row:1/3;align-self:center;font-size:21px}.service-block{padding-bottom:83px;margin-bottom:72px;border-bottom:1px solid var(--rule);scroll-margin-top:30px}.service-block:last-of-type{margin-bottom:0}.service-block>.section-kicker{font-size:12px;margin-bottom:25px;display:flex;align-items:center;gap:18px}.service-block>.section-kicker:before{content:"";width:35px;height:1px;background:var(--navy)}.service-intro-grid{display:grid;grid-template-columns:1fr 1.04fr;gap:7%;align-items:start}.service-title h2{font-family:var(--serif);font-size:34px;line-height:1.6}.service-title .service-statement{font-family:var(--serif);font-size:24px;line-height:1.85;margin:22px 0 17px}.service-title p{color:var(--muted);font-size:13px;line-height:2.1;margin-bottom:14px}.service-title .brand-sub{font-size:15px;color:var(--navy);margin-top:7px}.service-photo img{width:100%;aspect-ratio:1.35;object-fit:cover}.service-menu{margin-top:44px}.service-menu>h3{font-size:16px;font-weight:500;margin-bottom:24px}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:5%;row-gap:0;border-top:1px solid var(--rule)}.service-item{padding:22px 0 25px;border-bottom:1px solid var(--rule);position:relative}.index-number{font:11px Arial,sans-serif;letter-spacing:1px;color:#8b92aa;margin-bottom:12px}.service-item h4{font-size:17px;font-weight:500;line-height:1.7;margin:8px 0 9px}.service-item p,.service-item li{font-size:12px;color:var(--muted);line-height:2}.service-item ul{list-style:none;padding:0;margin:9px 0 0;display:flex;flex-wrap:wrap;gap:3px 14px}.service-item li:before{content:"・"}.service-action{background:var(--soft);padding:25px 28px;display:flex;align-items:center;justify-content:space-between;gap:27px;margin-top:28px}.service-action p{font-size:13px;color:var(--muted);line-height:2}.service-action .button-primary{flex-shrink:0}.service-newbuild{margin-top:24px;font-size:13px;color:var(--muted);line-height:2}
@media(min-width:1600px){.home-hero{min-height:690px}.hero-photo{left:23%}.hero-copy{width:55%;padding-right:55px}.hero-copy h1{font-size:75px}}
@media(max-width:1100px){.header-nav{gap:23px}.header-nav .contact-link{margin-left:8px;gap:18px}.brand{width:194px;padding:8px 20px}.brand img{width:154px}.home-hero{min-height:540px;padding-top:64px;padding-bottom:50px}.hero-copy{width:57%;padding:29px 28px 30px 0}.hero-copy h1{font-size:clamp(37px,5.3vw,58px)}.hero-copy .eyebrow{font-size:11px}.hero-copy p:last-child{font-size:13px}.approach{padding:80px 0}.home-jump strong{font-size:20px}.home-jump a+a{padding-left:26px}.home-business{padding:65px 0 74px}.business-feature{gap:5%;margin-bottom:64px}.feature-copy .feature-statement{font-size:28px}.service-intro-grid{gap:5%}.service-title h2{font-size:29px}.service-title .service-statement{font-size:22px}.service-photo img{aspect-ratio:1.14}.service-action{align-items:flex-start;flex-direction:column;gap:18px}}
@media(max-width:820px){.site-header{padding-inline:5%;min-height:80px}.brand{width:179px;min-height:53px;padding:7px 18px}.brand img{width:143px}.header-nav{font-size:12px;gap:20px}.header-nav .nav-secondary{display:none}.home-hero{min-height:470px;padding-top:54px;padding-bottom:38px}.hero-photo{left:17%}.hero-copy{width:63%;padding-right:24px}.hero-copy h1{font-size:39px}.hero-copy .eyebrow{white-space:normal;font-size:11px}.hero-copy p:last-child{white-space:normal;font-size:12px}.home-jump strong{font-size:18px}.home-jump p{font-size:11px}.approach{grid-template-columns:1fr 2.3fr;gap:26px}.approach-copy .approach-statement{font-size:29px}.approach-copy>p:not(.approach-statement){font-size:13px}.feature-copy .feature-statement{font-size:25px}.feature-copy h3{font-size:12px}.feature-copy p{font-size:12px}.feature-image img{aspect-ratio:1.08}.feature-copy .text-link{min-width:0;width:100%;font-size:12px;gap:12px}.company-section{gap:8%;padding:75px 0}.company-section .company-statement{font-size:29px}.company-section p:not(.eyebrow):not(.company-statement){font-size:13px}.news-layout{grid-template-columns:1fr 2.3fr;gap:26px}.news-list a{grid-template-columns:84px 1fr 15px;font-size:12px;gap:12px}.consult-inner .consult-statement{font-size:34px}.footer-nav{gap:13px 23px}.page-intro h1{font-size:47px}.service-title h2{font-size:27px}.service-title .service-statement{font-size:21px}.service-title p{font-size:12px}.business-jump strong{font-size:16px}.service-grid{column-gap:7%}.service-item h4{font-size:16px}}
@media(max-width:600px){body{font-size:14px}.container{width:88%}.site-header{padding:12px 6%;min-height:75px;flex-wrap:wrap;gap:15px}.brand{width:164px;min-height:49px;padding:7px 17px}.brand img{width:130px}.menu-toggle{display:block;min-height:44px}.header-nav{display:none;flex-basis:100%;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 0 8px;border-top:1px solid var(--rule)}.header-nav.open{display:flex}.header-nav .nav-secondary{display:block}.header-nav .contact-link{margin-left:0}.home-hero{margin-top:0;min-height:0;padding:166px 0 0}.hero-photo{inset:0 0 120px 12%;height:320px}.hero-photo img{object-position:65% 53%}.hero-copy{width:94%;padding:23px 18px 9px 0}.hero-copy .eyebrow{font-size:10px;letter-spacing:0;white-space:nowrap}.hero-copy h1{font-size:clamp(32px,8.6vw,48px);line-height:1.5;margin:18px 0 19px;letter-spacing:.01em}.hero-copy p:last-child{font-family:var(--sans);font-size:12px;line-height:1.9;white-space:normal}.hero-photo-note{font-size:10px;margin-top:17px}.home-jump{margin-top:20px;grid-template-columns:1fr}.home-jump a{padding:21px 0;gap:14px}.home-jump a+a{padding:21px 0;border-left:0;border-top:1px solid var(--rule)}.home-jump strong{font-size:21px}.home-jump small{margin-bottom:7px}.home-jump p{font-size:12px}.home-jump .arrow{font-size:27px}.approach{display:block;padding:61px 0}.section-label{margin-bottom:28px}.section-label h2{font-size:12px;margin-top:8px}.approach-copy .approach-statement{font-size:27px;letter-spacing:0;line-height:1.8;margin-bottom:22px}.approach-copy>p:not(.approach-statement){font-size:13px;line-height:2.1}.home-business{padding:52px 0 56px}.section-heading{display:block;margin-bottom:32px}.section-heading h2{font-size:31px}.section-heading>p{margin-top:15px;font-size:12px}.business-feature{display:flex;flex-direction:column;align-items:stretch;gap:24px;margin-bottom:55px}.business-feature.reverse .feature-image{order:0}.business-feature.reverse .feature-copy{order:0}.feature-image img{aspect-ratio:1.45}.feature-copy .feature-statement{font-size:28px;margin:13px 0}.feature-copy h3{font-size:13px}.feature-copy p{font-size:13px}.feature-copy .text-link{width:auto;min-width:230px;font-size:13px}.company-section{display:block;padding:57px 0}.company-section .company-statement{font-size:28px}.company-links{margin-top:32px}.company-links a{font-size:15px;padding:17px 0}.news-section{padding:45px 0}.news-layout{display:block}.news-section .section-label{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.news-section .section-label .text-link{margin-top:18px;gap:20px}.news-section .section-label h2{font-size:25px}.news-list a{grid-template-columns:1fr 20px;gap:7px;padding:19px 0}.news-list time{grid-column:1;font-size:11px}.news-list .news-title{grid-column:1;font-size:13px}.news-list .arrow{grid-column:2;grid-row:1/3}.consult-section{padding:47px 0 51px}.consult-inner .consult-statement{font-size:29px;line-height:1.8;margin-top:15px}.consult-inner>p:not(.eyebrow):not(.consult-statement){font-size:12px}.consult-actions{display:grid;grid-template-columns:1fr;gap:12px;margin-top:24px}.consult-actions a{min-width:0;min-height:57px;font-size:12px;padding-inline:18px}.site-footer{padding-top:36px}.footer-top{display:block}.footer-brand .brand{width:184px;min-height:55px}.footer-nav{margin-top:29px;grid-template-columns:1fr 1fr;gap:16px 22px;font-size:11px}.footer-bottom{margin-top:30px;padding-top:17px;font-size:10px;gap:12px}.design-note{font-size:10px;text-align:left}.page-intro{padding-top:24px;padding-bottom:30px}.breadcrumb{margin-bottom:34px;font-size:10px}.page-intro h1{font-size:41px;margin:10px 0 20px}.intro-lead{font-size:13px;line-height:2}.business-jump{grid-template-columns:1fr;margin-bottom:47px}.business-jump a{padding:20px 0;gap:7px}.business-jump a+a{border-left:0;padding:20px 0;border-top:1px solid var(--rule)}.business-jump strong{font-size:17px}.business-jump small{font-size:10px}.service-block{padding-bottom:49px;margin-bottom:49px}.service-block>.section-kicker{font-size:11px;margin-bottom:22px}.service-intro-grid{display:flex;flex-direction:column;gap:22px}.service-title h2{font-size:29px}.service-title .service-statement{font-size:25px;line-height:1.8;margin:21px 0 17px}.service-title p{font-size:13px;line-height:2.1}.service-title .brand-sub{font-size:14px}.service-photo img{aspect-ratio:1.45}.service-photo{width:100%}.service-menu{margin-top:31px}.service-menu>h3{font-size:16px;margin-bottom:18px}.service-grid{grid-template-columns:1fr}.service-item{padding:21px 0 23px}.service-item h4{font-size:17px}.service-item p,.service-item li{font-size:12px}.service-action{padding:23px 20px;margin-top:23px;gap:18px}.service-action p{font-size:12px}.service-action .button-primary{width:100%;font-size:12px;padding:13px 14px;gap:10px}.button-primary,.button-light,.button-outline-light{font-size:12px}.photo-note,figcaption{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.arrow{transition:none}}
.brand{background:transparent;padding:0}.brand img{width:100%;height:auto}.site-header .brand{width:208px;min-height:62px}#construction .service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:820px){.site-header .brand{width:183px;min-height:53px}}
@media(max-width:600px){.site-header .brand{width:174px;min-height:46px}#construction .service-grid{grid-template-columns:1fr}}

.hero-photo-note,figcaption,.footer-bottom,.design-note{color:var(--muted)}

/* Semantic headings retain the approved visual hierarchy. */
.feature-copy .feature-statement,.service-title .service-statement{color:var(--navy);font-weight:500}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:7px;list-style:none;margin:0;padding:0}.breadcrumb li+li:before{content:"/";margin-right:7px}
.menu-toggle[hidden]{display:none}
@media(max-width:820px){
.site-header{flex-wrap:wrap}
.header-nav .nav-secondary{display:block}.header-nav .contact-link{margin-left:0}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

.company-statement,.consult-statement{font-weight:500}.company-section h2.eyebrow,.consult-inner h2.eyebrow{font-family:var(--sans);letter-spacing:.06em;font-size:12px;font-weight:500}

/* Keep the mobile navigation outside layout before JavaScript starts. */
@media(max-width:820px){.site-header>.header-nav{display:none}}

/* Clear section names precede their paragraph catch copy. */
.section-title{font-family:var(--serif);font-size:32px;line-height:1.5;font-weight:500;letter-spacing:.025em}
.approach-copy .approach-statement{font-size:27px;margin:18px 0 24px;color:var(--navy)}
.section-heading .section-title{font-size:32px}.section-catch{font-family:var(--serif);font-size:24px;line-height:1.8;margin-top:16px}
.feature-copy h3{font-size:20px;line-height:1.6;margin:12px 0 0}.feature-copy .feature-statement{font-size:28px;margin:16px 0}.feature-copy .business-brand{margin-bottom:12px;color:var(--navy)}
.company-section .company-statement{font-size:28px;margin:18px 0 22px}.consult-inner .consult-statement{font-size:28px;margin-top:18px}
.sdgs-section{background:#eef2f6;padding:64px 0 68px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.sdgs-layout{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.sdgs-statement{font-family:var(--serif);font-size:30px;line-height:1.8;margin-top:18px}.sdgs-detail>p{font-size:14px;line-height:2.1;color:var(--muted)}.sdgs-detail .text-link{margin-top:24px;min-width:260px}.news-section{background:#fff}
@media(max-width:820px){.section-title,.section-heading .section-title{font-size:29px}.sdgs-layout{gap:7%}.sdgs-detail .text-link{min-width:0}}
@media(max-width:600px){.section-title,.section-heading .section-title{font-size:27px}.approach .section-label{margin-bottom:14px}.approach-copy .approach-statement{font-size:23px;line-height:1.9}.section-catch{font-size:20px;margin-top:13px}.feature-copy h3{font-size:19px}.feature-copy .feature-statement{font-size:25px}.company-section .company-statement,.consult-inner .consult-statement{font-size:25px}.sdgs-section{padding:44px 0 48px}.sdgs-layout{display:block}.sdgs-statement{font-size:26px;margin-top:15px}.sdgs-detail{margin-top:24px}.sdgs-detail>p{font-size:13px}.sdgs-detail .text-link{width:100%;max-width:320px}}

/* The mobile navigation control keeps a 48 px target and an accessible name. */
.menu-toggle{width:48px;min-width:48px;height:48px;padding:0;cursor:pointer;line-height:1}
.menu-toggle-icon{display:block;position:relative;width:26px;height:20px}
.menu-toggle-icon>span{position:absolute;left:0;width:26px;height:2px;background:currentColor;transform-origin:center;transition:transform .18s ease,opacity .18s ease}
.menu-toggle-icon>span:nth-child(1){top:0}
.menu-toggle-icon>span:nth-child(2){top:9px}
.menu-toggle-icon>span:nth-child(3){top:18px}
.menu-toggle[aria-expanded="true"] .menu-toggle-icon>span:nth-child(1),.menu-close .menu-toggle-icon>span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-toggle-icon>span:nth-child(2),.menu-close .menu-toggle-icon>span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] .menu-toggle-icon>span:nth-child(3),.menu-close .menu-toggle-icon>span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
@media(max-width:820px){.site-header .menu-toggle:not([hidden]){display:inline-flex;align-items:center;justify-content:center;min-height:48px}}

/* A native modal blocks background input without moving the page content. */
.mobile-menu{position:fixed;inset:0;margin:0;border:0;padding:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;color:var(--navy);background:#fff;overflow:hidden;transform:translateY(-100%);transition:transform .2s ease}
.mobile-menu[open]{display:flex;flex-direction:column}
.mobile-menu.is-open{transform:translateY(0)}
.mobile-menu::backdrop{background:rgb(25 31 77 / 22%)}
.mobile-menu-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 5%;min-height:82px;flex-shrink:0;border-bottom:1px solid var(--rule)}
.mobile-menu .menu-close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.mobile-menu .header-nav{display:flex;flex:1;flex-direction:column;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;gap:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:22px 6% 40px;border:0;-webkit-overflow-scrolling:touch}
.mobile-menu .header-nav a{display:block;flex-shrink:0;min-height:58px;padding:18px 4px;font-size:17px;line-height:1.6;border-bottom:1px solid var(--rule)}
.mobile-menu .header-nav .nav-secondary{display:block}
.mobile-menu .header-nav a[aria-current="page"]:after{display:none}
.mobile-menu .header-nav .contact-link{display:flex;justify-content:space-between;margin:14px 0 0;border-bottom:1px solid var(--navy)}
@media(max-width:600px){.mobile-menu-top{padding:12px 6%;min-height:75px}}
