:root{--paper:#f8f4ec;--ink:#332f29;--rust:#994023;--sand:#eae3d6;--rule:#bdb5a9;--muted:#625b50;--button:#213c42;--serif:"Noto Serif CJK JP","Yu Mincho","YuMincho","Hiragino Mincho ProN","MS PMincho",serif;--sans:"Noto Sans CJK JP","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.85;-webkit-text-size-adjust:100%}a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px}a:hover{color:var(--rust)}a:focus-visible{outline:3px solid var(--rust);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.5;letter-spacing:.025em;overflow-wrap:anywhere}h1,h2{font-family:var(--serif);font-weight:600}h2{font-size:clamp(28px,3vw,42px)}h3{font-size:23px}p,dd,li{overflow-wrap:anywhere}a{overflow-wrap:anywhere}ul,ol{padding-left:1.5em}img{max-width:100%;height:auto}.wrap{max-width:1150px;margin-inline:auto;padding-inline:40px}.narrow{max-width:900px}.kicker{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.17em}.brand{font-family:var(--sans);text-decoration:none;font-size:21px;font-weight:900;letter-spacing:.07em;white-space:nowrap}.brand span{color:var(--rust)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:25px}.site-nav{display:flex;align-items:center;gap:26px;font-size:13px}.site-nav a{text-decoration:none;display:inline-flex;align-items:center;min-height:44px}.site-nav a[aria-current="page"]{text-decoration:underline}section{scroll-margin-top:25px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:14px 23px;background:var(--button);color:#fff;text-decoration:none;font-size:14px;font-weight:700;min-height:48px}.button:hover{background:var(--rust);color:#fff}.lead{font-size:17px;line-height:2}.text-link{display:inline-flex;align-items:center;gap:14px;min-height:44px}.preview-banner{padding:8px 20px;background:var(--sand);font-size:12px;text-align:center;color:var(--ink);border-bottom:1px solid var(--rule)}.preview-note{padding:16px 20px;border-left:3px solid var(--rust);background:var(--sand);font-size:13px;line-height:1.9;margin-block:24px}.preview-note p+p{margin-top:8px}.preview-footnote{font-size:12px;color:var(--muted);margin-top:16px}.section{padding-block:85px}.section-compact{padding-top:15px}.sectionhead{margin-bottom:36px;display:flex;justify-content:space-between;gap:30px;align-items:end}.sectionhead .kicker{margin-bottom:10px}.hero{padding:50px 0 70px}.hero-grid{display:grid;grid-template-columns:95px minmax(0,1fr);gap:35px}.rail{writing-mode:vertical-rl;letter-spacing:.25em;font-size:12px;border-right:1px solid var(--rule);padding-right:25px}.hero h1{font-size:clamp(40px,5.5vw,76px);line-height:1.5;margin:15px 0 18px}.business-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 0;font-size:clamp(14px,1.4vw,16px);font-weight:700;color:var(--rust);margin-bottom:30px}.business-line span+span::before{content:"／";margin-inline:10px;font-weight:400;color:var(--rule)}.hero-bottom{display:flex;justify-content:space-between;gap:35px;align-items:end}.hero-link{margin-top:20px}.seal{border:1px solid var(--rust);color:var(--rust);border-radius:50%;width:145px;height:145px;flex:0 0 145px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;font-size:12px;line-height:2.2;transform:rotate(-9deg)}.seal span{white-space:nowrap}.mission{border-block:1px solid var(--rule);padding-block:23px;font-size:18px}.service-row{display:grid;grid-template-columns:100px minmax(0,1fr) minmax(0,1fr);gap:35px;padding-block:40px;border-top:1px solid var(--rule)}.service-row:last-of-type{border-bottom:1px solid var(--rule)}.service-no{font-family:Georgia,serif;font-size:60px;line-height:1;color:var(--rust)}.service-row h3{margin-top:9px}.service-detail{font-size:15px}.service-detail p{margin-bottom:12px}.service-detail .text-link{display:flex;width:fit-content;font-size:13px;font-weight:700}.resource-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:24px;font-size:14px}.philosophy{background:var(--sand)}.philosophy h2{margin:15px 0 28px}.philosophy .lead{max-width:680px}.contact{border-top:2px solid var(--rust);padding-top:40px}.contact h2{margin-top:10px}.contact>p{margin-top:15px;max-width:780px}.contact>p:first-child{margin-top:0}.contact .email-address{font-size:16px}.help-text{font-size:13px;color:var(--muted)}.site-footer{padding-block:35px;border-top:1px solid var(--rule);font-size:12px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:25px}.footer-links{display:flex;gap:25px;flex-wrap:wrap}.footer-links a{display:inline-flex;align-items:center;min-height:44px}.copyright{margin-top:12px;color:var(--muted)}.page-intro{padding-block:25px 45px}.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:35px}.page-intro h1{font-size:clamp(33px,4.5vw,56px);margin-top:12px}.page-intro .lead{font-family:var(--serif);font-size:clamp(20px,2.2vw,28px);margin-top:24px}.company-data{margin:25px 0 0}.company-data>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:30px;padding-block:23px;border-top:1px solid var(--rule)}.company-data>div:last-child{border-bottom:1px solid var(--rule)}.company-data dt{font-size:14px;font-weight:700}.company-data dd{margin:0}.company-data ul{margin:0;list-style:none;padding:0}.page-contact{padding-top:35px}.page-contact p{font-size:13px}.page-contact a{font-size:20px}.policy{padding-bottom:85px}.policy>section{margin-top:38px}.policy h2{font-family:var(--sans);font-weight:700;font-size:clamp(20px,2vw,24px);margin-bottom:14px}.policy h3{font-size:18px;margin-block:24px 10px}.policy p,.policy li{font-size:15px;line-height:2}.policy li+li{margin-top:5px}.policy-contact{font-size:15px}.policy-contact>div{display:grid;grid-template-columns:85px minmax(0,1fr);gap:15px;margin-top:8px}.policy-contact dd{margin:0}.error-page{padding-block:75px 110px}.error-page h1{font-size:clamp(32px,4vw,52px);margin-block:15px 25px}.error-page p{margin-block:22px}.skip{position:absolute;top:-100px;left:15px;background:var(--paper);padding:8px 15px;z-index:20}.skip:focus{top:5px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.site-nav{gap:18px}.hero-grid{grid-template-columns:65px minmax(0,1fr);gap:25px}.service-row{grid-template-columns:65px minmax(0,1fr) minmax(0,1fr);gap:25px}.seal{width:135px;height:135px;flex-basis:135px;font-size:11px}}
@media(max-width:720px){.wrap{padding-inline:22px}.site-header .wrap{align-items:start;padding-block:18px;flex-direction:column;gap:6px}.site-nav{gap:5px 22px;font-size:12px;flex-wrap:wrap}.hero-grid{grid-template-columns:minmax(0,1fr);gap:10px}.rail{writing-mode:horizontal-tb;border:none;padding:0;font-size:10px}.hero h1{font-size:clamp(38px,10.25vw,58px);margin-top:15px}.hero-bottom{display:block}.seal{display:none}.hero{padding:25px 0 45px}.business-line{font-size:14px;line-height:1.9;gap:3px 12px;margin-bottom:22px}.business-line span+span::before{content:none}.business-line span{border-bottom:1px solid var(--rule);padding-bottom:2px}.lead{font-size:15px}.mission{font-size:15px}.section{padding-block:55px}.section-compact{padding-top:0}.sectionhead{display:block}.sectionhead>p{margin-top:15px;font-size:14px}.service-row{grid-template-columns:45px minmax(0,1fr);gap:12px 15px;padding-block:30px}.service-detail{grid-column:2;font-size:14px}.service-no{font-size:36px}.service-row h3{font-size:21px;margin-top:5px}.resource-row{display:block;font-size:13px}.resource-row .text-link{margin-top:6px}.contact{padding-top:28px}.contact>p{font-size:14px}.contact .help-text{font-size:12px}.footer-top{display:block}.footer-links{margin-top:12px;gap:5px 22px}.copyright{font-size:11px}.page-intro{padding-block:10px 28px}.breadcrumb{margin-bottom:25px}.company-data>div{grid-template-columns:minmax(0,1fr);gap:5px;padding-block:18px}.company-data dd{font-size:15px}.policy{padding-bottom:55px}.policy p,.policy li{font-size:14px}.preview-note{padding:14px 16px;font-size:12px}.preview-banner{font-size:11px}.policy-contact>div{grid-template-columns:minmax(0,1fr);gap:0}.policy-contact dt{font-weight:700;font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.preview-banner,.site-header,.site-footer,.skip{display:none}.wrap{max-width:none;padding-inline:0}.section{padding-block:30px}.hero{padding:0 0 30px}body{color:#000;background:#fff}a{text-decoration:underline}.service-row,.company-data>div{break-inside:avoid}.seal{display:none}.policy{padding:0}}
