:root{--c-ink: #201C16;--c-ink-sub: #5C5647;--c-paper: #FFFFFF;--c-paper-2: #F6F3EC;--c-brand: #362B1C;--c-brand-dark: #241C11;--c-accent: #8A6A26;--c-accent-on-dark: #D9BE84;--c-line: #E6E0D2;--c-line-form: #8A8577;--font-heading: "Zen Old Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;--font-body: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;--fs-base: 16px;--lh-base: 1.85;--w-max: 1200px;--w-text: 40rem;--sp-section: clamp(4rem, 9vw, 8rem);--radius: 2px}*,*:before,*:after{box-sizing:border-box}html{font-size:var(--fs-base);scroll-behavior:smooth;overflow-x:hidden}body{margin:0;background:var(--c-paper);color:var(--c-ink);font-family:var(--font-body);line-height:var(--lh-base);font-feature-settings:"palt" 1;text-underline-offset:.25em;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:var(--c-brand)}:focus-visible{outline:3px solid var(--c-accent);outline-offset:3px}.cta :focus-visible,.footer :focus-visible{outline-color:var(--c-accent-on-dark)}h1,h2,h3{font-family:var(--font-heading);font-weight:600;line-height:1.5;margin:0;letter-spacing:.04em;word-break:keep-all;overflow-wrap:break-word}p{margin:0 0 1.2em}p:last-child{margin-bottom:0}.container{width:100%;max-width:var(--w-max);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;top:0;left:50%;transform:translate(-50%,-120%);background:var(--c-brand);color:#fff;padding:.75rem 1.5rem;z-index:200;text-decoration:none;border-radius:0 0 var(--radius) var(--radius)}.skip-link:focus{transform:translate(-50%);color:#fff}.section{padding-block:var(--sp-section)}.section--alt{background:var(--c-paper-2)}.section__kicker{display:block;font-family:var(--font-body);font-size:.78rem;letter-spacing:.28em;color:var(--c-accent);margin-bottom:1rem}.section__title{font-size:clamp(1.5rem,3.6vw,2rem);letter-spacing:.06em}.section__lead{margin-top:1rem;max-width:var(--w-text);color:var(--c-ink-sub)}.btn{display:inline-flex;align-items:center;gap:.6em;min-height:48px;padding:.9rem 2rem;border-radius:var(--radius);text-decoration:none;font-size:.95rem;letter-spacing:.06em;transition:background-color .2s,color .2s,border-color .2s}.btn--primary{background:var(--c-brand);color:#fff}.btn--primary:hover{background:var(--c-brand-dark)}.btn--outline{background:transparent;color:var(--c-brand);border:1px solid var(--c-brand)}.btn--outline:hover{background:var(--c-brand);color:#fff}.btn-row{display:flex;flex-wrap:wrap;gap:1rem}.header{position:sticky;top:0;z-index:100;background:#fffffff0;backdrop-filter:blur(6px);border-bottom:1px solid var(--c-line)}.header__inner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:76px}.brand{text-decoration:none;color:var(--c-ink);line-height:1.3;min-width:0;overflow:hidden}.brand__name{font-family:var(--font-heading);font-size:1.1rem;font-weight:600;letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand__reading{display:block;font-size:.62rem;letter-spacing:.2em;color:var(--c-ink-sub);margin-top:.15em}.nav{display:none}.nav ul{display:flex;gap:1.75rem;list-style:none;margin:0;padding:0}.nav a{text-decoration:none;color:var(--c-ink);font-size:.88rem;letter-spacing:.04em}.nav a:hover{color:var(--c-accent)}.header__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.header__tel{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 .5rem;background:var(--c-brand);color:#fff;text-decoration:none;border-radius:var(--radius)}.header__tel svg{flex-shrink:0}.menu-toggle{position:relative}.menu-toggle summary{list-style:none;cursor:pointer;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--c-line-form);border-radius:var(--radius)}.menu-toggle summary::-webkit-details-marker{display:none}.menu-toggle[open] .menu-toggle__label--open{display:none}.menu-toggle:not([open]) .menu-toggle__label--close{display:none}.menu-toggle__panel{position:absolute;right:0;top:calc(100% + .5rem);background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);padding:1rem;min-width:220px;box-shadow:0 12px 28px #201c161f}.menu-toggle__panel ul{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.menu-toggle__panel a{text-decoration:none;color:var(--c-ink);font-size:.92rem}.menu-toggle__panel a:hover{color:var(--c-accent)}@media(min-width:860px){.nav{display:block}.menu-toggle{display:none}}.photo{position:relative;display:flex;align-items:center;justify-content:center;background:var(--c-paper-2);border:1px solid var(--c-line);color:var(--c-ink-sub);overflow:hidden}.photo__label{font-family:var(--font-body);font-size:.78rem;letter-spacing:.14em}.photo--hero{aspect-ratio:16/10}.photo--wide{aspect-ratio:4/3}.photo--square{aspect-ratio:1/1}.hero{padding-block:clamp(3rem,8vw,6rem) var(--sp-section)}.hero__grid{display:grid;gap:2.5rem;align-items:center}.hero__kicker{display:block;font-size:.8rem;letter-spacing:.3em;color:var(--c-accent);margin-bottom:1rem}.hero__title{font-size:clamp(1.9rem,5vw,3rem);line-height:1.55;letter-spacing:.05em;animation:fade-in .3s ease-out both}.hero__sub{margin-top:1.25rem;font-size:1.05rem;color:var(--c-ink-sub);animation:fade-in .3s ease-out .05s both}.hero__photo{animation:fade-in .3s ease-out both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media(min-width:860px){.hero__grid{grid-template-columns:1.05fr 1fr}}.pullquote{max-width:var(--w-text);font-family:var(--font-heading);font-size:clamp(1.2rem,2.6vw,1.6rem);line-height:1.9;color:var(--c-ink);padding-left:1.5rem;border-left:3px solid var(--c-accent)}.pullquote footer{margin-top:1.25rem;font-family:var(--font-body);font-size:.85rem;color:var(--c-ink-sub)}.pagehead{padding-block:clamp(3.5rem,8vw,5.5rem) clamp(2rem,5vw,3rem);background:var(--c-paper-2);border-bottom:1px solid var(--c-line)}.pagehead__title{font-size:clamp(1.8rem,4.4vw,2.6rem);letter-spacing:.05em;animation:fade-in .3s ease-out both}.pagehead__lead{margin-top:1rem;max-width:var(--w-text);color:var(--c-ink-sub)}.data-table{margin-top:2rem;border-top:1px solid var(--c-line)}.data-table .row{display:grid;grid-template-columns:10em 1fr;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--c-line);font-size:.95rem}.data-table dt{color:var(--c-ink-sub)}.data-table dd{margin:0}@media(max-width:640px){.data-table .row{grid-template-columns:1fr;gap:.35rem}}.contact-categories{display:grid;gap:1.25rem;margin-top:2rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.contact-category{padding:1.5rem;border:1px solid var(--c-line);border-radius:var(--radius);text-decoration:none;color:var(--c-ink);display:block}.contact-category:hover{border-color:var(--c-brand)}.contact-category h3{font-size:1rem;letter-spacing:.03em}.contact-category p{margin-top:.5rem;font-size:.85rem;color:var(--c-ink-sub)}.form{margin-top:2.5rem;max-width:36rem;display:grid;gap:1.5rem}.form .field{display:grid;gap:.5rem}.form label{font-size:.88rem;color:var(--c-ink)}.form .required{color:var(--c-tel,#9E3B2E);font-size:.78rem;margin-left:.4em}.form input,.form select,.form textarea{font:inherit;padding:.85rem 1rem;min-height:48px;border:1px solid var(--c-line-form);border-radius:var(--radius);background:#fff;color:var(--c-ink)}.form textarea{min-height:160px;resize:vertical}.form input:focus-visible,.form select:focus-visible,.form textarea:focus-visible{outline:3px solid var(--c-accent);outline-offset:2px}.form__note{font-size:.82rem;color:var(--c-ink-sub)}.philosophy{max-width:var(--w-text);margin-top:2rem}.philosophy p{color:var(--c-ink-sub)}.principles{list-style:none;margin:2.5rem 0 0;padding:1.75rem 2rem;display:grid;gap:.85rem;background:var(--c-paper);border:1px solid var(--c-line);border-radius:var(--radius);max-width:var(--w-text)}.principles li{font-family:var(--font-heading);font-size:1rem;letter-spacing:.06em;color:var(--c-ink)}.business-grid{display:grid;gap:1.5rem;margin-top:2.5rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.business-card{padding:2rem 1.75rem;background:var(--c-paper);border:1px solid var(--c-line);border-radius:var(--radius)}.business-card__num{display:block;font-family:var(--font-heading);font-size:.85rem;color:var(--c-accent);letter-spacing:.1em;margin-bottom:1rem}.business-card h2,.business-card h3{font-size:1.15rem;letter-spacing:.04em}.business-card p{margin-top:.6rem;color:var(--c-ink-sub);font-size:.92rem}.business-card__since{font-size:.8rem;color:var(--c-ink-sub)}.business-photo{margin-top:2.5rem}.fact-list{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--c-line)}.fact-list ul{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}.fact-list li{padding-left:1.4em;position:relative;color:var(--c-ink-sub);font-size:.95rem}.fact-list li:before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;background:var(--c-accent);border-radius:50%}.about-grid{display:grid;gap:3rem}.about-copy p{color:var(--c-ink-sub)}.about-copy p:first-of-type{font-family:var(--font-heading);font-size:1.2rem;color:var(--c-ink);margin-bottom:1.5rem}.info-panel{margin-top:2rem;padding:1.75rem;background:var(--c-paper-2);border-radius:var(--radius)}.info-panel dl{margin:0;display:grid;gap:.9rem}.info-panel .row{display:grid;grid-template-columns:6.5em 1fr;gap:.5rem;font-size:.92rem}.info-panel dt{color:var(--c-ink-sub)}.info-panel dd{margin:0}@media(min-width:860px){.about-grid{grid-template-columns:1fr 1fr}}.message__body{max-width:var(--w-text);margin-top:2.5rem}.message__body p{color:var(--c-ink-sub)}.message__signature{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--c-line);font-size:.95rem;color:var(--c-ink)}.message__media{margin-top:2.5rem}.news-empty{margin-top:2rem;padding:2.5rem;text-align:center;color:var(--c-ink-sub);border:1px dashed var(--c-line);border-radius:var(--radius)}.news-list{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:2rem}.news-list li{display:flex;flex-direction:column;gap:.5rem;padding-bottom:2rem;border-bottom:1px solid var(--c-line);font-size:.94rem}.news-list li:last-child{padding-bottom:0;border-bottom:none}.news-list time{color:var(--c-ink-sub);white-space:nowrap}.news-item__title{font-family:var(--font-heading);font-size:1.05rem;letter-spacing:.03em;color:var(--c-ink)}.news-item__body{color:var(--c-ink-sub);max-width:var(--w-text)}@media(min-width:640px){.news-list li{flex-direction:row;gap:1.5rem}.news-list time{padding-top:.15rem}}.cta{background:var(--c-brand);color:#fff;text-align:center}.cta .section__kicker{color:#d9be84}.cta .section__title{color:#fff}.cta__note{margin-top:1rem;color:#d8d2c4}.cta .btn-row{justify-content:center;margin-top:2rem}.cta .btn--outline{color:#fff;border-color:#ffffff80}.cta .btn--outline:hover,.cta .btn--primary{background:#fff;color:var(--c-brand)}.cta .btn--primary:hover{background:#d9be84}.cta__hours{margin-top:2rem;font-size:.85rem;color:#c9c2b2}.footer{background:var(--c-brand-dark);color:#c9c4b7;padding-block:4rem 3rem;font-size:.88rem}.footer__grid{display:grid;gap:2.5rem}.footer__name{font-family:var(--font-heading);font-size:1.15rem;color:#fff;letter-spacing:.05em}.footer__reading{display:block;font-size:.68rem;letter-spacing:.18em;color:#a79e8b;margin-top:.3em}.footer address{font-style:normal;margin-top:1rem;line-height:1.9}.footer nav ul{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}.footer nav a{color:#c9c4b7;text-decoration:none}.footer nav a:hover{color:#fff}.footer__bottom{margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12);font-size:.76rem;color:#8f8874}@media(min-width:860px){.footer__grid{grid-template-columns:1.2fr 1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
