@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@400;500;600;700&display=swap');

:root{--paper:#f7f7f2;--white:#fff;--ink:#203e31;--body:#33463c;--muted:#67796b;--line:#d6ddd3;--sage:#edf1e9;--deep:#1c3b2c;--serif:'Noto Serif JP',serif;--sans:'Noto Sans JP',sans}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--body);font-family:var(--sans);font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}
body,button,input,select,textarea{font-family:var(--sans)}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
button{cursor:pointer}
:focus-visible{outline:3px solid #86a48c;outline-offset:4px}
.wrap{width:min(100% - 96px,1400px);margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip-link{position:absolute;left:12px;top:-60px;z-index:20;background:var(--deep);color:#fff;padding:10px 16px}.skip-link:focus{top:12px}
.sale-hero-copy > .page-topic,.management-hero-copy > .page-topic{font-family:var(--sans);font-size:13px;line-height:1.6;font-weight:700;letter-spacing:.08em;color:var(--deep);margin:0 0 12px}
.site-header{position:relative;z-index:5;background:var(--paper)}
.header-inner{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:40px}
.wordmark,.footer-brand{font-family:var(--serif);font-weight:700;color:var(--deep);letter-spacing:.02em}
.wordmark{font-size:clamp(24px,2.4vw,36px);white-space:nowrap;line-height:1.2}
.site-nav{display:flex;align-items:center;gap:clamp(22px,3vw,50px);font-weight:500;font-size:15px}
.site-nav>a:not(.nav-contact),.site-footer nav a{transition:opacity .2s}
.site-nav>a:hover,.site-footer nav a:hover{opacity:.64}
.nav-contact{background:var(--deep);color:#fff;padding:16px 25px;border-radius:6px;white-space:nowrap}
.nav-contact span{margin-left:14px}.menu-toggle{display:none}
.hero{overflow:hidden}.hero-inner{display:grid;grid-template-columns:minmax(0,.93fr) minmax(0,1.07fr);align-items:center;min-height:650px;gap:clamp(32px,4vw,70px);padding-block:8px 52px}
.hero-copy{padding-block:60px}.hero h1{font-family:var(--serif);font-size:clamp(40px,4.15vw,64px);line-height:1.45;letter-spacing:-.08em;color:var(--deep);font-weight:600;margin:0 0 28px}
.hero-copy p{font-family:var(--serif);font-size:clamp(15px,1.4vw,19px);line-height:2.1;margin:0 0 38px;color:#394b40}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}.button{min-height:58px;padding:14px 27px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;gap:30px;font-size:15px;font-weight:600;line-height:1.5;border:1px solid var(--deep);transition:background .2s,color .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--deep);color:#fff}.button-primary:hover{background:#315d43}.button-outline{background:transparent;color:var(--deep)}.button-outline:hover{background:var(--sage)}
.hero-image-frame{height:600px;border-radius:10px;overflow:hidden}.hero-image-frame img{object-position:52% center}
.section-pad{padding-block:110px}.services{background:#f1f3ed}.section-heading{display:flex;align-items:baseline;gap:32px;margin-bottom:55px}.section-heading h2,.about h2,.company h2{font-family:var(--serif);font-size:clamp(34px,3.3vw,52px);line-height:1.35;color:var(--deep);font-weight:600;margin:0;white-space:nowrap}.section-heading::after{content:'';height:1px;background:#91a498;flex:1}.section-heading p{order:2;font-family:var(--serif);font-size:13px;letter-spacing:.1em;white-space:nowrap;margin:0;color:var(--deep)}
.service-row{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(48px,7vw,110px);padding-block:28px 42px;border-bottom:1px solid var(--line)}.service-row+.service-row{padding-top:42px}.service-row:last-child{border-bottom:0;padding-bottom:0}.service-row-reverse .service-photo{order:2}.service-row-reverse .service-copy{order:1}.service-photo{height:350px;overflow:hidden}.service-photo img{transition:transform .6s}.service-row:hover img{transform:scale(1.025)}.service-copy{max-width:470px}.service-number{display:block;color:#8a9e8b;font-size:13px;letter-spacing:.22em;margin-bottom:13px}.service-copy h3{font-family:var(--serif);font-weight:600;color:var(--deep);font-size:clamp(30px,3vw,45px);line-height:1.4;margin:0 0 20px}.service-copy p{font-size:16px;line-height:2.1;margin:0 0 25px}.text-link{display:inline-flex;align-items:center;gap:24px;background:var(--deep);color:#fff;padding:12px 25px;border-radius:100px;font-family:var(--serif);font-size:14px;transition:background .2s,transform .2s}.text-link:hover{background:#315d43;transform:translateY(-2px)}
.about{background:var(--paper)}.about-grid{display:grid;grid-template-columns:.82fr 1.18fr;align-items:center;gap:8vw}.about-copy{max-width:520px}.about h2{margin-bottom:42px}.about-lead{font-family:var(--serif);font-size:clamp(25px,2.45vw,37px);line-height:1.6;color:var(--deep);margin:0 0 26px}.about-copy>p:last-child{line-height:2.2;margin:0}.about-photo{height:500px;overflow:hidden}.about-photo img{object-position:42% center}
.company{background:#e9efe9}.company-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw}.company-intro{font-family:var(--serif);font-size:18px;max-width:340px;line-height:2;margin-top:28px}.company-details{margin:0}.company-details>div{display:grid;grid-template-columns:190px 1fr;gap:25px;border-bottom:1px solid #c5d1c7;padding:21px 0}.company-details>div:first-child{border-top:1px solid #c5d1c7}.company-details dt{color:var(--muted);font-size:14px}.company-details dd{margin:0;color:var(--deep);font-size:15px;overflow-wrap:anywhere}.company-details dd a{text-decoration:underline;text-decoration-color:#a9bead;text-underline-offset:4px}.company-business{list-style:none;margin:0;padding:0}.company-business li+li{margin-top:5px}.company-business li::before{content:'・'}
.contact{background:var(--paper)}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:10vw}.contact h2{font-family:var(--serif);font-size:clamp(33px,3.3vw,50px);line-height:1.55;font-weight:600;color:var(--deep);margin:0 0 25px}.contact-intro>p{max-width:450px;line-height:2}.contact-intro p a{text-decoration:underline;text-underline-offset:4px}.phone-link{display:inline-block;margin-top:32px;font-size:30px;letter-spacing:.02em;color:var(--deep);font-weight:600}.hours{font-size:14px;color:var(--muted);margin-top:2px}.contact-form{background:#fff;padding:40px;box-shadow:0 18px 50px rgba(20,50,29,.07);display:grid;gap:10px}.form-note{font-size:13px;color:#776349;margin:0 0 18px}.contact-form label{font-size:14px;font-weight:600;color:var(--deep);margin-top:10px}.contact-form label span{font-size:11px;color:#fff;background:#7c8d79;padding:2px 6px;margin-left:8px;border-radius:2px}.contact-form :is(input,select,textarea){width:100%;border:1px solid #cad5cb;background:#fbfcfa;border-radius:3px;padding:14px;font-size:15px;color:var(--deep);min-height:52px}.contact-form textarea{resize:vertical;min-height:145px}.form-submit{margin-top:16px;width:100%}.form-result{background:#ecf2ec;color:var(--deep);padding:18px;font-size:14px;white-space:pre-line}
.site-footer{background:#183a2b;color:#eef4ec;padding-top:50px}.footer-inner{display:flex;justify-content:space-between;gap:32px;align-items:start;padding-bottom:50px}.footer-brand{color:#fff;font-size:23px;margin:0 0 12px}.footer-address{font-size:13px;color:#c7d6ca;margin:0}.site-footer nav{display:flex;gap:30px;flex-wrap:wrap;font-size:13px}.footer-bottom{border-top:1px solid #496459;display:flex;justify-content:space-between;gap:20px;padding-block:19px;color:#b6c8ba;font-size:12px}
@media(max-width:1080px){.wrap{width:min(100% - 64px,1400px)}.header-inner{min-height:82px}.site-nav{gap:20px;font-size:13px}.nav-contact{padding:12px 16px}.hero-inner{min-height:550px}.hero-image-frame{height:500px}.hero h1{font-size:clamp(38px,4.5vw,55px)}.hero-actions{gap:10px}.button{padding-inline:18px;gap:15px}.service-photo{height:300px}}
@media(max-width:760px){.wrap{width:min(100% - 40px,600px)}.header-inner{min-height:72px}.wordmark{font-size:23px}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:7px;width:42px;height:42px;border:0;background:none;padding:6px}.menu-toggle span{display:block;height:2px;background:var(--deep);width:100%;transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}.site-nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--paper);padding:20px;box-shadow:0 12px 18px rgba(20,50,29,.08);flex-direction:column;align-items:stretch;gap:0;font-size:16px}.site-nav.is-open{display:flex}.site-nav>a{padding:13px 10px}.site-nav .nav-contact{text-align:center;margin-top:10px}.hero-inner{display:flex;flex-direction:column;align-items:stretch;gap:30px;padding-block:48px 65px}.hero-copy{padding:0}.hero h1{font-size:clamp(36px,8vw,56px);line-height:1.5;white-space:normal;margin-bottom:20px}.hero-copy p{font-size:15px;margin-bottom:28px}.desktop-break{display:none}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .button{width:100%}.hero-image-frame{height:clamp(260px,74vw,430px);border-radius:6px}.section-pad{padding-block:70px}.section-heading{display:block;margin-bottom:30px}.section-heading h2,.about h2,.company h2{font-size:36px}.section-heading::after{display:none}.section-heading p{margin-top:8px;font-size:13px}.service-row,.service-row-reverse{display:flex;flex-direction:column;align-items:stretch;gap:25px;padding-block:0 46px}.service-row+.service-row{padding-top:45px}.service-row-reverse .service-photo,.service-row-reverse .service-copy{order:initial}.service-photo{height:clamp(230px,58vw,350px)}.service-copy{max-width:none}.service-copy h3{font-size:33px;margin-bottom:12px}.service-copy p{font-size:15px;margin-bottom:20px}.about-grid,.company-grid,.contact-grid{display:flex;flex-direction:column;gap:35px}.about h2{margin-bottom:22px}.about-photo{height:320px}.company-intro{margin-bottom:0}.company-details>div{grid-template-columns:120px 1fr;gap:14px}.contact h2{font-size:35px}.contact-form{padding:24px}.footer-inner,.footer-bottom{flex-direction:column}.site-footer nav{gap:10px 25px}.footer-bottom{gap:4px}.phone-link{margin-top:16px}}
@media(max-width:380px){.wrap{width:min(100% - 32px,600px)}.hero h1{font-size:34px}.company-details>div{grid-template-columns:1fr;gap:3px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

.contact-form .form-trap{position:absolute;left:-10000px;width:1px;height:1px;min-height:0;padding:0;border:0}.form-submit:disabled{opacity:.6;cursor:wait}.form-result.is-error{background:#faebeb;color:#8b3030}
