:root{
  --bg:#241912;--bg2:#2E2119;--card:#3A2A1F;--line:#4A3728;--line2:#5C4634;
  --gold:#D4B98C;--gold-hover:#EBD9B8;--text:#F2E8D9;--sub:#D9CBB6;--muted:#BFAE97;--faint:#A8967F;
  --serif:'Shippori Mincho',serif;--latin:'Cormorant Garamond',serif;--sans:'Noto Sans JP',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.8;-webkit-text-size-adjust:100%}
img,video{display:block;max-width:100%}
a{color:var(--gold)}a:hover{color:var(--gold-hover)}
h1,h2,h3,p,dl,dd,ul{margin:0}

/* header */
.site-header{position:sticky;top:0;z-index:10;background:rgba(36,25,18,.94);border-bottom:1px solid var(--line)}
.site-header.static{position:static}
.header-inner{max-width:1200px;margin:0 auto;padding:16px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.logo{text-decoration:none;display:flex;align-items:baseline;gap:12px}
.logo-mark{font-family:var(--latin);font-size:34px;font-weight:600;letter-spacing:.18em;color:var(--gold)}
.logo-sub{font-size:12px;color:var(--muted);letter-spacing:.1em}
.nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;font-size:14px}
.nav a{text-decoration:none;color:var(--text)}
.nav a:hover{color:var(--gold)}
.nav .nav-tel{color:var(--gold);font-weight:700;font-size:16px;display:inline-flex;align-items:center;gap:6px;min-height:44px}

/* buttons */
.btn{text-decoration:none;font-weight:700;padding:14px 32px;border-radius:999px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:inherit;font-size:16px;transition:opacity .2s}
.btn:hover{opacity:.85}
.btn-gold{background:var(--gold);color:var(--bg)}
.btn-gold:hover{color:var(--bg)}
.btn-outline{border:1px solid var(--gold);color:var(--gold);padding:13px 32px}
.btn-sm{padding:10px 24px;font-size:14px}
.btn-outline.btn-sm{padding:9px 24px}
.btn img.icon{width:26px;height:26px}

/* hero */
.hero{position:relative;min-height:680px;display:flex;align-items:center;justify-content:center;text-align:center;padding:96px 24px;background:var(--bg2);border-bottom:1px solid var(--line);overflow:hidden}
.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%}
.hero-overlay{position:absolute;inset:0;background:rgba(28,19,13,.62)}
.hero-inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:24px;max-width:760px}
.eyebrow{font-family:var(--latin);font-size:16px;letter-spacing:.3em;color:var(--gold)}
.hero .eyebrow{font-size:18px;letter-spacing:.4em}
.hero h1{font-family:var(--serif);font-weight:700;font-size:clamp(26px,7vw,64px);line-height:1.4;letter-spacing:.06em}
.hero-lead{font-size:17px;color:var(--sub)}
.hero-price{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:4px 12px;font-family:var(--serif)}
.hero-price .unit{font-size:20px}
.hero-price .num{font-size:48px;font-weight:700;line-height:1.2;color:var(--gold)}
.hero-price .tax{font-size:15px;color:var(--sub)}
.btn-row{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:8px}
.hero-hours{margin-top:8px;font-size:14px;color:var(--muted)}

/* sections */
.section{padding:120px 24px}
.section.alt{background:var(--bg2)}
.container{max-width:1200px;margin:0 auto}
.container.narrow{max-width:880px}
.container.mid{max-width:1000px}
.section-head{text-align:center;display:flex;flex-direction:column;gap:12px;margin-bottom:48px}
.section-head h2,.split h2{font-family:var(--serif);font-size:clamp(28px,3vw,40px);line-height:1.5}
.section-head p.desc{font-size:15px;color:var(--muted)}
.section-head p.desc.light{color:var(--sub)}

/* concept */
.split{display:flex;flex-wrap:wrap;gap:64px;align-items:center}
.split-text{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:24px}
.split-text p.body{font-size:16px;color:var(--sub)}
.split-media{flex:1 1 420px;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.split-media img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:4px}
.split-media img:nth-child(2){margin-top:48px;object-position:30% center}

/* price */
.price-table{border:1px solid var(--line2);border-radius:4px;overflow:hidden}
.price-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 32px;border-bottom:1px solid var(--line)}
.price-row:last-child{border-bottom:none}
.price-row .name{font-size:18px;font-weight:700}
.price-row .note{font-size:13px;color:var(--muted)}
.price-row .val{font-family:var(--serif);font-size:24px;color:var(--gold);white-space:nowrap}
.price-foot{margin-top:24px;text-align:center;font-size:13px;color:var(--muted)}

/* gallery */
.gallery-row{display:flex;flex-wrap:wrap;gap:16px;align-items:stretch;margin-bottom:16px}
.gallery-row img,.gallery-row video{min-width:0;border-radius:4px;border:1px solid var(--gold);object-fit:cover;background:var(--card)}
.g-wide{flex:3 1 520px;width:100%;min-height:320px}
.g-tall{flex:1 1 260px;aspect-ratio:9/16}
.g-wide2{flex:2 1 480px;width:100%;min-height:300px}
.g-poster{flex:1 1 280px;aspect-ratio:1122/1402;object-fit:contain !important;background:#1C130D !important}
.gallery-note{margin-top:32px;text-align:center;font-size:14px;color:var(--muted)}

/* access */
.access{display:flex;flex-wrap:wrap;gap:56px}
.access-info{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:24px}
.info-list{display:grid;grid-template-columns:96px 1fr;gap:16px 24px;font-size:15px}
.info-list dt{color:var(--gold)}
.info-list dd.stations{display:flex;flex-direction:column;gap:6px}
.info-list strong{color:var(--gold)}
.info-list .tel-note{color:var(--muted)}
.access-card{flex:1 1 480px;min-width:0;background:var(--card);border:1px solid var(--line2);border-radius:4px;display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px;text-align:center}
.access-card img{width:100%;height:440px;object-fit:cover;object-position:center 60%;border-radius:4px}
.access-card p{font-size:14px;color:var(--sub)}

/* contact */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;text-align:center}
.contact-card{background:var(--bg2);border:1px solid var(--line2);border-radius:4px;padding:40px 32px;display:flex;flex-direction:column;align-items:center;gap:16px}
.contact-card.primary{border-color:var(--gold)}
.contact-card h3{font-size:20px}
.contact-card p{font-size:14px;color:var(--sub)}
.contact-card small{display:block;font-size:12px;color:var(--muted)}
.contact-card .btn{padding:12px 32px}
.contact-card .btn-outline{padding:11px 32px}

/* recruit banner */
.recruit-banner-wrap{padding:0 24px 120px}
.recruit-banner{text-decoration:none;color:var(--text);max-width:1200px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;padding:48px 56px;border:1px solid var(--gold);border-radius:4px;background:var(--card)}
.recruit-banner:hover{color:var(--text);opacity:.92}
.recruit-banner .title{font-family:var(--serif);font-size:28px}
.recruit-banner .sub{font-size:14px;color:var(--sub)}
.recruit-banner .pill{background:var(--gold);color:var(--bg);font-weight:700;padding:14px 32px;border-radius:999px}

/* footer */
.site-footer{border-top:1px solid var(--line);padding:40px 24px;text-align:center;display:flex;flex-direction:column;gap:8px}
.site-footer .logo-mark{font-size:28px;text-decoration:none}
.site-footer p{font-size:12px;color:var(--faint)}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px;font-size:13px;margin-bottom:8px}
.footer-links a{text-decoration:none;color:var(--muted)}
.footer-links a:hover{color:var(--gold)}

/* recruit page */
.r-hero{padding:112px 24px;background:var(--bg2);text-align:center}
.r-hero-inner{max-width:760px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:24px}
.r-hero h1{font-family:var(--serif);font-weight:700;font-size:clamp(26px,7vw,58px);line-height:1.45}
.tags{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.tag{border:1px solid var(--gold);color:var(--gold);padding:6px 18px;border-radius:999px;font-size:14px}
.tag.fill{background:var(--gold);color:var(--bg);font-weight:700}
.r-hero-photo{width:100%;margin-top:24px;aspect-ratio:1200/655;object-fit:cover;border-radius:4px;border:1px solid var(--gold)}
.r-hero .caption{font-size:14px;color:var(--muted)}
.cond-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.cond{background:var(--bg2);border:1px solid var(--line2);border-radius:4px;padding:32px;display:flex;flex-direction:column;gap:8px}
.cond .label{font-size:13px;letter-spacing:.15em;color:var(--gold)}
.cond .big{font-family:var(--serif);font-size:30px}
.cond .small{font-size:14px;color:var(--sub)}
.faq{display:flex;flex-direction:column;gap:16px}
.faq-item{background:var(--bg);border-radius:4px;padding:24px 32px}
.faq-item .q{font-weight:700;margin-bottom:8px}
.faq-item .a{font-size:14px;color:var(--sub)}
.faq-item span.mk{color:var(--gold)}
.apply{display:flex;flex-wrap:wrap;gap:48px;max-width:1100px;margin:0 auto}
.apply-text{flex:1 1 360px;min-width:0;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.apply-text h2{font-family:var(--serif);font-size:clamp(28px,3vw,40px)}
.apply-text p{font-size:15px;color:var(--sub)}
.apply-text p.tel{font-size:13px;color:var(--muted)}
.apply-mail{flex:1 1 440px;min-width:0;background:var(--bg);border:1px solid var(--line2);border-radius:4px;padding:40px;display:flex;flex-direction:column;gap:20px}
.apply-mail h3{font-size:20px}
.apply-mail p,.apply-mail ul{font-size:14px;color:var(--sub)}
.apply-mail ul{padding-left:20px;display:flex;flex-direction:column;gap:4px}
.apply-mail .addr{font-size:13px;color:var(--muted);text-align:center}

@media (max-width:640px){
  .section{padding:80px 20px}
  .hero{min-height:600px;padding:72px 20px}
  .header-inner{padding:12px 16px;gap:8px}
  .logo-mark{font-size:28px}
  .nav{gap:4px 16px;font-size:13px}
  .price-row{padding:20px}
  .recruit-banner{padding:32px 24px}
  .info-list{grid-template-columns:80px 1fr;gap:12px 16px}
  .access-card img{height:320px}
  .split{gap:40px}
  .apply-mail{padding:28px}
  .split-media{grid-template-columns:1fr;gap:12px}
  .split-media img{aspect-ratio:16/10}
  .split-media img:nth-child(2){margin-top:0}
  .g-tall{flex:1 1 40%}
  .g-wide,.g-wide2{min-height:220px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
