:root{--ai:#16273f;--brass:#927434;--brass-d:#7a5f28;--seal:#a5372b;--washi:#ece5d5;--surface:#f6f1e6;--line:#c9bfa6;--line-d:#b4a886;--ink:#23303f;--sub:#5a5346;--serif:"Noto Serif JP", serif;--sans:"BIZ UDPGothic", "Noto Sans JP", sans-serif;--wrap:1160px;--pad:clamp(18px, 4vw, 44px);--sec-y:clamp(48px, 6vw, 88px)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--washi);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:17px;line-height:1.95}a{color:inherit;text-decoration:none;transition:color .2s,background-color .2s,border-color .2s}a:hover{color:var(--brass)}button{font:inherit;transition:background-color .2s,color .2s,border-color .2s}img{max-width:100%;height:auto;display:block}h1,h2,h3,p{margin:0}ul{margin:0;padding:0;list-style:none}.wrap{max-width:var(--wrap);padding-inline:var(--pad);margin-inline:auto}.section{padding-block:var(--sec-y);border-bottom:2px solid var(--ai)}.section--tint{background:var(--surface)}.rule-top{background:var(--ai);border-bottom:2px solid var(--brass);height:6px}.eyebrow{font-family:var(--serif);letter-spacing:.24em;color:var(--brass);font-size:13px;font-weight:600}.sec-head{text-align:center}.sec-title{font-family:var(--serif);color:var(--ai);letter-spacing:.1em;margin-top:8px;font-size:clamp(28px,3.6vw,40px);font-weight:700}.sec-mark{background:var(--brass);width:44px;height:2px;margin:16px auto 0}.sec-lead{color:var(--sub);max-width:33em;margin:16px auto 0;font-size:16px;line-height:1.95}.btn{font-family:var(--serif);letter-spacing:.06em;white-space:nowrap;cursor:pointer;border:none;justify-content:center;align-items:center;gap:9px;font-weight:600;display:inline-flex}.btn--brass{background:var(--brass);color:#fff;padding:15px 30px;font-size:17px}.btn--brass:hover{background:var(--brass-d);color:#fff}.btn--outline{border:1.5px solid var(--ai);color:var(--ai);background:0 0;padding:15px 28px;font-size:17px}.btn--outline:hover{background:var(--ai);color:#fff}.btn--ai{background:var(--ai);color:#fff;width:100%;padding:14px;font-size:16px}.btn--ai:hover{color:#fff;background:#0f1d33}.btn--sm{padding:12px 22px;font-size:15px}.vtext{writing-mode:vertical-rl;text-orientation:upright}.topbar{background:var(--ai);color:#d3d9e4}.topbar__inner{letter-spacing:.08em;justify-content:space-between;align-items:center;gap:16px;padding-block:8px;font-size:13px;display:flex}.topbar__label{font-family:var(--serif)}.topbar__meta{align-items:center;gap:20px;display:flex}.topbar__tel{align-items:center;gap:7px;display:inline-flex}.header{z-index:50;backdrop-filter:blur(8px);border-bottom:2px solid var(--ai);background:#ece5d5f2;position:sticky;top:0}.header__inner{align-items:center;gap:22px;padding-block:12px;display:flex}.logo{white-space:nowrap;align-items:center;gap:14px;display:flex}.logo__seal{border:2px solid var(--seal);width:46px;height:46px;font-family:var(--serif);color:var(--seal);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:20px;font-weight:700;line-height:1;display:flex}.logo__text{flex-direction:column;line-height:1.3;display:flex}.logo__en{letter-spacing:.34em;color:var(--brass);font-size:10px;font-weight:700}.logo__ja{font-family:var(--serif);color:var(--ai);letter-spacing:.1em;font-size:21px;font-weight:700}.nav{white-space:nowrap;font-family:var(--serif);letter-spacing:.06em;color:var(--ai);gap:26px;margin-left:auto;font-size:15px;font-weight:600;display:flex}.burger{background:var(--surface);border:1px solid var(--line-d);width:44px;height:44px;color:var(--ai);cursor:pointer;justify-content:center;align-items:center;padding:0;display:none}.mnav{background:var(--surface);border-bottom:2px solid var(--ai);padding:0 var(--pad);opacity:0;visibility:hidden;flex-direction:column;max-height:0;transition:max-height .32s cubic-bezier(.4,0,.2,1),padding-block .32s cubic-bezier(.4,0,.2,1),opacity .22s,visibility .32s;display:none;position:absolute;top:100%;left:0;right:0;overflow:hidden;box-shadow:0 12px 24px #16273f29}.mnav.is-open{opacity:1;visibility:visible;max-height:76vh;padding-block:6px 14px;overflow-y:auto}.mnav a{font-family:var(--serif);border-bottom:1px solid var(--line);padding:14px 4px;font-weight:600}.mnav a:last-child{color:var(--brass);border-bottom:none}.hero{border-bottom:2px solid var(--ai)}.hero__inner{flex-wrap:wrap;align-items:stretch;gap:clamp(34px,5vw,60px);padding-block:clamp(46px,6vw,88px);display:flex}.hero__vertical{flex:none;gap:26px;padding-right:8px;display:flex}.hero__vtitle{font-family:var(--serif);color:var(--ai);letter-spacing:.12em;font-size:clamp(40px,5vw,60px);font-weight:700;line-height:1.5}.hero__vsub{font-family:var(--serif);color:var(--sub);letter-spacing:.34em;align-self:flex-end;font-size:16px;font-weight:500;line-height:1.9}.hero__body{flex-direction:column;flex:420px;min-width:280px;display:flex}.hero__kicker{align-items:center;gap:12px;display:flex}.hero__kicker span:first-child{background:var(--brass);width:34px;height:1px}.hero__kicker span:last-child{font-family:var(--serif);letter-spacing:.18em;color:var(--brass);font-size:13px;font-weight:600}.hero__title{font-family:var(--serif);color:var(--ai);letter-spacing:.04em;margin-top:22px;font-size:clamp(30px,4.4vw,46px);font-weight:700;line-height:1.5}.hero__title span{white-space:nowrap}.hero__text{color:var(--sub);max-width:34em;margin-top:22px;font-size:clamp(16.5px,1.3vw,18px);line-height:2.05}.hero__actions{flex-wrap:wrap;gap:14px;margin-top:30px;display:flex}.deskcard{border:2px solid var(--ai);background:var(--surface);flex-direction:column;flex:0 300px;min-width:260px;display:flex}.deskcard__head{background:var(--ai);color:#e7ddc8;font-family:var(--serif);letter-spacing:.14em;justify-content:space-between;align-items:center;padding:14px 22px;font-size:15px;font-weight:600;display:flex}.deskcard__head span:last-child{letter-spacing:.2em;color:#b9c2d3;font-size:11px}.deskcard__body{flex-direction:column;flex:1;padding:24px;display:flex}.deskcard__label{color:var(--sub);font-size:13px}.deskcard__tel{font-family:var(--serif);color:var(--ai);letter-spacing:.02em;margin-top:4px;font-size:27px;font-weight:700}.deskcard__mail{font-family:var(--serif);color:var(--ai);word-break:break-all;font-size:16px;font-weight:600}.deskcard__btn{margin-top:auto}.deskcard__note{border-top:1px solid var(--line);color:var(--sub);margin-top:16px;padding-top:14px;font-size:13px;line-height:1.85}.greet{border-bottom:1px solid var(--line);background:var(--surface)}.greet__inner{flex-wrap:wrap;align-items:center;gap:clamp(30px,5vw,64px);padding-block:clamp(44px,5vw,72px);display:flex}.greet__head{flex:0 260px;min-width:220px}.greet__title{font-family:var(--serif);color:var(--ai);letter-spacing:.06em;margin-top:8px;font-size:clamp(24px,3vw,32px);font-weight:700}.greet__sign{font-family:var(--serif);color:var(--sub);letter-spacing:.08em;margin-top:14px;font-size:15px}.greet__text{min-width:280px;font-family:var(--serif);letter-spacing:.02em;color:var(--ink);flex:420px;font-size:clamp(17px,1.4vw,20px);line-height:2.15}.services{background:var(--surface);border:2px solid var(--ai);grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:1px;margin-top:40px;display:grid}.service{background:var(--surface);box-shadow:0 0 0 1px var(--line);align-items:baseline;gap:18px;padding:24px 26px;display:flex}.service__no{font-family:var(--serif);color:var(--seal);text-align:center;flex:none;width:34px;font-size:22px;font-weight:600;line-height:1.2}.service__title{border-left:1px solid var(--line-d);font-family:var(--serif);color:var(--ai);letter-spacing:.03em;flex:1;padding-left:18px;font-size:17.5px;font-weight:600;line-height:1.6}.services__note{color:var(--sub);text-align:center;margin-top:20px;font-size:15px}.flow{border-top:2px solid var(--ai);border-bottom:2px solid var(--ai);grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-top:44px;display:grid}.flow__item{border-right:1px solid var(--line);padding:26px 24px}.flow__item:last-child{border-right:none}.flow__num{align-items:baseline;gap:10px;display:flex}.flow__kanji{font-family:var(--serif);color:var(--ai);letter-spacing:.04em;font-size:30px;font-weight:600;line-height:1.2}.flow__title{font-family:var(--serif);color:var(--ai);letter-spacing:.04em;margin:14px 0 8px;font-size:19px;font-weight:600}.flow__text{color:var(--sub);font-size:14.5px;line-height:1.9}.postlist{background:var(--surface);border:2px solid var(--ai);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1px;margin-top:32px;display:grid}.post{background:var(--surface);box-shadow:0 0 0 1px var(--line);color:inherit;flex-direction:column;padding:26px;display:flex}.post:hover{background:var(--washi);color:inherit}.section--tint .post,.section--tint .postlist{background:var(--washi)}.section--tint .post:hover{background:var(--surface)}.post__meta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.post__date{font-family:var(--serif);letter-spacing:.08em;color:var(--brass);font-size:13.5px}.post__cat{letter-spacing:.08em;color:var(--sub);border:1px solid var(--line-d);padding:2px 10px;font-size:12px}.post__title{font-family:var(--serif);color:var(--ai);letter-spacing:.03em;margin-top:12px;font-size:19px;font-weight:600;line-height:1.6}.post__excerpt{color:var(--sub);margin-top:10px;font-size:14.5px;line-height:1.9}.post__more{font-family:var(--serif);color:var(--brass);align-items:center;gap:7px;margin-top:auto;padding-top:18px;font-size:14px;font-weight:600;display:inline-flex}.postlist__empty{border:2px solid var(--ai);background:var(--surface);text-align:center;font-family:var(--serif);color:var(--sub);margin-top:32px;padding:36px 26px}.page{border-bottom:none}.breadcrumb{color:var(--sub);flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:28px;font-size:13px;display:flex}.breadcrumb a{color:var(--brass)}.article{max-width:760px}.article__head{border-bottom:2px solid var(--ai);padding-bottom:22px}.article__title{font-family:var(--serif);color:var(--ai);letter-spacing:.04em;margin-top:14px;font-size:clamp(24px,3vw,33px);font-weight:700;line-height:1.6}.article__body{color:var(--ink);margin-top:32px;font-size:16.5px;line-height:2.05}.article__body>*+*{margin-top:1.4em}.article__body h2{font-family:var(--serif);color:var(--ai);letter-spacing:.04em;border-left:4px solid var(--brass);margin-top:2em;padding-left:14px;font-size:22px}.article__body h3{font-family:var(--serif);color:var(--ai);letter-spacing:.04em;margin-top:1.8em;font-size:19px}.article__body a{color:var(--brass);text-decoration:underline}.article__body img{margin-inline:auto}.article__body ul,.article__body ol{padding-left:1.4em}.article__body ul li{list-style:outside}.article__body ol li{list-style:decimal}.article__body blockquote{border-left:3px solid var(--line-d);color:var(--sub);padding:4px 0 4px 18px}.article__body table{border-collapse:collapse;width:100%}.article__body th,.article__body td{border:1px solid var(--line);text-align:left;padding:10px 14px}.article__foot{border-top:1px solid var(--line);margin-top:44px;padding-top:28px}.blog__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.blog__lead{color:var(--sub);margin-top:10px;font-size:15px}.blog__more{font-family:var(--serif);color:var(--ai);letter-spacing:.06em;align-items:center;gap:8px;font-size:15px;font-weight:600;display:inline-flex}.blogcard{border:2px solid var(--ai);background:var(--surface);color:inherit;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-top:28px;padding:clamp(24px,3vw,34px);display:flex}.blogcard:hover{background:var(--washi);color:inherit}.blogcard__main{flex:1;align-items:center;gap:20px;min-width:260px;display:flex}.blogcard__icon{color:var(--brass);flex:none}.blogcard__title{font-family:var(--serif);color:var(--ai);letter-spacing:.05em;font-size:clamp(19px,2vw,23px);font-weight:700}.blogcard__url{color:var(--sub);word-break:break-all;margin-top:4px;font-size:14px}.licenses{border:2px solid var(--ai);background:var(--washi);column-width:300px;column-gap:48px;margin-top:40px;padding:clamp(24px,3vw,40px)}.license{break-inside:avoid;border-bottom:1px solid var(--line);padding:12px 0}.license__name{align-items:baseline;gap:12px;display:flex}.license__mark{color:var(--seal);flex:none;font-size:14px;line-height:1.6}.license__label{font-family:var(--serif);color:var(--ai);letter-spacing:.03em;font-size:17px;font-weight:600}.license__subs{flex-direction:column;gap:5px;margin:8px 0 2px;padding-left:27px;display:flex}.license__subs li{color:var(--sub);letter-spacing:.02em;gap:9px;font-size:14.5px;display:flex}.license__subs li:before{content:"―";color:var(--brass)}.profile__inner{flex-wrap:wrap;gap:clamp(30px,5vw,56px);display:flex}.profile__head{flex:280px;min-width:250px}.profile__mark{background:var(--brass);width:44px;height:2px;margin-top:16px}.profile__lead{font-family:var(--serif);color:var(--sub);max-width:24em;margin-top:20px;font-size:16px;line-height:2.05}.profile__list{border-top:2px solid var(--ai);flex:440px;min-width:300px;margin:0}.profile__row{border-bottom:1px solid var(--line);gap:20px;padding:15px 0;display:flex}.profile__row dt{width:120px;font-family:var(--serif);color:var(--ai);letter-spacing:.06em;flex:none;font-weight:600}.profile__row dd{color:var(--ink);margin:0}.profile__row dd.is-break{word-break:break-all}.contact{background:var(--ai);color:#e6dcc7}.contact__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:36px;padding-block:clamp(52px,6vw,88px);display:flex}.contact__body{flex:440px;min-width:280px}.contact__eyebrow{font-family:var(--serif);letter-spacing:.24em;color:#c8a86a;font-size:13px;font-weight:600}.contact__title{font-family:var(--serif);color:#fff;letter-spacing:.06em;margin-top:14px;font-size:clamp(26px,3.6vw,40px);font-weight:700;line-height:1.55}.contact__text{color:#c7cfdd;max-width:34em;margin-top:18px;font-size:17px;line-height:2}.contact__card{flex:0 330px;min-width:260px}.contact__box{background:#1d3050;border:2px solid #35486b;padding:26px}.contact__label{color:#aeb9cf;font-size:13px}.contact__tel{font-family:var(--serif);letter-spacing:.02em;color:#fff;margin-top:4px;font-size:28px;font-weight:700}.contact__mail{font-family:var(--serif);color:#fff;word-break:break-all;font-size:16px;font-weight:600}.contact__mail:hover{color:#e5c483}.contact__btn{width:100%;margin-top:18px;padding:15px;font-size:17px}.footer{background:var(--washi);border-top:6px solid var(--ai)}.footer__inner{flex-wrap:wrap;justify-content:space-between;gap:40px;padding-block:clamp(44px,5vw,64px);display:flex}.footer__brand{flex:320px;min-width:250px}.footer__logo{align-items:center;gap:13px;display:flex}.footer__seal{border:2px solid var(--seal);width:42px;height:42px;font-family:var(--serif);color:var(--seal);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex}.footer__en{letter-spacing:.32em;color:var(--brass);font-size:10px;font-weight:700}.footer__ja{font-family:var(--serif);color:var(--ai);letter-spacing:.08em;font-size:20px;font-weight:700}.footer__address{font-family:var(--serif);color:var(--sub);max-width:26em;margin-top:16px;font-size:14px;line-height:1.95}.footer__cols{flex-wrap:wrap;gap:44px;display:flex}.footer__coltitle{font-family:var(--serif);letter-spacing:.16em;color:var(--brass);margin-bottom:14px;font-size:12px;font-weight:600}.footer__list{flex-direction:column;gap:11px;font-size:15px;display:flex}.footer__copy{border-top:1px solid var(--line-d)}.footer__copy p{font-family:var(--serif);color:var(--sub);letter-spacing:.06em;padding-block:18px;font-size:12.5px}@media (width<=1040px){.nav,.header__inner>.btn{display:none}.burger{margin-left:auto;display:inline-flex}.mnav{display:flex}.deskcard,.contact__card{flex:100%;min-width:0}}@media (width<=1140px){.hero__vertical{display:none}}@media (width<=1180px){.header__inner{gap:16px}.nav{gap:18px;font-size:14.5px}.header__inner>.btn--sm{padding:11px 18px;font-size:14px}}@media (width<=880px){.topbar{display:none}.logo__ja{font-size:18px}.flow__item{border-right:none;border-bottom:1px solid var(--line)}.flow__item:last-child{border-bottom:none}.profile__row{flex-direction:column;gap:4px}.profile__row dt{width:auto}}@media (width<=520px){.header__inner{gap:12px}.services{grid-template-columns:1fr}.logo__seal{width:40px;height:40px;font-size:18px}.logo__ja{letter-spacing:.06em;font-size:16px}.hero__actions .btn,.blogcard .btn,.blogcard__badge{width:100%}}@media (width<=360px){.hero__title{font-size:26px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.mnav{transition:none}}@media print{.header,.topbar,.burger,.mnav{display:none!important}body{background:#fff}.section{break-inside:avoid}}
