@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Noto+Sans+JP:wght@400;500;600;700&display=swap');

:root{--ink:#2d3031;--muted:#747575;--line:#e9e4df;--cream:#f7f4f0;--sand:#e7ddd1;--gold:#a88457;--deep:#343534;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:14px;line-height:1.9}a{color:inherit;text-decoration:none}img{width:100%;display:block;object-fit:cover}.wrap{width:min(1120px,calc(100% - 48px));margin:auto}.eyebrow{font-family:'DM Serif Display',serif;letter-spacing:.12em;color:var(--gold);font-size:13px}.title{font-family:'DM Serif Display','Noto Sans JP',serif;font-weight:400;font-size:clamp(30px,4vw,52px);line-height:1.25;letter-spacing:.04em;margin:8px 0 20px}.lead{font-size:16px;color:#535656;line-height:2}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:54px;padding:0 25px;border:1px solid var(--gold);background:var(--gold);color:#fff;letter-spacing:.08em;transition:.2s}.button:hover{background:#8b6b42;border-color:#8b6b42}.button--light{background:transparent;color:var(--gold)}.button--dark{background:var(--deep);border-color:var(--deep)}
.topbar{background:#333433;color:#fff;text-align:center;font-size:11px;padding:7px;letter-spacing:.1em}.header{height:88px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:3;background:#fff}.logo{font-family:'DM Serif Display',serif;font-size:25px;letter-spacing:.11em;line-height:1.05}.logo small{display:block;font-family:'Noto Sans JP',sans-serif;font-size:8px;letter-spacing:.22em;text-align:center;margin-top:6px}.nav{display:flex;align-items:center;gap:26px;font-size:12px;letter-spacing:.05em}.nav a:hover{color:var(--gold)}.nav .button{min-height:42px;padding:0 16px;font-size:11px}.menu{display:none;border:0;background:transparent;font-size:26px}
.hero{min-height:650px;position:relative;display:flex;align-items:center;background:#e8e5e1;overflow:hidden}.hero:before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(30,28,26,.5),rgba(30,28,26,.28) 58%,rgba(30,28,26,.06))}.hero img{position:absolute;inset:0;height:100%;z-index:0}.hero .wrap{position:relative;z-index:2;color:#fff}.hero h1{font-family:'DM Serif Display','Noto Sans JP',serif;font-size:clamp(42px,6vw,76px);font-weight:400;line-height:1.25;letter-spacing:.06em;margin:16px 0;text-shadow:0 2px 18px rgba(22,20,18,.42)}.hero p{font-size:16px;max-width:480px;text-shadow:0 1px 12px rgba(22,20,18,.45)}.hero .eyebrow{color:#f4dfbd;text-shadow:0 1px 10px rgba(22,20,18,.5)}.hero-cta{display:flex;gap:12px;margin-top:34px}.hero-cta .button--light{border-color:#fff;color:#fff}.hero-note{position:absolute;bottom:22px;right:30px;z-index:2;color:#fff;font-size:10px;letter-spacing:.12em;writing-mode:vertical-rl}
.intro{padding:130px 0;display:grid;grid-template-columns:1fr 1.1fr;gap:90px;align-items:center}.intro-photo{height:490px;position:relative}.intro-photo img{height:100%}.intro-photo:after{content:'PRIVATE ROOM';position:absolute;bottom:0;right:-36px;background:var(--cream);padding:24px 30px;font-family:'DM Serif Display';letter-spacing:.15em;color:var(--gold)}.intro-copy{padding-right:30px}.points{display:grid;grid-template-columns:repeat(3,1fr);margin-top:48px;border-top:1px solid var(--line)}.point{padding:25px 20px 15px 0;border-bottom:1px solid var(--line);font-size:12px}.point b{display:block;font-family:'DM Serif Display';font-size:29px;font-weight:400;color:var(--gold);line-height:1.2;margin-bottom:9px}
.section{padding:115px 0}.section--cream{background:var(--cream)}.center{text-align:center}.cards{margin-top:50px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:#fff}.card img{height:255px}.card-body{padding:24px}.card-no{font-family:'DM Serif Display';color:var(--gold);font-size:16px}.card h3{font-size:18px;margin:6px 0}.card p{font-size:12px;color:var(--muted);margin:0}.link{display:inline-block;color:var(--gold);font-size:12px;letter-spacing:.08em;margin-top:16px}.link:after{content:' →';margin-left:9px}.reason-list{margin-top:50px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}.reason{background:#fff;padding:48px 35px;min-height:270px}.reason span{font-family:'DM Serif Display';font-size:38px;color:var(--sand)}.reason h3{font-size:18px;margin:10px 0}.reason p{color:var(--muted);font-size:12px}
.case{display:grid;grid-template-columns:1.25fr 1fr;gap:65px;align-items:center}.case-image{position:relative}.case-image img{height:450px}.case-label{position:absolute;top:18px;left:18px;background:#fff;padding:7px 13px;font-size:11px;letter-spacing:.1em}.price-box{border-top:1px solid var(--gold);margin-top:28px}.price-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:13px 0;font-size:13px}.price-row b{font-family:'DM Serif Display';font-size:20px;font-weight:400;color:var(--gold)}
.consult{background:#383938;color:#fff;padding:90px 0}.consult .wrap{display:flex;align-items:center;justify-content:space-between;gap:45px}.consult .title{margin-bottom:0}.consult .eyebrow{color:#e3c492}.consult .button{border-color:#fff;background:#fff;color:var(--deep);margin-left:10px}.footer{background:#272827;color:#d8d7d5;padding:65px 0 24px}.footer-grid{display:flex;justify-content:space-between;gap:40px}.footer .logo{color:#fff}.footer p{font-size:11px}.footer-links{display:flex;gap:18px;font-size:11px}.copyright{border-top:1px solid #484946;margin-top:42px;padding-top:20px;font-size:10px;color:#959694}
.page-hero{background:var(--cream);padding:95px 0 75px;text-align:center}.page-hero .title{margin-bottom:0}.page-hero p{color:var(--muted)}.breadcrumb{font-size:10px;color:var(--muted);padding-top:15px}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-bottom:110px}.service-grid:nth-child(even){direction:rtl}.service-grid:nth-child(even)>*{direction:ltr}.service-grid img{height:370px}.service-grid h2{font-family:'DM Serif Display','Noto Sans JP',serif;font-size:36px;font-weight:400;line-height:1.3;margin:8px 0 16px}.tag{display:inline-block;background:var(--cream);color:var(--gold);padding:3px 12px;font-size:11px}.faq{max-width:800px;margin:45px auto 0}.faq details{border-top:1px solid var(--line);padding:18px 4px}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;font-size:14px}.faq summary::marker{color:var(--gold)}.faq p{font-size:12px;color:var(--muted);padding:8px 20px 0}.table{width:100%;border-collapse:collapse;margin-top:40px}.table th,.table td{border-bottom:1px solid var(--line);padding:18px;text-align:left}.table th{background:var(--cream);font-weight:500;width:32%}.table td b{font-family:'DM Serif Display';font-size:22px;color:var(--gold);font-weight:400}.visit{display:grid;grid-template-columns:1fr 1fr;gap:70px}.visit img{height:450px}.hours{width:100%;border-collapse:collapse;margin-top:22px}.hours th,.hours td{padding:11px;border-bottom:1px solid var(--line);text-align:left;font-size:12px}.staff-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:35px}.staff-grid img{height:330px}.staff-grid h3{margin:15px 0 0;font-size:18px}.staff-grid p{font-size:12px;color:var(--muted)}
@media(max-width:760px){.wrap{width:min(100% - 32px,560px)}.header{height:72px}.nav{display:none}.menu{display:block}.hero{min-height:590px}.hero:before{background:linear-gradient(180deg,rgba(30,28,26,.40) 0%,rgba(30,28,26,.50) 50%,rgba(30,28,26,.62) 100%)}.hero img{object-position:60% center}.hero h1{font-size:36px;text-shadow:0 2px 16px rgba(22,20,18,.5)}.hero p{font-size:13px}.hero-cta{flex-direction:column;align-items:flex-start}.hero-cta .button{width:250px}.intro{padding:75px 0;display:flex;flex-direction:column;gap:42px}.intro-photo{width:100%;height:390px}.intro-photo:after{right:0;padding:17px}.intro-copy{padding:0}.points{grid-template-columns:1fr}.cards,.reason-list{grid-template-columns:1fr}.section{padding:75px 0}.case,.service-grid,.visit{grid-template-columns:1fr;gap:30px}.case-image img,.service-grid img,.visit img{height:320px}.service-grid:nth-child(even){direction:ltr}.consult{padding:55px 0}.consult .wrap{display:block}.consult .button{margin:25px 8px 0 0}.footer-grid{display:block}.footer-links{margin-top:25px;flex-wrap:wrap}.page-hero{padding:60px 0}.staff-grid{grid-template-columns:1fr}.table{font-size:11px}.table th,.table td{padding:13px 9px}}
