:root{--bg:#FAFAF8;--ink:#2B2B28;--ink-soft:#6B6B62;--line:#DEDBD3;--accent:#8B9A82;--accent-deep:#69795F;--photo-a:#D8D2C4;--photo-b:#B7C4B4;--white:#FFFFFF;--nav-initial:#3A3A35;--gap-xs:8px;--gap-s:16px;--gap-m:32px;--gap-l:64px;--gap-xl:120px;--font-display:"Zen Antique", serif;--font-body:"Noto Sans JP", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-weight:300;color:var(--ink);background:var(--bg);line-height:2;font-size:15.5px;letter-spacing:.02em}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}.wrap{max-width:1180px;margin:0 auto;padding:0 40px}.serif{font-family:var(--font-display)}.photo{background:linear-gradient(135deg,var(--photo-a),var(--photo-b));position:relative;overflow:hidden}.photo:after{content:attr(data-caption);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;letter-spacing:.15em;color:#2b2b2873;font-family:var(--font-body);text-align:center;padding:20px}.photo.has-image:after{content:none}.service-iamge{width:100%;height:100%;object-fit:cover;display:block}header{position:fixed;top:0;left:0;right:0;z-index:100;padding:28px 0;background:#ffffff14;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .4s ease,padding .4s ease,backdrop-filter .4s ease}header.solid{background:#fafaf8eb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:18px 0;border-bottom:1px solid var(--line)}.header-inner{max-width:1180px;margin:0 auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between}.logo{font-family:var(--font-display);font-size:20px;letter-spacing:.1em;color:var(--nav-initial);transition:color .4s}header.solid .logo{color:var(--ink)}nav ul{list-style:none;display:flex;gap:36px}nav a{font-size:13px;letter-spacing:.1em;color:var(--nav-initial);transition:color .4s;position:relative}header.solid nav a{color:var(--ink)}.menu-btn{display:none;background:none;border:none;font-size:20px;color:var(--nav-initial)}header.solid .menu-btn{color:var(--ink)}.hero{position:relative;height:100vh;min-height:640px;display:flex;align-items:flex-end}.hero .photo,.hero .hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:radial-gradient(ellipse 62% 68% at 24% 68%,#2b2b288c,#2b2b284d 42%,#2b2b2814 68%,#2b2b2800 85%)}.hero-content{position:relative;z-index:2;padding:0 40px 90px;color:var(--white);width:100%}.hero-eyebrow{font-size:12px;letter-spacing:.3em;margin-bottom:22px;opacity:.9}.hero-heading{font-family:var(--font-display);font-size:clamp(32px,6vw,64px);line-height:1.5}.hero-heading .char{display:inline-block;opacity:0;transform:translateY(24px);animation:charIn .8s cubic-bezier(.2,.8,.2,1) forwards}@keyframes charIn{to{opacity:1;transform:translateY(0)}}.hero-sub{margin-top:26px;font-size:14px;max-width:480px;opacity:.92;font-weight:300;line-height:1.9;white-space:pre-line}.scroll-cue{position:absolute;bottom:28px;left:40px;z-index:2;color:var(--white);font-size:11px;letter-spacing:.2em;display:flex;align-items:center;gap:10px}.scroll-cue .line{width:1px;height:36px;background:#fff9;position:relative;overflow:hidden}.scroll-cue .line:after{content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--white);animation:lineDrop 1.8s ease-in-out infinite}@keyframes lineDrop{50%{top:0}to{top:100%}}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}section{padding:var(--gap-xl) 0}.eyebrow{font-size:12px;letter-spacing:.25em;color:var(--accent-deep);margin-bottom:20px}.concept{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:center}.concept .photo{position:relative;overflow:hidden}.concept-image{width:100%;height:auto;display:block}.concept h2{font-family:var(--font-display);font-size:clamp(24px,3vw,34px);line-height:1.9;color:var(--ink)}.concept p{margin-top:28px;color:var(--ink-soft);font-size:14.5px;max-width:440px}.service-row{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding:70px 0;border-bottom:1px solid var(--line)}.service-row:first-child{border-top:1px solid var(--line)}.service-row.reverse .photo{order:2}.service-row .photo{aspect-ratio:5/4}.service-num{font-family:var(--font-display);font-size:13px;color:var(--accent-deep);letter-spacing:.15em;margin-bottom:18px}.service-row h3{font-family:var(--font-display);font-size:26px;margin-bottom:20px;color:var(--ink)}.service-row p{color:var(--ink-soft);font-size:14.5px;max-width:440px;margin-bottom:26px}.link-arrow{font-size:13px;letter-spacing:.08em;border-bottom:1px solid var(--ink);padding-bottom:4px}#consulation h2{font-size:27px}.flow-list{max-width:760px}.flow-row{display:grid;grid-template-columns:70px 1fr;gap:30px;padding:38px 0;border-bottom:1px solid var(--line)}.flow-row:first-child{border-top:1px solid var(--line)}.flow-row .n{font-family:var(--font-display);font-size:26px;color:var(--accent-deep)}.flow-row h4{font-size:16px;margin-bottom:10px;letter-spacing:.04em}.flow-row p{font-size:13.5px;color:var(--ink-soft);max-width:520px}.consulation-list{max-width:760px}.consulation-row{display:grid;grid-template-columns:70px 1fr;gap:30px;padding:38px 0;border-bottom:1px solid var(--line)}.consulation-row:first-child{border-top:1px solid var(--line)}.consulation-row .n{font-family:var(--font-display);font-size:20px;color:var(--accent-deep)}.consulation-row h4{font-size:20px;margin-bottom:10px;letter-spacing:.04em}.about-table{width:100%;border-collapse:collapse;max-width:760px}.about-table tr{border-bottom:1px solid var(--line)}.about-table tr:first-child{border-top:1px solid var(--line)}.about-table th{text-align:left;font-weight:400;color:var(--ink-soft);font-size:13px;padding:22px 24px 22px 0;width:180px;vertical-align:top;letter-spacing:.05em}.about-table td{padding:22px 0;font-size:14.5px;vertical-align:top}.contact{text-align:center}.contact h2{font-family:var(--font-display);font-size:clamp(24px,3.4vw,38px);margin-bottom:24px}.contact .telnum{font-family:var(--font-display);font-size:clamp(24px,3.4vw,45px);margin-bottom:5px}.contact p{color:var(--ink-soft);margin-bottom:40px;font-size:14.5px}.btn{display:inline-block;padding:17px 44px;font-size:13px;letter-spacing:.15em;border:1px solid var(--ink);transition:all .3s}.btn:hover{background:var(--ink);color:var(--white)}footer{border-top:1px solid var(--line);padding:44px 0}.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.footer-inner .logo{color:var(--ink);font-size:16px}footer .copy{font-size:12px;color:var(--ink-soft);letter-spacing:.05em}.page-hero{padding:170px 0 60px;border-bottom:1px solid var(--line)}.page-hero .eyebrow{margin-bottom:18px}.page-hero h1{font-family:var(--font-display);font-size:clamp(28px,4vw,44px);line-height:1.6}.page-hero p{margin-top:20px;color:var(--ink-soft);max-width:560px}.article-body{max-width:720px}.article-body h2{font-family:var(--font-display);font-size:22px;margin:44px 0 18px;color:var(--ink)}.article-body p{color:var(--ink-soft);font-size:14.5px;margin-bottom:18px}.article-body ul{margin:0 0 18px 20px;color:var(--ink-soft);font-size:14.5px}.article-body li{margin-bottom:8px}.blog-list{max-width:780px}.blog-item{display:block;padding:32px 0;border-bottom:1px solid var(--line)}.blog-item:first-child{border-top:1px solid var(--line)}.blog-item time{font-size:12px;color:var(--ink-soft);letter-spacing:.1em}.blog-item h3{font-family:var(--font-display);font-size:19px;margin:10px 0 8px;color:var(--ink)}.blog-item p{font-size:14px;color:var(--ink-soft)}@media(max-width:900px){nav ul{display:none}.menu-btn{display:block}.concept,.service-row{grid-template-columns:1fr;gap:36px}.service-row.reverse .photo{order:0}.about-table th{width:120px;padding-right:14px}section{padding:80px 0}.hero{padding:0}.hero .hero-img{object-position:85% center}.hero-sub{white-space:normal;max-width:100%;line-height:1.8}}@media(prefers-reduced-motion:reduce){.hero-heading .char,.reveal{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}
