@charset "UTF-8";
:root{--white:#fff;--green:#185c45;--green-dark:#173f32;--pale:#f0f5f1;--ink:#26332d;--muted:#64716a;--rule:#d6e0d9;--gutter:clamp(1.5rem,5.56vw,6rem);--font:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:3rem}
body{margin:0;color:var(--ink);background:var(--white);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:1rem;font-weight:400;line-height:1.9;overflow-wrap:break-word}
::selection{background:#d9eadc;color:var(--green-dark)}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:2px solid var(--green);outline-offset:7px;border-radius:2px}
p,h1,h2,h3{margin:0;font-weight:inherit}
svg,img{display:block;max-width:100%}
.wrap{width:min(100% - var(--gutter)*2,1440px);margin-inline:auto}
.skip-link{position:fixed;z-index:20;top:1rem;left:1rem;padding:.7rem 1rem;background:white;color:var(--green);transform:translateY(-200%);border:1px solid var(--green)}
.skip-link:focus{transform:translateY(0)}
.site-header{height:124px;display:flex;align-items:center;justify-content:space-between;gap:2rem}
.brand{width:124px;color:var(--green);padding-block:4px;flex-shrink:0}
.wordmark{width:124px;height:40px}
.header-nav{display:flex;align-items:center;gap:clamp(1.5rem,3.2vw,3.5rem);font-size:.875rem;font-weight:500;letter-spacing:.035em}
.header-nav a{min-height:44px;display:flex;align-items:center;position:relative}
.header-nav a:not(.nav-contact)::after{content:"";position:absolute;left:0;right:0;bottom:5px;height:1px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.header-nav a:hover::after{transform:scaleX(1)}
.nav-contact{gap:2rem;border-bottom:1px solid var(--green);color:var(--green)}
.contact-dot{width:6px;height:6px;border:1px solid currentColor;transform:rotate(45deg);transition:background .2s}
.nav-contact:hover .contact-dot{background:var(--green)}
.hero{position:relative;min-height:690px;display:flex;flex-direction:column;justify-content:center;padding-top:22px;padding-bottom:90px}
.hero-copy{position:relative;z-index:1;pointer-events:none}
.hero-position{font-size:.875rem;color:var(--green);letter-spacing:.13em;margin-bottom:31px;font-weight:500}
h1{font-size:clamp(3rem,4.95vw,5.25rem);line-height:1.47;font-weight:500;letter-spacing:.045em;color:var(--green-dark);font-feature-settings:"palt"}
h1 span{display:block}
.hero-description{margin-top:32px;font-size:1rem;line-height:2.1;letter-spacing:.07em}
.hero-art{position:absolute;right:-2.6%;width:51%;top:50%;transform:translateY(-54%);pointer-events:none;z-index:0}
.hero-art img{width:100%;height:auto;animation:sculpture-settle 1.65s cubic-bezier(.16,1,.3,1) both;transform-origin:50% 50%}
@keyframes sculpture-settle{from{opacity:.25;transform:translateY(24px) rotate(-7deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
.hero-bottom{position:absolute;inset:auto 0 25px;display:flex;justify-content:space-between;align-items:center;font-size:.75rem;letter-spacing:.08em;color:var(--muted)}
.scroll-cue{display:flex;align-items:center;gap:23px;min-height:44px;font-size:.875rem;color:var(--ink)}
.scroll-line{width:1px;height:36px;background:var(--rule);position:relative}
.scroll-line::after{content:"";position:absolute;left:0;top:0;height:16px;width:1px;background:var(--green);transition:transform .3s}
.scroll-cue:hover .scroll-line::after{transform:translateY(20px)}
.section{padding-block:120px}
.section-caption{display:flex;gap:14px;align-items:center;color:var(--green);font-size:.875rem;font-weight:500;letter-spacing:.06em;line-height:1.7}
.section-tick{width:17px;height:17px;border:1px solid var(--green);border-radius:50%;position:relative;flex:0 0 17px}
.section-tick::after{content:"";position:absolute;width:8px;height:8px;border:1px solid var(--green);border-radius:50%;left:3px;top:3px}
h2{font-size:clamp(1.9rem,2.9vw,2.75rem);font-weight:500;line-height:1.6;letter-spacing:.045em;font-feature-settings:"palt";color:var(--green-dark)}
.about{border-top:1px solid var(--rule);display:grid;grid-template-columns:30% 1fr;gap:2rem}
.about>.section-caption{align-self:start;padding-top:12px}
.about h2{font-size:clamp(2rem,3.35vw,3.2rem);line-height:1.6;margin-bottom:38px}
.about-text{max-width:660px;letter-spacing:.04em;line-height:2.2}
.about-text p+p{margin-top:1.4rem}
.services{background:var(--pale)}
.services-layout{display:grid;grid-template-columns:43% 1fr;gap:4rem}
.services-intro h2{margin-top:33px;margin-bottom:24px}
.services-intro>p{font-size:1rem;line-height:2;letter-spacing:.035em}
.services-emblem{width:140px;height:140px;stroke:var(--green);stroke-width:1;opacity:.55;margin-top:65px;margin-left:-12px}
.service-list{border-top:1px solid #b9cbbf}
.service-item{display:grid;grid-template-columns:44px 1fr;gap:26px;padding:34px 0 36px;border-bottom:1px solid #c7d5cc}
.service-symbol{width:42px;height:42px;stroke:var(--green);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;margin-top:4px}
.service-item h3{font-size:1.375rem;font-weight:500;letter-spacing:.04em;margin-bottom:12px;line-height:1.55;color:var(--green-dark)}
.service-item p{font-size:1rem;line-height:1.95;letter-spacing:.015em;max-width:33em}
.company{display:grid;grid-template-columns:43% 1fr;gap:4rem;padding-block:140px}
.company h2{font-size:1.8rem;margin-top:34px}
.company-details{margin:0;font-size:.9375rem;letter-spacing:.03em}
.company-details>div{display:grid;grid-template-columns:106px 1fr;gap:22px;padding:26px 0;border-bottom:1px solid var(--rule)}
.company-details>div:first-child{padding-top:0}
.company-details dt{color:var(--muted);font-size:.875rem}
.company-details dd{margin:0;line-height:2}
.postal{font-family:Arial,sans-serif;letter-spacing:.035em}
.number{font-family:Arial,sans-serif;letter-spacing:.06em}
.contact{background:var(--green);color:white;padding-block:76px 82px;position:relative}
.contact-inner{display:grid;grid-template-columns:43% 1fr;gap:4rem;align-items:end}
.contact .section-caption{color:#daeadc;margin-bottom:25px}
.contact .section-tick,.contact .section-tick::after{border-color:#c5ddcb}
.contact h2{color:white;font-size:clamp(2.4rem,4vw,3.7rem);line-height:1.5}
.contact-action{padding-bottom:7px}
.contact-action>p{font-size:.9375rem;line-height:2;letter-spacing:.04em;color:#e3eee6;margin-bottom:25px}
.email-link{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #7b9e89;padding-bottom:15px;gap:20px;max-width:540px}
.email-link span{font-family:"Helvetica Neue",Arial,sans-serif;font-size:clamp(1.65rem,3.05vw,2.85rem);font-weight:400;letter-spacing:-.025em;line-height:1.25;min-width:0;overflow-wrap:anywhere}
.email-link svg{width:30px;height:30px;stroke:currentColor;stroke-width:1.25;flex-shrink:0;transition:transform .25s}
.email-link:hover svg{transform:translateY(-3px)}
.contact a:focus-visible{outline-color:white}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:133px}
.footer-brand{font-family:"Helvetica Neue",Arial,sans-serif;font-size:2rem;letter-spacing:-.065em;font-weight:600;display:flex;align-items:center;gap:28px;color:var(--green)}
.footer-brand span{font-family:var(--font);font-size:.75rem;font-weight:400;letter-spacing:.045em;color:var(--ink)}
.site-footer small{font-family:Arial,sans-serif;font-size:.75rem;color:var(--muted);letter-spacing:.035em}
@media(min-width:1600px){.hero{min-height:760px}.hero-art{width:50%}}
@media(max-width:1100px){.site-header{height:104px}.hero{min-height:630px}h1{font-size:clamp(2.5rem,5vw,3.8rem)}.hero-art{width:52%;right:-3%}.section{padding-block:96px}.services-layout,.company,.contact-inner{grid-template-columns:39% 1fr;gap:3rem}.company h2{font-size:1.6rem}.company-details>div{grid-template-columns:82px 1fr;gap:15px}}
@media(max-width:760px){
 :root{--gutter:1.5rem}
 html{scroll-padding-top:1.5rem}
 .site-header{height:auto;min-height:94px;padding-block:24px;gap:12px 20px;flex-wrap:wrap}.brand,.wordmark{width:90px}.header-nav{gap:20px;font-size:.875rem;flex-wrap:wrap}.nav-contact{gap:12px}.header-nav>a:first-child{display:none}
 .hero{min-height:0;display:block;padding-top:35px;padding-bottom:65px}.hero-position{font-size:.875rem;margin-bottom:22px;letter-spacing:.045em}h1{font-size:clamp(2.125rem,6.85vw,3.25rem);line-height:1.57;letter-spacing:.015em}.hero-description{font-size:1rem;margin-top:22px;letter-spacing:0;line-height:2}
 .hero-art{position:relative;width:100%;max-width:450px;right:auto;top:auto;transform:none;margin:-16px auto -18px}.hero-art img{width:100%}.hero-bottom{bottom:15px}.hero-bottom>p{font-size:.75rem}.scroll-cue{font-size:.75rem;gap:13px}.scroll-line{height:26px}
 .section{padding-block:68px}.section-caption{font-size:.8125rem;gap:11px}.section-tick{width:15px;height:15px;flex-basis:15px}.section-tick::after{width:7px;height:7px;left:2.5px;top:2.5px}
 .about{display:block}.about>.section-caption{padding-top:0;margin-bottom:29px}.about h2{font-size:clamp(1.75rem,5.8vw,2.4rem);margin-bottom:25px;line-height:1.7;letter-spacing:.025em}.about-text{font-size:1rem;line-height:2.05;letter-spacing:.005em}.about-text p+p{margin-top:1.2rem}
 .services-layout,.company,.contact-inner{display:block}.services-intro h2{font-size:1.9rem;margin-top:27px;margin-bottom:18px}.services-intro>p{font-size:1rem}.services-emblem{display:none}.service-list{margin-top:39px}.service-item{grid-template-columns:34px 1fr;gap:20px;padding:28px 0}.service-symbol{width:32px;height:32px;margin-top:3px}.service-item h3{font-size:1.2rem;margin-bottom:10px}.service-item p{font-size:1rem;line-height:1.95;letter-spacing:0}
 .company h2{font-size:1.55rem;margin-top:25px}.company-details{margin-top:36px;font-size:.9375rem}.company-details>div{grid-template-columns:78px 1fr;gap:17px;padding-block:22px}.company-details dt{font-size:.8125rem}.company-details dd{line-height:1.9}.company-break{display:none}
 .contact{padding-block:55px 60px}.contact .section-caption{margin-bottom:25px}.contact h2{font-size:2.5rem;line-height:1.55}.contact-action{margin-top:32px;padding-bottom:0}.contact-action>p{font-size:.9375rem;margin-bottom:22px}.email-link{padding-bottom:17px}.email-link span{font-size:clamp(1.75rem,7vw,2.75rem)}.email-link svg{width:26px;height:26px}
 .site-footer{min-height:115px;gap:16px}.footer-brand{font-size:1.9rem;display:block;line-height:1.3}.footer-brand span{display:block;font-size:.75rem;margin-top:8px}.site-footer small{font-size:.75rem}
}
@media(max-width:359px){:root{--gutter:1.25rem}.header-nav{gap:15px;font-size:.875rem}.brand,.wordmark{width:80px}.nav-contact{gap:8px}h1{font-size:1.875rem}.hero-description{font-size:1rem}.company-details>div{grid-template-columns:1fr;gap:7px}.service-item{gap:14px;grid-template-columns:28px 1fr}.service-symbol{width:27px}.service-item h3{font-size:1.1rem}.contact h2{font-size:2.2rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.footer-brand img{width:88px;height:28px}
