:root{--kiji: #F5F0E8;--sumi: #1A1A1A;--sumi-light: #4A4440;--kin: #C8A84B;--kin-light: #E8D49A;--white: #FAFAF8;--rs-inset: max(1.5rem, calc((100% - 1080px)/2) )}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--kiji);color:var(--sumi);font-family:"Noto Serif JP",Yu Mincho,游明朝,serif;font-weight:300;line-height:2;overflow-x:hidden}section{padding:clamp(6rem,11vw,9rem) var(--rs-inset)}.section-label{display:block;width:fit-content;margin:0 auto 3rem;font-family:Cormorant Garamond,serif;font-size:.82rem;letter-spacing:.24em;color:var(--white);background:var(--sumi);padding:.5em 1.35em;border-radius:3px;text-transform:uppercase}.kyoto .section-label{background:none;color:var(--kin);padding:0;border-radius:0}.section-title{font-size:clamp(1.7rem,3.6vw,2.8rem);font-weight:400;letter-spacing:.05em;line-height:1.5;margin-bottom:3rem;text-align:center;word-break:keep-all;overflow-wrap:normal;text-wrap:balance}.hero{min-height:calc(100vh - 80px);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:4rem var(--rs-inset);position:relative;overflow:hidden}.hero:before{content:"羅";position:absolute;right:-2rem;top:50%;transform:translateY(-50%);font-size:40vw;color:transparent;-webkit-text-stroke:1px rgba(26,26,26,.04);font-weight:400;pointer-events:none;line-height:1}.hero-title{font-size:clamp(2.6rem,6.5vw,4.6rem);font-weight:400;letter-spacing:.04em;line-height:1.3;margin-bottom:1rem;word-break:keep-all;overflow-wrap:normal;text-wrap:balance;opacity:0;animation:fadeUp 1.4s ease .3s forwards}.hero-english{font-family:Cormorant Garamond,serif;font-style:italic;font-size:clamp(1rem,2.5vw,1.6rem);letter-spacing:.15em;color:var(--sumi-light);margin-bottom:3rem;font-weight:300;opacity:0;animation:fadeUp 1.4s ease .5s forwards}.hero-sub{font-size:clamp(.9rem,1.8vw,1.2rem);letter-spacing:.15em;line-height:2.2;color:var(--sumi-light);max-width:680px;margin:0 auto 4rem;opacity:0;animation:fadeUp 1.4s ease .7s forwards}.hero-line{width:60px;height:1px;background:var(--kin);margin:0 auto 2rem;opacity:0;animation:fadeIn 1.4s ease 1.2s forwards}.btn{display:inline-block;font-size:.75rem;letter-spacing:.4em;color:var(--sumi);text-decoration:none;border-bottom:1px solid var(--sumi);padding-bottom:.4rem;transition:color .4s,border-color .4s;opacity:0;animation:fadeUp 1.4s ease 1s forwards}.btn:hover{color:var(--kin);border-color:var(--kin)}.about{background:var(--white)}.about-body{font-size:1.02rem;line-height:2.3;color:var(--sumi-light);font-weight:400;letter-spacing:.06em;margin-inline:auto}.about-body p+p{margin-top:2rem}.about-accent{font-size:clamp(3rem,8vw,6rem);font-weight:300;color:transparent;-webkit-text-stroke:1px var(--kin-light);line-height:1;text-align:center;margin:3.5rem 0 0}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#1a1a1a1a;margin-top:6rem}.service-card{background:var(--kiji);padding:4rem 3rem;transition:background .4s}.service-card:hover{background:var(--white)}.service-num{font-family:Cormorant Garamond,serif;font-size:.7rem;letter-spacing:.4em;color:var(--kin);margin-bottom:2rem}.service-name{font-size:1.6rem;font-weight:400;letter-spacing:.1em;margin-bottom:2rem;line-height:1.4}.service-name small{display:block;font-family:Cormorant Garamond,serif;font-size:.85rem;letter-spacing:.3em;color:var(--sumi-light);font-style:italic;margin-top:.5rem}.service-body{font-size:.95rem;line-height:2.1;color:var(--sumi-light);font-weight:400;letter-spacing:.04em}.kyoto{background:var(--sumi);color:var(--kiji);position:relative;overflow:hidden}.kyoto:before{content:"京";position:absolute;left:-5rem;bottom:-3rem;font-size:35vw;color:transparent;-webkit-text-stroke:1px rgba(200,168,75,.08);pointer-events:none;line-height:1}.kyoto .section-title{color:var(--kiji)}.kyoto-body{max-width:660px;margin-inline:auto;font-size:1.02rem;line-height:2.6;color:#f5f0e8d1;letter-spacing:.08em;position:relative;z-index:1}.kyoto-body p+p{margin-top:2rem}.kyoto-closing{max-width:660px;margin:6rem auto 0;padding-top:4rem;border-top:1px solid rgba(200,168,75,.3);font-size:clamp(1.1rem,2.5vw,1.8rem);font-weight:300;line-height:2;letter-spacing:.1em;color:var(--kiji);position:relative;z-index:1}.contact{text-align:center;padding:clamp(8rem,13vw,12rem) var(--rs-inset)}.contact-title{font-size:clamp(1.8rem,4vw,3rem);font-weight:300;letter-spacing:.05em;margin-bottom:2rem}.contact-sub{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1rem;letter-spacing:.3em;color:var(--sumi-light);margin-bottom:5rem}.btn-large{display:inline-block;font-size:.8rem;letter-spacing:.5em;color:var(--kiji);background:var(--sumi);text-decoration:none;padding:1.5rem 4rem;transition:background .4s,color .4s}.btn-large:hover{background:var(--kin)}.contact-form{max-width:560px;margin:0 auto;text-align:left}.form-group{margin-bottom:2.5rem}.form-group label{display:block;font-size:.75rem;letter-spacing:.3em;color:var(--sumi-light);margin-bottom:.8rem}.form-group input,.form-group textarea{width:100%;padding:1rem 0;font-family:"Noto Serif JP",serif;font-size:1rem;font-weight:300;color:var(--sumi);background:transparent;border:none;border-bottom:1px solid rgba(26,26,26,.2);outline:none;transition:border-color .4s;letter-spacing:.05em}.form-group input:focus,.form-group textarea:focus{border-color:var(--kin)}.form-group textarea{resize:vertical;min-height:120px;line-height:2}.form-submit{text-align:center;margin-top:4rem}.statement{background:var(--white);padding:clamp(8rem,13vw,12rem) var(--rs-inset);text-align:center}.statement-inner{max-width:680px;margin:0 auto}.statement-small{font-size:18px;letter-spacing:.2em;color:var(--sumi-light);line-height:2;margin-bottom:2.5rem}.statement-accent{font-size:18px;letter-spacing:.2em;color:var(--kin);line-height:2;margin-bottom:2.5rem}.statement-mid{font-size:18px;letter-spacing:.12em;color:var(--sumi-light);line-height:2.4;margin-bottom:3rem}.statement-line{width:60px;height:1px;background:var(--kin);margin:0 auto 3rem;opacity:.5}.statement-closing{font-size:18px;letter-spacing:.12em;color:var(--sumi);line-height:2.4}.divider{width:1px;height:80px;background:var(--kin);margin:0 auto 6rem;opacity:.4}.page-header{min-height:44vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:clamp(4rem,8vw,6rem) var(--rs-inset) 3rem;position:relative;overflow:hidden}.page-header>.section-title,.page-header>.about-body{margin-inline:auto}.page-header-kanji{position:absolute;right:-2rem;top:50%;transform:translateY(-50%);font-size:30vw;color:transparent;-webkit-text-stroke:1px rgba(26,26,26,.04);font-weight:400;pointer-events:none;line-height:1}.faq{padding:clamp(6rem,11vw,9rem) var(--rs-inset)}.faq .section-label{margin-inline:auto}.faq-item{max-width:820px;margin-inline:auto;padding:2.6rem 0;border-bottom:1px solid rgba(26,26,26,.1)}.faq-item h3{font-size:1.12rem;font-weight:500;letter-spacing:.08em;margin-bottom:1.2rem;line-height:1.8}.faq-item p{font-size:.95rem;line-height:2.2;color:var(--sumi-light);font-weight:400;letter-spacing:.05em}.cases-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1px;background:#1a1a1a1a}.case-card{display:block;background:var(--white);padding:4rem 3rem;text-decoration:none;color:var(--sumi);transition:background .4s}.case-card:hover{background:var(--kiji)}@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s ease,transform .9s ease}.reveal.visible{opacity:1;transform:translateY(0)}a:focus-visible,.btn:focus-visible,.btn-large:focus-visible,.case-card:focus-visible,.form-group input:focus-visible,.form-group textarea:focus-visible{outline:2px solid var(--kin);outline-offset:3px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1!important;transform:none!important;transition:none}.hero-title,.hero-english,.hero-sub,.hero-line,.btn{opacity:1!important;animation:none!important}}@media(max-width:768px){section{padding:6rem 2rem}.hero{padding:0 2rem}.hero-sub br{display:none}.about{grid-template-columns:1fr;gap:4rem}.services-grid{grid-template-columns:1fr}.statement,.contact{padding:8rem 2rem}.page-header{padding:6rem 2rem 3rem;min-height:40vh}.faq{padding:6rem 2rem}}
