
/* Louis Stage shared detail-page brand system — final polish */
:root{
  --ls-ink:#171513;
  --ls-muted:#6e665d;
  --ls-paper:#faf7f1;
  --ls-paper-2:#f0e9de;
  --ls-white:#fffdfa;
  --ls-line:#d9cfbf;
  --ls-gold:#b88b39;
  --ls-dark:#191611;
  --ls-radius:24px;
  --ls-shadow:0 16px 42px rgba(29,24,17,.075);
  --ls-shadow-hover:0 22px 54px rgba(29,24,17,.12);
}

/* Base rhythm */
body{
  background:var(--ls-paper) !important;
  color:var(--ls-ink) !important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
::selection{background:#dfc999;color:#171513}
a,button{transition:color .2s ease,background-color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease}
a:focus-visible,button:focus-visible{outline:2px solid var(--ls-gold);outline-offset:3px}

/* Unified header */
.site-header,.header{
  min-height:74px !important;
  padding:10px 4.5vw !important;
  background:rgba(250,247,241,.95) !important;
  border-bottom:1px solid rgba(217,207,191,.82) !important;
  backdrop-filter:blur(14px) !important;
  box-shadow:0 3px 18px rgba(29,24,17,.025);
}
.site-header .brand-logo,.header .brand img,
.site-header .brand img,.footer-logo,.footer-brand img{
  width:50px !important;height:50px !important;object-fit:contain !important;
  filter:drop-shadow(0 5px 13px rgba(0,0,0,.08));
}
.brand-name,.brand-copy strong{
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:14px !important;letter-spacing:.12em !important;font-weight:600 !important;
}
.brand-sub,.brand-copy span{
  font-size:10px !important;letter-spacing:.15em !important;color:var(--ls-muted) !important;
}
.site-header .nav,.header .nav,.header nav{
  gap:26px !important;font-size:12px !important;
}
.lang-switcher button,.languages button,.lang button{
  min-width:32px;border-color:var(--ls-line) !important;background:transparent !important;
}
.lang-switcher button.active,.languages button.active,.lang button.active{
  background:var(--ls-ink) !important;border-color:var(--ls-ink) !important;color:#fff !important;
}

/* Unified hero */
.hero{
  min-height:clamp(570px,72vh,760px) !important;
}
.hero-bg,.hero-photo{width:100%;height:100%;object-fit:cover}
.hero-overlay,.hero-shade{
  background:
    linear-gradient(180deg,rgba(10,8,6,.10) 0%,rgba(10,8,6,.20) 45%,rgba(10,8,6,.68) 100%) !important;
}
.hero-content{
  padding:7vw max(5vw,calc((100vw - 1440px)/2)) 5.8vw !important;
  max-width:900px !important;
}
.hero h1{
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:clamp(46px,6.3vw,78px) !important;
  font-weight:500 !important;line-height:1.02 !important;letter-spacing:-.018em !important;
  text-wrap:balance;
}
.hero-copy,.hero-lead{
  max-width:720px !important;
  font-size:clamp(16px,1.65vw,21px) !important;
  line-height:1.75 !important;
  color:rgba(255,255,255,.91) !important;
}
.hero .eyebrow,.hero .section-kicker{
  margin-bottom:14px !important;
  color:#efd8a6 !important;
  font-size:10px !important;
  letter-spacing:.18em !important;
  text-transform:uppercase;
}
.hero-actions,.actions{margin-top:26px !important}
.btn,.button{
  min-height:48px !important;padding:0 21px !important;border-radius:999px !important;
  font-size:12px !important;font-weight:700 !important;letter-spacing:.02em;
}
.btn:hover,.button:hover{transform:translateY(-1px)}
.btn-primary,.button.primary{
  box-shadow:0 8px 18px rgba(0,0,0,.08);
}

/* Facts / stats */
.stats,.facts{
  background:var(--ls-line) !important;
}
.stat,.facts>div{
  min-height:94px;
  background:var(--ls-white) !important;
  padding:22px 14px !important;
  display:flex;flex-direction:column;justify-content:center;
}
.stat strong,.facts strong{
  color:var(--ls-gold) !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:25px !important;font-weight:500 !important;line-height:1.15;
}
.stat span,.facts span{color:var(--ls-muted) !important;font-size:11px !important;margin-top:4px}

/* Section rhythm and typography */
.section{
  padding-top:84px !important;padding-bottom:84px !important;
  padding-left:max(5vw,calc((100vw - 1440px)/2)) !important;
  padding-right:max(5vw,calc((100vw - 1440px)/2)) !important;
}
.section-head,.heading{max-width:900px !important;margin-bottom:34px !important}
.section h2,.section-head h2,.heading h2{
  color:var(--ls-ink) !important;
  font-size:clamp(29px,3.35vw,47px) !important;
  line-height:1.33 !important;letter-spacing:.01em !important;
  text-wrap:balance;
}
.section .eyebrow,.section .section-kicker{
  color:var(--ls-gold) !important;
  font-size:10px !important;letter-spacing:.16em !important;
  margin-bottom:11px !important;
}
.intro-copy,.copy,.lead,.large{color:var(--ls-muted) !important}
.intro-copy p,.copy p{max-width:760px}

/* Photos */
.gallery-strip,.photo-band{
  padding-left:max(5vw,calc((100vw - 1440px)/2)) !important;
  padding-right:max(5vw,calc((100vw - 1440px)/2)) !important;
  gap:12px !important;
}
.gallery-strip img,.photo-band img{
  border-radius:18px !important;
  box-shadow:var(--ls-shadow) !important;
}
.room-gallery img,.room-grid img,.big-gallery img,.gallery img{
  border-radius:16px !important;
  box-shadow:none;
}
.room-gallery img,.room-grid img,.big-gallery img,.gallery img,.gallery-strip img,.photo-band img{
  transition:transform .35s ease,box-shadow .35s ease;
}
.room-gallery img:hover,.room-grid img:hover,.big-gallery img:hover,.gallery img:hover{
  transform:translateY(-2px);box-shadow:var(--ls-shadow);
}

/* Unified cards */
.room-card,.room-feature{
  background:var(--ls-white) !important;
  border:1px solid var(--ls-line) !important;
  border-radius:24px !important;
  box-shadow:var(--ls-shadow) !important;
  padding:28px !important;
  gap:32px !important;
}
.room-card:hover,.room-feature:hover{box-shadow:var(--ls-shadow-hover) !important}
.room-tag,.badge{
  background:#efe5d4 !important;color:#987029 !important;
  font-size:11px !important;font-weight:700 !important;letter-spacing:.02em;
}
.room-meta,.room-spec{color:var(--ls-ink) !important}
.feature-pill,.chips span,.amenity,.amenities div,.shared-list div{
  background:var(--ls-white) !important;
  border:1px solid var(--ls-line) !important;
  box-shadow:0 8px 24px rgba(29,24,17,.045) !important;
}
.feature-pill,.chips span{font-size:12px !important;padding:10px 14px !important}

/* Alternate bands */
.section.alt,.alt{
  background:var(--ls-paper-2) !important;
}

/* Information cards */
.access-card,.info-card,.route-list article,.guide-grid article,.info-grid article,.cards article{
  background:var(--ls-white) !important;
  border:1px solid var(--ls-line) !important;
  border-radius:18px !important;
  box-shadow:0 10px 28px rgba(29,24,17,.055) !important;
}
.access-card:hover,.info-card:hover,.route-list article:hover,.guide-grid article:hover,.info-grid article:hover,.cards article:hover{
  transform:translateY(-2px);box-shadow:var(--ls-shadow) !important;
}
.address-box{
  background:var(--ls-white) !important;border:1px solid var(--ls-line) !important;
  border-radius:18px !important;box-shadow:0 10px 28px rgba(29,24,17,.045);
}
.address-box a,.contact-lines a{color:var(--ls-gold) !important}

/* Booking CTA */
.booking-banner,.booking{
  margin-left:max(5vw,calc((100vw - 1440px)/2)) !important;
  margin-right:max(5vw,calc((100vw - 1440px)/2)) !important;
  margin-bottom:72px !important;
  padding:34px 36px !important;
  border-radius:24px !important;
  background:var(--ls-dark) !important;color:#fff !important;
  box-shadow:0 18px 46px rgba(22,18,14,.14) !important;
}
.booking-banner h2,.booking h2{
  font-size:clamp(26px,3vw,42px) !important;line-height:1.3 !important;text-wrap:balance;
}
.booking-banner p,.booking p{color:#d9cfc2 !important}

/* Footer alignment */
footer,.footer{
  background:#e9dfd1 !important;
  border-top:1px solid var(--ls-line) !important;
  padding:34px max(5vw,calc((100vw - 1440px)/2)) 46px !important;
  color:var(--ls-ink);
}
.footer-brand strong,.footer-brand h3{
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:18px !important;font-weight:500 !important;
}
.footer-brand p,.footer-brand span,.footer-col p,.footer-contact a,.footer-contact span,
footer>div:last-child a,footer>div:last-child span{
  color:var(--ls-muted) !important;font-size:12px !important;
}
.footer-label,.footer-col h4{color:var(--ls-gold) !important;font-size:10px !important;letter-spacing:.08em}

/* Showamachi bottom exterior */
.bottom-photo-section{
  margin-left:max(5vw,calc((100vw - 1440px)/2)) !important;
  margin-right:max(5vw,calc((100vw - 1440px)/2)) !important;
  border-radius:24px !important;
}

/* Mobile / tablet */
@media(max-width:980px){
  .section{padding-top:68px !important;padding-bottom:68px !important}
  .hero{min-height:620px !important}
  .hero-content{padding-bottom:58px !important}
}
@media(max-width:720px){
  .site-header,.header{min-height:64px !important;padding:9px 4vw !important}
  .site-header .brand-logo,.header .brand img,.site-header .brand img{width:44px !important;height:44px !important}
  .hero{min-height:610px !important}
  .hero-content{padding:92px 5vw 48px !important}
  .hero h1{font-size:clamp(40px,12vw,58px) !important}
  .hero-copy,.hero-lead{font-size:15px !important;line-height:1.72 !important}
  .section{padding:56px 5vw !important}
  .section h2,.section-head h2,.heading h2{font-size:clamp(27px,8.6vw,37px) !important}
  .stats,.facts{grid-template-columns:1fr 1fr !important}
  .stat,.facts>div{min-height:84px !important;padding:17px 10px !important}
  .stat strong,.facts strong{font-size:22px !important}
  .gallery-strip,.photo-band{padding-left:5vw !important;padding-right:5vw !important}
  .room-card,.room-feature{padding:20px !important;border-radius:20px !important}
  .booking-banner,.booking{margin:0 5vw 56px !important;padding:28px 24px !important;border-radius:20px !important}
  footer,.footer{padding:30px 5vw 40px !important}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto !important;transition:none !important;animation:none !important}
}




/* Corporate site return link */
.corporate-return{
  display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 13px;
  border:1px solid rgba(184,139,57,.30);border-radius:999px;
  background:rgba(255,253,250,.78);color:#756247;font-size:11px;font-weight:600;
  letter-spacing:.02em;white-space:nowrap;box-shadow:0 5px 16px rgba(42,34,22,.04);
  transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease
}
.corporate-return:hover{background:#fffaf0;border-color:#b88b39;color:#8b641f;transform:translateY(-1px)}
.corporate-return-icon{font-size:14px;line-height:1;color:#b88b39}
@media(max-width:980px){.corporate-return{margin-left:auto}}
@media(max-width:760px){
  .corporate-return{min-height:32px;padding:0 10px;font-size:10px;max-width:145px}
  .corporate-return-text{overflow:hidden;text-overflow:ellipsis}
}
@media(max-width:520px){.corporate-return{padding:0 9px;max-width:116px}}
