:root{--c-ink:#2C1810;--c-wood:#8B5A2B;--c-wood-dark:#6B4422;--c-sand:#D4B896;--c-cream:#F5EFE6;--c-paper:#FBF7F1;--c-tatami:#3A5F3A;--c-tatami-dark:#2A4A2A;--c-white:#FFFFFF;--c-line:rgba(44,24,16,.14);--c-muted:#7A6A5C;--c-bg:#FBF7F1;--ff-h:'Shippori Mincho','Noto Serif JP',serif;--ff-b:'Noto Sans JP',sans-serif;--fs-xs:.78rem;--fs-sm:.88rem;--fs-base:1rem;--fs-lg:1.125rem;--fs-xl:clamp(1.25rem,1.6vw,1.5rem);--fs-2xl:clamp(1.6rem,2.4vw,2.1rem);--fs-3xl:clamp(2rem,3.6vw,3rem);--fs-4xl:clamp(2.6rem,5.4vw,4.4rem);--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:4rem;--sp-9:6rem;--r-sm:4px;--r-md:8px;--r-lg:14px;--r-xl:22px;--sh-sm:0 1px 2px rgba(44,24,16,.06),0 1px 1px rgba(44,24,16,.04);--sh-md:0 6px 18px -6px rgba(44,24,16,.18),0 2px 6px rgba(44,24,16,.06);--sh-lg:0 24px 60px -20px rgba(44,24,16,.28),0 8px 20px -8px rgba(44,24,16,.12);--ease:cubic-bezier(.2,.7,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);--header-h:84px}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--ff-b);font-size:var(--fs-base);line-height:1.75;color:var(--c-ink);background:var(--c-bg);font-feature-settings:"palt";-webkit-font-smoothing:antialiased}body.no-scroll{overflow:hidden}img,svg,video{max-width:100%;display:block;height:auto}a{color:var(--c-wood-dark);text-decoration:none;transition:color .25s var(--ease)}a:hover{color:var(--c-ink)}:focus-visible{outline:2px solid var(--c-tatami);outline-offset:3px;border-radius:2px}h1,h2,h3,h4,h5{font-family:var(--ff-h);font-weight:600;line-height:1.35;color:var(--c-ink);letter-spacing:.02em;margin:0 0 var(--sp-4)}h1{font-size:var(--fs-4xl);line-height:1.2;letter-spacing:.04em}h2{font-size:var(--fs-3xl);line-height:1.25}h3{font-size:var(--fs-2xl)}h4{font-size:var(--fs-xl)}p{margin:0 0 var(--sp-4)}.container{width:100%;max-width:1240px;margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}.container-narrow{max-width:880px;margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}.section{padding:clamp(3.5rem,8vw,6rem) 0;position:relative}.section-tight{padding:clamp(2.5rem,5vw,4rem) 0}.section-dark{background:var(--c-ink);color:var(--c-cream)}.section-dark h1,.section-dark h2,.section-dark h3,.section-dark h4{color:var(--c-paper)}.section-cream{background:var(--c-cream)}.section-paper{background:var(--c-paper)}.bg-seigaiha{background-image:url('./assets/illustrations/pattern-seigaiha.svg');background-size:240px;background-repeat:repeat}.bg-sashiko{background-image:url('./assets/illustrations/pattern-sashiko.svg');background-size:180px;background-repeat:repeat}.bg-asanoha{background-image:url('./assets/illustrations/pattern-asanoha.svg');background-size:200px;background-repeat:repeat}.bg-pattern{position:relative}.bg-pattern::before{content:"";position:absolute;inset:0;opacity:.08;pointer-events:none;z-index:0}.bg-pattern>*{position:relative;z-index:1}.bg-pattern.bg-seigaiha::before{background-image:url('./assets/illustrations/pattern-seigaiha.svg');background-size:240px;background-repeat:repeat}.bg-pattern.bg-sashiko::before{background-image:url('./assets/illustrations/pattern-sashiko.svg');background-size:180px;background-repeat:repeat}.bg-pattern.bg-asanoha::before{background-image:url('./assets/illustrations/pattern-asanoha.svg');background-size:200px;background-repeat:repeat}.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--ff-b);font-size:var(--fs-xs);font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:var(--c-wood);margin-bottom:var(--sp-4)}.eyebrow::before{content:"";width:28px;height:1px;background:var(--c-wood)}.section-title{position:relative;margin-bottom:var(--sp-3)}.section-lead{font-size:var(--fs-lg);color:var(--c-muted);max-width:60ch;margin-bottom:var(--sp-7)}.section-head{margin-bottom:clamp(2rem,4vw,3rem)}.divider{width:100%;height:32px;background:url('./assets/illustrations/divider-kumiko.svg') center/auto 100% repeat-x;opacity:.5;margin:var(--sp-6) 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.95rem 1.8rem;font-family:var(--ff-b);font-size:var(--fs-sm);font-weight:500;letter-spacing:.08em;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;transition:all .3s var(--ease);text-decoration:none;line-height:1;white-space:nowrap}.btn i{font-size:.95em}.btn-primary{background:var(--c-ink);color:var(--c-paper);border-color:var(--c-ink)}.btn-primary:hover{background:var(--c-wood-dark);border-color:var(--c-wood-dark);color:var(--c-paper);transform:translateY(-2px);box-shadow:var(--sh-md)}.btn-secondary{background:transparent;color:var(--c-ink);border-color:var(--c-ink)}.btn-secondary:hover{background:var(--c-ink);color:var(--c-paper)}.btn-accent{background:var(--c-tatami);color:var(--c-paper);border-color:var(--c-tatami)}.btn-accent:hover{background:var(--c-tatami-dark);border-color:var(--c-tatami-dark);color:var(--c-paper);transform:translateY(-2px);box-shadow:var(--sh-md)}.btn-ghost{background:transparent;color:var(--c-paper);border-color:rgba(245,239,230,.4)}.btn-ghost:hover{background:rgba(245,239,230,.1);border-color:var(--c-paper)}.btn-lg{padding:1.1rem 2.2rem;font-size:var(--fs-base)}.grid{display:grid;gap:var(--sp-5)}.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}@media(min-width:768px){.grid{gap:var(--sp-6)}}.card{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r-md);overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease);display:flex;flex-direction:column}.card:hover{transform:translateY(-4px);box-shadow:var(--sh-lg)}.card-media{aspect-ratio:4/3;background:var(--c-sand);overflow:hidden;position:relative}.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.card:hover .card-media img{transform:scale(1.06)}.card-body{padding:var(--sp-5);display:flex;flex-direction:column;flex:1;gap:.5rem}.card-title{font-family:var(--ff-h);font-size:var(--fs-xl);margin:0 0 .25rem}.card-text{color:var(--c-muted);font-size:var(--fs-sm);margin:0}.card-icon{width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;background:var(--c-cream);border-radius:50%;margin-bottom:var(--sp-3)}.card-icon img{width:32px;height:32px}.service-card{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r-md);padding:var(--sp-6);transition:all .4s var(--ease);position:relative;overflow:hidden}.service-card::after{content:"";position:absolute;left:0;top:0;width:3px;height:0;background:var(--c-tatami);transition:height .4s var(--ease)}.service-card:hover{transform:translateY(-4px);box-shadow:var(--sh-lg);border-color:transparent}.service-card:hover::after{height:100%}.hero{position:relative;min-height:clamp(520px,80vh,760px);display:flex;align-items:center;color:var(--c-paper);overflow:hidden;background:var(--c-ink)}.hero-media{position:absolute;inset:0;z-index:0}.hero-media img,.hero-media video{width:100%;height:100%;object-fit:cover}.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(44,24,16,.55) 0%,rgba(44,24,16,.35) 40%,rgba(44,24,16,.75) 100%)}.hero-inner{position:relative;z-index:1;padding:calc(var(--header-h) + 3rem) 0 var(--sp-8);width:100%}.hero h1{color:var(--c-paper);margin-bottom:var(--sp-5);text-shadow:0 2px 30px rgba(0,0,0,.3)}.hero-lead{font-size:clamp(1.05rem,1.6vw,1.25rem);max-width:38ch;margin-bottom:var(--sp-6);color:rgba(245,239,230,.92)}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.hero-tagline{font-family:var(--ff-h);font-size:var(--fs-lg);letter-spacing:.2em;color:var(--c-sand);margin-bottom:var(--sp-3)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-5);padding:var(--sp-6) 0}.stat{text-align:center;padding:var(--sp-4)}.stat-num{display:block;font-family:var(--ff-h);font-size:clamp(2.4rem,5vw,3.6rem);font-weight:700;color:var(--c-wood);line-height:1;margin-bottom:.5rem}.stat-label{font-size:var(--fs-sm);color:var(--c-muted);letter-spacing:.1em}.section-dark .stat-num{color:var(--c-sand)}.section-dark .stat-label{color:rgba(245,239,230,.7)}.testimonial{background:var(--c-white);border-left:4px solid var(--c-tatami);padding:var(--sp-6);border-radius:0 var(--r-md) var(--r-md) 0;box-shadow:var(--sh-sm);position:relative}.testimonial::before{content:"〝";position:absolute;top:.2rem;right:1rem;font-family:var(--ff-h);font-size:5rem;color:var(--c-sand);opacity:.5;line-height:1}.testimonial-quote{font-family:var(--ff-h);font-size:var(--fs-lg);line-height:1.8;margin-bottom:var(--sp-4);color:var(--c-ink)}.testimonial-author{display:flex;align-items:center;gap:var(--sp-3)}.testimonial-avatar{width:48px;height:48px;border-radius:50%;background:var(--c-sand);overflow:hidden;flex-shrink:0}.testimonial-name{font-weight:500;color:var(--c-ink)}.testimonial-meta{font-size:var(--fs-xs);color:var(--c-muted)}.slideshow{position:relative;width:100%;overflow:hidden;border-radius:var(--r-md);background:var(--c-ink)}.slides{position:relative;width:100%;aspect-ratio:16/9}.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .9s var(--ease);display:flex;align-items:center;justify-content:center}.slide.is-active{opacity:1;visibility:visible;z-index:1}.slide img{width:100%;height:100%;object-fit:cover}.slide-caption{position:absolute;left:0;right:0;bottom:0;padding:var(--sp-6);background:linear-gradient(to top,rgba(44,24,16,.85),transparent);color:var(--c-paper)}.slide-caption h3{color:var(--c-paper);margin:0 0 .25rem}.slide-caption p{margin:0;font-size:var(--fs-sm);opacity:.9}.slide-prev,.slide-next{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(251,247,241,.92);border:none;color:var(--c-ink);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.1rem;z-index:3;transition:all .25s var(--ease)}.slide-prev:hover,.slide-next:hover{background:var(--c-paper);transform:translateY(-50%) scale(1.06)}.slide-prev{left:1rem}.slide-next{right:1rem}.slide-dots{position:absolute;bottom:1rem;left:50%;transform:translateX(-50%);display:flex;gap:.5rem;z-index:3}.slide-dots button{width:10px;height:10px;border-radius:50%;border:1px solid rgba(251,247,241,.9);background:transparent;cursor:pointer;padding:0;transition:all .25s var(--ease)}.slide-dots button.is-active{background:var(--c-paper);transform:scale(1.2)}@media(max-width:600px){.slide-prev,.slide-next{width:38px;height:38px}.slide-caption{padding:var(--sp-4)}}.form{display:grid;gap:var(--sp-4);background:var(--c-white);padding:clamp(1.5rem,4vw,2.5rem);border-radius:var(--r-md);box-shadow:var(--sh-sm);border:1px solid var(--c-line)}.form-row{display:grid;gap:var(--sp-4)}@media(min-width:640px){.form-row.cols-2{grid-template-columns:1fr 1fr}}.field{display:flex;flex-direction:column;gap:.4rem}.field label{font-size:var(--fs-sm);font-weight:500;color:var(--c-ink)}.field .req{color:#B8442C;margin-left:.25rem}.field input,.field select,.field textarea{font-family:inherit;font-size:var(--fs-base);padding:.85rem 1rem;border:1px solid var(--c-line);border-radius:var(--r-sm);background:var(--c-paper);color:var(--c-ink);transition:border-color .2s var(--ease),box-shadow .2s var(--ease);width:100%}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--c-tatami);box-shadow:0 0 0 3px rgba(58,95,58,.15)}.field textarea{min-height:140px;resize:vertical}.form-actions{margin-top:var(--sp-2)}.map-embed{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--sh-md);background:var(--c-sand)}.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-embed{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--r-md);overflow:hidden;background:var(--c-ink);box-shadow:var(--sh-md)}.video-embed iframe,.video-embed video{position:absolute;inset:0;width:100%;height:100%;border:0}.bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.bg-video-wrap{position:relative;overflow:hidden}.bg-video-wrap>.bg-video+*{position:relative;z-index:1}.sns{display:inline-flex;gap:.6rem;flex-wrap:wrap}.sns a{width:42px;height:42px;border-radius:50%;background:transparent;border:1px solid rgba(245,239,230,.3);color:var(--c-paper);display:inline-flex;align-items:center;justify-content:center;font-size:1rem;transition:all .3s var(--ease)}.sns a:hover{background:var(--c-paper);color:var(--c-ink);transform:translateY(-2px);border-color:var(--c-paper)}.sns.sns-light a{border-color:var(--c-line);color:var(--c-ink)}.sns.sns-light a:hover{background:var(--c-ink);color:var(--c-paper)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}.reveal.is-visible{opacity:1;transform:none}.reveal.delay-1{transition-delay:.1s}.reveal.delay-2{transition-delay:.2s}.reveal.delay-3{transition-delay:.3s}.reveal.delay-4{transition-delay:.4s}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(251,247,241,.92);backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid transparent;transition:padding .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}.site-header.is-scrolled{background:rgba(251,247,241,.98);border-bottom-color:var(--c-line);box-shadow:0 4px 18px -10px rgba(44,24,16,.18)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:1.1rem clamp(1rem,4vw,2rem);max-width:1320px;margin:0 auto;transition:padding .3s var(--ease)}.site-header.is-scrolled .header-inner{padding-top:.7rem;padding-bottom:.7rem}.brand{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--c-ink);line-height:1.1}.brand-mark{width:38px;height:38px;background:var(--c-ink);color:var(--c-sand);display:inline-flex;align-items:center;justify-content:center;font-family:var(--ff-h);font-weight:700;border-radius:4px;flex-shrink:0}.brand-text{display:flex;flex-direction:column}.brand-name{font-family:var(--ff-h);font-size:1.1rem;font-weight:700;letter-spacing:.04em}.brand-tag{font-size:.7rem;color:var(--c-muted);letter-spacing:.15em}.nav-primary{display:none}@media(min-width:1024px){.nav-primary{display:flex;align-items:center;gap:.2rem}}.nav-primary a{position:relative;padding:.5rem .9rem;font-size:.86rem;font-weight:500;color:var(--c-ink);letter-spacing:.05em}.nav-primary a::after{content:"";position:absolute;left:.9rem;right:.9rem;bottom:.2rem;height:1px;background:var(--c-wood);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.nav-primary a:hover::after,.nav-primary a.is-current::after{transform:scaleX(1)}.header-cta{display:none;align-items:center;gap:.8rem}@media(min-width:1024px){.header-cta{display:inline-flex}}.header-phone{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--ff-h);font-size:1.05rem;font-weight:700;color:var(--c-ink)}.header-phone i{color:var(--c-tatami);font-size:.95em}.menu-toggle{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:44px;height:44px;background:transparent;border:1px solid var(--c-line);border-radius:4px;cursor:pointer;padding:0}@media(min-width:1024px){.menu-toggle{display:none}}.menu-toggle span{display:block;width:20px;height:1.5px;background:var(--c-ink);transition:transform .3s var(--ease),opacity .2s var(--ease)}.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}.mobile-menu{position:fixed;top:var(--header-h);left:0;right:0;bottom:0;max-height:calc(100dvh - var(--header-h));overflow-y:auto;background:var(--c-paper);background-image:url('./assets/illustrations/pattern-seigaiha.svg');background-size:240px;background-blend-mode:soft-light;z-index:99;padding:var(--sp-5) clamp(1rem,4vw,2rem) var(--sp-7);transform:translateY(-12px);opacity:0;visibility:hidden;transition:opacity .3s var(--ease),transform .35s var(--ease),visibility .3s}.mobile-menu.is-open{transform:translateY(0);opacity:1;visibility:visible}.mobile-menu ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.2rem}.mobile-menu li{border-bottom:1px solid var(--c-line)}.mobile-menu a{display:flex;align-items:center;justify-content:space-between;padding:1.1rem .25rem;font-family:var(--ff-h);font-size:1.05rem;color:var(--c-ink)}.mobile-menu a::after{content:"→";color:var(--c-wood);opacity:.5;font-size:.9em}.mobile-cta{margin-top:var(--sp-5);display:flex;flex-direction:column;gap:.8rem}.mobile-phone{text-align:center;padding:var(--sp-4);background:var(--c-cream);border-radius:var(--r-md)}.mobile-phone strong{display:block;font-family:var(--ff-h);font-size:1.5rem;color:var(--c-ink);letter-spacing:.05em}.mobile-phone small{color:var(--c-muted);font-size:var(--fs-xs)}.menu-backdrop{position:fixed;inset:0;background:rgba(44,24,16,.45);opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s;z-index:98}.menu-backdrop.is-open{opacity:1;visibility:visible}main{padding-top:var(--header-h)}.site-footer{background:var(--c-ink);color:rgba(245,239,230,.85);padding:clamp(3rem,6vw,4.5rem) 0 0;position:relative;overflow:hidden}.site-footer::before{content:"";position:absolute;inset:0;background-image:url('./assets/illustrations/pattern-asanoha.svg');background-size:200px;opacity:.05;pointer-events:none}.site-footer>*{position:relative;z-index:1}.footer-grid{display:grid;gap:var(--sp-6);grid-template-columns:1fr;margin-bottom:var(--sp-7)}@media(min-width:768px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr}}.footer-brand .brand-mark{background:var(--c-sand);color:var(--c-ink)}.footer-brand .brand-name,.footer-brand .brand-tag{color:var(--c-paper)}.footer-brand p{color:rgba(245,239,230,.75);font-size:var(--fs-sm);margin-top:var(--sp-4);max-width:36ch}.footer h4{color:var(--c-paper);font-size:1rem;letter-spacing:.1em;margin-bottom:var(--sp-4);position:relative;padding-bottom:.6rem}.footer h4::after{content:"";position:absolute;left:0;bottom:0;width:24px;height:1px;background:var(--c-wood)}.footer-nav{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.55rem}.footer-nav a{color:rgba(245,239,230,.75);font-size:var(--fs-sm)}.footer-nav a:hover{color:var(--c-paper);padding-left:6px}.footer-contact{font-style:normal;font-size:var(--fs-sm);color:rgba(245,239,230,.8);line-height:1.9}.footer-contact strong{display:block;color:var(--c-paper);font-family:var(--ff-h);font-size:1.4rem;letter-spacing:.05em;margin:.4rem 0;font-weight:700}.footer-contact i{color:var(--c-sand);width:16px;margin-right:.5rem}.footer-bottom{border-top:1px solid rgba(245,239,230,.1);padding:var(--sp-5) 0;display:flex;flex-direction:column;gap:var(--sp-3);align-items:center;justify-content:space-between;font-size:var(--fs-xs);color:rgba(245,239,230,.55)}@media(min-width:768px){.footer-bottom{flex-direction:row}}.back-to-top{position:fixed;right:1.2rem;bottom:1.2rem;width:46px;height:46px;border-radius:50%;background:var(--c-ink);color:var(--c-paper);border:1px solid var(--c-wood);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(8px);transition:all .3s var(--ease);z-index:50;box-shadow:var(--sh-md)}.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}.back-to-top:hover{background:var(--c-wood-dark);transform:translateY(-3px)}.text-center{text-align:center}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mt-5{margin-top:var(--sp-5)}.mt-6{margin-top:var(--sp-6)}.mt-7{margin-top:var(--sp-7)}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.items-center{align-items:center}.justify-center{justify-content:center}@media(max-width:1023px){:root{--header-h:72px}}@media(max-width:480px){:root{--header-h:64px}.header-inner{padding-top:.7rem;padding-bottom:.7rem}.brand-mark{width:34px;height:34px;font-size:.95rem}.brand-name{font-size:.98rem}.brand-tag{font-size:.62rem}}