
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800;900&display=swap');
:root{--blue:#0865c5;--navy:#103e70;--muted:#526779;--pale:#f0f7fc;--line:#dbe7f0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:#fff;color:var(--navy);font-family:'Noto Sans JP',Meiryo,sans-serif;font-size:17px;line-height:1.95}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}p,h1,h2,h3{margin:0}p+p{margin-top:20px}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:5px}.skip{position:absolute;left:10px;top:-100px;background:white;z-index:99}.skip:focus{top:5px}.preview{text-align:center;background:var(--pale);color:var(--muted);font-size:11px;padding:5px 15px;letter-spacing:.06em}
header{min-height:150px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:30px max(5%,calc((100vw - 1240px)/2));position:relative;z-index:5;background:#fff}.brand{display:flex;align-items:center;gap:15px;font-size:29px;font-weight:900;line-height:1.3;white-space:nowrap;letter-spacing:.05em;color:var(--blue)}.brand small{display:block;font-size:9px;letter-spacing:.18em;color:var(--muted);margin-top:10px}nav{display:flex;gap:32px;align-items:center;font-size:14px;font-weight:700}nav a{padding:10px 0}nav a[aria-current]{box-shadow:0 2px 0 var(--blue)}nav a:last-child{background:var(--blue);color:white;padding:15px 24px}.menu{display:none}
.hero{position:relative;min-height:650px;display:flex;align-items:center;overflow:hidden;background:#ddebf5}.heroimg{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#fffffffa 0%,#fffffff0 22%,#ffffff70 48%,transparent 75%)}.herocopy{position:relative;z-index:1;padding:70px max(5%,calc((100vw - 1240px)/2));width:100%}.eyebrow{color:var(--blue);font-size:14px;font-weight:800;letter-spacing:.13em;line-height:1.5;margin-bottom:20px}h1{font-size:clamp(38px,4.4vw,66px);font-weight:800;line-height:1.55;letter-spacing:.015em}h1 em{font-style:normal;color:var(--blue)}.lead{font-size:18px;font-weight:500;margin-top:24px;line-height:2}.actions{display:flex;gap:15px;flex-wrap:wrap;margin-top:34px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:30px;background:var(--blue);color:#fff;font-weight:700;padding:18px 26px;border:1px solid var(--blue);line-height:1.5;transition:background .2s}.button:hover{background:var(--navy);color:white}.button span{font-size:22px}.outline{background:#ffffffd9;color:var(--blue)}.photo-label{position:absolute;right:18px;bottom:15px;z-index:2;background:#fffffff0;color:var(--muted);padding:3px 10px;font-size:10px}
.section{padding:110px 5%;max-width:1360px;margin:auto}.sectionhead{text-align:center;margin-bottom:55px}.sectionhead .eyebrow{font-size:38px;letter-spacing:.015em;font-weight:500;margin-bottom:10px}.sectionhead>p{color:var(--muted);margin-top:25px}h2{font-size:clamp(26px,2.6vw,36px);line-height:1.65;font-weight:700;letter-spacing:.025em}h3{font-size:25px;line-height:1.65;font-weight:700}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.service{background:var(--pale);padding:36px 30px;display:flex;flex-direction:column;border-top:3px solid var(--blue);transition:background .2s}.service:hover{background:#e3f0fb}.number{font-size:42px;font-weight:500;color:var(--blue);line-height:1.3;display:block;margin-bottom:25px}.service h3{margin-bottom:18px}.service p{font-size:16px;color:var(--muted);flex:1}.more{margin-top:30px;border-top:1px solid #cddfeb;padding-top:16px;font-size:14px;font-weight:700;display:flex;justify-content:space-between}.more b{color:var(--blue)}
.companyteaser{display:grid;grid-template-columns:1fr 1.3fr;gap:75px;align-items:center;background:var(--pale);padding:85px max(6%,calc((100vw - 1150px)/2))}.bigmark,.companylogo{padding:40px;color:var(--blue);border-left:4px solid var(--blue)}.bigmark span,.companylogo span{font-size:clamp(54px,6vw,90px);line-height:.98;letter-spacing:-.04em;font-weight:900;display:block}.bigmark small,.companylogo small{display:block;font-size:13px;margin-top:28px;font-weight:500;letter-spacing:.05em}.companyteaser .eyebrow{font-size:30px;letter-spacing:.02em;font-weight:500}.companyteaser p:not(.eyebrow){color:var(--muted);margin-top:24px}.textlink{display:inline-block;border-bottom:1px solid var(--blue);padding:12px 0;margin-top:25px;font-weight:700}.cta{background:var(--blue);color:white;padding:65px max(5%,calc((100vw - 1200px)/2));display:flex;justify-content:space-between;align-items:center;gap:30px}.cta .eyebrow{color:#fff}.cta .button{flex-shrink:0;background:white;color:var(--blue);border-color:white;min-width:240px}.cta .button:hover{background:var(--pale)}footer{padding:60px max(5%,calc((100vw - 1240px)/2));display:grid;grid-template-columns:1fr auto;gap:30px}footer p,footer>small{font-size:12px;color:var(--muted)}.footerlinks{display:flex;gap:24px;font-size:14px}
.pagetitle{padding:70px max(5%,calc((100vw - 1240px)/2));background:var(--pale);border-bottom:1px solid var(--line)}.pagetitle h1{font-size:clamp(36px,4.5vw,58px)}.pagetitle>p:last-child{margin-top:20px;color:var(--muted)}.detail{display:grid;grid-template-columns:100px 1fr;gap:20px;padding:40px 0 55px;border-bottom:1px solid var(--line)}.detail p{margin-top:20px}.muted{color:var(--muted)}.companygrid{display:grid;grid-template-columns:1fr 2fr;gap:65px;align-items:start}dl{margin:0}dl>div{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:25px 0;border-bottom:1px solid var(--line)}dt{font-weight:700;color:var(--blue)}dd{margin:0}.contactgrid{display:grid;grid-template-columns:1fr 1fr;gap:55px}.notice{border:1px solid var(--line);padding:35px;background:var(--pale)}.notice p{margin-top:24px;color:var(--muted)}.prepare{padding-left:25px}.prepare li{padding:18px 0;border-bottom:1px solid var(--line)}.prepare span{display:block;color:var(--muted);margin-top:8px;font-size:16px}
@media(max-width:850px){header{min-height:100px;padding:24px 5%;gap:12px}.brand{font-size:23px}.brand small{font-size:8px;letter-spacing:.1em}.menu{display:flex;align-items:center;gap:10px;background:white;color:var(--blue);border:1px solid var(--line);padding:9px 12px;font-size:12px;white-space:nowrap;flex-shrink:0}nav{display:none;position:absolute;top:100%;left:0;right:0;background:white;padding:20px 5%;box-shadow:0 15px 25px #103e701a}nav.open{display:flex;flex-direction:column;align-items:stretch;gap:10px}nav a{padding:12px}nav a[aria-current]{box-shadow:none;border-left:3px solid var(--blue)}.hero{min-height:680px;align-items:end}.heroimg{height:380px;top:0;object-position:76% center}.hero:after{background:linear-gradient(0deg,#fff 0%,#fff 43%,#ffffff00 67%)}.herocopy{padding:340px 6% 44px}h1{font-size:clamp(32px,7.7vw,55px);line-height:1.6;letter-spacing:0}.hero .eyebrow{font-size:10px;letter-spacing:.06em}.lead{font-size:16px;margin-top:18px}.photo-label{top:10px;bottom:auto;font-size:9px}.section{padding:65px 6%}.sectionhead{margin-bottom:35px}.sectionhead .eyebrow{font-size:30px}.sectionhead>p{margin-top:20px;font-size:15px}.services{grid-template-columns:1fr;gap:22px}.service{padding:30px}.number{margin-bottom:15px;font-size:32px}.companyteaser,.companygrid,.contactgrid{grid-template-columns:1fr;gap:35px}.companyteaser{padding:60px 6%}.bigmark,.companylogo{padding:15px 25px}.bigmark span,.companylogo span{font-size:58px}.cta{display:block;padding:45px 6%}.cta .button{margin-top:25px}.cta h2{font-size:27px}footer{grid-template-columns:1fr;padding:45px 6%}.footerlinks{flex-wrap:wrap;gap:20px}.detail{grid-template-columns:1fr}.companylogo{max-width:260px}dl>div{grid-template-columns:75px 1fr;gap:15px}.pagetitle{padding:45px 6%}.notice{padding:25px}.actions{gap:12px;margin-top:25px}.actions .button{font-size:14px;padding:15px 18px;gap:20px}body{font-size:16px}}
@media(max-width:380px){.brand{font-size:20px}.menu{padding:8px}.preview{font-size:10px}.hero .eyebrow{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Reference-inspired photo-led layout, 2026-11-13 */
header{max-width:1180px;margin:auto;min-height:175px;display:grid;grid-template-columns:1fr auto;gap:22px;padding:25px 30px 30px}.headercontact{font-size:14px;padding:16px 25px}header nav{grid-column:1/-1;justify-content:center;gap:0}header nav a{min-width:180px;text-align:center;font-weight:500;border-right:1px solid var(--line);padding:4px 25px}header nav a:last-child{background:none;color:var(--navy);padding:4px 25px;border:0}header nav a[aria-current]{box-shadow:none;color:var(--blue);font-weight:700}.sidecontact{position:fixed;right:0;top:44%;z-index:9;writing-mode:vertical-rl;padding:25px 15px;background:var(--blue);color:white;font-size:14px;letter-spacing:.15em}.pagetop{position:fixed;bottom:18px;right:18px;width:42px;height:42px;display:grid;place-items:center;background:white;color:var(--blue);border:1px solid var(--line);z-index:9}
.referencehero{height:620px;min-height:0;align-items:end;background:#174a6e}.slides,.slide{position:absolute;inset:0;width:100%;height:100%}.slide{object-fit:cover;opacity:0;transition:opacity 1.1s}.slide.active{opacity:1}.referencehero:after{background:linear-gradient(0deg,#072f5dc9,transparent 85%)}.referencehero .herocopy{padding:0 max(9%,calc((100vw - 1120px)/2)) 95px;color:#fff}.referencehero h1{font-size:clamp(32px,3vw,46px);line-height:1.75;color:white;letter-spacing:.04em}.referencehero .eyebrow{color:white;font-size:13px}.referencehero .lead{font-size:17px;line-height:1.9;margin-top:17px;font-weight:400}.referencehero .photo-label{bottom:10px;right:65px;font-size:10px;background:#143d67aa;color:#fff}.slidecontrols{position:absolute;z-index:3;bottom:28px;left:50%;transform:translateX(-50%);display:flex;gap:14px;align-items:center}.slidecontrols button{width:12px;height:12px;border:1px solid white;background:transparent;border-radius:50%;padding:0;cursor:pointer;box-shadow:0 0 0 5px transparent}.slidecontrols button[aria-pressed=true]{background:#fff}.slidecontrols .pause{border-radius:0;width:32px;height:30px;color:white;line-height:1;font-size:14px}
.aboutphoto{display:grid;grid-template-columns:1fr 1fr;max-width:1300px;margin:0 auto 90px;align-items:stretch}.aboutcopy{padding:65px 55px 55px 9%}.aboutcopy .eyebrow,.sectionhead .eyebrow,.consultation .eyebrow,.contactphoto .eyebrow{font-size:23px;line-height:1.3;letter-spacing:.01em;font-weight:500;margin-bottom:8px}.aboutcopy h2{font-size:29px}.aboutcopy p:not(.eyebrow){font-size:16px;margin-top:28px;color:var(--muted)}.aboutcopy .button{margin-top:30px;min-width:270px}.aboutphoto figure{margin:0;position:relative;min-height:460px}.aboutphoto figure img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:75%}.aboutphoto figcaption{position:absolute;bottom:8px;right:12px;font-size:10px;background:#fff;padding:2px 7px}
.photomenu{margin:0 24px;background:linear-gradient(var(--pale) 0%,var(--pale) 60%,white 60%)}.scenery{height:160px;background:url('assets/house.png') center 24%/cover}.photomenu .section{max-width:1200px;padding-top:65px;padding-bottom:75px}.sectionhead h2{font-size:29px}.sectionhead .eyebrow{font-size:26px}.sectionhead>p{font-size:16px}.services{gap:38px}.service{background:transparent;border:0;padding:0}.service:hover{background:transparent}.service>img{width:100%;aspect-ratio:1.65;object-fit:cover}.service:nth-child(2)>img{object-position:78%}.service h3{font-size:21px;text-align:center;background:white;margin:0 12px 18px;padding:14px 6px;position:relative;margin-top:-12px;box-shadow:0 3px 0 #dbeaf5}.service p{font-size:15px}.service .more{margin-top:20px}.assetnote{font-size:11px;color:var(--muted);text-align:center;margin-top:25px}.center{text-align:center;margin-top:35px}.center .button{min-width:280px}
.consultation{max-width:1200px;margin:20px auto 85px;display:grid;grid-template-columns:1fr 1fr;align-items:center;background:var(--pale)}.consultation>img{width:100%;height:450px;object-fit:cover}.consultation>div{background:white;margin:35px 30px 35px -45px;padding:45px;position:relative;text-align:center}.consultation h2{font-size:29px}.consultation p:not(.eyebrow){font-size:15px;color:var(--muted);margin:22px 0}.consultation small,.contactphoto small{display:block;font-size:11px;color:var(--muted);margin-top:15px}.consultation .button{font-size:15px}.quicklinks{max-width:1120px;margin:0 auto 85px;display:grid;grid-template-columns:repeat(3,1fr);gap:25px;padding:0 20px}.quicklinks a{position:relative;background:linear-gradient(115deg,#0c6dbd,#2b8dc7);color:white;padding:25px 28px;font-size:20px}.quicklinks span{display:block;font-size:12px;letter-spacing:.1em}.quicklinks b{float:right;font-weight:400}.contactphoto{background:linear-gradient(#e5f4fbbb,#e5f4fbdd),url('assets/house.png') center 55%/cover;padding:65px 20px;text-align:center}.contactphoto>div{max-width:610px;margin:auto;background:#ffffffed;padding:40px 35px}.contactphoto h2{font-size:29px}.contactphoto p:not(.eyebrow){font-size:15px;margin:20px 0 25px}footer{background:#f5f8fa}
@media(max-width:850px){header{display:flex;min-height:100px;padding:22px 5%;gap:12px}.headercontact{display:none}.sidecontact{display:none}header nav{justify-content:start;gap:10px}header nav a,header nav a:last-child{border:0;text-align:left;padding:12px;min-width:0}.referencehero{height:570px;min-height:0}.referencehero .herocopy{padding:0 7% 90px}.referencehero .slide{object-position:60% center}.referencehero h1{font-size:30px;line-height:1.8}.referencehero .lead{font-size:15px}.referencehero .eyebrow{font-size:11px}.referencehero .photo-label{top:auto;bottom:8px;right:8px;font-size:8px}.aboutphoto{grid-template-columns:1fr;margin-bottom:50px}.aboutcopy{padding:45px 7%}.aboutcopy h2{font-size:25px}.aboutphoto figure{min-height:280px;order:-1}.aboutphoto figure img{object-position:70%}.photomenu{margin:0 12px}.scenery{height:110px}.photomenu .section{padding:45px 6%}.sectionhead h2{font-size:26px}.services{gap:38px}.service h3{font-size:21px}.consultation{margin:0 12px 50px;grid-template-columns:1fr}.consultation>img{height:260px}.consultation>div{margin:-25px 16px 20px;padding:30px 20px}.consultation h2{font-size:25px}.consultation p br{display:none}.consultation .button{padding:15px;gap:15px}.quicklinks{grid-template-columns:1fr;gap:12px;margin-bottom:45px}.quicklinks a{font-size:19px;padding:20px 25px}.contactphoto{padding:40px 15px}.contactphoto>div{padding:30px 18px}.contactphoto .button{font-size:14px;gap:15px;padding:16px}.pagetop{bottom:10px;right:10px;width:35px;height:35px}.desktopbreak{display:none}}
@media(max-width:480px){.referencehero h1{font-size:clamp(22px,6.3vw,29px);letter-spacing:0}}

/* Selected design 03 / logo 01 */
:root{--blue:#0755b2;--navy:#133250;--pale:#f6f9fc;--muted:#5d6b79;--line:#dfe7ee}body{font-weight:400}header{display:flex;max-width:1400px;min-height:112px;padding:22px 4%;gap:30px}header .headercontact{display:none}header nav{gap:28px}header nav a{min-width:0;padding:8px 0;border:0;font-size:13px}header nav a:last-child{padding:12px 23px;background:var(--blue);color:white}.brand{font-size:23px;gap:10px;letter-spacing:.025em}.brand small{font-size:8px;letter-spacing:.2em}.brandmark{width:69px;height:52px;object-fit:contain}.sidecontact{display:none}h1,h2{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-weight:500}.referencehero{height:570px;background:#fff;align-items:center;max-width:1600px;margin:auto}.elegantphoto{position:absolute;right:0;top:0;width:76%;height:100%;object-fit:cover;object-position:center}.referencehero:after{background:linear-gradient(90deg,#fff 0%,#fff 18%,#fffffff2 30%,#ffffff60 51%,transparent 69%)}.referencehero .herocopy{padding:40px 7%;color:var(--navy)}.referencehero h1{font-size:clamp(34px,3.4vw,52px);line-height:1.7;color:var(--navy);letter-spacing:.04em}.referencehero .eyebrow{color:var(--blue);font-size:11px;letter-spacing:.25em;margin-bottom:25px;font-weight:500}.referencehero .lead{font-size:15px;line-height:2.1;margin-top:28px;font-weight:400}.referencehero .lead:before{content:'';display:block;width:45px;height:1px;background:var(--blue);margin-bottom:24px}.referencehero .photo-label{right:15px;background:#ffffffe6;color:var(--muted);font-size:9px;bottom:10px}.photomenu{background:white;margin:0}.photomenu .section{padding:75px 5% 95px;max-width:1280px}.sectionhead{margin-bottom:45px}.sectionhead .eyebrow{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--blue)}.sectionhead h2{font-size:30px;display:flex;align-items:center;justify-content:center;gap:22px}.sectionhead h2:before,.sectionhead h2:after{content:'';width:75px;height:1px;background:#86a4c4}.sectionhead>p{font-size:14px;line-height:1.9;margin-top:20px}.services{gap:26px}.service{padding-right:26px;border-right:1px solid var(--line)}.service:last-child{padding-right:0;border:0}.service>img{aspect-ratio:1.8}.service h3{background:transparent;box-shadow:none;margin:0;padding:22px 0 14px;font-size:19px;text-align:left;font-weight:600;letter-spacing:0}.service p{font-size:14px;line-height:1.9}.service .more{font-size:12px;margin-top:20px;padding-top:12px}.button{font-weight:500;font-size:14px;padding:16px 24px}.center .button{background:#fff;color:var(--blue);min-width:270px}.center .button:hover{background:var(--pale)}.assetnote{font-size:10px}.aboutphoto{max-width:1200px;margin:0 auto 95px;background:var(--pale)}.aboutcopy{padding:60px 45px}.aboutcopy .eyebrow,.consultation .eyebrow,.contactphoto .eyebrow{font-size:12px;letter-spacing:.17em}.aboutcopy p:not(.eyebrow){font-size:15px}.aboutphoto figure{min-height:420px}.consultation{background:#fff;margin-bottom:80px}.consultation>div{border:1px solid var(--line)}.quicklinks a{background:white;color:var(--blue);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:17px;padding:24px 10px}.quicklinks span{font-size:10px;color:var(--muted)}.contactphoto{background:var(--pale);padding:60px 20px}.contactphoto>div{background:transparent}.cta{background:var(--pale);color:var(--navy)}.cta .eyebrow{color:var(--blue)}.cta .button{background:var(--blue);color:#fff}.pagetitle{background:white;border-bottom:1px solid var(--line);padding-top:60px;padding-bottom:60px}.pagetitle h1{font-size:45px}.companylogo{border:0;padding:10px}.companylogo img{max-width:270px}footer{background:#fff;border-top:1px solid var(--line)}
@media(max-width:850px){header{min-height:95px;padding:20px 5%;justify-content:space-between;gap:12px}.brand{font-size:19px;gap:6px}.brandmark{width:50px;height:42px}.brand small{font-size:7px;letter-spacing:.06em}header nav{gap:10px}header nav a,header nav a:last-child{padding:12px;font-size:14px}.referencehero{height:620px;align-items:end}.elegantphoto{width:100%;height:355px;object-position:65%;top:0}.referencehero:after{background:linear-gradient(0deg,#fff 0%,#fff 36%,#ffffffbd 49%,transparent 66%)}.referencehero .herocopy{padding:0 7% 38px}.referencehero h1{font-size:32px;line-height:1.65;letter-spacing:.03em}.referencehero .eyebrow{margin-bottom:16px;font-size:9px}.referencehero .lead{font-size:14px;margin-top:18px}.referencehero .lead:before{margin-bottom:16px}.referencehero .photo-label{top:10px;bottom:auto;font-size:8px}.photomenu .section{padding:55px 7%}.services{gap:30px}.service{padding:0;border:0;border-bottom:1px solid var(--line);padding-bottom:25px}.service:last-child{padding:0}.sectionhead h2{font-size:27px;gap:17px}.sectionhead h2:before,.sectionhead h2:after{width:40px}.service h3{font-size:20px}.service p{font-size:15px}.aboutphoto{margin:0 15px 55px}.aboutcopy{padding:35px 24px}.aboutphoto figure{min-height:260px}.aboutcopy .button{min-width:0;width:100%}.aboutcopy h2{font-size:24px}.consultation{margin:0 15px 55px}.consultation>div{padding:30px 20px}.pagetitle h1{font-size:36px}.quicklinks{margin-bottom:30px}.referencehero .herocopy{width:100%}}

.accesssection{padding-top:55px}.accessinfo{display:flex;justify-content:space-between;align-items:center;gap:35px;margin-bottom:40px}.accessinfo h2{font-size:30px}.address{margin-top:20px}.mapactions{display:flex;flex-direction:column;align-items:flex-start}.mapactions .textlink{font-size:14px;margin-top:12px}.accessmap{display:block;width:100%;height:470px;border:1px solid var(--line);background:var(--pale)}.mapnote{font-size:12px;color:var(--muted);margin-top:15px}.addresslink{display:inline-block;color:var(--blue);border-bottom:1px solid var(--line);font-size:14px;margin-top:12px}@media(max-width:850px){.accessinfo{display:block}.mapactions{margin-top:28px}.accessmap{height:350px}.accesssection{padding-top:40px}.accessinfo h2{font-size:27px}}

.illustratedtitle{display:grid;grid-template-columns:1fr 1.15fr;gap:55px;align-items:center;padding-top:45px;padding-bottom:45px}.illustratedtitle>div>p:last-child{margin-top:22px;color:var(--muted);font-size:16px}.illustratedtitle figure{margin:0;min-width:0}.illustratedtitle figure img{width:100%;aspect-ratio:1.8;object-fit:cover}.illustratedtitle figcaption{color:var(--muted);font-size:10px;line-height:1.7;margin-top:8px}.consultfigure{position:relative;margin:0;min-width:0}.consultfigure img{width:100%;height:450px;object-fit:cover}.consultfigure figcaption{position:absolute;bottom:10px;left:12px;background:#fffffff0;padding:2px 7px;font-size:10px}.aboutphoto figure img{object-position:center}@media(max-width:850px){.illustratedtitle{grid-template-columns:1fr;gap:28px;padding-top:35px;padding-bottom:35px}.illustratedtitle>div>p:last-child{font-size:15px}.illustratedtitle figure img{aspect-ratio:1.65}.consultfigure img{height:260px}}

/* Bilingual navigation and selected circuit button */
header nav{gap:0}header nav a{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:5px 24px;border-left:1px solid var(--line);line-height:1.4;white-space:nowrap}header nav a:first-child{border-left:0}.navja{font-size:14px;font-weight:600}.naven{font-size:12px;font-weight:400;letter-spacing:.05em;color:var(--blue);font-family:Georgia,serif}header nav a:last-child{padding:14px 24px;margin-left:15px;border:0;position:relative;border-radius:3px}header nav a:last-child .naven{color:#fff}header nav a[aria-current] .navja{color:var(--blue)}header nav a:last-child[aria-current] .navja{color:white}header nav a:hover .navja{text-decoration:underline;text-underline-offset:5px}header nav a:last-child:hover .navja{text-decoration:none}
@property --circuit-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
.button{background:#fff;color:var(--blue);border:1px solid var(--blue);position:relative;isolation:isolate;border-radius:3px;transition:background .25s,color .25s,box-shadow .25s}.button::before,header nav a:last-child::before{content:'';position:absolute;inset:-2px;padding:2px;border-radius:inherit;pointer-events:none;background:conic-gradient(from var(--circuit-angle),transparent 0deg,transparent 265deg,#0864cd 300deg,#13d9ed 335deg,transparent 359deg);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:0}.button:hover,.button:focus-visible{background:#f7fbff;color:var(--blue);box-shadow:0 3px 14px #0755b20d}.button:is(:hover,:focus-visible)::before,header nav a:last-child:is(:hover,:focus-visible)::before{opacity:1;animation:circuit-run 1.4s linear infinite}.button>span{display:inline-block;transition:transform .25s}.button:is(:hover,:focus-visible)>span{transform:translateX(5px)}.button:active{transform:translateY(1px)}header nav a:last-child,.cta .button,.contactphoto .button{background:var(--blue);color:#fff}.cta .button:hover,.contactphoto .button:hover,header nav a:last-child:hover{background:#06489a;color:white}.cta .button{border-color:var(--blue)}
@keyframes circuit-run{to{--circuit-angle:360deg}}
@media(max-width:1100px) and (min-width:851px){header{gap:20px;padding-left:3%;padding-right:3%}header .brand{font-size:20px}header .brandmark{width:55px}header nav a{padding-left:15px;padding-right:15px}.navja{font-size:12px}.naven{font-size:11px}header nav a:last-child{padding-left:17px;padding-right:17px;margin-left:8px}}
@media(max-width:850px){header nav{gap:6px}header nav a{border:0;border-bottom:1px solid var(--line);flex-direction:row;justify-content:space-between;gap:20px;padding:15px}.navja{font-size:15px}.naven{font-size:12px}header nav a:last-child{margin:6px 0 0;padding:16px}.button{min-height:48px}header nav a[aria-current]{border-left:2px solid var(--blue)}}
@media(prefers-reduced-motion:reduce){.button::before,header nav a:last-child::before{animation:none!important}.button>span{transition:none}.button:is(:hover,:focus-visible)>span{transform:none}}

/* More visible electric trace */
.button::before,header nav a:last-child::before{inset:-3px;padding:3px;background:conic-gradient(from var(--circuit-angle),transparent 0deg,transparent 210deg,#0864cd 245deg,#00bfe9 285deg,#b9faff 306deg,#00bfe9 322deg,transparent 345deg);opacity:.85;animation:circuit-run 2.8s linear infinite;filter:drop-shadow(0 0 3px #00bfe966)}
.button:is(:hover,:focus-visible)::before,header nav a:last-child:is(:hover,:focus-visible)::before{opacity:1;animation:circuit-run 2.2s linear infinite;filter:drop-shadow(0 0 5px #00bfe9bb)}
.button:hover,.button:focus-visible,.center .button:hover{background:#e7f5ff;box-shadow:0 0 0 3px #13c9ec1a,0 4px 18px #0755b21c}
.cta .button:hover,.contactphoto .button:hover,header nav a:last-child:hover{background:#06489a;color:#fff;box-shadow:0 0 0 3px #13c9ec29,0 4px 18px #0755b22b}
.button>span::before{content:'ϟ';font-family:Arial,sans-serif;font-size:22px;margin-right:8px;display:inline-block;color:inherit}
@media(prefers-reduced-motion:reduce){.button::before,header nav a:last-child::before{animation:none!important;opacity:1;filter:none}}

/* Fine circuit pattern, kept away from the button label */
.button::after,header nav a:last-child::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22104%22%20height%3D%2264%22%20viewBox%3D%220%200%20104%2064%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%232384cd%22%20stroke-width%3D%221%22%3E%3Cpath%20d%3D%22M0%2010h23l11%2011h23M0%2035h17l12%2012h38M104%2010H86L73%2023H61M104%2051H87L76%2040H57M8%2064V55L0%2047%22/%3E%3Ccircle%20cx%3D%2259%22%20cy%3D%2221%22%20r%3D%222.5%22/%3E%3Ccircle%20cx%3D%2269%22%20cy%3D%2247%22%20r%3D%222.5%22/%3E%3Ccircle%20cx%3D%2259%22%20cy%3D%2223%22%20r%3D%222.5%22/%3E%3Ccircle%20cx%3D%2255%22%20cy%3D%2240%22%20r%3D%222.5%22/%3E%3C/g%3E%3C/svg%3E");background-size:104px 64px;opacity:.20;mask-image:linear-gradient(90deg,#000 0%,#000 12%,transparent 36%,transparent 67%,#000 94%);-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 12%,transparent 36%,transparent 67%,#000 94%);transition:opacity .25s}
header nav a:last-child{isolation:isolate}header nav a:last-child::after,.cta .button::after,.contactphoto .button::after{filter:brightness(0) invert(1);opacity:.22}
.button:is(:hover,:focus-visible)::after{opacity:.35}header nav a:last-child:is(:hover,:focus-visible)::after,.cta .button:is(:hover,:focus-visible)::after,.contactphoto .button:is(:hover,:focus-visible)::after{opacity:.32}
@media(prefers-reduced-motion:reduce){.button::after,header nav a:last-child::after{transition:none}}

/* Larger type and a prominent mobile menu */
body{font-size:20px;line-height:1.95}.preview{font-size:14px;padding:8px 16px}.brand{font-size:27px}.brand small{font-size:11px}.eyebrow{font-size:16px}.navja{font-size:17px}.naven{font-size:15px}header{max-width:1500px;gap:25px}header nav a{padding-left:20px;padding-right:20px}header nav a:last-child{padding:15px 23px}h2,.sectionhead h2,.aboutcopy h2,.consultation h2,.contactphoto h2{font-size:36px}h3,.service h3{font-size:25px}.referencehero h1{font-size:clamp(42px,4vw,62px)}.referencehero .lead{font-size:20px}.referencehero .eyebrow{font-size:15px}.sectionhead .eyebrow,.aboutcopy .eyebrow,.consultation .eyebrow,.contactphoto .eyebrow{font-size:16px}.sectionhead>p,.service p,.aboutcopy p:not(.eyebrow),.consultation p:not(.eyebrow),.contactphoto p:not(.eyebrow),.illustratedtitle>div>p:last-child{font-size:19px;line-height:1.95}.button,.consultation .button,.contactphoto .button,.actions .button{font-size:18px;font-weight:600;min-height:58px;padding:17px 24px;gap:22px}.more,.service .more,.textlink,.mapactions .textlink,.addresslink{font-size:17px}.assetnote,.photo-label,.referencehero .photo-label,.illustratedtitle figcaption,.aboutphoto figcaption,.consultfigure figcaption,.mapnote,.consultation small,.contactphoto small{font-size:14px;line-height:1.75}.referencehero .photo-label{max-width:85%}.footerlinks{font-size:17px;flex-wrap:wrap}footer p,footer>small{font-size:15px}.prepare span{font-size:18px}.pagetitle h1{font-size:54px}.quicklinks a{font-size:22px}.quicklinks span{font-size:14px}.brandmark{width:74px;height:56px}.menu{font-weight:700;border-radius:5px}.menu span{font-size:24px;color:white}
@media(max-width:1100px){header{min-height:108px;padding:20px 5%;display:flex;justify-content:space-between;gap:12px}.brand{font-size:23px}.brandmark{width:57px;height:47px}.brand small{font-size:10px}.menu{display:flex;align-items:center;justify-content:center;gap:14px;background:var(--blue);color:white;border:2px solid var(--blue);font-size:18px;min-height:56px;padding:10px 18px;box-shadow:0 4px 12px #0755b233;flex-shrink:0;white-space:nowrap}.menu:hover,.menu[aria-expanded=true]{background:#073d81;border-color:#073d81}.menu:focus-visible{outline:3px solid #00bfe9;outline-offset:4px}header nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;padding:20px 5%;box-shadow:0 15px 25px #103e701a;max-height:calc(100dvh - 135px);overflow:auto}header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:6px}header nav a{flex-direction:row;justify-content:space-between;border:0;border-bottom:1px solid var(--line);padding:16px;min-width:0;white-space:normal}.navja{font-size:18px}.naven{font-size:15px}header nav a:last-child{margin:7px 0 0;padding:17px}header nav a[aria-current]{border-left:3px solid var(--blue)}}
@media(max-width:850px){body{font-size:18px}.preview{font-size:12px}.brand{font-size:20px;gap:6px}.brandmark{width:47px;height:42px}.brand small{font-size:8px}.menu{font-size:17px;min-height:54px;padding:9px 12px;gap:10px}h2,.sectionhead h2,.aboutcopy h2,.consultation h2,.contactphoto h2{font-size:29px}.service h3{font-size:24px}.referencehero{height:690px}.referencehero h1{font-size:clamp(31px,8.5vw,43px)}.referencehero .lead{font-size:18px}.referencehero .eyebrow{font-size:13px}.referencehero .photo-label{font-size:12px;max-width:90%;right:10px}.sectionhead>p,.service p,.aboutcopy p:not(.eyebrow),.consultation p:not(.eyebrow),.contactphoto p:not(.eyebrow),.illustratedtitle>div>p:last-child{font-size:18px}.pagetitle h1{font-size:44px}.button,.consultation .button,.contactphoto .button,.actions .button{font-size:17px;padding:16px 18px;gap:16px;max-width:100%;white-space:normal}.button>span{flex-shrink:0}.contactphoto>div{padding-left:10px;padding-right:10px}.consultation>div{padding-left:18px;padding-right:18px}.assetnote,.photo-label,.illustratedtitle figcaption,.aboutphoto figcaption,.consultfigure figcaption,.mapnote,.consultation small,.contactphoto small{font-size:13px}.footerlinks{gap:18px}.quicklinks a{font-size:21px}dl>div{grid-template-columns:80px 1fr;gap:12px}.mapactions{align-items:stretch}.accessinfo h2{font-size:30px}.center .button{min-width:0}}
@media(max-width:370px){header{padding-left:4%;padding-right:4%;gap:8px}.brand{font-size:19px}.brandmark{width:42px}.brand small{font-size:7px}.menu{font-size:16px;padding:8px 10px;gap:8px}.button,.consultation .button,.contactphoto .button{padding-left:13px;padding-right:13px;gap:12px}.button>span::before{margin-right:5px}}

/* Circuit-pattern toggle and a descending ladder menu */
.menu{position:relative;isolation:isolate;overflow:hidden}.menu::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2292%22%20height%3D%2256%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%221%22%3E%3Cpath%20d%3D%22M0%209h17l11%2011h24M92%2044H70L58%2032H40M8%2056V41L0%2033M92%208H76L66%2018%22/%3E%3Ccircle%20cx%3D%2254%22%20cy%3D%2220%22%20r%3D%222.5%22/%3E%3Ccircle%20cx%3D%2238%22%20cy%3D%2232%22%20r%3D%222.5%22/%3E%3C/g%3E%3C/svg%3E") center/92px 56px;opacity:.25}.menu span{transition:transform .3s}.menu[aria-expanded=true] span{transform:rotate(180deg)}
@media(max-width:1100px){
 header nav{padding:20px 87px 24px 5%;border-top:1px solid var(--line);border-bottom:3px solid var(--blue);background:linear-gradient(90deg,#fff 0%,#fff 80%,#eff8ff 100%);transform-origin:top right;scrollbar-width:thin}
 header nav.open{animation:ladder-panel .62s cubic-bezier(.2,.7,.2,1) both}
 header nav::before{content:'';position:absolute;right:28px;top:0;bottom:23px;width:34px;border-left:5px solid var(--blue);border-right:5px solid var(--blue);border-radius:0 0 5px 5px;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 28px,#1384cc 28px,#1384cc 33px,transparent 33px,transparent 46px);box-shadow:3px 3px 0 #bcddef;transform-origin:top;pointer-events:none}
 header nav.open::before{animation:ladder-drop .72s cubic-bezier(.2,.7,.2,1) both}
 header nav a{position:relative;min-height:65px;gap:10px;padding:16px 10px}header nav a:last-child{padding:17px 10px;margin-top:7px}.navja{font-size:18px}.naven{font-size:14px}
 header nav.open a{animation:ladder-item .38s ease-out both;animation-delay:.23s}header nav.open a:nth-child(2){animation-delay:.31s}header nav.open a:nth-child(3){animation-delay:.39s}header nav.open a:nth-child(4){animation-delay:.47s}header nav.open a:nth-child(5){animation-delay:.55s}
}
@keyframes ladder-panel{from{clip-path:inset(0 0 100% 0);opacity:.5}to{clip-path:inset(0);opacity:1}}
@keyframes ladder-drop{0%{transform:scaleY(0)}75%{transform:scaleY(1.03)}100%{transform:scaleY(1)}}
@keyframes ladder-item{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:370px){header nav{padding-right:72px}header nav::before{right:20px;width:30px}.navja{font-size:17px}.naven{font-size:13px}}
@media(prefers-reduced-motion:reduce){.menu span{transition:none}header nav.open,header nav.open::before,header nav.open a{animation:none!important}}

/* Site-wide audit fixes */
.services .service,.services .service:last-child{padding:0;border:0}.services .service>img{width:100%;height:auto;aspect-ratio:1.8;object-fit:cover}.services .service .more{margin-top:auto}.services .service p{padding-bottom:24px}.brandmark{height:56px}.companylogo img{height:auto}.illustratedtitle figure img{height:auto}.aboutphoto figure img{height:100%}.elegantphoto{height:100%}.consultfigure img{height:450px}
@media(max-width:1100px){header nav{overscroll-behavior:contain}header nav.open>a{flex-shrink:0}}
@media(max-width:850px){.services .service{padding-bottom:25px;border-bottom:1px solid var(--line)}.services .service:last-child{padding-bottom:0;border:0}.brandmark{height:42px}.elegantphoto{height:355px}.consultfigure img{height:260px}}
