@charset "UTF-8";
:root{--paper:#fff;--linen:#f3f0e8;--ink:#303b33;--text:#4e534c;--muted:#68685e;--gold:#7b6438;--line:#d8d7ce;--dark:#303d34;--serif:"YuMincho","Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;--sans:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.9;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:.25em}a:focus-visible{outline:2px solid var(--gold);outline-offset:7px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}img{max-width:100%;display:block}::selection{background:#ddd9c8;color:var(--ink)}.skip-link{position:absolute;top:-100px;left:1rem;background:white;padding:.5rem 1rem;z-index:5}.skip-link:focus{top:1rem}.site-header{min-height:108px;padding:1.5rem 4.5%;display:flex;align-items:center;justify-content:space-between;gap:2rem;background:white}.wordmark{font-family:Georgia,"Times New Roman",serif;font-size:1.75rem;letter-spacing:-.035em;text-decoration:none;white-space:nowrap}.wordmark span{font-family:var(--sans);font-size:.75rem;letter-spacing:.08em;margin-left:.7rem;font-weight:400}.site-header nav{display:flex;align-items:center;gap:2.5rem;font-size:.875rem;letter-spacing:.04em}.site-header nav a{white-space:nowrap;text-decoration:none;padding:.3rem 0}.site-header nav a:hover{color:var(--gold)}.site-header .nav-contact{border-bottom:1px solid var(--gold)}.nav-contact span{margin-left:1rem}.hero{background:var(--linen);display:grid;grid-template-columns:1fr 46%;min-height:650px;position:relative}.hero-copy{padding:5.5rem 7% 2rem 11%;display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-family:Arial,sans-serif;font-size:.875rem;font-weight:500;letter-spacing:.16em;line-height:1.5;color:var(--gold)}h1{font-family:var(--serif);font-size:clamp(2rem,3.1vw,3.3rem);line-height:1.7;letter-spacing:.06em;margin:2.1rem 0 1.5rem}h1 span{white-space:nowrap}h2{font-family:var(--serif);font-size:2rem;line-height:1.75;letter-spacing:.04em}.hero-description{font-size:1rem;line-height:2.15;letter-spacing:.025em;color:var(--text)}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:3rem;min-height:44px;font-size:.875rem;text-decoration:none;border-bottom:1px solid var(--gold);padding:.5rem 0;letter-spacing:.04em}.text-link:hover{color:var(--gold)}.hero .text-link{margin-top:1.6rem}.hero-caption{font-size:.875rem;letter-spacing:.14em;color:var(--muted);margin-top:auto;padding-top:2.5rem}.hero-image{position:relative;min-width:0}.hero-image img{height:100%;width:100%;object-fit:cover;object-position:65% 50%;position:absolute;inset:0}.section-wrap{padding:6rem max(6%,calc((100vw - 1160px)/2))}.section-label{display:flex;gap:1.5rem;align-items:center}.intro{padding-top:5.5rem;padding-bottom:5.5rem}.intro-body{display:grid;grid-template-columns:.9fr 1.1fr;gap:5rem;margin-top:2rem}.intro-text{color:var(--text)}.intro-text p+p{margin-top:1.5rem}.business{background:var(--linen)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem}.section-heading h2,.profile h2,.company h2,.contact h2{margin-top:.8rem}.section-summary{color:var(--muted);font-size:.875rem;line-height:1.9}.business-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-top:3.3rem}.business-item{display:grid;grid-template-rows:auto auto 1fr auto;border-top:1px solid var(--line);padding-top:1.6rem}.service-index{font-family:Georgia,serif;color:var(--gold);font-size:1.625rem;line-height:1.3}.service-index span{font-family:Arial,sans-serif;font-size:.875rem;letter-spacing:.16em;margin-left:1.3rem;vertical-align:middle}.business-item h3{font-family:var(--serif);font-size:1.5rem;margin-top:1.7rem;margin-bottom:1.2rem}.business-item>p:not(.service-index){color:var(--text)}.service-keywords{display:flex;gap:1.5rem;flex-wrap:wrap;margin-top:2rem;padding-top:1.1rem;border-top:1px solid var(--line);font-size:.875rem;color:var(--muted)}.profile,.company{display:grid;grid-template-columns:.75fr 1.25fr;gap:4rem}.profile{border-bottom:1px solid var(--line)}.profile-role{font-size:.875rem;color:var(--muted)}.profile-name{font-family:var(--serif);font-size:1.875rem;margin:.5rem 0 1.7rem;letter-spacing:.1em}.profile-name span{font-family:Georgia,serif;font-size:1.25rem;letter-spacing:.015em;color:var(--gold);margin-left:1rem}.profile-copy>p:not(.profile-role){color:var(--text);margin-bottom:1rem}.profile-copy .text-link{margin-top:.8rem}.company-details{margin:0}.company-details>div{display:grid;grid-template-columns:110px 1fr;gap:1.5rem;padding:1.25rem 0;border-top:1px solid var(--line)}.company-details>div:last-child{border-bottom:1px solid var(--line)}dt{font-size:.875rem;color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}.reading{display:block;font-size:.875rem;color:var(--muted);margin-top:.15rem}.contact{background:var(--dark);color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.contact .eyebrow{color:#d6c39c}.contact>div>p:last-child{color:#e1e5dc;margin-top:1.25rem;font-size:.9375rem}.email-link{border-top:1px solid #788077;border-bottom:1px solid #788077;padding:1.6rem 0;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-decoration:none;font-family:Georgia,serif;font-size:clamp(1.5rem,2.7vw,2.3rem)}.email-link:hover{color:#e2d0ad}.email-link small{display:block;font-family:var(--sans);font-size:.875rem;margin-top:.4rem;color:#e1e5dc}.email-arrow{font-size:2rem}footer{display:flex;justify-content:space-between;gap:2rem;align-items:center;padding:2.5rem 4.5%}footer .wordmark{font-size:1.5rem}footer p{font-size:.75rem;color:var(--muted)}
@media(min-width:1600px){.hero{min-height:720px;grid-template-columns:1fr 47%}.hero-copy{padding-left:max(11%,calc((100vw - 1160px)/2));padding-right:2rem}.hero-image img{object-position:50% 48%}}
@media(max-width:1000px){.site-header{padding:1.5rem 5%;gap:1rem;min-height:90px}.wordmark{font-size:1.4rem}.wordmark span{font-size:.75rem;margin-left:.5rem}.site-header nav{gap:1.4rem}.hero{min-height:590px;grid-template-columns:55% 45%}.hero-copy{padding:4rem 7% 2rem 9%}h1{font-size:clamp(1.8rem,3.4vw,2.5rem);letter-spacing:.01em}.section-wrap{padding:4.5rem 6%}.intro-body{gap:2.5rem}.business-grid{gap:2.5rem}.profile,.company{grid-template-columns:.7fr 1.3fr;gap:2rem}.company-details>div{grid-template-columns:86px 1fr;gap:1rem}.contact{gap:2rem}}
@media(max-width:700px){html{scroll-padding-top:1rem}.site-header{padding:1.25rem 6%;display:block}.wordmark{font-size:1.5rem}.site-header nav{margin-top:.9rem;gap:1.7rem;font-size:.875rem;justify-content:space-between}.nav-contact span{margin-left:.5rem}.hero{display:flex;flex-direction:column;min-height:0}.hero-copy{padding:2.8rem 7% 2.5rem}h1{font-size:clamp(1.85rem,6.7vw,2.55rem);margin:1.5rem 0 1.3rem;letter-spacing:.04em;line-height:1.8}.hero-description{font-size:1rem;line-height:2}.hero .text-link{margin-top:1.3rem}.hero-caption{display:none}.hero-image{height:330px}.hero-image img{object-position:center 58%}.section-wrap{padding:3.7rem 7%}h2{font-size:1.65rem}.intro-body{display:block;margin-top:1.5rem}.intro-text{margin-top:1.7rem}.wide-break{display:none}.section-heading{display:block}.section-summary{margin-top:1.2rem}.business-grid{display:block;margin-top:2.2rem}.business-item+.business-item{margin-top:2.5rem}.business-item h3{font-size:1.35rem;margin-top:1.1rem}.service-keywords{margin-top:1.4rem}.profile,.company,.contact{display:block}.profile-copy{margin-top:2rem}.profile-name{font-size:1.65rem}.profile-name span{font-size:1.2rem;white-space:nowrap;display:inline-block}.company-details{margin-top:2rem}.company-details>div{grid-template-columns:75px 1fr;gap:1rem;padding:1.1rem 0}.contact h2{font-size:1.7rem}.email-link{margin-top:2rem;font-size:1.9rem}footer{display:block;padding:2rem 7%}footer p{margin-top:1rem}}
@media(max-width:360px){.site-header nav{gap:.7rem}.hero-copy{padding-left:6%;padding-right:6%}h1{font-size:1.65rem}.company-details>div{display:block}.company-details dt{margin-bottom:.4rem}.profile-name span{margin-left:0;display:block}.email-link{font-size:1.6rem}}
.news{display:grid;grid-template-columns:.75fr 1.25fr;gap:4rem;border-bottom:1px solid var(--line)}.news h2{margin-top:.8rem}.news-intro{margin-top:1.2rem;font-size:.9375rem;color:var(--muted)}.news-empty{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:2rem 0;color:var(--muted)}.news-item{border-top:1px solid var(--line);padding:1.5rem 0}.news-item:last-child{border-bottom:1px solid var(--line)}.news-meta{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;font-size:.875rem;color:var(--muted)}.news-category{color:var(--gold)}.news-item h3{font-family:var(--serif);font-size:1.3rem;line-height:1.8;margin:.8rem 0}.news-body{color:var(--text)}.news-body p+p{margin-top:.8rem}.news-item img{height:auto;max-height:28rem;object-fit:contain;margin-top:1rem}
@media(max-width:1000px){.news{grid-template-columns:.7fr 1.3fr;gap:2rem}}
@media(max-width:700px){.news{display:block}.news-feed{margin-top:2rem}.news-empty{padding:1.5rem 0}.site-header nav{column-gap:1rem;row-gap:.5rem}}
@media print{.news{gap:1.5rem}.news-empty{padding:1rem 0}}
.intro,.news,.company{background:var(--paper)}.business,.profile{background:var(--linen)}
.service-keywords a{display:inline-flex;align-items:center;gap:1.25rem;min-height:44px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold)}.service-keywords a:hover{color:var(--gold)}.service-keywords a span{color:var(--gold)}
.wordmark{white-space:normal}.wordmark span{display:inline-block;white-space:nowrap}.site-header nav{flex-wrap:wrap}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{body{color:#000;font-size:10pt;line-height:1.6}.site-header{padding:0 0 1rem;min-height:0}.site-header nav,.hero-image,.hero-caption,.skip-link,.hero .text-link{display:none}.hero{display:block;min-height:0;background:white}.hero-copy{padding:1.5rem 0}.hero h1{font-size:24pt;margin:.5rem 0}.desktop-break{display:none}.section-wrap{padding:1.4rem 0;background:white;color:#000;break-inside:avoid}.section-heading,.intro-body,.business-grid,.profile,.company,.contact{gap:1.5rem}.business-grid{margin-top:1rem}.business-item h3{font-size:14pt;margin:.5rem 0}.business-item{padding-top:.5rem}.profile h2,.company h2,h2{font-size:17pt}.profile-name{margin:.4rem 0;font-size:17pt}.company-details>div{padding:.45rem 0}.contact .eyebrow,.contact>div>p:last-child,.email-link small{color:#333}.email-link{font-size:16pt;padding:.5rem 0}footer{padding:1rem 0}.intro-text p+p{margin-top:.5rem}}
