@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,400;6..72,500&display=swap');

:root { --ink:#102a43; --muted:#5d6b78; --paper:#fff; --wash:#f5f7f8; --line:#dce3e8; --wrap:1160px; --prose:700px; --pad:clamp(1.25rem,4vw,2.75rem); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font:400 16px/1.7 Manrope,Arial,sans-serif; }
a { color:inherit; text-underline-offset:3px; }
.wrap { max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad); }
.skip-link { position:absolute; left:-999px; }
.skip-link:focus { left:1rem; top:1rem; z-index:20; background:#fff; padding:.5rem 1rem; outline:3px solid var(--ink); }
.site-header { position:sticky; top:0; z-index:10; background:#fffffff5; border-bottom:1px solid var(--line); backdrop-filter:blur(10px); }
.header-inner { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.brand { display:inline-flex; gap:.55rem; align-items:center; color:var(--ink); font:17px/1 Newsreader,Georgia,serif; text-decoration:none; white-space:nowrap; }
.brand img { width:34px; height:34px; object-fit:contain; }
.brand strong { font-weight:500; }
.site-nav { display:flex; align-items:center; gap:.15rem; }
.site-nav a { padding:.55rem .65rem; color:var(--muted); font-size:.84rem; text-decoration:none; }
.site-nav a:hover,.site-nav a[aria-current=page] { color:var(--ink); }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:.6rem 1.1rem; background:var(--ink); border:1px solid var(--ink); color:#fff; font-size:.84rem; font-weight:700; text-decoration:none; transition:background .2s,border-color .2s; }
.button:hover { background:#1c4466; border-color:#1c4466; }
.button.small { min-height:36px; margin-left:.4rem; padding:.45rem .8rem; background:transparent; color:var(--ink); }
.button.small:hover { background:var(--ink); color:#fff; }
.menu-button { display:none; background:none; border:1px solid var(--ink); padding:.45rem .7rem; color:var(--ink); font:600 .8rem Manrope,Arial,sans-serif; }
.eyebrow { margin:0 0 .7rem; color:var(--muted); font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:Newsreader,Georgia,serif; font-weight:400; letter-spacing:-.025em; line-height:1.04; }
h1 { max-width:800px; margin-bottom:1.3rem; font-size:clamp(2.8rem,5.1vw,4.5rem); }
h2 { margin-bottom:1rem; font-size:clamp(2rem,3.2vw,2.85rem); }
h3 { margin-bottom:.55rem; font-size:1rem; }
.lead,.page-hero > p:last-child { max-width:var(--prose); color:var(--muted); font-size:1.06rem; }
.hero { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2.5rem,7vw,6rem); align-items:center; min-height:640px; }
.hero h1 { max-width:680px; }
.actions { display:flex; gap:1.2rem; align-items:center; flex-wrap:wrap; margin-top:1.8rem; }
.text-link { color:var(--ink); font-size:.9rem; font-weight:700; text-decoration:none; }
.text-link::after { content:'  →'; }
.text-link:hover { text-decoration:underline; }
.direct { margin-top:1.1rem; color:var(--muted); font-size:.85rem; }
.hero-photo,.image-placeholder { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:330px; padding:1.5rem; background:linear-gradient(145deg,#e9eef1,#d9e2e7); color:var(--ink); overflow:hidden; }
.hero-photo::before,.image-placeholder::before { content:''; position:absolute; width:52%; aspect-ratio:1; right:-9%; top:10%; border:1px solid #b8c6cf; border-radius:50%; }
.hero-photo::after,.image-placeholder::after { content:''; position:absolute; width:42%; height:68%; left:12%; bottom:-22%; border:1px solid #b8c6cf; border-radius:50% 50% 0 0; }
.hero-photo { min-height:480px; aspect-ratio:4/5; }
.photo-label { position:relative; z-index:1; margin:0; font-size:.76rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.photo-label span { display:block; margin-top:.2rem; color:var(--muted); font-size:.72rem; font-weight:500; letter-spacing:0; text-transform:none; }
.section { padding-block:clamp(6rem,9vw,7.5rem); }
.section-heading { max-width:var(--prose); margin-bottom:2.5rem; }
.section-heading > p:last-child { color:var(--muted); }
.service-grid { border-top:1px solid var(--line); }
.service-card { display:grid; grid-template-columns:64px minmax(180px,.75fr) minmax(0,1.4fr) 22px; align-items:center; gap:1.25rem; padding:1.35rem 0; border-bottom:1px solid var(--line); text-decoration:none; transition:padding .2s,background .2s; }
.service-card:hover { padding-inline:1rem; background:var(--wash); }
.service-card span { color:var(--muted); font-size:.78rem; font-weight:700; }
.service-card h3,.service-card p { margin:0; }
.service-card p { color:var(--muted); font-size:.9rem; }
.service-card::after { content:'→'; font-size:1.1rem; }
.split-intro { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem,6vw,5rem); align-items:center; background:var(--wash); }
.split-intro .image-placeholder { min-height:380px; }
.split-intro .intro-copy { max-width:510px; padding:2rem 0; }
.quote-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-bottom:1.5rem; }
.quote { margin:0; }
.quote blockquote { margin:0 0 1rem; font-family:Newsreader,Georgia,serif; font-size:1.23rem; line-height:1.38; }
.quote figcaption { display:flex; flex-direction:column; color:var(--muted); font-size:.78rem; }
.quote figcaption strong { color:var(--ink); }
.contact-cta { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:clamp(3rem,7vw,6rem); padding:clamp(2rem,5vw,3.25rem); background:var(--ink); color:#fff; }
.contact-cta h2 { max-width:540px; margin-bottom:.6rem; }
.contact-cta p:not(.eyebrow) { max-width:550px; margin-bottom:0; color:#d7e2e9; }
.contact-cta .eyebrow { color:#b8cad8; }
.contact-cta .button { flex:none; background:#fff; border-color:#fff; color:var(--ink); }
.page-hero { padding-block:clamp(4.5rem,9vw,7rem) clamp(3.5rem,6vw,5rem); }
.page-hero h1 { font-size:clamp(2.7rem,4.6vw,4.15rem); }
.content-grid { display:grid; grid-template-columns:260px minmax(0,1fr); gap:clamp(2rem,6vw,5rem); padding-block:3.5rem; border-top:1px solid var(--line); }
.side-label { color:var(--ink); font:1.4rem/1.15 Newsreader,Georgia,serif; }
.stack { max-width:var(--prose); }
.detail-row { padding:0 0 1.7rem; margin-bottom:1.7rem; border-bottom:1px solid var(--line); }
.detail-row:last-child { margin-bottom:0; }
.detail-row h2 { font-size:1.65rem; }
.detail-row p,.detail-row ul,.detail-row ol { color:var(--muted); }
.detail-row ul,.detail-row ol { padding-left:1.15rem; }
.coaching-list { max-width:800px; border-top:1px solid var(--line); }
.coaching-list details { border-bottom:1px solid var(--line); }
.coaching-list summary { display:flex; justify-content:space-between; gap:1rem; padding:1.2rem 0; cursor:pointer; list-style:none; }
.coaching-list summary::-webkit-details-marker { display:none; }
.coaching-list summary strong { font:1.4rem Newsreader,Georgia,serif; }
.coaching-list summary span { color:var(--muted); font-size:.85rem; }
.detail-body { max-width:650px; padding:0 0 1.5rem; color:var(--muted); }
.profile { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,7vw,6rem); align-items:start; }
.profile .image-placeholder { min-height:440px; aspect-ratio:4/5; }
.profile .copy { max-width:var(--prose); color:var(--muted); }
.profile .copy p { margin-bottom:1.4rem; }
.note { padding:1.2rem 1.4rem; border-left:2px solid var(--ink); background:var(--wash); color:var(--ink); }
.netsuke { display:grid; grid-template-columns:280px minmax(0,1fr); gap:2rem; align-items:start; border-top:1px solid var(--line); }
.netsuke img { width:100%; max-width:280px; }
.netsuke p { max-width:640px; color:var(--muted); }
.review-list { max-width:var(--wrap); padding-top:0; }
.review-list .quote { display:grid; grid-template-columns:30% 70%; padding:2rem 0; border-top:1px solid var(--line); }
.review-list .quote:last-child { border-bottom:1px solid var(--line); }
.review-list .quote h3,.review-list .quote figcaption { grid-column:1; }
.review-list .quote blockquote { grid-column:2; grid-row:1 / span 2; margin:0; font-size:1.22rem; }
.contact-layout { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,8vw,7rem); }
.contact-method { display:block; padding:1rem 0; border-bottom:1px solid var(--line); color:var(--ink); font:1.2rem Newsreader,Georgia,serif; text-decoration:none; overflow-wrap:anywhere; }
.contact-method:hover { color:#1c4466; }
.contact-method small { display:block; margin-top:.2rem; color:var(--muted); font:400 .78rem Manrope,Arial,sans-serif; }
.contact-layout .image-placeholder { min-height:260px; margin-top:1.5rem; }
.site-footer { padding-block:2.5rem; background:var(--ink); color:#fff; }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:2rem; }
.site-footer .brand { color:#fff; }
.site-footer .brand img { background:#fff; }
.site-footer p,.site-footer a { color:#d7e2e9; font-size:.82rem; overflow-wrap:anywhere; }
.site-footer a:not(.brand) { display:block; margin-bottom:.25rem; }
.footer-label { color:#fff!important; font-size:.72rem!important; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
@media (max-width:760px) { .header-inner { min-height:72px; } .menu-button { display:block; } .site-nav { display:none; position:absolute; top:100%; left:0; right:0; padding:1rem var(--pad); background:#fff; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; } .site-nav.is-open { display:flex; } .site-nav a { padding:.7rem 0; } .button.small { margin:.3rem 0 0; text-align:center; } .hero,.profile,.contact-layout,.netsuke,.split-intro { grid-template-columns:1fr; } .hero { min-height:0; padding-block:3.5rem 4.5rem; } .hero h1 { font-size:clamp(2.7rem,13vw,3.25rem); } .hero-photo { min-height:360px; width:100%; max-width:440px; } .section { padding-block:4.5rem; } .service-card { grid-template-columns:42px 1fr 18px; gap:.8rem; } .service-card p { grid-column:2 / 4; } .split-intro .intro-copy { padding:0 0 2.25rem; } .quote-grid { grid-template-columns:1fr; gap:1.75rem; } .contact-cta { display:block; } .contact-cta .button { margin-top:1.5rem; } .content-grid { grid-template-columns:1fr; gap:1rem; padding-block:2.75rem; } .review-list .quote { display:block; } .review-list .quote h3 { margin-bottom:.25rem; } .review-list .quote figcaption { margin-bottom:1rem; } .footer-grid { grid-template-columns:1fr; gap:1.5rem; } .netsuke img { max-width:220px; } }
