:root{
  --bg:#f4f5f3;--panel:#fbfbf9;--ink:#13191f;--muted:#596771;
  --line:#cfd5d8;--line-strong:#98a4ab;--accent:#234c68;--soft:#dce6ec;
  --max:1240px;--shadow:0 12px 36px rgba(15,24,32,.055)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;font-size:17px;line-height:1.9;letter-spacing:.01em}a,button,input,textarea{font:inherit;color:inherit}a{text-decoration:none}img{display:block;max-width:100%}.skip{position:absolute;top:-100px;left:12px;background:#111;color:#fff;padding:8px 12px;z-index:100}.skip:focus{top:12px}.wrap,.header-inner{width:min(calc(100% - 56px),var(--max));margin:auto}
.site-header{position:sticky;top:0;z-index:40;height:78px;background:rgba(244,245,243,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(19,25,31,.09)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px}.brand-logo{display:block;flex:0 0 32px;width:32px!important;height:32px!important;min-width:32px;max-width:32px!important;object-fit:contain;border:0;opacity:.78;filter:saturate(.70);transition:opacity .2s ease,filter .2s ease}.brand:hover .brand-logo{opacity:.96;filter:saturate(.92)}.brand strong{display:block;font:600 15px Arial;letter-spacing:.18em}.brand small{display:block;margin-top:5px;font:11px Arial;letter-spacing:.16em;color:var(--muted)}.nav{display:flex;gap:26px}.nav a{position:relative;padding:4px 0;font:13px Arial;letter-spacing:.12em;text-transform:uppercase}.nav a:after{content:"";position:absolute;left:0;bottom:-8px;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:.2s}.nav a:hover:after,.nav a[aria-current=page]:after{transform:scaleX(1)}
.hero{position:relative;min-height:760px;overflow:hidden;border-bottom:1px solid var(--line)}.hero:before,.page-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(19,25,31,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(19,25,31,.035) 1px,transparent 1px);background-size:48px 48px;pointer-events:none}.hero-inner{position:relative;min-height:760px;display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:center}.eyebrow,.section-index,.kicker{margin:0;font:12px/1.4 Arial;letter-spacing:.16em;color:var(--muted);text-transform:uppercase}.hero h1,.page-hero h1,.section-head h2,.statement h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500}.hero h1{margin:28px 0 0;font-size:clamp(54px,5.3vw,78px);line-height:1.25;letter-spacing:.04em}.hero h1 span{display:block;white-space:nowrap}.hero-lead{max-width:560px;margin:34px 0 0;font-size:18px;line-height:2;color:#43515a}.hero-meta{display:flex;flex-wrap:wrap;gap:18px 25px;margin-top:34px}.hero-meta span{font:13px/1.5 Arial;letter-spacing:.07em;color:var(--muted)}.hero-visual{position:relative}.hero-frame{position:relative;border:1px solid rgba(152,164,171,.45);background:rgba(255,255,255,.35);aspect-ratio:16/10}.hero-frame img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.caption{position:absolute;right:16px;bottom:14px;font:12px Arial;letter-spacing:.1em;color:#65727b}
.section{padding:108px 0}.section-head{display:grid;grid-template-columns:220px 1fr;gap:32px;margin-bottom:64px}.section-head h2{margin:0;font-size:clamp(36px,4.2vw,56px);line-height:1.45;letter-spacing:.03em}.indent{margin-left:252px}.intro{max-width:780px;margin:0 0 54px;font-size:17px;line-height:2.15;color:#4b5962}.process{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line)}.process button{min-height:145px;padding:20px 16px;border:0;border-right:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.process button:last-child{border-right:0}.process button:hover,.process button.active{background:var(--soft)}.pno{display:block;font:12px Arial;color:#7d8990}.pen{display:block;margin-top:28px;font:600 12px Arial;letter-spacing:.1em}.pjp{display:block;margin-top:9px;font-size:15px;color:#56636c}.detail{display:grid;grid-template-columns:1fr 1.3fr;gap:52px;padding-top:34px}.detail h3{margin:12px 0 0;font-family:"Yu Mincho",serif;font-size:29px;font-weight:500}.detail p{margin:0;font-size:16px;line-height:2;color:#516069}
.statement{padding:92px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.statement .wrap{display:grid;grid-template-columns:220px 1fr;gap:32px}.statement h2{margin:0;font-size:clamp(38px,4.5vw,60px);line-height:1.6;letter-spacing:.04em}
.field-entry-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.field-entry{position:relative;min-width:0;border:1px solid var(--line);background:var(--panel);overflow:hidden}.field-entry .media{aspect-ratio:4/5;overflow:hidden;background:#eef0ef}.field-entry img{width:100%;height:100%;object-fit:cover;filter:saturate(.72);transition:transform .35s ease,filter .35s ease}.field-entry .label{padding:18px 16px 20px}.field-entry .no{display:block;font:12px Arial;color:#7c878f}.field-entry strong{display:block;margin-top:13px;font:600 17px/1.35 Arial}.field-entry small{display:block;margin-top:7px;font-size:14px;color:#5e6b74}.field-entry:hover img{transform:scale(1.025);filter:saturate(.9)}.fields-more{display:flex;justify-content:flex-end;margin-top:28px}.text-link{font:14px Arial;letter-spacing:.08em;border-bottom:1px solid var(--accent);padding-bottom:4px}
.page-hero{position:relative;border-bottom:1px solid var(--line)}.page-hero .wrap{position:relative;padding:108px 0 84px;display:grid;grid-template-columns:220px 1fr;gap:32px}.page-hero h1{margin:0;font-size:clamp(48px,5vw,72px);line-height:1.25}.page-hero p{max-width:760px;margin:20px 0 0;font-size:17px;line-height:2;color:#526069}
.service-grid{display:grid;gap:34px}.service-row{display:grid;grid-template-columns:minmax(330px,.92fr) minmax(0,1.08fr);gap:30px;align-items:center;padding:18px;border:1px solid var(--line);background:rgba(251,251,249,.72);box-shadow:var(--shadow)}.service-row:nth-child(even) .service-media{order:2}.service-row:nth-child(even) .service-copy{order:1}.service-media{min-height:330px;border:1px solid rgba(152,164,171,.35);background:#edf0ef;overflow:hidden}.service-media img{width:100%;height:100%;object-fit:cover}.service-copy{padding:8px}.service-no{font:12px Arial;letter-spacing:.1em;color:#78848c}.service-copy h3{margin:23px 0 8px;font:600 28px/1.35 Arial}.service-copy .jp{margin:0;font-size:16px;color:#606e76}.service-copy>p:not(.jp){margin:19px 0 0;font-size:16px;line-height:2;color:#49575f}.service-copy dl{margin:27px 0 0;border-top:1px solid var(--line-strong)}.service-copy dl div{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.service-copy dt{font:12px Arial;letter-spacing:.1em;color:#77838b}.service-copy dd{margin:0;font-size:15px;color:#46545c}
.about-grid{display:grid;grid-template-columns:minmax(260px,.55fr) minmax(0,1.45fr);gap:54px}.portrait{padding:18px;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow)}.portrait img{width:100%;height:auto}.profile-name{margin:0;font-family:"Yu Mincho",serif;font-size:35px;letter-spacing:.09em}.profile-en{margin:10px 0 0;font:13px Arial;letter-spacing:.15em;color:#67747d}.credentials{margin:22px 0 0;font-size:16px;color:#526069}.about-copy p{margin:0 0 20px;font-size:16px;line-height:2.15;color:#47545c}.fact-list{margin-top:28px;border-top:1px solid var(--line-strong)}.fact-list div{display:grid;grid-template-columns:150px 1fr;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}.fact-list dt{font:12px Arial;letter-spacing:.1em;color:#76828a}.fact-list dd{margin:0;font-size:15px}
.contact-strip{padding-top:0}.contact-card{display:flex;justify-content:flex-end;align-items:center;padding:26px 0;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line)}.contact-card .small{margin:0;font:12px Arial;letter-spacing:.13em;color:#76828a}.contact-card h3{margin:8px 0 0;font-family:"Yu Mincho",serif;font-size:28px;font-weight:500}.contact-button{display:inline-flex;align-items:center;justify-content:center;width:132px;min-height:38px;padding:0 14px;border:1px solid var(--ink);font-size:13px;letter-spacing:.06em;background:transparent}.contact-button:hover{background:var(--ink);color:#fff}
.contact-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:70px;align-items:start}.contact-intro h2{margin:0;font-family:"Yu Mincho",serif;font-size:38px;font-weight:500}.contact-intro p{font-size:16px;color:#526069}.form-panel{padding:30px;border:1px solid var(--line);background:rgba(251,251,249,.78);box-shadow:var(--shadow)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{margin-bottom:19px}.field label{display:block;margin-bottom:7px;font-size:15px}.required{font-size:12px;color:#7d4e4e;margin-left:6px}.field input,.field textarea{width:100%;border:1px solid #aeb8bd;background:#fff;padding:12px 13px;font-size:16px;outline:none}.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(35,76,104,.12)}.field textarea{min-height:210px;resize:vertical}.hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.form-note{font-size:13px;color:#617079}.submit{min-width:170px;min-height:50px;border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer}.submit:hover{background:var(--accent);border-color:var(--accent)}.notice{margin-bottom:24px;padding:14px 16px;border-left:3px solid var(--accent);background:var(--soft);font-size:15px}.error-list{margin:0 0 24px;padding:14px 18px 14px 36px;border-left:3px solid #8a4c4c;background:#f1e5e5;font-size:15px}
.site-footer{min-height:88px;border-top:1px solid var(--line);background:#eceeeb}.site-footer .wrap{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px;font:12px Arial;letter-spacing:.1em;color:#6a767e}.reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}.reveal.visible{opacity:1;transform:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:1000px){.hero-inner{grid-template-columns:1fr;min-height:auto;padding:58px 0 80px}.section-head,.statement .wrap,.page-hero .wrap{grid-template-columns:170px 1fr}.indent{margin-left:202px}.process{grid-template-columns:repeat(3,1fr)}.field-entry-grid{grid-template-columns:repeat(3,1fr)}.service-row{grid-template-columns:1fr}.service-row:nth-child(even) .service-media,.service-row:nth-child(even) .service-copy{order:initial}.about-grid,.contact-layout{grid-template-columns:1fr}}
@media(max-width:720px){body{font-size:16px}.wrap,.header-inner{width:calc(100% - 32px)}.site-header{height:72px}.brand small{font-size:10px}.nav{gap:14px}.nav a{font-size:12px;letter-spacing:.06em}.hero h1{font-size:clamp(48px,14vw,64px)}.hero-lead{font-size:17px}.section{padding:82px 0}.section-head,.statement .wrap,.page-hero .wrap{grid-template-columns:1fr;gap:18px}.indent{margin-left:0}.process{grid-template-columns:1fr}.process button{min-height:84px;display:grid;grid-template-columns:45px 1fr 1fr;align-items:center;gap:8px;border-right:0;border-bottom:1px solid var(--line)}.pen,.pjp{margin-top:0}.detail{grid-template-columns:1fr;gap:22px}.field-entry-grid{grid-template-columns:1fr 1fr}.contact-card{justify-content:flex-end}.page-hero .wrap{padding:84px 0 62px}.form-row{grid-template-columns:1fr}.site-footer .wrap{flex-direction:column;align-items:flex-start;justify-content:center;padding:20px 0}}
@media(max-width:430px){.nav a:nth-child(2){display:none}.field-entry-grid{grid-template-columns:1fr}.hero h1{font-size:48px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:.001ms!important;animation-duration:.001ms!important}.reveal{opacity:1;transform:none}}

.footer-brand{display:inline-flex;align-items:center;gap:10px}.footer-brand img{display:block;flex:0 0 22px;width:22px!important;height:22px!important;min-width:22px;max-width:22px!important;object-fit:contain;opacity:.30;filter:grayscale(.25) saturate(.50)}

@media(max-width:720px){.brand-logo{flex-basis:28px;width:28px!important;height:28px!important;min-width:28px;max-width:28px!important}.footer-brand img{flex-basis:20px;width:20px!important;height:20px!important;min-width:20px;max-width:20px!important}}


/* v5 final polish */
.approach-close{margin-top:64px;padding:42px 0 8px;border-top:1px solid var(--line-strong);display:grid;grid-template-columns:150px 1fr;gap:30px;align-items:start}
.approach-close>span{padding-top:11px;font:12px/1.4 Arial;letter-spacing:.14em;color:#76828a}
.approach-close>p{margin:0;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(34px,3.9vw,54px);font-weight:500;line-height:1.55;letter-spacing:.04em}
.fields-section{border-top:1px solid var(--line)}
.field-link-list{border-top:1px solid var(--line-strong)}
.field-link-list>a{min-height:92px;display:grid;grid-template-columns:70px minmax(220px,.95fr) minmax(140px,1fr) 50px;gap:18px;align-items:center;border-bottom:1px solid var(--line);transition:background .18s ease,padding .18s ease}
.field-link-list>a:hover{background:rgba(220,230,236,.46);padding-left:8px}
.field-link-list .field-no{font:12px/1 Arial;color:#7c878f}
.field-link-list strong{font:600 18px/1.35 Arial;letter-spacing:.02em}
.field-link-list small{font-size:15px;color:#5e6b74}
.field-link-list i{font-style:normal;font:18px/1 Arial;text-align:right;color:var(--accent)}
@media(max-width:720px){.approach-close{grid-template-columns:1fr;gap:10px;margin-top:48px}.approach-close>span{padding-top:0}.field-link-list>a{grid-template-columns:42px 1fr 34px;gap:10px;min-height:82px}.field-link-list small{grid-column:2}.field-link-list i{grid-column:3;grid-row:1/3}.field-link-list strong{font-size:17px}}
