@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@500;600;700&family=Playfair+Display:wght@500;600&display=swap');
:root{--ink:#142d2d;--charcoal:#263333;--paper:#faf8f1;--sand:#eee9da;--sage:#aab9aa;--gold:#a28a58;--line:#d9d7cd;--serif:'Noto Serif JP',serif;--sans:'Hiragino Sans','Hiragino Kaku Gothic ProN','Yu Gothic',YuGothic,Meiryo,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--charcoal);font-family:var(--sans);font-size:15px;line-height:2;letter-spacing:.035em}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:.07em;line-height:1.55}
.accent{color:#a95e4e;font-style:normal}
.accent-light{color:#edc1b2;font-style:normal}
.site-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,5vw,78px);border-bottom:1px solid rgba(20,45,45,.12);position:relative;background:rgba(250,248,241,.96);z-index:4}
.brand{font-family:'Playfair Display',serif;font-size:19px;letter-spacing:.1em;line-height:1;color:var(--ink)}
.brand span{display:block;font-family:var(--sans);font-size:8px;letter-spacing:.24em;margin-top:6px}
.nav{display:flex;align-items:center;gap:25px;font-size:12px}
.nav a{padding:8px 0}
.nav a.active{color:var(--gold)}
.nav-consultations{display:flex;gap:8px;align-items:center}
.nav-cta{border:1px solid var(--ink);padding:10px 13px!important;white-space:nowrap}
.nav-cta.secondary{background:var(--ink);color:#fff}
.menu{display:none;border:0;background:none;font-size:28px;color:var(--ink)}
.eyebrow{font-family:'Playfair Display',serif;color:var(--gold);letter-spacing:.18em;font-size:11px;line-height:1.4}
.hero{height:min(820px,calc(100vh - 78px));min-height:640px;display:grid;grid-template-columns:1.06fr .94fr;overflow:hidden}
.hero-copy{padding:clamp(48px,6vw,84px) clamp(28px,8vw,145px) clamp(64px,8vw,100px);align-self:start}
.hero h1{font-size:clamp(33px,3.5vw,46px);letter-spacing:.025em;color:var(--ink);margin:25px 0}
.hero-text{max-width:540px;margin-bottom:38px}
.hero-image{background:#e9eee7;min-height:520px;overflow:hidden}
.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 53%;mix-blend-mode:multiply}
.button-row{display:flex;gap:12px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:15px 21px;border:1px solid var(--ink);font-size:13px;transition:.2s}
.button.primary{background:var(--ink);color:#fff}
.button:hover{transform:translateY(-2px)}
.button:disabled{opacity:.7}
.button.outline{color:var(--ink)}
.intro{max-width:850px;margin:0 auto;padding:clamp(72px,7vw,105px) 28px;text-align:center}
.intro h2{font-size:clamp(28px,3vw,43px);color:var(--ink);margin:20px 0 28px}
.intro>p:last-child{max-width:660px;margin:auto;text-align:left}
.surface{background:var(--sand);padding:clamp(76px,9vw,130px) clamp(24px,8vw,130px)}
.section-title{max-width:710px;margin-bottom:55px}
.section-title h2{font-size:clamp(29px,3.2vw,43px);color:var(--ink);margin:18px 0}
.service-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);margin-bottom:33px}
.service-card{min-height:286px;padding:25px 17px;border-right:1px solid var(--line)}
.service-card:last-child{border:none}
.service-card span,.service-detail>span{font-family:'Playfair Display',serif;color:var(--gold);font-size:13px}
.service-mark{height:30px;margin:18px 0 20px;position:relative;overflow:hidden;border:1px solid rgba(20,45,45,.12)}
.service-mark span,.service-mark i{position:absolute;display:block;box-sizing:border-box}
.service-mark.clear{background:linear-gradient(90deg,#d9ebee,#f6f5eb)}
.service-mark.clear span{width:22px;height:22px;border:1px solid rgba(50,106,119,.55);border-radius:50%;left:calc(50% - 11px);top:3px}
.service-mark.clear i{width:42px;height:42px;border:1px solid rgba(50,106,119,.24);border-radius:50%;left:calc(50% - 21px);top:-7px}
.service-mark.source{background:linear-gradient(90deg,#d6d4bb,#e8eadc)}
.service-mark.source span{width:1px;height:22px;background:#63785c;left:50%;top:7px}
.service-mark.source i{width:12px;height:8px;border:1px solid #63785c;border-radius:12px 0 12px 0;left:calc(50% + 1px);top:7px;transform:rotate(-25deg)}
.service-mark.alive{background:linear-gradient(90deg,#dfe7ca,#edf0dd)}
.service-mark.alive span{width:45px;height:14px;border-top:1px solid #7e966c;border-radius:50%;left:calc(50% - 25px);top:9px;transform:rotate(-7deg)}
.service-mark.alive i{width:28px;height:12px;border-top:1px solid rgba(126,150,108,.7);border-radius:50%;left:calc(50% - 2px);top:13px;transform:rotate(-7deg)}
.service-mark.alive-pro{background:linear-gradient(90deg,#303839,#566062)}
.service-mark.alive-pro span{width:1px;height:48px;background:#c0a062;left:50%;top:-9px;transform:rotate(36deg)}
.service-mark.alive-pro i{width:1px;height:48px;background:rgba(255,255,255,.22);left:calc(50% + 7px);top:-9px;transform:rotate(36deg)}
.service-mark.soul{background:#1c3032;background-image:linear-gradient(rgba(220,199,143,.34) 1px,transparent 1px),linear-gradient(90deg,rgba(220,199,143,.34) 1px,transparent 1px);background-size:12px 12px}
.service-mark.soul span{width:34px;height:20px;border:1px solid rgba(220,199,143,.8);left:calc(50% - 17px);top:4px}
.service-mark.soul i{width:1px;height:20px;background:rgba(220,199,143,.8);left:50%;top:4px}
.service-card h3{color:var(--ink);font-size:19px;min-height:32px;margin:0 0 13px}
.service-card p{font-size:12px;line-height:1.9}
.text-link{display:inline-flex;gap:18px;font-size:13px;padding-bottom:5px;border-bottom:1px solid var(--gold)}
.text-link span{color:var(--gold)}
.corporate-band{background:var(--ink);color:#f9f7ee;padding:clamp(80px,9vw,135px);display:grid;grid-template-columns:1.25fr .75fr;gap:50px}
.corporate-band h2{font-size:clamp(28px,3.2vw,45px);margin:16px 0}
.corporate-band>p{align-self:center}
.light{color:#fff;grid-column:2;justify-self:start}
.voices{padding:clamp(80px,10vw,140px) clamp(24px,8vw,130px)}
.voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.voice-grid figure{margin:0;padding:30px;background:#fff;min-height:200px;display:flex;flex-direction:column;justify-content:space-between}
.voice-grid blockquote{font-family:var(--serif);font-size:16px;line-height:2;margin:0}
.voice-grid figcaption{font-size:12px;color:var(--gold);margin-top:18px}
.story{border-left:3px solid var(--gold);max-width:850px;margin:70px auto 22px;padding:20px 35px}
.story h3{font-size:23px;color:var(--ink);margin:12px 0}
.notice{font-size:11px;color:#697171;line-height:1.8}
.profile-teaser{display:grid;grid-template-columns:.85fr 1.15fr;min-height:570px;background:#e5ebe1}
.profile-photo{overflow:hidden;background:#e9eee7}
.profile-photo img{width:100%;height:100%;object-fit:cover;object-position:center 55%;mix-blend-mode:multiply}
.profile-teaser>div:last-child{align-self:center;padding:70px clamp(32px,10vw,150px)}
.profile-teaser h2{font-size:38px;color:var(--ink);margin:15px 0 0}
.role{font-size:13px;color:var(--gold);margin-bottom:35px}
.cta{background:#35514d;color:#fff;padding:clamp(65px,8vw,110px) clamp(24px,8vw,130px);display:flex;justify-content:space-between;gap:40px;align-items:end}
.cta h2{font-size:clamp(27px,3vw,42px);margin:15px 0}
.cta .eyebrow{color:#d4c295}
.cta>div:first-child{max-width:600px}
.cta-links{display:flex;flex-direction:column;gap:12px;min-width:265px}
.cta-links a{border-bottom:1px solid rgba(255,255,255,.5);padding:11px 0;display:flex;justify-content:space-between;font-size:13px}
.page-hero{padding:clamp(90px,12vw,165px) max(24px,14vw);background:#f0eee6}
.page-hero h1,.profile-page-hero h1,.form-intro h1,.thank-you h1,.policy h1{font-size:clamp(35px,4.4vw,62px);color:var(--ink);margin:20px 0}
.page-hero>p:last-child{max-width:650px}
.page-hero.dark{background:var(--ink);color:#fff}
.page-hero.dark h1{color:#fff}
.service-list{padding:40px clamp(24px,10vw,150px) 100px}
.service-detail{border-bottom:1px solid var(--line);padding:54px 0;display:grid;grid-template-columns:70px 1.1fr 1.1fr;gap:25px}
.service-detail h2{color:var(--ink);font-size:29px;margin:9px 0}
.service-identity .service-mark{margin:0 0 18px}
.format{font-size:11px;color:var(--gold)}
.service-lead{font-family:var(--serif);font-size:16px;line-height:2}
.service-detail dl{margin:0}
.service-detail dl div+div{margin-top:20px}
.service-detail dt{font-size:11px;color:var(--gold);margin-bottom:4px}
.service-detail dd{margin:0;font-size:13px;line-height:2}
.testimonials h3{font-size:27px;color:var(--ink);border-bottom:1px solid var(--gold);padding-bottom:12px}
.testimonial-group{margin:65px 0}
.quote-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 50px}
.quote-list article{padding:22px 0;border-bottom:1px solid var(--line)}
.quote-list article p{font-family:var(--serif);font-size:15px;line-height:2}
.quote-list span{font-size:11px;color:var(--gold)}
.case-list{max-width:800px}
.case-list article{background:#fff;padding:28px;margin:14px 0}
.case-list h4{font-family:var(--serif);font-size:18px;margin:0 0 12px}
.case-list p{font-size:13px;margin:0}
.content-section{padding:clamp(75px,10vw,130px) clamp(24px,13vw,200px)}
.support{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}
.number-list{border-top:1px solid var(--line)}
.number-list p{border-bottom:1px solid var(--line);padding:17px 0;margin:0;font-family:var(--serif);font-size:17px}
.number-list span{font-family:'Playfair Display',serif;color:var(--gold);font-size:12px;margin-right:25px}
.flow ol{padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:24px 10px;counter-reset:flow}
.flow li{counter-increment:flow;font-family:var(--serif);font-size:13px;line-height:1.7;text-align:center}
.flow li span{display:block;white-space:nowrap}
.flow li:before{content:'0' counter(flow);display:block;color:var(--gold);font-family:'Playfair Display',serif;margin-bottom:12px}
.profile-page-hero{background:#e5ebe1;display:grid;grid-template-columns:1fr .65fr;align-items:center;min-height:620px}
.profile-page-hero>div{padding:clamp(70px,10vw,140px)}
.profile-page-hero img{width:100%;height:100%;min-height:620px;object-fit:cover;object-position:center 53%;mix-blend-mode:multiply}
.biography{display:grid;grid-template-columns:1fr 1fr;gap:100px}
.biography h2{font-size:clamp(29px,3vw,43px);color:var(--ink)}
.biography h3{font-size:19px;color:var(--ink);margin:5px 0 12px}
.biography h3:not(:first-child){margin-top:42px}
.form-page{max-width:900px;display:grid;grid-template-columns:1fr;gap:48px;padding:clamp(70px,10vw,135px) 32px;margin:auto}
.form-intro{max-width:680px}
.form-intro h1{font-size:clamp(28px,3.4vw,50px);letter-spacing:.04em;white-space:nowrap}
.form-intro dl{font-size:13px;border-top:1px solid var(--line);margin-top:40px}
.form-intro dl div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0}
.form-intro dt{color:var(--gold)}
.form-intro dd{margin:0}
form{background:#fff;padding:clamp(25px,4vw,55px)}
form>label{font-size:13px;display:block;margin-bottom:22px}
input,textarea{font:inherit;letter-spacing:inherit;width:100%;border:0;border-bottom:1px solid #aeb4ae;background:#fbfbf9;padding:12px;margin-top:5px;border-radius:0}
textarea{resize:vertical}
.privacy-check{display:flex;gap:9px;align-items:center;margin:10px 0}
.privacy-check input{width:auto;margin:0}
.privacy-check label{font-size:12px}
.privacy-check a{color:var(--gold);text-decoration:underline}
.form-note,.form-error{font-size:11px;line-height:1.8}
.form-error{color:#a22b28}
.thank-you{max-width:780px;padding:clamp(100px,14vw,190px) 28px;margin:auto;min-height:70vh}
.thank-you>p:not(.eyebrow){max-width:520px;margin-bottom:35px}
.thank-you .text-link{display:block;width:max-content;margin-top:42px}
.policy{max-width:820px;margin:auto;padding:100px 28px}
.policy h2{font-size:20px;color:var(--ink);margin-top:45px}
.policy p{font-size:14px}
.policy a{color:var(--gold);text-decoration:underline}
footer{background:#102b2c;color:#fff;padding:54px clamp(24px,5vw,78px) 25px;display:grid;grid-template-columns:1fr auto;gap:40px;font-size:12px}
footer .brand{color:#fff}
footer>div{display:flex;gap:25px}
footer small{grid-column:1/-1;color:#b8c2bd;font-size:10px;border-top:1px solid rgba(255,255,255,.2);padding-top:18px}

@media(max-width:800px){body{font-size:14px}
.site-header{height:65px;padding:0 22px}
.nav{display:none}
.menu{display:block}
.nav.open{display:flex;position:absolute;top:64px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:20px 22px;flex-direction:column;align-items:flex-start;gap:12px}
.nav.open .nav-consultations{margin-top:4px}
.hero{height:auto;min-height:0;display:flex;flex-direction:column}
.hero-copy{padding:75px 28px 60px}
.hero-image{height:470px;min-height:0}
.service-grid{grid-template-columns:1fr}
.service-card{min-height:0;border-right:0;border-bottom:1px solid var(--line);padding:24px 0}
.service-mark{max-width:480px;margin:16px 0 20px}
.service-card h3{min-height:0;margin:0 0 13px}
.corporate-band,.profile-teaser,.profile-page-hero,.form-page{grid-template-columns:1fr;display:grid}
.corporate-band{padding:75px 28px;gap:22px}
.light{grid-column:auto}
.voice-grid,.quote-list{grid-template-columns:1fr}
.voice-grid figure{min-height:0}
.profile-photo{height:420px}
.profile-teaser>div:last-child{padding:62px 28px}
.cta{padding:65px 28px;display:block}
.cta-links{margin-top:30px}
.page-hero{padding:85px 28px}
.service-list{padding:15px 28px 60px}
.service-detail{grid-template-columns:35px 1fr;padding:42px 0;gap:15px}
.service-detail dl{grid-column:2}
.surface{padding:70px 28px}
.support,.biography{grid-template-columns:1fr;gap:25px}
.flow ol{display:grid;grid-template-columns:repeat(2,1fr);gap:25px}
.profile-page-hero>div{padding:80px 28px 45px}
.profile-page-hero img{min-height:430px;height:430px}
.form-page{padding:70px 22px;gap:35px}
.policy{padding:75px 28px}
footer{grid-template-columns:1fr;gap:25px}
footer>div{flex-wrap:wrap}
.story{padding:18px 20px;margin-top:45px}
}
