/* Mobile-first layout. No external fonts or front-end framework required. */
:root{--navy:#142c3c;--green:#17614b;--blue:#eaf4f7;--ink:#233c49;--muted:#52646b;--line:#d8e1e3;--paper:#fff;--serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;--sans:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;--wrap:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.9 var(--sans);-webkit-font-smoothing:antialiased}h1,h2,h3,p,figure{margin:0}h1,h2,h3{color:var(--navy);font-weight:500;line-height:1.6}h1,h2{font-family:var(--serif);letter-spacing:.055em}h1{font-size:clamp(2rem,4vw,3.5rem)}h2{font-size:clamp(1.65rem,2.6vw,2.55rem);white-space:pre-line}h3{font-size:1.15rem;font-weight:600}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%;height:auto;display:block}svg{flex-shrink:0}p+ p{margin-top:1.25rem}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #1977a4;outline-offset:5px}a:hover{color:var(--green)}::selection{background:#c8e6dd;color:var(--navy)}.wrap{width:min(var(--wrap),calc(100% - 40px));margin-inline:auto}.narrow{max-width:800px}.section{padding:70px 0}.section-heading{margin-bottom:30px}.section-heading p{margin-top:16px;color:var(--muted)}.eyebrow{display:block;font-size:.75rem;font-weight:650;letter-spacing:.17em;color:var(--green);margin-bottom:13px;line-height:1.7}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:58px;padding:15px 25px;font-size:.9375rem;font-weight:600;border:1px solid transparent;transition:background .2s,color .2s}.button-green{background:var(--green);color:white}.button-green:hover{background:#104b39;color:white}.button-outline{border-color:var(--line);color:var(--navy)}.button-outline:hover{border-color:var(--green);background:var(--blue)}.text-link{display:inline-flex;gap:28px;align-items:center;font-size:.9rem;font-weight:600;min-height:44px;padding:5px 0;border-bottom:1px solid #9db1b5}.text-link span{font-size:1.35rem;font-weight:400}.screen-reader-text,.skip-link:not(:focus){position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}.skip-link:focus{position:fixed;top:10px;left:10px;z-index:1000;padding:10px 20px;background:white;outline:3px solid var(--green)}#main:focus{outline:none}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.98);border-bottom:1px solid #edf1f1}.header-inner{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px;width:min(1440px,calc(100% - 40px));margin:auto}.brand{display:inline-flex;flex-direction:column;line-height:1}.brand-name{font-family:Arial,sans-serif;font-size:2.25rem;font-weight:800;letter-spacing:.045em;color:var(--navy)}.brand-dot{color:var(--green)}.brand-sub{font-size:.625rem;letter-spacing:.19em;margin-top:8px;color:var(--muted)}.custom-logo{max-height:58px;max-width:190px;width:auto}.menu-toggle{display:none;background:none;border:0;color:var(--navy);min-height:48px;min-width:48px;padding:8px 0}.menu-label{font-size:.75rem;display:block;line-height:1.3;margin-top:6px}.menu-lines{display:block;width:24px;height:13px;border-top:1px solid;border-bottom:1px solid;margin:auto}.primary-navigation .nav-list{display:flex;flex-wrap:wrap;list-style:none;gap:5px 24px;margin:0;padding:0}.nav-list a{display:flex;min-height:44px;align-items:center;font-size:.875rem;font-weight:500}.primary-navigation .nav-list li:last-child a{background:var(--green);color:white;padding:13px 24px}.primary-navigation .nav-list li:last-child a:hover{background:#104b39}.nav-list .current-menu-item a{text-decoration:underline;text-underline-offset:6px}.hero{position:relative;display:flex;flex-direction:column;padding-top:30px;isolation:isolate}.hero-copy{padding:16px 24px 30px;position:relative;z-index:2}.hero-copy .eyebrow{font-size:.625rem;margin-bottom:20px}.hero h1{font-size:clamp(2.5rem,7vw,4.8rem);font-weight:500;line-height:1.6;letter-spacing:.045em}.hero-sub{font-size:.95rem;line-height:2;margin-top:22px}.hero-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:12px 30px;margin-top:26px}.hero-location{font-size:.75rem;display:flex;align-items:center;gap:9px;margin-top:24px}.location-dot{width:6px;height:6px;border-radius:50%;background:var(--green)}.hero-photo{position:relative;overflow:hidden;margin-left:20px}.hero-photo img{width:100%;height:340px;object-fit:cover;object-position:50% 58%}.hero-photo figcaption{position:absolute;bottom:10px;right:10px;left:10px;font-size:.6875rem;line-height:1.6;color:white;text-align:right;text-shadow:0 1px 4px #000;background:rgba(12,32,26,.68);padding:5px 9px;width:fit-content;margin-left:auto}.hero-vertical{display:none}.about-section{position:relative}.about-layout{display:grid;gap:34px}.about-copy{font-size:.95rem}.about-copy .lead{font-size:1.05rem;line-height:2}.about-copy>p+ p{margin-top:28px;color:var(--muted)}.about-sign{font-family:Georgia,serif;font-style:italic;display:block;color:var(--green);margin-top:28px;font-size:1.3rem;letter-spacing:.03em}.services-section{background:#f3f7f7}.section-top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 30px;margin-bottom:30px}.section-top .section-heading{margin-bottom:0}.section-top>p{font-size:.9375rem}.service-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line)}.service-card{background:white;padding:28px 24px;position:relative;transition:background .2s}.service-card:hover{background:#eef5f1}.service-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.service-top svg{width:34px;height:34px;color:var(--green)}.service-number{font-size:.75rem;color:var(--muted);font-family:Arial,sans-serif}.service-card h3{font-size:1.06rem}.service-card p{font-size:.875rem;color:var(--muted);margin-top:10px;padding-right:20px}.service-arrow{position:absolute;right:24px;bottom:20px;color:var(--green);font-size:1.3rem}.works-grid{display:grid;grid-template-columns:1fr;gap:38px 28px}.work-image{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--blue)}.work-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.work-card a:hover .work-image img{transform:scale(1.025)}.work-arrow{position:absolute;right:0;bottom:0;background:white;width:44px;height:44px;text-align:center;line-height:44px}.work-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:.8125rem;color:var(--green);margin:17px 0 8px}.work-meta span{border-left:1px solid var(--line);padding-left:12px}.work-card h3{font-size:1.15rem;margin-bottom:8px}.work-card p{font-size:.875rem;color:var(--muted)}.works-empty{padding:50px 25px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f9fbfb;text-align:center}.works-empty p+ p{font-size:.875rem;color:var(--muted);margin-top:6px}.works-empty .text-link{margin-top:20px}.reasons-section{background:var(--navy);color:white}.reasons-section h2,.reasons-section h3{color:white}.reasons-section .eyebrow{color:#a5d7c3}.reasons-grid{display:grid;gap:28px;grid-template-columns:1fr}.reasons-grid article{border-top:1px solid #506674;padding-top:22px}.reason-number{display:block;font:2.75rem/1.2 Georgia,serif;color:#afd8df;margin-bottom:18px}.reasons-grid h3{font-size:1.08rem;margin-bottom:12px}.reasons-grid p{font-size:.875rem;color:#d0dee3}.area-layout{display:grid;gap:20px}.area-list{padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:12px;margin:0 0 20px}.area-list li{font-size:1.25rem;border:1px solid var(--line);padding:12px 32px}.area-layout>div>p{font-size:.875rem;color:var(--muted);margin-bottom:18px}.contact-section{background:var(--blue);padding:65px 0}.contact-section .section-heading{text-align:center;margin-bottom:35px}.contact-section h2{font-size:clamp(1.45rem,2.7vw,2.6rem)}.contact-grid{display:grid;gap:14px}.contact-card{background:white;display:flex;align-items:center;text-align:center;flex-direction:column;justify-content:center;gap:10px;padding:28px 20px;border:1px solid #d6e3e5}.contact-card svg{width:30px;height:30px}.contact-label{font-size:1.1rem;font-weight:600;color:var(--navy)}.contact-card>span:last-child{font-size:.8125rem}.line-card{background:var(--green);color:white;border-color:var(--green)}.line-card:hover{background:#104b39;color:white}.line-card .contact-label{color:white}.form-card{border-color:var(--navy)}.contact-card:not(.unavailable):hover{box-shadow:0 4px 16px #142c3c12}.unavailable{color:var(--muted);background:#f6f9fa}.unavailable .contact-label{color:var(--muted)}.site-footer{padding:55px 0 calc(94px + env(safe-area-inset-bottom));background:white}.footer-grid{display:grid;gap:35px}.footer-company{font-weight:600;margin-top:24px;margin-bottom:8px}.footer-grid p,.footer-grid address{font-size:.8125rem;font-style:normal}.footer-grid p+p{margin-top:3px}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:10px;font-size:.8125rem}.footer-links ul{list-style:none;padding:0;margin:0;display:grid;gap:5px 30px;grid-template-columns:1fr 1fr}.footer-links a{display:inline-flex;align-items:center;min-height:40px}.footer-bottom{border-top:1px solid var(--line);margin-top:35px;padding-top:22px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.75rem;color:var(--muted)}.mobile-cta{position:fixed;bottom:0;left:0;right:0;z-index:60;display:grid;grid-template-columns:1fr 1fr 1.3fr;background:white;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 12px #142c3c14}.mobile-cta>a,.mobile-cta>span{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:64px;font-size:.75rem;font-weight:600;gap:2px;border-top:1px solid var(--line)}.mobile-cta svg{width:21px;height:21px}.mobile-line{background:var(--green);color:white}.mobile-consult{background:var(--navy);color:white}.mobile-cta a:hover{color:white;background:#104b39}.mobile-cta>a:first-child:hover{background:var(--blue);color:var(--navy)}.mobile-cta [aria-disabled]{background:#f2f5f5;color:#52646b}
.breadcrumbs{display:flex;gap:12px;flex-wrap:wrap;font-size:.75rem;line-height:1.7;color:var(--muted);padding-top:25px}.breadcrumbs a{text-decoration:underline;text-underline-offset:3px}.page-heading{padding-top:45px;padding-bottom:40px}.page-heading p{margin-top:20px}.page-content{padding-bottom:35px}.page-content:empty{padding:0}.prose{max-width:800px;overflow-wrap:anywhere}.prose p{margin-bottom:1.4em}.prose h2{font-size:1.8rem;margin:1.6em 0 .8em}.prose h3{margin:1.8em 0 .6em}.prose a:not(.button){text-decoration:underline;text-underline-offset:4px}.prose ul,.prose ol{padding-left:1.5em}.prose .wp-block-gallery{margin:30px 0}.prose .wp-block-image{margin:30px 0}.prose figcaption{font-size:.875rem;color:var(--muted)}.prose .alignwide{max-width:100%}.prose table{border-collapse:collapse;width:100%}.prose td,.prose th{border:1px solid var(--line);padding:10px}.service-details{padding-bottom:60px}.service-details article{display:grid;grid-template-columns:50px 1fr;gap:20px;padding:36px 0;border-top:1px solid var(--line);scroll-margin-top:100px}.service-details h2{font-size:1.55rem;margin-bottom:15px}.service-details .text-link{margin-top:16px}.detail-icon{background:var(--blue);width:50px;height:60px;display:grid;place-items:center}.detail-icon svg{width:30px;height:30px;color:var(--green)}.company-table{margin:0 0 30px}.company-table>div{display:grid;gap:6px;padding:22px 0;border-bottom:1px solid var(--line)}.company-table dt{font-weight:600}.company-table dd{margin:0}.company-table+ a{margin-bottom:60px}.archive-body{padding-bottom:75px}.work-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:35px}.work-filters a{font-size:.875rem;border:1px solid var(--line);padding:10px 18px}.work-filters [aria-current]{background:var(--navy);border-color:var(--navy);color:white}.pagination{margin-top:45px}.nav-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.page-numbers{display:inline-grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--line);padding:5px 10px}.page-numbers.current{background:var(--navy);color:white}.work-cover img{width:100%;max-height:780px;object-fit:cover}.work-content{padding-top:45px;padding-bottom:25px}.lead{font-size:1.15rem}.back-link{padding-bottom:65px}.notice-box{padding:25px;background:#f3f7f7;border-left:3px solid var(--green);margin-top:25px;font-size:.95rem}#contact-form>p{margin-top:16px;margin-bottom:28px}.wpcf7 form>p{margin-top:22px}.wpcf7 label{display:block;font-size:.9375rem;font-weight:500}.wpcf7 input:not([type=checkbox]):not([type=radio]):not([type=submit]),.wpcf7 textarea,.wpcf7 select{width:100%;border:1px solid #9eaeb3;background:white;border-radius:0;padding:12px 14px;margin-top:8px;color:var(--navy);font-size:1rem}.wpcf7 textarea{min-height:190px;resize:vertical}.wpcf7 input[type=checkbox]{width:20px;height:20px;vertical-align:middle;accent-color:var(--green)}.wpcf7 .wpcf7-list-item{margin:0}.wpcf7 input[type=submit]{background:var(--green);color:white;border:0;padding:18px 30px;min-height:58px;cursor:pointer}.wpcf7 input[type=submit]:disabled{opacity:.55;cursor:not-allowed}.wpcf7 a{text-decoration:underline}.wpcf7-not-valid-tip{font-size:.875rem}.required{font-size:.75rem;color:#8b2525;margin-left:8px}.admin-bar .site-header{top:32px}
@media(min-width:480px){.service-grid{grid-template-columns:repeat(2,1fr)}.service-card{padding:25px 20px}.hero-photo img{height:420px}.contact-grid{grid-template-columns:1fr}.reasons-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:761px){.wrap{width:min(var(--wrap),calc(100% - 80px))}.section{padding:100px 0}.header-inner{min-height:100px;width:calc(100% - 70px)}.hero{min-height:680px;display:grid;grid-template-columns:43% 57%;padding:0 0 30px}.hero-copy{padding:98px 0 80px max(40px,calc((100vw - 1240px)/2));align-self:center}.hero-copy .eyebrow{white-space:nowrap;margin-bottom:30px}.hero h1{font-size:clamp(2.7rem,4.5vw,4.6rem);white-space:nowrap}.hero-sub{margin-top:26px;font-size:1rem}.hero-buttons{flex-direction:column;align-items:flex-start;gap:12px}.hero-location{margin-top:30px}.hero-photo{margin:0 28px 0 -55px;z-index:-1;align-self:stretch}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.55),transparent 28%);pointer-events:none}.hero-photo img{height:100%;min-height:650px;object-fit:cover;object-position:56% 50%}.hero-photo figcaption{z-index:1}.hero-vertical{display:block;position:absolute;right:5px;top:60px;writing-mode:vertical-rl;font-size:.625rem;letter-spacing:.15em;color:var(--muted)}.about-layout{grid-template-columns:1fr 1.05fr;gap:70px}.about-copy{padding-top:32px}.about-copy .lead{font-size:1.15rem}.service-grid{grid-template-columns:repeat(4,1fr)}.service-card{padding:30px 23px;min-height:245px}.service-card:last-child{grid-column:span 2}.works-grid{grid-template-columns:repeat(3,1fr)}.area-layout{grid-template-columns:1fr 1fr;gap:60px}.contact-grid{grid-template-columns:repeat(3,1fr)}.contact-section{padding:80px 0}.footer-grid{grid-template-columns:1.2fr 1fr;gap:70px}.site-footer{padding:65px 0 28px}.mobile-cta{display:none}.company-table>div{grid-template-columns:150px 1fr;gap:30px}.service-details article{grid-template-columns:100px 1fr;gap:45px;padding:45px 0}.detail-icon{width:100px;height:100px}.detail-icon svg{width:46px;height:46px}.page-heading{padding-top:65px;padding-bottom:55px}}
@media(min-width:1100px){.reasons-grid{grid-template-columns:repeat(4,1fr);gap:32px}.hero-buttons{flex-direction:row;align-items:center;gap:18px}.hero .button{padding-inline:24px}.hero-buttons .text-link{gap:12px}.hero-copy .eyebrow{font-size:.6875rem}.hero-location{margin-top:44px}.hero-photo{margin-left:-75px}.about-layout{gap:120px}}
@media(max-width:1050px){.header-inner{flex-wrap:wrap}.primary-navigation{width:100%;padding-bottom:16px}.primary-navigation .nav-list{justify-content:center}.js .menu-toggle{display:block}.js .primary-navigation{display:none;position:absolute;top:100%;left:0;right:0;width:100%;padding:16px 24px 26px;background:white;border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-height:calc(100dvh - 165px);overflow-y:auto}.js .primary-navigation.is-open{display:block}.js .primary-navigation .nav-list{display:flex;flex-direction:column;gap:0}.js .primary-navigation a{padding:14px 4px;min-height:52px}.js .primary-navigation li+li{border-top:1px solid var(--line)}.js .primary-navigation .nav-list li:last-child a{margin-top:8px;justify-content:center}.menu-toggle[aria-expanded=true] .menu-lines{height:0;transform:rotate(-20deg);border-bottom:0}}
@media(max-width:782px){.admin-bar .site-header{top:46px}}@media(max-width:600px){.admin-bar .site-header{top:0}.hero-buttons .button{width:100%}.hero-copy .eyebrow{letter-spacing:.12em}.footer-links ul{grid-template-columns:1fr 1fr}.hero h1{font-size:clamp(2rem,9vw,3.2rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.site-header,.mobile-cta,.contact-section,.menu-toggle{display:none}.site-footer{padding:20px 0}.section{padding:25px 0}.hero{min-height:0}.hero-copy{padding:20px}.hero-photo img{min-height:0;height:350px}a{color:black}.wrap{width:100%}}

/* Editable copy can grow: never force it outside its container. */
.hero-copy h1{white-space:normal;overflow-wrap:anywhere}.hero-copy .eyebrow{white-space:normal}.service-card h3,.work-card h3,.contact-label,.brand-name{overflow-wrap:anywhere}.service-card .wp-block-image{margin:0 0 16px}.service-card .wp-block-image img{width:100%;aspect-ratio:4/3;object-fit:cover}.area-list li{list-style:none}.contact-card>span{display:block}
