*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --cream:#faf6f1;--ivory:#f5ede2;--blush:#e8c9b8;--rose:#c9907a;
  --deep-rose:#8b4a3c;--mocha:#5c3d30;--charcoal:#2a2018;
  --gold:#c4a882;--gold-light:#e8d5b8;--white:#fff;
}
html{scroll-behavior:smooth;}
body{font-family:'Noto Sans JP',sans-serif;background:var(--cream);color:var(--charcoal);overflow-x:hidden;font-weight:300;}

/* HEADER */
header{position:fixed;top:0;width:100%;z-index:100;padding:14px 48px;display:flex;align-items:center;justify-content:space-between;background:rgba(250,246,241,0.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--gold-light);}
.logo-img{height:44px;width:auto;object-fit:contain;}
nav{display:flex;gap:28px;align-items:center;}
nav a{text-decoration:none;font-size:11px;letter-spacing:0.2em;color:var(--mocha);text-transform:uppercase;transition:color 0.3s;}
nav a:hover{color:var(--rose);}
.nav-reserve{background:var(--mocha)!important;color:var(--cream)!important;padding:10px 22px;font-size:10px!important;letter-spacing:0.15em;}
.nav-reserve:hover{background:var(--deep-rose)!important;}

/* HERO */
.hero{height:100vh;position:relative;overflow:hidden;display:flex;align-items:center;}
.hero-bg{position:absolute;inset:0;}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(110deg,rgba(42,32,24,0.85) 45%,rgba(42,32,24,0.3) 100%);}
.hero-content{position:relative;z-index:2;padding:0 10%;max-width:600px;}
.hero-label{font-size:10px;letter-spacing:0.5em;color:var(--gold);text-transform:uppercase;margin-bottom:20px;display:flex;align-items:center;gap:10px;}
.hero-label::before{content:'';width:30px;height:1px;background:var(--gold);}
.hero-title{font-family:'Cormorant Garamond',serif;font-size:clamp(44px,6vw,80px);font-weight:300;color:var(--cream);line-height:1.1;margin-bottom:20px;}
.hero-title em{font-style:italic;color:var(--blush);}
.hero-sub{font-family:'Noto Serif JP',serif;font-size:14px;font-weight:200;color:rgba(250,246,241,0.75);letter-spacing:0.15em;margin-bottom:36px;line-height:2;}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap;}
.btn-p{display:inline-block;padding:14px 36px;background:var(--mocha);color:var(--cream);text-decoration:none;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;transition:background 0.3s;}
.btn-p:hover{background:var(--deep-rose);}
.btn-o{display:inline-block;padding:13px 36px;border:1px solid rgba(250,246,241,0.6);color:var(--cream);text-decoration:none;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;transition:all 0.3s;}
.btn-o:hover{background:rgba(255,255,255,0.1);}
.hero-stats{position:absolute;bottom:48px;right:10%;z-index:2;display:flex;gap:40px;}
.stat{text-align:center;}
.stat-n{font-family:'Cormorant Garamond',serif;font-size:36px;font-weight:300;color:var(--cream);line-height:1;}
.stat-n sup{font-size:16px;}
.stat-l{font-size:9px;letter-spacing:0.25em;color:var(--gold);margin-top:4px;display:block;text-transform:uppercase;}

/* SECTION COMMONS */
.sec{padding:80px 10%;}
.sec-head{text-align:center;margin-bottom:56px;}
.sec-tag{font-size:9px;letter-spacing:0.5em;color:var(--rose);text-transform:uppercase;display:block;margin-bottom:12px;}
.sec-title{font-family:'Cormorant Garamond',serif;font-size:clamp(32px,4.5vw,52px);font-weight:300;color:var(--mocha);line-height:1.15;}
.sec-title-jp{font-family:'Noto Serif JP',serif;font-size:14px;font-weight:200;color:var(--deep-rose);letter-spacing:0.2em;display:block;margin-top:6px;}
.sec-line{width:50px;height:1px;background:linear-gradient(90deg,transparent,var(--rose),transparent);margin:18px auto 0;}

/* ABOUT */
.about{background:var(--white);padding:80px 10%;}
.about-inner{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;max-width:1200px;margin:0 auto;}
.about-imgs{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.about-imgs img{width:100%;height:240px;object-fit:cover;}
.about-imgs .tall{height:100%;grid-row:span 2;}
.about-text .sec-tag{text-align:left;}
.about-h{font-family:'Cormorant Garamond',serif;font-size:40px;font-weight:300;color:var(--mocha);margin-bottom:6px;}
.about-jp{font-family:'Noto Serif JP',serif;font-size:14px;font-weight:200;color:var(--rose);letter-spacing:0.2em;margin-bottom:24px;display:block;}
.about-p{font-size:12.5px;line-height:2.3;color:var(--charcoal);opacity:0.75;margin-bottom:28px;}
.points{display:flex;flex-direction:column;gap:14px;}
.point{display:flex;gap:14px;align-items:flex-start;}
.point-n{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:300;color:var(--gold);line-height:1;flex-shrink:0;width:32px;}
.point-t{font-size:12px;line-height:1.9;color:var(--charcoal);opacity:0.8;padding-top:2px;}

/* SERVICES - 2x2 grid */
.services{background:var(--cream);padding:80px 10%;}
.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px;}
.svc-card{background:var(--white);display:grid;grid-template-columns:1fr 1fr;overflow:hidden;}
.svc-img{overflow:hidden;height:320px;}
.svc-img img{width:100%;height:100%;object-fit:cover;transition:transform 0.5s;}
.svc-card:hover .svc-img img{transform:scale(1.05);}
.svc-body{padding:40px 36px;display:flex;flex-direction:column;justify-content:center;}
.svc-tag{font-size:9px;letter-spacing:0.35em;color:var(--rose);text-transform:uppercase;margin-bottom:12px;display:block;}
.svc-title{font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:300;color:var(--mocha);line-height:1.2;margin-bottom:4px;}
.svc-title span{font-family:'Noto Serif JP',serif;font-size:13px;font-weight:200;color:var(--deep-rose);letter-spacing:0.12em;display:block;margin-top:4px;}
.svc-desc{font-size:11.5px;line-height:2;color:var(--charcoal);opacity:0.7;margin:14px 0;}
.svc-price{border-top:1px solid var(--gold-light);padding-top:14px;}
.price-old{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--charcoal);opacity:0.35;text-decoration:line-through;margin-right:8px;}
.price-new{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:300;color:var(--deep-rose);}
.price-note{display:block;font-size:10px;color:var(--mocha);opacity:0.55;margin-top:2px;}

/* RESULTS */
.results{background:var(--ivory);padding:80px 10%;}
.tabs{display:flex;gap:3px;justify-content:center;margin-bottom:40px;}
.tab-btn{padding:10px 28px;border:1px solid var(--blush);background:transparent;color:var(--mocha);font-size:11px;letter-spacing:0.15em;cursor:pointer;transition:all 0.3s;font-family:'Noto Sans JP',sans-serif;}
.tab-btn.active,.tab-btn:hover{background:var(--mocha);color:var(--cream);border-color:var(--mocha);}
.tab-content{display:none;}
.tab-content.active{display:block;}
.ba-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.ba-card{background:var(--white);overflow:hidden;box-shadow:0 4px 20px rgba(92,61,48,0.08);}
.ba-card img{width:100%;height:280px;object-fit:cover;display:block;transition:transform 0.4s;}
.ba-card:hover img{transform:scale(1.03);}
.ba-cap{padding:12px 16px;font-size:10.5px;letter-spacing:0.08em;color:var(--mocha);opacity:0.7;text-align:center;}

/* GALLERY */
.gallery{background:var(--charcoal);padding:80px 10%;}
.gallery .sec-tag{color:var(--gold);}
.gallery .sec-title{color:var(--cream);}
.gallery .sec-line{background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:220px 220px;gap:3px;}
.gal-item{overflow:hidden;position:relative;cursor:pointer;}
.gal-item.tall{grid-row:span 2;}
.gal-item.wide{grid-column:span 2;}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform 0.5s;}
.gal-item:hover img{transform:scale(1.06);}
.gal-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(42,32,24,0.7) 0%,transparent 55%);display:flex;align-items:flex-end;padding:16px;opacity:0;transition:opacity 0.3s;}
.gal-item:hover .gal-overlay{opacity:1;}
.gal-overlay span{font-size:10px;letter-spacing:0.2em;color:var(--cream);text-transform:uppercase;}

/* MENU */
.menu-sec{background:var(--mocha);padding:80px 10%;}
.menu-sec .sec-tag{color:var(--gold);}
.menu-sec .sec-title{color:var(--cream);}
.menu-sec .sec-title-jp{color:rgba(250,246,241,0.55);}
.menu-sec .sec-line{background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:48px;}
.menu-card{background:rgba(255,255,255,0.06);padding:32px;border:1px solid rgba(196,168,130,0.15);transition:all 0.3s;}
.menu-card:hover{background:rgba(255,255,255,0.10);border-color:rgba(196,168,130,0.3);}
.m-badge{display:inline-block;background:var(--rose);color:#fff;font-size:9px;letter-spacing:0.15em;padding:3px 10px;margin-bottom:10px;text-transform:uppercase;}
.m-tag{font-size:9px;letter-spacing:0.3em;color:var(--gold);text-transform:uppercase;margin-bottom:10px;display:block;}
.m-name{font-family:'Noto Serif JP',serif;font-size:13px;font-weight:300;color:var(--cream);letter-spacing:0.08em;margin-bottom:10px;}
.m-desc{font-size:11px;line-height:1.9;opacity:0.6;color:var(--cream);margin-bottom:18px;}
.m-price{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:300;color:var(--gold);}
.m-note{font-size:9px;opacity:0.45;color:var(--cream);display:block;margin-top:3px;}

/* STAFF */
.staff{background:var(--ivory);padding:80px 10%;}
.staff-inner{display:grid;grid-template-columns:1fr 2fr;gap:48px;max-width:960px;margin:0 auto;align-items:center;}
.staff-photo{overflow:hidden;}
.staff-photo img{width:100%;height:380px;object-fit:cover;object-position:top;}
.staff-info{padding:20px 0;}
.staff-name{font-family:'Cormorant Garamond',serif;font-size:42px;font-weight:300;color:var(--mocha);margin-bottom:4px;}
.staff-role{font-size:10px;letter-spacing:0.3em;color:var(--rose);text-transform:uppercase;margin-bottom:6px;}
.staff-yr{font-size:11px;color:var(--charcoal);opacity:0.5;margin-bottom:24px;}
.staff-msg{font-size:12.5px;line-height:2.3;color:var(--charcoal);opacity:0.75;font-family:'Noto Serif JP',serif;font-weight:300;border-top:1px solid var(--gold-light);border-bottom:1px solid var(--gold-light);padding:24px 0;margin-bottom:24px;}
.staff-stars{color:var(--gold);font-size:14px;letter-spacing:3px;}
.staff-rating-n{font-family:'Cormorant Garamond',serif;font-size:26px;color:var(--mocha);margin-left:10px;}
.staff-rating-c{font-size:10px;color:var(--charcoal);opacity:0.45;}

/* REVIEWS */
.reviews{background:var(--cream);padding:80px 10%;}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.rev-card{background:var(--white);padding:32px;border-left:2px solid var(--blush);transition:border-color 0.3s;}
.rev-card:hover{border-color:var(--rose);}
.rev-stars{color:var(--gold);font-size:13px;letter-spacing:3px;margin-bottom:16px;}
.rev-text{font-size:12px;line-height:2.1;color:var(--charcoal);opacity:0.75;margin-bottom:20px;}
.rev-author{font-size:10px;letter-spacing:0.12em;color:var(--rose);}
.rev-date{font-size:9px;color:var(--charcoal);opacity:0.4;margin-top:3px;}

/* ACCESS */
.access{background:var(--white);padding:80px 10%;}
.access-inner{display:grid;grid-template-columns:1fr 1fr;gap:60px;max-width:1100px;margin:0 auto;}
.info-table{width:100%;border-collapse:collapse;margin-top:32px;}
.info-table tr{border-bottom:1px solid var(--gold-light);}
.info-table tr:first-child{border-top:1px solid var(--gold-light);}
.info-table td{padding:14px 0;font-size:12px;vertical-align:top;}
.info-table td:first-child{font-size:9px;letter-spacing:0.2em;color:var(--rose);text-transform:uppercase;width:100px;padding-right:16px;white-space:nowrap;}
.info-table td:last-child{color:var(--charcoal);line-height:1.8;opacity:0.8;}
.map-box{background:var(--ivory);border:1px solid var(--gold-light);height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;cursor:pointer;transition:all 0.3s;margin-top:32px;}
.map-box:hover{background:var(--blush);}
.map-box p{font-size:12px;color:var(--mocha);text-align:center;}
.map-box a{color:var(--deep-rose);text-decoration:none;font-size:11px;letter-spacing:0.15em;}
.book-box{margin-top:24px;padding:28px;background:var(--ivory);border-left:2px solid var(--blush);}
.book-box p{font-size:11px;letter-spacing:0.25em;color:var(--rose);text-transform:uppercase;margin-bottom:10px;}
.book-box p+p{font-size:12px;line-height:1.9;letter-spacing:0;color:var(--charcoal);opacity:0.75;margin-bottom:16px;}

/* CTA BANNER */
.cta{background:linear-gradient(135deg,var(--deep-rose) 0%,var(--mocha) 100%);padding:70px 10%;text-align:center;}
.cta h2{font-family:'Cormorant Garamond',serif;font-size:48px;font-weight:300;color:var(--cream);margin-bottom:8px;}
.cta p{font-family:'Noto Serif JP',serif;font-size:14px;font-weight:200;color:rgba(250,246,241,0.7);letter-spacing:0.2em;margin-bottom:32px;}
.btn-light{display:inline-block;padding:16px 52px;background:var(--cream);color:var(--mocha);text-decoration:none;font-size:11px;letter-spacing:0.25em;text-transform:uppercase;transition:all 0.3s;}
.btn-light:hover{background:var(--gold);}
.cta-info{margin-top:28px;display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap;}
.cta-item{font-size:12px;color:rgba(250,246,241,0.7);}
.cta-item strong{color:var(--cream);}

/* FOOTER */
footer{background:var(--charcoal);padding:40px 10%;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;}
.footer-links{display:flex;gap:24px;flex-wrap:wrap;}
.footer-links a{text-decoration:none;font-size:10px;letter-spacing:0.2em;color:rgba(250,246,241,0.45);text-transform:uppercase;transition:color 0.3s;}
.footer-links a:hover{color:var(--gold);}
.footer-copy{font-size:9px;color:rgba(250,246,241,0.3);letter-spacing:0.1em;}

/* FADE IN */
.fi{opacity:0;transform:translateY(20px);transition:opacity 0.7s ease,transform 0.7s ease;}
.fi.vis{opacity:1;transform:translateY(0);}

/* MOBILE */
.ham{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;}
.ham span{display:block;width:22px;height:1px;background:var(--mocha);}
#mob-nav{display:none;position:fixed;top:70px;left:0;width:100%;background:var(--cream);z-index:99;padding:20px;border-bottom:1px solid var(--gold-light);}
#mob-nav a{display:block;text-decoration:none;font-size:12px;letter-spacing:0.2em;color:var(--mocha);text-transform:uppercase;padding:12px 0;border-bottom:1px solid var(--gold-light);}
#mob-nav a:last-child{background:var(--mocha);color:var(--cream);text-align:center;padding:14px;margin-top:12px;border:none;}

@media(max-width:1024px){
  .svc-grid{grid-template-columns:1fr;}
  .svc-card{grid-template-columns:1fr 1fr;}
  .ba-grid{grid-template-columns:1fr 1fr;}
  .menu-grid{grid-template-columns:1fr 1fr;}
  .about-inner{grid-template-columns:1fr;}
  .gal-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto;}
  .gal-item.tall,.gal-item.wide{grid-row:span 1;grid-column:span 1;}
  .staff-inner{grid-template-columns:1fr;}
  .staff-photo img{height:300px;object-position:center;}
  .rev-grid{grid-template-columns:1fr;}
  .access-inner{grid-template-columns:1fr;}
}
@media(max-width:768px){
  header{padding:14px 20px;}
  nav{display:none;}
  .ham{display:flex;}
  .sec,.about,.services,.results,.gallery,.menu-sec,.staff,.reviews,.access,.cta{padding:60px 6%;}
  .hero-content{padding:0 6%;}
  .hero-stats{right:6%;gap:20px;bottom:24px;}
  .stat-n{font-size:28px;}
  .svc-card{grid-template-columns:1fr;}
  .svc-img{height:220px;}
  .ba-grid{grid-template-columns:1fr;}
  .menu-grid{grid-template-columns:1fr;}
  .gal-grid{grid-template-columns:1fr 1fr;}
  .cta h2{font-size:34px;}
  footer{flex-direction:column;text-align:center;}
  .footer-links{justify-content:center;}
}