/* styles.css */
:root {
  --ink: #11100e;
  --cream: #f3efe6;
  --paper: #fbfaf6;
  --muted: #aaa296;
  --line: rgba(17, 16, 14, 0.18);
  --light-line: rgba(255, 255, 255, 0.22);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Manrope", "Noto Sans JP", Arial, sans-serif;
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  background: var(--ink);
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

body.menu-open { overflow: hidden; }

img {
  display: block;
  width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button, input, textarea, select { font: inherit; }

.skip-link {
  position: fixed;
  left: 1rem;
  top: -4rem;
  z-index: 9999;
  padding: .75rem 1rem;
  background: white;
  color: black;
}

.skip-link:focus { top: 1rem; }

.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 1000;
  height: 88px;
  padding: 0 3.5vw;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  color: white;
  transition: background .35s ease, height .35s ease, color .35s ease;
}

.site-header.scrolled {
  height: 72px;
  color: var(--ink);
  background: rgba(251, 250, 246, .94);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--line);
}

.wordmark {
  display: inline-flex;
  flex-direction: column;
  width: max-content;
  line-height: 1;
  letter-spacing: .14em;
  font-size: .93rem;
  font-weight: 500;
}

.wordmark small {
  margin-top: .45rem;
  font-size: .52rem;
  letter-spacing: .38em;
  text-transform: uppercase;
}

.desktop-nav {
  display: flex;
  align-items: center;
  gap: 2.2rem;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.desktop-nav a, .header-cta {
  position: relative;
}

.desktop-nav a::after, .header-cta::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -.45rem;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .3s ease;
}

.desktop-nav a:hover::after, .header-cta:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

.header-cta {
  justify-self: end;
  font-size: .72rem;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.menu-toggle, .mobile-menu { display: none; }

.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  color: white;
  background: #191713;
}

.hero-media, .hero-overlay {
  position: absolute;
  inset: 0;
}

.hero-media img {
  height: 100%;
  object-fit: cover;
  animation: heroZoom 18s ease-out both;
}

@keyframes heroZoom {
  from { transform: scale(1.08); }
  to { transform: scale(1); }
}

.hero-overlay {
  background:
    linear-gradient(90deg, rgba(7, 6, 5, .72) 0%, rgba(7, 6, 5, .30) 52%, rgba(7, 6, 5, .18) 100%),
    linear-gradient(0deg, rgba(7, 6, 5, .62) 0%, transparent 55%);
}

.hero-content {
  position: relative;
  z-index: 2;
  max-width: 880px;
  padding: 0 6vw 9vh;
}

.eyebrow {
  margin: 0 0 1.25rem;
  color: #d9d2c6;
  font-size: .68rem;
  letter-spacing: .24em;
  text-transform: uppercase;
}

.eyebrow.dark { color: #756e64; }

h1, h2, h3, p { margin-top: 0; }

h1, h2, h3 {
  font-family: var(--serif);
  font-weight: 500;
}

h1 {
  margin-bottom: 1.25rem;
  font-size: clamp(4.5rem, 9vw, 9.6rem);
  line-height: .78;
  letter-spacing: -.045em;
}

.hero-copy {
  max-width: 650px;
  margin-bottom: .75rem;
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  font-weight: 300;
}

.guest-note {
  max-width: 700px;
  margin-bottom: 2.2rem;
  color: rgba(255,255,255,.72);
  font-size: .8rem;
  letter-spacing: .04em;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
}

.button {
  min-height: 52px;
  padding: 0 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  cursor: pointer;
  font-size: .7rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}

.button-light {
  color: var(--ink);
  background: var(--cream);
}

.button-light:hover { background: white; }

.button-ghost {
  color: white;
  border-color: rgba(255,255,255,.48);
  background: rgba(255,255,255,.03);
}

.button-ghost:hover { background: rgba(255,255,255,.12); }

.button-outline {
  color: white;
  border-color: rgba(255,255,255,.42);
  background: transparent;
}

.button-outline:hover {
  color: var(--ink);
  background: white;
}

.button-dark {
  color: white;
  background: var(--ink);
}

.button-dark:hover { background: #34312c; }

.scroll-cue {
  position: absolute;
  z-index: 2;
  right: 3.5vw;
  bottom: 4.5vh;
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: .62rem;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.scroll-cue i {
  display: block;
  width: 64px;
  height: 1px;
  background: rgba(255,255,255,.7);
}

.section {
  position: relative;
  padding: clamp(6rem, 11vw, 11rem) 6vw;
}

.section-number {
  position: absolute;
  right: 6vw;
  top: 7rem;
  color: #8d867c;
  font-size: .65rem;
  letter-spacing: .15em;
}

.intro {
  display: grid;
  grid-template-columns: 1.05fr .75fr;
  gap: 10vw;
  background: var(--paper);
}

.intro h2,
.feature-copy h2,
.membership h2,
.culture h2,
.contact h2,
.reserve h2 {
  margin-bottom: 2rem;
  font-size: clamp(3.8rem, 6.4vw, 7.5rem);
  line-height: .84;
  letter-spacing: -.045em;
}

.intro-copy {
  align-self: end;
  max-width: 580px;
}

.lead {
  font-family: var(--serif);
  font-size: clamp(1.75rem, 2.4vw, 2.65rem);
  line-height: 1.15;
}

.intro-copy > p:not(.lead),
.feature-copy > p,
.culture-copy > p,
.contact-heading > p {
  color: #5e5a53;
  font-size: .95rem;
}

.text-link {
  width: max-content;
  margin-top: 2.2rem;
  padding-bottom: .45rem;
  display: inline-flex;
  gap: 2rem;
  border-bottom: 1px solid currentColor;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.experience-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: var(--ink);
}

.experience-card {
  position: relative;
  height: min(72vw, 760px);
  min-height: 530px;
  overflow: hidden;
  color: white;
  border-right: 1px solid rgba(255,255,255,.16);
}

.experience-card:last-child { border-right: 0; }

.experience-card img {
  height: 100%;
  object-fit: cover;
  transition: transform .8s cubic-bezier(.2,.7,.2,1);
}

.experience-card:hover img { transform: scale(1.045); }

.card-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(6,5,4,.82), rgba(6,5,4,.02) 72%);
}

.card-content {
  position: absolute;
  inset: auto 2.5rem 2.5rem;
}

.card-content p {
  margin-bottom: 1.2rem;
  color: rgba(255,255,255,.58);
  font-size: .62rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.card-content h3 {
  margin-bottom: .35rem;
  font-size: clamp(2.4rem, 3vw, 4rem);
  line-height: 1;
}

.card-content span {
  display: block;
  color: rgba(255,255,255,.7);
  font-size: .78rem;
}

.card-content a {
  margin-top: 1.5rem;
  display: inline-block;
  border-bottom: 1px solid rgba(255,255,255,.7);
  font-size: .65rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.section-dark {
  color: white;
  background: var(--ink);
}

.split-feature {
  min-height: 900px;
  display: grid;
  grid-template-columns: 1.08fr .92fr;
}

.split-feature.reverse {
  color: var(--ink);
  background: var(--cream);
  grid-template-columns: .92fr 1.08fr;
}

.split-feature.reverse .feature-image { order: 2; }

.feature-image {
  position: relative;
  min-height: 700px;
  overflow: hidden;
}

.feature-image img {
  height: 100%;
  object-fit: cover;
}

.vertical-label {
  position: absolute;
  left: 1.5rem;
  bottom: 2rem;
  color: white;
  font-size: .58rem;
  letter-spacing: .22em;
  writing-mode: vertical-rl;
  text-transform: uppercase;
}

.feature-copy {
  padding: clamp(5rem, 9vw, 10rem) 7vw;
  align-self: center;
}

.feature-copy h2 { font-size: clamp(3.8rem, 5.6vw, 7rem); }

.section-dark .feature-copy > p {
  color: rgba(255,255,255,.66);
}

.detail-row {
  margin: 2.5rem 0;
  padding: 1rem 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1.4rem;
  border-top: 1px solid var(--light-line);
  border-bottom: 1px solid var(--light-line);
  color: rgba(255,255,255,.76);
  font-size: .65rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.dark-details {
  color: #655f56;
  border-color: rgba(17,16,14,.18);
}

.quote-section {
  padding: clamp(7rem, 12vw, 13rem) 8vw;
  text-align: center;
  background: var(--paper);
}

.quote-section blockquote {
  max-width: 1100px;
  margin: 0 auto;
  font-family: var(--serif);
  font-size: clamp(3.2rem, 6vw, 7rem);
  line-height: .96;
  letter-spacing: -.035em;
}

.membership {
  padding: clamp(7rem, 11vw, 12rem) 6vw;
}

.membership-layout {
  margin-top: 3rem;
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 10vw;
}

.membership-intro {
  max-width: 530px;
}

.membership-intro .lead {
  color: rgba(255,255,255,.82);
}

.benefit {
  padding: 1.75rem 0;
  display: grid;
  grid-template-columns: 55px 1fr;
  border-top: 1px solid var(--light-line);
}

.benefit:last-child { border-bottom: 1px solid var(--light-line); }

.benefit > span {
  color: #8d867b;
  font-size: .65rem;
}

.benefit h3 {
  margin-bottom: .3rem;
  font-size: 2rem;
}

.benefit p {
  margin: 0;
  color: rgba(255,255,255,.58);
  font-size: .85rem;
}

.culture {
  padding: clamp(7rem, 11vw, 12rem) 6vw;
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 8vw;
  background: var(--paper);
}

.culture-copy {
  max-width: 560px;
  align-self: center;
}

.culture-gallery {
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  gap: 1.25rem;
  align-items: end;
}

.culture-gallery figure {
  margin: 0;
  height: 480px;
  overflow: hidden;
}

.culture-gallery figure.tall { height: 700px; }

.culture-gallery img {
  height: 100%;
  object-fit: cover;
}

.reserve {
  position: relative;
  min-height: 92svh;
  padding: 8rem 6vw;
  display: flex;
  align-items: center;
  color: white;
  overflow: hidden;
}

.reserve-bg, .reserve-shade {
  position: absolute;
  inset: 0;
}

.reserve-bg img {
  height: 100%;
  object-fit: cover;
}

.reserve-shade {
  background: linear-gradient(90deg, rgba(6,5,4,.78), rgba(6,5,4,.22));
}

.reserve-content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1080px;
}

.reserve-content > p:not(.eyebrow) {
  max-width: 560px;
  color: rgba(255,255,255,.7);
}

.reserve-options {
  max-width: 850px;
  margin-top: 3rem;
  border-top: 1px solid rgba(255,255,255,.35);
}

.reserve-options a {
  padding: 1.2rem 0;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  border-bottom: 1px solid rgba(255,255,255,.35);
  transition: padding .25s ease;
}

.reserve-options a:hover { padding-left: .75rem; }

.reserve-options span {
  font-family: var(--serif);
  font-size: 2rem;
}

.reserve-options small {
  color: rgba(255,255,255,.62);
  font-size: .65rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.contact {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: 9vw;
  background: var(--paper);
}

.contact-heading { max-width: 500px; }

.contact-form label {
  margin-bottom: 1.7rem;
  display: block;
}

.contact-form label > span {
  display: block;
  margin-bottom: .55rem;
  color: #6e675e;
  font-size: .62rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.field-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}

input, textarea, select {
  width: 100%;
  padding: .75rem 0;
  color: var(--ink);
  border: 0;
  border-bottom: 1px solid #8b857c;
  border-radius: 0;
  outline: none;
  background: transparent;
}

textarea { resize: vertical; }

input:focus, textarea:focus, select:focus {
  border-bottom-color: var(--ink);
}

.form-status {
  margin-top: 1rem;
  min-height: 1.5rem;
  color: #686159;
  font-size: .8rem;
}

.footer {
  padding: 6rem 6vw 2rem;
  color: white;
  background: #090806;
}

.footer-brand h2 {
  margin-bottom: .4rem;
  font-size: clamp(3rem, 6vw, 7rem);
  line-height: .9;
}

.footer-brand p {
  color: rgba(255,255,255,.46);
  font-size: .65rem;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.footer-locations {
  margin: 5rem 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 340px));
  gap: 5vw;
}

.footer-locations strong {
  font-family: var(--serif);
  font-size: 1.6rem;
}

.footer-locations p, .footer-locations a {
  margin: .5rem 0 0;
  color: rgba(255,255,255,.56);
  font-size: .78rem;
}

.footer-bottom {
  padding-top: 1.5rem;
  display: flex;
  justify-content: space-between;
  border-top: 1px solid rgba(255,255,255,.16);
  color: rgba(255,255,255,.42);
  font-size: .62rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.footer-bottom div {
  display: flex;
  gap: 1.5rem;
}

.mobile-sticky-actions { display: none; }

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 980px) {
  .site-header {
    grid-template-columns: 1fr auto;
    padding: 0 1.5rem;
  }

  .desktop-nav, .header-cta { display: none; }

  .menu-toggle {
    width: 42px;
    height: 42px;
    padding: 0;
    display: grid;
    place-content: center;
    gap: 7px;
    border: 0;
    color: inherit;
    background: transparent;
  }

  .menu-toggle span {
    width: 24px;
    height: 1px;
    display: block;
    background: currentColor;
    transition: transform .3s ease;
  }

  .menu-open .menu-toggle span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-open .menu-toggle span:last-child { transform: translateY(-4px) rotate(-45deg); }

  .mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 900;
    padding: 120px 2rem 3rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    visibility: hidden;
    opacity: 0;
    color: white;
    background: #0b0a08;
    transition: opacity .3s ease, visibility .3s ease;
  }

  .mobile-menu.open {
    visibility: visible;
    opacity: 1;
  }

  .mobile-menu nav {
    display: flex;
    flex-direction: column;
  }

  .mobile-menu nav a {
    padding: .35rem 0;
    font-family: var(--serif);
    font-size: clamp(2.7rem, 11vw, 5rem);
    line-height: 1;
  }

  .mobile-menu p {
    color: rgba(255,255,255,.45);
    font-size: .75rem;
  }

  .intro, .membership-layout, .culture, .contact {
    grid-template-columns: 1fr;
    gap: 4rem;
  }

  .experience-grid { grid-template-columns: 1fr; }

  .experience-card {
    height: 72svh;
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,.16);
  }

  .split-feature, .split-feature.reverse {
    min-height: auto;
    grid-template-columns: 1fr;
  }

  .split-feature.reverse .feature-image { order: 0; }

  .feature-image { min-height: 68svh; }

  .culture-gallery figure.tall { height: 580px; }

  .culture-gallery figure { height: 380px; }
}

@media (max-width: 640px) {
  body { padding-bottom: 58px; }

  .site-header { height: 70px; }
  .site-header.scrolled { height: 64px; }

  .wordmark { font-size: .78rem; }

  .hero-content { padding: 0 1.5rem 8rem; }

  h1 {
    font-size: clamp(4rem, 20vw, 6rem);
    line-height: .8;
  }

  .hero-copy { max-width: 92%; }

  .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .scroll-cue { display: none; }

  .section, .membership, .culture, .contact {
    padding: 6rem 1.5rem;
  }

  .section-number { display: none; }

  .intro h2,
  .feature-copy h2,
  .membership h2,
  .culture h2,
  .contact h2,
  .reserve h2 {
    font-size: clamp(3.5rem, 17vw, 5rem);
  }

  .lead { font-size: 1.8rem; }

  .experience-card {
    min-height: 520px;
    height: 78svh;
  }

  .card-content { inset: auto 1.5rem 1.75rem; }

  .feature-image { min-height: 58svh; }

  .feature-copy { padding: 5rem 1.5rem; }

  .detail-row { gap: .8rem 1.2rem; }

  .quote-section { padding: 7rem 1.5rem; }

  .quote-section blockquote { font-size: 3.4rem; }

  .membership-layout { margin-top: 1rem; }

  .culture-gallery {
    grid-template-columns: 1fr;
  }

  .culture-gallery figure.tall,
  .culture-gallery figure {
    height: 70svh;
  }

  .reserve {
    min-height: 100svh;
    padding: 7rem 1.5rem;
  }

  .reserve-options a {
    align-items: flex-start;
    flex-direction: column;
    gap: .25rem;
  }

  .field-grid { grid-template-columns: 1fr; gap: 0; }

  .footer { padding: 5rem 1.5rem 2rem; }

  .footer-locations { grid-template-columns: 1fr; }

  .footer-bottom {
    flex-direction: column;
    gap: 1rem;
  }

  .footer-bottom div {
    flex-wrap: wrap;
    gap: .75rem 1.25rem;
  }

  .mobile-sticky-actions {
    position: fixed;
    inset: auto 0 0;
    z-index: 850;
    height: 58px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    background: var(--ink);
  }

  .mobile-sticky-actions a {
    display: grid;
    place-content: center;
    color: white;
    border-right: 1px solid rgba(255,255,255,.18);
    font-size: .66rem;
    letter-spacing: .14em;
    text-transform: uppercase;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .reveal { opacity: 1; transform: none; }
}


/* Updated header: always readable */
.site-header{
  color:var(--ink);
  background:rgba(251,250,246,.94);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
}
.site-header.scrolled{color:var(--ink)}
.wordmark{font-family:var(--serif);font-size:1rem;font-weight:600;letter-spacing:.16em}
.wordmark small{display:none}
.header-right{justify-self:end;display:flex;align-items:center;gap:1rem}
.language-toggle{border:0;background:transparent;color:inherit;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.hero{padding-top:72px}
.hero-overlay{background:linear-gradient(90deg,rgba(7,6,5,.46),rgba(7,6,5,.10)),linear-gradient(0deg,rgba(7,6,5,.28),transparent 55%)}
.hero-content h1{font-size:clamp(4.6rem,8vw,8.4rem)}
.social-links{display:grid;gap:.55rem;margin-top:2rem}
.social-links a{width:max-content;padding-bottom:.2rem;border-bottom:1px solid currentColor;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.experience-video{padding:clamp(7rem,10vw,10rem) 0;background:var(--paper)}
.video-title{max-width:1200px;margin:0 auto 3.5rem;padding:0 6vw}
.video-title h2{font-size:clamp(4rem,6.5vw,6.8rem);line-height:.86;letter-spacing:-.045em}
.experience-video video{display:block;width:100%;height:min(76vw,880px);object-fit:cover;background:#000}
body.ja h1,body.ja h2,body.ja h3,body.ja blockquote,body.ja .lead{font-family:"Noto Serif JP",serif;line-height:1.1}
body.ja{font-family:"Noto Sans JP",sans-serif}
@media(max-width:980px){.header-right .header-cta{display:none}.hero{padding-top:64px}}
@media(max-width:640px){
  .wordmark{font-size:.84rem}
  .video-title{padding:0 1.5rem}
  .video-title h2{font-size:3.6rem}
  .experience-video video{height:72svh}
}

.culture-gallery figure video{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}

/* Better Japanese typography */
body.ja h1{font-size:clamp(3.4rem,6vw,5.8rem)!important;line-height:1.08}
body.ja h2{font-size:clamp(2.8rem,5vw,4.8rem)!important;line-height:1.12}
body.ja h3{font-size:clamp(2rem,3.5vw,3.4rem)!important;line-height:1.15}
body.ja .lead{font-size:clamp(1.4rem,2vw,2rem)!important}
body.ja p{font-size:.98rem;line-height:2}
body.ja .guest-note,body.ja .eyebrow{font-size:.75rem}


/* =========================================================
   DESKTOP ART VIDEO + IMAGE MOTION
   ========================================================= */

/* Make the right-side art video much larger on desktop */
@media (min-width: 981px) {
  .culture {
    grid-template-columns: 0.72fr 1.28fr;
    gap: 6vw;
  }

  .culture-gallery {
    grid-template-columns: 0.82fr 1.18fr;
    gap: 1.5rem;
    align-items: stretch;
  }

  .culture-gallery figure.tall {
    height: 720px;
  }

  .culture-gallery figure:not(.tall) {
    height: 720px;
  }

  .culture-gallery figure video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
}

/* Gentle cinematic movement for all major images */
.hero-media img,
.experience-card img,
.feature-image img,
.reserve-bg img,
.culture-gallery img,
.membership-image img,
.large-image img,
.detail-image img {
  transform: scale(1.015);
  transition: transform 1.4s cubic-bezier(.2,.7,.2,1),
              filter 1.2s ease;
  will-change: transform;
}

.hero-media img {
  animation: atlasHeroDrift 18s ease-in-out infinite alternate;
}

.experience-card:hover img,
.feature-image:hover img,
.culture-gallery figure:hover img,
.reserve:hover .reserve-bg img,
.membership-image:hover img,
.large-image:hover img,
.detail-image:hover img {
  transform: scale(1.065);
}

.culture-gallery figure video {
  transform: scale(1.015);
  transition: transform 1.4s cubic-bezier(.2,.7,.2,1),
              filter 1.2s ease;
  will-change: transform;
}

.culture-gallery figure:hover video {
  transform: scale(1.055);
}

/* Subtle parallax-like movement */
.feature-image img,
.culture-gallery img,
.culture-gallery video,
.reserve-bg img {
  animation: atlasFloat 12s ease-in-out infinite alternate;
}

.experience-card:nth-child(2) img {
  animation-delay: -3s;
}

.experience-card:nth-child(3) img {
  animation-delay: -6s;
}

@keyframes atlasHeroDrift {
  0%   { transform: scale(1.02) translate3d(0,0,0); }
  100% { transform: scale(1.07) translate3d(-1.2%, -0.8%, 0); }
}

@keyframes atlasFloat {
  0%   { transform: scale(1.015) translate3d(0,0,0); }
  100% { transform: scale(1.045) translate3d(0,-0.8%,0); }
}

/* Cleaner Japanese philosophy sizing */
body.ja .quote-section blockquote {
  max-width: 980px;
  font-size: clamp(2.5rem, 4.6vw, 5rem) !important;
  line-height: 1.35 !important;
  letter-spacing: -0.03em;
}

/* Preserve accessibility */
@media (prefers-reduced-motion: reduce) {
  .hero-media img,
  .feature-image img,
  .culture-gallery img,
  .culture-gallery video,
  .reserve-bg img {
    animation: none !important;
    transform: none !important;
  }
}


/* =========================================================
   SECTION-SPECIFIC SOCIAL LINKS
   Keeps the original layout while adding update destinations
   ========================================================= */

.section-social-link{
  width:max-content;
  max-width:100%;
  margin-top:1.35rem;
  padding-bottom:.32rem;
  display:block;
  border-bottom:1px solid currentColor;
  font-size:.68rem;
  letter-spacing:.11em;
  text-transform:uppercase;
  opacity:.78;
  transition:opacity .25s ease, transform .25s ease;
}

.section-social-link:hover{
  opacity:1;
  transform:translateX(4px);
}

.social-links{
  margin-top:2rem;
  display:grid;
  gap:1.5rem;
}

.social-group{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem 1.25rem;
  align-items:center;
}

.social-group-title{
  width:100%;
  font-family:var(--serif);
  font-size:1.25rem;
  letter-spacing:.02em;
}

.social-group a{
  width:max-content;
  padding-bottom:.25rem;
  border-bottom:1px solid currentColor;
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.reserve-instagram-link{
  width:max-content;
  margin-top:2rem;
  padding-bottom:.32rem;
  display:block;
  border-bottom:1px solid rgba(255,255,255,.75);
  color:rgba(255,255,255,.78);
  font-size:.68rem;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.reserve-instagram-link:hover{
  color:white;
}

body.ja .section-social-link,
body.ja .reserve-instagram-link,
body.ja .social-group a{
  letter-spacing:.06em;
  text-transform:none;
}

@media(max-width:640px){
  .section-social-link,
  .reserve-instagram-link{
    width:100%;
    line-height:1.7;
  }

  .social-group{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* =========================================================
   ENHANCED SLIDE-IN MOTION
   ========================================================= */

.reveal{
  opacity:0;
  transform:translateY(36px);
  transition:
    opacity .9s ease,
    transform 1s cubic-bezier(.22,.72,.24,1);
  will-change:opacity,transform;
}

.reveal.visible{
  opacity:1;
  transform:none;
}

/* Alternate horizontal entrances */
.experience-card:nth-child(1).reveal,
.split-feature .feature-image.reveal,
.culture-gallery figure:nth-child(1).reveal,
.membership-heading.reveal,
.contact-heading.reveal{
  transform:translateX(-70px);
}

.experience-card:nth-child(2).reveal,
.split-feature .feature-copy.reveal,
.culture-copy.reveal,
.membership-intro.reveal,
.contact-form.reveal{
  transform:translateX(70px);
}

.experience-card:nth-child(3).reveal,
.culture-gallery figure:nth-child(2).reveal,
.benefit.reveal{
  transform:translateY(55px) scale(.985);
}

.experience-card:nth-child(1).reveal.visible,
.experience-card:nth-child(2).reveal.visible,
.experience-card:nth-child(3).reveal.visible,
.split-feature .feature-image.reveal.visible,
.split-feature .feature-copy.reveal.visible,
.culture-copy.reveal.visible,
.culture-gallery figure.reveal.visible,
.membership-heading.reveal.visible,
.membership-intro.reveal.visible,
.benefit.reveal.visible,
.contact-heading.reveal.visible,
.contact-form.reveal.visible{
  transform:none;
}

/* Staggered benefits */
.benefit:nth-child(1){transition-delay:.05s}
.benefit:nth-child(2){transition-delay:.14s}
.benefit:nth-child(3){transition-delay:.23s}
.benefit:nth-child(4){transition-delay:.32s}

/* Staggered experience cards */
.experience-card:nth-child(1){transition-delay:.05s}
.experience-card:nth-child(2){transition-delay:.16s}
.experience-card:nth-child(3){transition-delay:.27s}

/* Stronger but elegant image movement */
.hero-media img,
.experience-card img,
.feature-image img,
.culture-gallery img,
.culture-gallery video,
.reserve-bg img{
  will-change:transform;
}

.hero-media img{
  animation:heroPan 20s ease-in-out infinite alternate;
}

.experience-card img{
  animation:cardDrift 14s ease-in-out infinite alternate;
}

.experience-card:nth-child(2) img{
  animation-delay:-4s;
}

.experience-card:nth-child(3) img{
  animation-delay:-8s;
}

.feature-image img{
  animation:featureFloat 16s ease-in-out infinite alternate;
}

.culture-gallery figure:nth-child(1) img{
  animation:cultureLeft 15s ease-in-out infinite alternate;
}

.culture-gallery figure:nth-child(2) video{
  animation:cultureRight 15s ease-in-out infinite alternate;
}

.reserve-bg img{
  animation:reserveZoom 18s ease-in-out infinite alternate;
}

/* Hover motion */
.experience-card:hover img{
  transform:scale(1.08) translateY(-1.2%);
}

.feature-image:hover img{
  transform:scale(1.06) translateX(1%);
}

.culture-gallery figure:hover img,
.culture-gallery figure:hover video{
  transform:scale(1.07);
}

/* Keyframes */
@keyframes heroPan{
  0%{transform:scale(1.03) translate3d(0,0,0)}
  100%{transform:scale(1.09) translate3d(-1.5%,-1%,0)}
}

@keyframes cardDrift{
  0%{transform:scale(1.02) translate3d(0,0,0)}
  100%{transform:scale(1.07) translate3d(0,-1.2%,0)}
}

@keyframes featureFloat{
  0%{transform:scale(1.015) translate3d(-.8%,0,0)}
  100%{transform:scale(1.055) translate3d(.8%,-.8%,0)}
}

@keyframes cultureLeft{
  0%{transform:scale(1.02) translate3d(-1%,0,0)}
  100%{transform:scale(1.06) translate3d(1%,-1%,0)}
}

@keyframes cultureRight{
  0%{transform:scale(1.02) translate3d(1%,0,0)}
  100%{transform:scale(1.06) translate3d(-1%,-1%,0)}
}

@keyframes reserveZoom{
  0%{transform:scale(1.02)}
  100%{transform:scale(1.08)}
}

/* Mobile: simpler motion for performance */
@media(max-width:640px){
  .experience-card:nth-child(1).reveal,
  .experience-card:nth-child(2).reveal,
  .experience-card:nth-child(3).reveal,
  .split-feature .feature-image.reveal,
  .split-feature .feature-copy.reveal,
  .culture-copy.reveal,
  .culture-gallery figure.reveal,
  .membership-heading.reveal,
  .membership-intro.reveal,
  .benefit.reveal,
  .contact-heading.reveal,
  .contact-form.reveal{
    transform:translateY(34px);
  }

  .experience-card:nth-child(1).reveal.visible,
  .experience-card:nth-child(2).reveal.visible,
  .experience-card:nth-child(3).reveal.visible,
  .split-feature .feature-image.reveal.visible,
  .split-feature .feature-copy.reveal.visible,
  .culture-copy.reveal.visible,
  .culture-gallery figure.reveal.visible,
  .membership-heading.reveal.visible,
  .membership-intro.reveal.visible,
  .benefit.reveal.visible,
  .contact-heading.reveal.visible,
  .contact-form.reveal.visible{
    transform:none;
  }
}

/* Accessibility */
@media(prefers-reduced-motion:reduce){
  .reveal,
  .reveal.visible{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }

  .hero-media img,
  .experience-card img,
  .feature-image img,
  .culture-gallery img,
  .culture-gallery video,
  .reserve-bg img{
    animation:none!important;
    transform:none!important;
  }
}


/* =========================================================
   COMPLETE JAPANESE TYPOGRAPHY
   ========================================================= */

:root{
  --jp-serif:"Shippori Mincho","Yu Mincho","Hiragino Mincho ProN",serif;
  --jp-sans:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}

body.ja{
  font-family:var(--jp-sans);
  font-weight:400;
  letter-spacing:.015em;
}

body.ja h1,
body.ja h2,
body.ja h3,
body.ja blockquote,
body.ja .lead,
body.ja .card-content h3,
body.ja .benefit h3,
body.ja .reserve-options span,
body.ja .footer-brand h2{
  font-family:var(--jp-serif);
  font-weight:500;
}

body.ja h1{
  font-size:clamp(3.2rem,5.7vw,5.8rem)!important;
  line-height:1.18!important;
  letter-spacing:-.045em;
}

body.ja h2{
  font-size:clamp(2.7rem,4.7vw,4.8rem)!important;
  line-height:1.25!important;
  letter-spacing:-.035em;
}

body.ja h3{
  line-height:1.3!important;
  letter-spacing:-.02em;
}

body.ja p,
body.ja li{
  line-height:2.05;
}

body.ja .lead{
  font-size:clamp(1.35rem,1.9vw,1.9rem)!important;
  line-height:1.85!important;
}

body.ja .eyebrow,
body.ja .section-social-link,
body.ja .reserve-instagram-link,
body.ja .social-group a{
  font-family:var(--jp-sans);
  letter-spacing:.08em;
  text-transform:none;
}

body.ja .quote-section blockquote{
  font-size:clamp(2rem,3.4vw,3.6rem)!important;
  line-height:1.7!important;
  max-width:1050px;
}

body.ja .card-content h3{
  font-size:clamp(2rem,2.8vw,3rem)!important;
}

body.ja .benefit h3{
  font-size:clamp(1.45rem,2vw,2rem)!important;
}

body.ja .reserve-options span{
  font-size:clamp(1.55rem,2vw,2rem)!important;
}

@media(max-width:640px){
  body.ja h1{font-size:2.85rem!important}
  body.ja h2{font-size:2.45rem!important}
  body.ja .quote-section blockquote{font-size:1.8rem!important}
}


/* =========================================================
   DESKTOP JAPANESE LINE-BREAK CONTROL
   ========================================================= */

@media (min-width: 981px) {
  body.ja .intro-copy,
  body.ja .feature-copy,
  body.ja .membership-intro,
  body.ja .culture-copy,
  body.ja .reserve-content,
  body.ja .contact-heading {
    max-width: 620px;
  }

  body.ja .intro-copy p,
  body.ja .feature-copy p,
  body.ja .membership-intro p,
  body.ja .culture-copy p,
  body.ja .reserve-content > p,
  body.ja .contact-heading > p {
    max-width: 34em;
    word-break: keep-all;
    overflow-wrap: normal;
    line-break: strict;
  }

  body.ja .feature-copy p {
    font-size: .98rem;
  }

  body.ja .quote-section blockquote {
    max-width: 900px;
    font-size: clamp(2rem, 3.2vw, 3.4rem) !important;
    line-height: 1.7 !important;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  body.ja .lead {
    max-width: 28em;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  body.ja .guest-note {
    max-width: 44em;
    word-break: keep-all;
  }

  body.ja .card-content span,
  body.ja .benefit p {
    max-width: 28em;
    word-break: keep-all;
  }
}

/* On tablets and mobile, allow normal wrapping */
@media (max-width: 980px) {
  body.ja br {
    display: none;
  }

  body.ja .quote-section blockquote br {
    display: inline;
  }

  body.ja p,
  body.ja .lead,
  body.ja .feature-copy p,
  body.ja .culture-copy p {
    word-break: normal;
    overflow-wrap: anywhere;
  }
}


/* =========================================================
   FINAL READABILITY + HERO INSTAGRAM LINKS
   ========================================================= */

/* Instagram access from the first screen */
.hero-instagram-links{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem 1.2rem;
  margin-top:1.6rem;
}

.hero-instagram-links a{
  width:max-content;
  padding-bottom:.25rem;
  border-bottom:1px solid rgba(255,255,255,.7);
  color:rgba(255,255,255,.88);
  font-size:.66rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  transition:color .25s ease, transform .25s ease, border-color .25s ease;
}

.hero-instagram-links a:hover{
  color:#fff;
  border-color:#fff;
  transform:translateX(4px);
}

/* Prevent clipping and improve the Music & Art section on desktop */
.culture-readable{
  overflow:visible!important;
  min-height:auto!important;
  padding-top:clamp(7rem,10vw,10rem)!important;
  padding-bottom:clamp(8rem,12vw,12rem)!important;
}

.culture-readable .culture-copy{
  align-self:start;
  max-width:640px;
  padding-bottom:2rem;
}

.culture-readable .culture-copy h2{
  max-width:1000px;
  white-space:normal;
  font-size:clamp(2.8rem,4.8vw,5.2rem)!important;
  line-height:1.18!important;
  margin-bottom:2rem;
}

.culture-readable .culture-copy > p:not(.eyebrow){
  max-width:36em;
  margin-bottom:2rem;
  color:#2f2b28!important;
  font-size:1.08rem!important;
  line-height:2.05!important;
  word-break:keep-all;
  overflow-wrap:normal;
}

.culture-readable .social-links{
  margin-top:2.2rem;
}

.culture-readable .social-group a{
  color:#1f1c18;
  font-size:.74rem;
  line-height:1.7;
}

.culture-readable .culture-gallery{
  align-items:stretch;
  min-height:720px;
}

.culture-readable .culture-gallery figure{
  overflow:hidden;
  min-height:720px;
}

.culture-readable .culture-gallery figure img,
.culture-readable .culture-gallery figure video{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Japanese refinement */
body.ja .culture-readable .culture-copy h2{
  font-family:var(--jp-serif);
  font-size:clamp(2.5rem,4vw,4.4rem)!important;
  line-height:1.35!important;
  letter-spacing:-.03em;
  white-space:nowrap;
}

body.ja .culture-readable .culture-copy > p:not(.eyebrow){
  font-family:var(--jp-sans);
  font-size:1.06rem!important;
  line-height:2.15!important;
}

body.ja .hero-instagram-links a{
  letter-spacing:.05em;
  text-transform:none;
}

@media(max-width:980px){
  .culture-readable .culture-gallery{
    min-height:auto;
  }

  .culture-readable .culture-gallery figure{
    min-height:520px;
  }

  body.ja .culture-readable .culture-copy h2{
    white-space:normal;
  }
}

@media(max-width:640px){
  .hero-instagram-links{
    flex-direction:column;
    align-items:flex-start;
    gap:.7rem;
  }

  .hero-instagram-links a{
    font-size:.72rem;
  }

  .culture-readable .culture-copy h2,
  body.ja .culture-readable .culture-copy h2{
    font-size:2.35rem!important;
    line-height:1.4!important;
  }

  .culture-readable .culture-copy > p:not(.eyebrow){
    font-size:1rem!important;
    line-height:2!important;
  }

  .culture-readable .culture-gallery figure{
    min-height:62svh;
  }
}


/* =========================================================
   CORRECTED VISIBILITY — HERO / ART / SMALL TEXT
   ========================================================= */

/* HERO: prevent Art Instagram from being clipped */
.hero{
  overflow:visible !important;
}

.hero-content{
  padding-bottom:clamp(5.5rem,8vh,7.5rem) !important;
  max-width:880px !important;
}

.hero-instagram-links{
  position:relative;
  z-index:5;
  margin-top:1.4rem !important;
  padding-bottom:.4rem;
  overflow:visible !important;
}

.hero-instagram-links a{
  display:inline-block;
  white-space:nowrap;
  font-size:.82rem !important;
  font-weight:600 !important;
  line-height:1.5;
  color:#fff !important;
  border-bottom:1px solid rgba(255,255,255,.95) !important;
}

/* Make hero body copy more readable */
.hero-copy{
  max-width:700px !important;
  color:#fff !important;
  font-size:1.05rem !important;
  font-weight:500 !important;
  line-height:1.9 !important;
  text-shadow:0 1px 16px rgba(0,0,0,.35);
}

.guest-note{
  max-width:760px !important;
  color:rgba(255,255,255,.96) !important;
  font-size:.92rem !important;
  font-weight:600 !important;
  line-height:1.8 !important;
  text-shadow:0 1px 14px rgba(0,0,0,.4);
}

/* MUSIC & ART: keep heading clear of photos */
.culture-readable{
  position:relative;
  overflow:visible !important;
}

.culture-readable .culture-copy{
  position:relative;
  z-index:3;
  padding-right:2rem;
}

.culture-readable .culture-copy h2{
  max-width:760px !important;
  margin-bottom:2.2rem !important;
  white-space:normal !important;
  line-height:1.25 !important;
}

body.ja .culture-readable .culture-copy h2{
  font-size:clamp(2.55rem,3.9vw,4.2rem) !important;
  line-height:1.35 !important;
  white-space:normal !important;
  word-break:keep-all;
}

.culture-readable .culture-gallery{
  position:relative;
  z-index:1;
}

/* Restaurant detail row — more visible */
#restaurant .detail-row span,
#lounge .detail-row span{
  font-size:.78rem !important;
  font-weight:600 !important;
  letter-spacing:.08em !important;
  opacity:1 !important;
}

/* Strengthen all small text across the site */
.eyebrow,
.section-number,
.card-content p,
.card-content span,
.vertical-label,
.detail-row span,
.benefit > span,
.benefit p,
.social-group a,
.section-social-link,
.reserve-instagram-link,
.reserve-options small,
.form-status,
.footer p,
.footer a,
.footer-bottom,
.scroll-cue span,
.mobile-menu p{
  font-size:max(.78rem, 13px) !important;
  font-weight:500 !important;
  opacity:1 !important;
}

.card-content span,
.benefit p,
.footer p,
.footer a,
.mobile-menu p{
  line-height:1.75 !important;
}

.section-dark .eyebrow,
.section-dark .card-content span,
.section-dark .benefit p,
.reserve .eyebrow,
.reserve-options small{
  color:rgba(255,255,255,.9) !important;
}

/* Improve light-background small copy */
.eyebrow.dark,
.culture-copy p,
.contact-heading p,
.intro-copy p{
  color:#2b2824 !important;
}

/* Mobile */
@media(max-width:640px){
  .hero-content{
    padding-bottom:6.5rem !important;
  }

  .hero-instagram-links a{
    font-size:.86rem !important;
  }

  .hero-copy{
    font-size:1rem !important;
    line-height:1.85 !important;
  }

  .guest-note{
    font-size:.88rem !important;
  }

  body.ja .culture-readable .culture-copy h2{
    font-size:2.35rem !important;
    line-height:1.42 !important;
  }

  #restaurant .detail-row,
  #lounge .detail-row{
    gap:.8rem;
  }

  #restaurant .detail-row span,
  #lounge .detail-row span{
    font-size:.82rem !important;
  }
}


/* =========================================================
   HERO BRAND TITLE UPDATE
   ========================================================= */

.hero{
  min-height:100svh;
}

.hero-content{
  max-width:1180px!important;
  width:min(1180px,88vw)!important;
  padding-bottom:clamp(6rem,9vh,8rem)!important;
}

.hero-brand-title{
  margin:0 0 1.4rem;
  max-width:100%;
  color:#fff;
  font-family:"Cormorant Garamond",serif!important;
  font-size:clamp(5.6rem,10vw,10.5rem)!important;
  font-weight:500!important;
  line-height:.82!important;
  letter-spacing:.015em!important;
  white-space:nowrap;
  text-shadow:0 4px 34px rgba(0,0,0,.38);
}

.hero-brand-subtitle{
  margin:0 0 1.5rem;
  color:rgba(255,255,255,.96);
  font-size:clamp(.9rem,1.25vw,1.2rem)!important;
  font-weight:600!important;
  letter-spacing:.24em;
  line-height:1.7;
  text-transform:uppercase;
  text-shadow:0 2px 18px rgba(0,0,0,.4);
}

.hero-brand-statement{
  max-width:760px;
  margin:0 0 1.5rem;
  color:#fff;
  font-size:clamp(1.05rem,1.35vw,1.3rem)!important;
  font-weight:500!important;
  line-height:1.9!important;
  text-shadow:0 2px 18px rgba(0,0,0,.42);
}

body.ja .hero-brand-title{
  font-family:"Cormorant Garamond",serif!important;
  letter-spacing:.01em!important;
}

body.ja .hero-brand-subtitle{
  font-family:var(--jp-sans, "Zen Kaku Gothic New", sans-serif)!important;
  letter-spacing:.12em;
  text-transform:none;
}

body.ja .hero-brand-statement{
  max-width:720px;
  font-family:var(--jp-serif, "Shippori Mincho", serif)!important;
  font-size:clamp(1.1rem,1.45vw,1.35rem)!important;
  line-height:2!important;
}

/* Header wordmark appears only after scrolling */
.scroll-wordmark{
  opacity:0;
  transform:translateY(-8px);
  pointer-events:none;
  transition:opacity .35s ease,transform .35s ease;
}

.site-header.scrolled .scroll-wordmark{
  opacity:1;
  transform:none;
  pointer-events:auto;
}

/* Keep Art Instagram fully visible */
.hero-instagram-links{
  position:relative!important;
  inset:auto!important;
  margin-top:1.6rem!important;
  padding-bottom:.75rem!important;
  overflow:visible!important;
}

.hero-instagram-links a{
  display:inline-block!important;
  white-space:nowrap!important;
  font-size:.85rem!important;
  font-weight:600!important;
  line-height:1.6!important;
}

/* Slightly brighter hero image */
.hero-media img{
  filter:brightness(1.1) saturate(1.03);
}

@media(max-width:980px){
  .hero-brand-title{
    white-space:normal;
    font-size:clamp(4.6rem,12vw,7.6rem)!important;
  }
}

@media(max-width:640px){
  .hero-content{
    width:auto!important;
    padding-left:1.3rem!important;
    padding-right:1.3rem!important;
    padding-bottom:7rem!important;
  }

  .hero-brand-title{
    font-size:3.75rem!important;
    line-height:.9!important;
    white-space:normal;
  }

  .hero-brand-subtitle{
    font-size:.82rem!important;
    line-height:1.7!important;
    letter-spacing:.12em;
  }

  .hero-brand-statement{
    font-size:1rem!important;
    line-height:1.9!important;
  }

  .scroll-wordmark{
    opacity:1;
    transform:none;
    pointer-events:auto;
  }
}


/* =========================================================
   LATEST HERO / TITLE REFINEMENTS
   ========================================================= */

/* Four Instagram links under the hero statement */
.all-instagram-links{
  display:grid!important;
  grid-template-columns:repeat(2,max-content);
  gap:.7rem 1.6rem!important;
  margin-top:1.5rem!important;
  align-items:start;
}

.all-instagram-links a{
  display:inline-block!important;
  width:max-content;
  white-space:nowrap;
  font-size:.82rem!important;
  font-weight:600!important;
  line-height:1.5!important;
  color:#fff!important;
  border-bottom:1px solid rgba(255,255,255,.9)!important;
}

/* Intro title: smaller and guaranteed two lines on desktop */
.intro-two-line-title{
  max-width:900px!important;
}

body.ja .intro-two-line-title{
  font-size:clamp(2.6rem,4.3vw,4.4rem)!important;
  line-height:1.28!important;
  white-space:normal!important;
  word-break:keep-all;
}

/* Reservation title: guaranteed two lines */
.reserve-two-line-title{
  max-width:920px!important;
}

body.ja .reserve-two-line-title{
  font-size:clamp(2.7rem,4.5vw,4.6rem)!important;
  line-height:1.25!important;
  white-space:normal!important;
  word-break:keep-all;
}

@media(max-width:640px){
  .all-instagram-links{
    grid-template-columns:1fr;
    gap:.65rem!important;
  }

  .all-instagram-links a{
    font-size:.82rem!important;
  }

  body.ja .intro-two-line-title,
  body.ja .reserve-two-line-title{
    font-size:2.3rem!important;
    line-height:1.38!important;
  }
}


/* =========================================================
   SIMPLIFIED HERO + FIXED TWO-LINE RESERVATION TITLE
   ========================================================= */

.hero-content{
  max-width:1080px!important;
  width:min(1080px,88vw)!important;
}

.hero-brand-title{
  margin-bottom:1.25rem!important;
}

.hero-brand-subtitle{
  margin-bottom:1.5rem!important;
}

.hero-brand-statement{
  max-width:720px!important;
  margin-bottom:1.8rem!important;
}

.hero-actions-simple{
  display:flex!important;
  flex-wrap:wrap;
  gap:.8rem!important;
  margin-bottom:1.5rem;
}

.hero-actions-simple .button{
  min-width:190px;
}

.all-instagram-links{
  display:grid!important;
  grid-template-columns:repeat(2,max-content);
  gap:.7rem 1.6rem!important;
  margin-top:.5rem!important;
}

.all-instagram-links a{
  font-size:.82rem!important;
  font-weight:600!important;
}

/* Reservation title stays two lines on desktop */
.reserve-title-fixed{
  max-width:920px!important;
}

body.ja .reserve-title-fixed{
  font-size:clamp(2.75rem,4.5vw,4.7rem)!important;
  line-height:1.28!important;
  white-space:normal!important;
  word-break:keep-all!important;
}

body.ja .reserve-title-fixed br{
  display:block!important;
}

@media(max-width:640px){
  .hero-content{
    width:auto!important;
  }

  .hero-actions-simple{
    flex-direction:column;
    align-items:stretch;
  }

  .hero-actions-simple .button{
    min-width:0;
    width:100%;
  }

  .all-instagram-links{
    grid-template-columns:1fr;
    gap:.65rem!important;
  }

  body.ja .reserve-title-fixed{
    font-size:2.3rem!important;
    line-height:1.38!important;
  }
}


/* =========================================================
   MOBILE-FIRST REFINEMENT
   ========================================================= */

@media (max-width: 768px){

  html,body{
    width:100%;
    overflow-x:hidden;
  }

  body{
    padding-bottom:64px;
  }

  /* Header */
  .site-header{
    height:64px!important;
    padding:0 16px!important;
    grid-template-columns:1fr auto!important;
    background:rgba(247,243,236,.97)!important;
  }

  .wordmark{
    max-width:220px;
    font-size:.78rem!important;
    letter-spacing:.12em!important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .desktop-nav,
  .header-cta{
    display:none!important;
  }

  .header-right,
  .header-actions{
    display:flex!important;
    align-items:center;
    gap:8px!important;
  }

  .language-toggle{
    min-width:38px;
    padding:8px 4px;
    font-size:.72rem!important;
    font-weight:600;
  }

  .menu-toggle{
    display:grid!important;
    place-content:center;
    width:42px!important;
    height:42px!important;
    padding:0;
  }

  .menu-toggle span{
    width:22px!important;
  }

  .mobile-menu{
    top:64px!important;
    padding:36px 22px 90px!important;
    overflow-y:auto;
  }

  .mobile-menu a{
    font-size:2.25rem!important;
    line-height:1.25!important;
    padding:5px 0;
  }

  .mobile-menu p{
    margin-top:28px;
    font-size:.88rem!important;
    line-height:1.9!important;
  }

  /* Hero */
  .hero{
    min-height:100svh!important;
    padding-top:64px!important;
    align-items:flex-end!important;
    overflow:hidden!important;
  }

  .hero-media,
  .hero-media img{
    min-height:100%;
  }

  .hero-media img{
    object-position:center center!important;
    filter:brightness(.86) saturate(1.02)!important;
  }

  .hero-overlay{
    background:
      linear-gradient(0deg,rgba(0,0,0,.74) 0%,rgba(0,0,0,.28) 58%,rgba(0,0,0,.14) 100%)!important;
  }

  .hero-content{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0 20px 92px!important;
  }

  .hero-brand-title{
    margin-bottom:12px!important;
    font-size:clamp(3.1rem,15vw,4.6rem)!important;
    line-height:.88!important;
    letter-spacing:.005em!important;
    white-space:normal!important;
    word-break:keep-all;
  }

  .hero-brand-subtitle{
    margin-bottom:14px!important;
    font-size:.76rem!important;
    line-height:1.7!important;
    letter-spacing:.1em!important;
  }

  .hero-brand-statement{
    max-width:100%!important;
    margin-bottom:18px!important;
    font-size:.98rem!important;
    line-height:1.9!important;
  }

  .hero-actions-simple{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
    margin-bottom:18px!important;
  }

  .hero-actions-simple .button{
    width:100%!important;
    min-width:0!important;
    min-height:48px!important;
    padding:0 10px!important;
    font-size:.68rem!important;
    letter-spacing:.08em!important;
  }

  .all-instagram-links{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px 12px!important;
    margin-top:0!important;
  }

  .all-instagram-links a{
    width:auto!important;
    max-width:100%;
    white-space:normal!important;
    font-size:.7rem!important;
    line-height:1.5!important;
    letter-spacing:.03em!important;
  }

  /* Intro */
  .section{
    padding:72px 20px!important;
  }

  .intro{
    display:block!important;
  }

  .intro-title{
    margin-bottom:32px;
  }

  body.ja .intro-two-line-title,
  .intro-two-line-title{
    font-size:2.35rem!important;
    line-height:1.35!important;
    max-width:100%!important;
  }

  .intro-copy{
    max-width:100%!important;
  }

  .intro-copy .lead{
    font-size:1.28rem!important;
    line-height:1.8!important;
  }

  /* Experience cards */
  .experience-grid{
    grid-template-columns:1fr!important;
  }

  .experience-card{
    height:68svh!important;
    min-height:500px!important;
  }

  .card-content{
    left:20px!important;
    right:20px!important;
    bottom:24px!important;
  }

  .card-content h3{
    font-size:2.45rem!important;
  }

  .card-content span{
    font-size:.85rem!important;
    line-height:1.7!important;
  }

  /* Split sections */
  .split-feature,
  .split-feature.reverse{
    display:flex!important;
    flex-direction:column!important;
    min-height:0!important;
  }

  .split-feature .feature-image,
  .split-feature.reverse .feature-image{
    order:1!important;
    width:100%!important;
    height:58svh!important;
    min-height:430px!important;
  }

  .split-feature .feature-copy,
  .split-feature.reverse .feature-copy{
    order:2!important;
    width:100%!important;
    padding:58px 20px 72px!important;
  }

  .feature-copy h2{
    font-size:2.6rem!important;
    line-height:1.3!important;
  }

  .feature-copy p{
    font-size:1rem!important;
    line-height:2!important;
  }

  .vertical-label{
    display:none!important;
  }

  .detail-row{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    margin:28px 0!important;
  }

  .detail-row span{
    padding:10px 0!important;
    border-bottom:1px solid currentColor;
    font-size:.86rem!important;
  }

  .feature-copy .button{
    width:100%!important;
  }

  /* Video */
  .experience-video{
    padding:72px 0!important;
  }

  .video-title{
    padding:0 20px!important;
    margin-bottom:28px!important;
  }

  .video-title h2{
    font-size:2.55rem!important;
    line-height:1.35!important;
  }

  .experience-video video{
    height:68svh!important;
    min-height:500px!important;
  }

  /* Philosophy */
  .quote-section{
    padding:78px 20px!important;
  }

  body.ja .quote-section blockquote,
  .quote-section blockquote{
    max-width:100%!important;
    font-size:1.72rem!important;
    line-height:1.75!important;
  }

  /* Membership */
  .membership{
    padding:72px 20px!important;
  }

  .membership-heading h2{
    font-size:2.65rem!important;
    line-height:1.3!important;
  }

  .membership-layout{
    grid-template-columns:1fr!important;
    gap:48px!important;
  }

  .membership-intro .lead{
    font-size:1.28rem!important;
    line-height:1.8!important;
  }

  .membership-intro .button{
    width:100%!important;
  }

  .benefit{
    grid-template-columns:36px 1fr!important;
    gap:12px!important;
    padding:18px 0!important;
  }

  .benefit h3{
    font-size:1.5rem!important;
  }

  .benefit p{
    font-size:.94rem!important;
  }

  /* Music & Art */
  .culture,
  .culture-readable{
    display:block!important;
    padding:72px 20px!important;
  }

  .culture-copy{
    max-width:100%!important;
    padding:0!important;
    margin-bottom:42px!important;
  }

  body.ja .culture-copy h2,
  .culture-copy h2{
    font-size:2.35rem!important;
    line-height:1.4!important;
    max-width:100%!important;
  }

  .culture-copy > p{
    font-size:1rem!important;
    line-height:2!important;
  }

  .social-links{
    gap:18px!important;
  }

  .social-group{
    display:block!important;
  }

  .social-group a{
    display:block!important;
    width:max-content!important;
    margin-top:8px;
    font-size:.8rem!important;
  }

  .culture-gallery{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:14px!important;
    min-height:0!important;
  }

  .culture-gallery figure,
  .culture-gallery figure.tall{
    width:100%!important;
    height:62svh!important;
    min-height:460px!important;
    margin:0!important;
  }

  /* Reservations */
  .reserve{
    min-height:88svh!important;
    padding:0!important;
  }

  .reserve-content{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:78px 20px 86px!important;
  }

  body.ja .reserve-title-fixed,
  .reserve-title-fixed{
    font-size:2.28rem!important;
    line-height:1.42!important;
    max-width:100%!important;
  }

  .reserve-content > p{
    font-size:1rem!important;
    line-height:1.95!important;
  }

  .reserve-options a{
    padding:14px 0!important;
  }

  .reserve-options span{
    font-size:1.55rem!important;
  }

  .reserve-options small{
    margin-top:4px;
    font-size:.78rem!important;
  }

  /* Contact */
  .contact{
    grid-template-columns:1fr!important;
    gap:44px!important;
    padding:72px 20px!important;
  }

  .contact-heading h2{
    font-size:2.55rem!important;
    line-height:1.35!important;
  }

  .field-grid{
    grid-template-columns:1fr!important;
    gap:0!important;
  }

  .contact-form .button{
    width:100%!important;
  }

  /* Footer */
  .footer{
    padding:58px 20px 28px!important;
  }

  .footer-brand h2{
    font-size:2.8rem!important;
    line-height:1!important;
  }

  .footer-locations{
    grid-template-columns:1fr!important;
    gap:32px!important;
    margin:38px 0!important;
  }

  .footer-bottom{
    display:block!important;
  }

  .footer-bottom div{
    display:grid!important;
    gap:10px!important;
    margin-top:18px;
  }

  /* Sticky buttons */
  .mobile-sticky-actions{
    height:64px!important;
  }

  .mobile-sticky-actions a{
    font-size:.74rem!important;
    font-weight:600!important;
  }
}

/* Small phones */
@media (max-width: 390px){
  .hero-brand-title{
    font-size:2.85rem!important;
  }

  .hero-actions-simple{
    grid-template-columns:1fr!important;
  }

  .all-instagram-links{
    grid-template-columns:1fr!important;
  }

  body.ja .intro-two-line-title,
  .intro-two-line-title,
  body.ja .reserve-title-fixed,
  .reserve-title-fixed{
    font-size:2.05rem!important;
  }
}


/* =========================================================
   FINAL VISUAL FIXES
   ========================================================= */

/* Japanese hero title must match English hero title exactly */
body.ja .hero-brand-title{
  font-family:"Cormorant Garamond",serif!important;
  font-size:clamp(5.6rem,10vw,10.5rem)!important;
  line-height:.82!important;
  letter-spacing:.015em!important;
  white-space:nowrap!important;
}

/* Singer image and artwork video must be identical in size */
.culture-gallery{
  align-items:stretch!important;
}

.culture-gallery .singer-panel,
.culture-gallery .art-video-panel{
  height:720px!important;
  min-height:720px!important;
  aspect-ratio:auto!important;
  overflow:hidden!important;
}

.culture-gallery .singer-panel img,
.culture-gallery .art-video-panel video{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  display:block!important;
}

/* Reservation title must always be exactly two lines */
.reserve-title-fixed{
  max-width:1100px!important;
}

.reserve-title-fixed .title-line{
  display:inline-block!important;
  white-space:nowrap!important;
}

body.ja .reserve-title-fixed{
  font-size:clamp(2.75rem,4.5vw,4.7rem)!important;
  line-height:1.28!important;
  word-break:keep-all!important;
}

body.ja .reserve-title-fixed br{
  display:block!important;
}

/* Show the complete exterior building image */
.reserve{
  background:#0b0a08!important;
}

.reserve-bg img,
.reserve > img{
  object-fit:contain!important;
  object-position:center center!important;
  background:#0b0a08!important;
}

/* Keep overlay readable without hiding the full building */
.reserve-shade,
.reserve-overlay{
  background:
    linear-gradient(90deg,rgba(0,0,0,.70),rgba(0,0,0,.15)),
    linear-gradient(0deg,rgba(0,0,0,.25),transparent 55%)!important;
}

@media(max-width:980px){
  body.ja .hero-brand-title{
    font-size:clamp(4.6rem,12vw,7.6rem)!important;
    white-space:normal!important;
  }

  .culture-gallery .singer-panel,
  .culture-gallery .art-video-panel{
    height:62svh!important;
    min-height:460px!important;
  }

  .reserve-title-fixed .title-line{
    white-space:normal!important;
  }

  .reserve-bg img,
  .reserve > img{
    object-fit:contain!important;
    object-position:center center!important;
  }
}

@media(max-width:640px){
  body.ja .hero-brand-title{
    font-size:3.75rem!important;
    line-height:.9!important;
  }

  body.ja .reserve-title-fixed{
    font-size:2.15rem!important;
    line-height:1.42!important;
  }

  .reserve-title-fixed .title-line{
    display:block!important;
    white-space:nowrap!important;
  }

  .culture-gallery .singer-panel,
  .culture-gallery .art-video-panel{
    height:62svh!important;
    min-height:440px!important;
  }
}

@media(max-width:390px){
  body.ja .hero-brand-title{
    font-size:2.85rem!important;
  }

  body.ja .reserve-title-fixed{
    font-size:1.9rem!important;
  }

  .reserve-title-fixed .title-line{
    white-space:normal!important;
  }
}


/* =========================================================
   MOBILE TEXT OVERFLOW + CENTERED LANGUAGE SWITCH
   ========================================================= */

@media (max-width: 768px){

  /* Center EN in the mobile header */
  .site-header{
    position:fixed!important;
    grid-template-columns:1fr auto 1fr!important;
  }

  .wordmark{
    justify-self:start!important;
    min-width:0;
  }

  .header-right,
  .header-actions{
    display:contents!important;
  }

  .language-toggle{
    grid-column:2!important;
    justify-self:center!important;
    align-self:center!important;
    min-width:auto!important;
    padding:8px 12px!important;
    font-size:.76rem!important;
    font-weight:700!important;
    letter-spacing:.1em!important;
    text-align:center!important;
  }

  .menu-toggle{
    grid-column:3!important;
    justify-self:end!important;
  }

  /* General mobile wrapping protection */
  h1,h2,h3,p,span,a,small,blockquote{
    max-width:100%;
  }

  body.ja h1,
  body.ja h2,
  body.ja h3,
  body.ja p,
  body.ja blockquote,
  body.ja .lead,
  body.ja .card-content span,
  body.ja .benefit p,
  body.ja .reserve-options span,
  body.ja .reserve-options small{
    word-break:normal!important;
    overflow-wrap:anywhere!important;
    line-break:strict!important;
    white-space:normal!important;
  }

  /* Hero */
  .hero-brand-title{
    max-width:100%!important;
    overflow:visible!important;
    white-space:normal!important;
  }

  body.ja .hero-brand-title{
    font-size:clamp(3rem,14vw,4.2rem)!important;
    line-height:.95!important;
  }

  .hero-brand-subtitle{
    max-width:100%!important;
    white-space:normal!important;
  }

  .hero-brand-statement{
    max-width:100%!important;
    white-space:normal!important;
  }

  .all-instagram-links a{
    max-width:100%!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }

  /* Intro */
  .intro-two-line-title,
  body.ja .intro-two-line-title{
    max-width:100%!important;
    white-space:normal!important;
    font-size:2.15rem!important;
    line-height:1.38!important;
  }

  /* Restaurant / Lounge */
  .feature-copy h2,
  body.ja .feature-copy h2{
    max-width:100%!important;
    white-space:normal!important;
    font-size:2.35rem!important;
    line-height:1.38!important;
  }

  .feature-copy p{
    max-width:100%!important;
  }

  .detail-row span{
    white-space:normal!important;
  }

  /* Video */
  .video-title h2,
  body.ja .video-title h2{
    max-width:100%!important;
    white-space:normal!important;
    font-size:2.25rem!important;
    line-height:1.4!important;
  }

  /* Philosophy */
  .quote-section blockquote,
  body.ja .quote-section blockquote{
    max-width:100%!important;
    font-size:1.6rem!important;
    line-height:1.8!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }

  /* Membership */
  .membership-heading h2,
  body.ja .membership-heading h2{
    max-width:100%!important;
    white-space:normal!important;
    font-size:2.3rem!important;
    line-height:1.4!important;
  }

  .benefit h3{
    max-width:100%!important;
    white-space:normal!important;
  }

  /* Music & Art */
  .culture-copy h2,
  body.ja .culture-copy h2{
    max-width:100%!important;
    white-space:normal!important;
    word-break:normal!important;
    font-size:2.15rem!important;
    line-height:1.45!important;
  }

  .culture-copy > p{
    max-width:100%!important;
  }

  /* Reservation title - still two logical lines but allow safe wrap on narrow phones */
  .reserve-title-fixed{
    max-width:100%!important;
  }

  .reserve-title-fixed .title-line{
    display:block!important;
    max-width:100%!important;
    white-space:normal!important;
  }

  body.ja .reserve-title-fixed{
    font-size:2.05rem!important;
    line-height:1.45!important;
  }

  .reserve-options a{
    gap:4px;
  }

  .reserve-options span,
  .reserve-options small{
    max-width:100%!important;
    white-space:normal!important;
  }

  /* Contact */
  .contact-heading h2,
  body.ja .contact-heading h2{
    max-width:100%!important;
    white-space:normal!important;
    font-size:2.3rem!important;
    line-height:1.4!important;
  }

  input,select,textarea{
    min-width:0!important;
    max-width:100%!important;
  }

  /* Footer */
  .footer-brand h2{
    max-width:100%!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }

  .footer-locations p,
  .footer-locations a,
  .footer-bottom a{
    max-width:100%!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
}

/* Extra-small phones */
@media (max-width: 390px){
  .wordmark{
    max-width:135px!important;
    font-size:.72rem!important;
    letter-spacing:.09em!important;
  }

  .language-toggle{
    font-size:.7rem!important;
    padding:8px 8px!important;
  }

  body.ja .hero-brand-title{
    font-size:2.65rem!important;
  }

  .hero-actions-simple{
    grid-template-columns:1fr!important;
  }

  .all-instagram-links{
    grid-template-columns:1fr!important;
  }

  body.ja .intro-two-line-title,
  body.ja .feature-copy h2,
  body.ja .video-title h2,
  body.ja .membership-heading h2,
  body.ja .culture-copy h2,
  body.ja .reserve-title-fixed,
  body.ja .contact-heading h2{
    font-size:1.95rem!important;
  }
}


/* =========================================================
   MOBILE EN VISIBILITY + SINGLE-LINE HERO TITLE + GUEST LINE
   ========================================================= */

/* Guest welcome below hero Instagram links */
.hero-guest-welcome{
  margin:1rem 0 0;
  color:rgba(255,255,255,.96);
  font-size:.9rem;
  font-weight:600;
  line-height:1.7;
  letter-spacing:.05em;
  text-shadow:0 2px 14px rgba(0,0,0,.4);
}

body.ja .hero-guest-welcome{
  font-family:var(--jp-sans,"Zen Kaku Gothic New",sans-serif);
  letter-spacing:.04em;
}

/* Keep THE ATLAS SINGS on one line everywhere */
.hero-brand-title,
body.ja .hero-brand-title{
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow:visible!important;
}

/* Mobile header: make EN / 日本語 unquestionably visible and centered */
@media(max-width:768px){
  .site-header{
    position:fixed!important;
    display:block!important;
    height:64px!important;
  }

  .wordmark{
    position:absolute!important;
    left:16px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    max-width:34vw!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    z-index:2!important;
  }

  .language-toggle{
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    transform:translate(-50%,-50%)!important;
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    z-index:10!important;
    min-width:44px!important;
    padding:8px 10px!important;
    color:var(--ink)!important;
    background:transparent!important;
    font-size:.78rem!important;
    font-weight:700!important;
    line-height:1!important;
    letter-spacing:.1em!important;
    text-align:center!important;
  }

  .menu-toggle{
    position:absolute!important;
    right:12px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    z-index:11!important;
  }

  .header-right,
  .header-actions{
    display:block!important;
  }

  .hero-brand-title,
  body.ja .hero-brand-title{
    font-size:clamp(2.5rem,10.8vw,3.8rem)!important;
    line-height:.94!important;
    white-space:nowrap!important;
    letter-spacing:-.01em!important;
    max-width:100%!important;
  }

  .hero-guest-welcome{
    margin-top:1.1rem;
    font-size:.88rem!important;
    line-height:1.7!important;
  }
}

@media(max-width:390px){
  .wordmark{
    max-width:31vw!important;
    font-size:.68rem!important;
  }

  .language-toggle{
    font-size:.72rem!important;
    min-width:40px!important;
    padding:8px 6px!important;
  }

  .hero-brand-title,
  body.ja .hero-brand-title{
    font-size:2.28rem!important;
    letter-spacing:-.015em!important;
  }

  .hero-guest-welcome{
    font-size:.84rem!important;
  }
}


/* =========================================================
   HERO GUEST COPY — REFINED TYPOGRAPHY
   ========================================================= */

.hero-guest-welcome{
  margin:1.15rem 0 0!important;
  max-width:760px;
  color:rgba(255,255,255,.96)!important;
  font-family:"Cormorant Garamond",serif!important;
  font-size:1.05rem!important;
  font-weight:500!important;
  line-height:1.8!important;
  letter-spacing:.035em!important;
  text-shadow:0 2px 18px rgba(0,0,0,.4);
}

body.ja .hero-guest-welcome{
  font-family:var(--jp-serif,"Shippori Mincho","Yu Mincho","Hiragino Mincho ProN",serif)!important;
  font-size:1rem!important;
  font-weight:500!important;
  line-height:2!important;
  letter-spacing:.06em!important;
}

@media(max-width:768px){
  .hero-guest-welcome{
    max-width:100%;
    margin-top:1rem!important;
    font-size:.95rem!important;
    line-height:1.8!important;
  }

  body.ja .hero-guest-welcome{
    font-size:.92rem!important;
    line-height:1.95!important;
    letter-spacing:.045em!important;
  }
}


/* =========================================================
   MOBILE JAPANESE COPY RHYTHM
   ========================================================= */

@media(max-width:768px){
  body.ja [data-ja-mobile]{
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    line-break:strict!important;
  }

  body.ja .hero-brand-statement,
  body.ja .hero-guest-welcome,
  body.ja .intro-copy .lead,
  body.ja .feature-copy p,
  body.ja .membership-intro .lead,
  body.ja .culture-copy > p,
  body.ja .reserve-content > p,
  body.ja .contact-heading > p{
    line-height:1.95!important;
  }

  body.ja .quote-section blockquote{
    line-height:1.8!important;
  }

  body.ja [data-ja-mobile] br{
    display:block!important;
  }
}


/* =========================================================
   FINAL MOBILE OVERFLOW PROTECTION
   ========================================================= */

@media(max-width:768px){

  html,
  body{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }

  *,
  *::before,
  *::after{
    min-width:0;
    box-sizing:border-box;
  }

  main,
  section,
  header,
  footer,
  nav,
  div,
  article,
  figure{
    max-width:100%;
  }

  /* Keep all mobile content safely inside the viewport */
  .hero-content,
  .intro,
  .intro-title,
  .intro-copy,
  .feature-copy,
  .video-title,
  .membership-heading,
  .membership-layout,
  .membership-intro,
  .culture-copy,
  .culture-gallery,
  .reserve-content,
  .contact,
  .contact-heading,
  .contact-form,
  .footer,
  .footer-brand,
  .footer-locations,
  .footer-bottom{
    width:100%!important;
    max-width:100%!important;
  }

  /* Japanese copy: controlled wrapping without clipping */
  body.ja h1,
  body.ja h2,
  body.ja h3,
  body.ja p,
  body.ja span,
  body.ja a,
  body.ja small,
  body.ja blockquote,
  body.ja li{
    max-width:100%!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
    line-break:strict!important;
  }

  body.ja [data-ja-mobile]{
    word-break:keep-all!important;
    overflow-wrap:break-word!important;
  }

  /* Hero */
  .hero-content{
    padding-left:18px!important;
    padding-right:18px!important;
  }

  .hero-brand-title,
  body.ja .hero-brand-title{
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(2.35rem,10.8vw,3.65rem)!important;
    line-height:.96!important;
    letter-spacing:-.02em!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow:visible!important;
  }

  .hero-brand-subtitle{
    font-size:.74rem!important;
    letter-spacing:.08em!important;
  }

  .hero-brand-statement,
  .hero-guest-welcome{
    width:100%!important;
    font-size:.92rem!important;
    line-height:1.9!important;
  }

  .hero-actions-simple{
    width:100%!important;
    grid-template-columns:1fr!important;
  }

  .hero-actions-simple .button{
    width:100%!important;
    max-width:100%!important;
    white-space:normal!important;
  }

  .all-instagram-links{
    width:100%!important;
    grid-template-columns:1fr!important;
  }

  .all-instagram-links a{
    width:max-content!important;
    max-width:100%!important;
    white-space:normal!important;
  }

  /* Main headings */
  body.ja .intro-two-line-title,
  body.ja .feature-copy h2,
  body.ja .video-title h2,
  body.ja .membership-heading h2,
  body.ja .culture-copy h2,
  body.ja .reserve-title-fixed,
  body.ja .contact-heading h2{
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(1.9rem,8.5vw,2.35rem)!important;
    line-height:1.45!important;
    letter-spacing:-.035em!important;
    white-space:normal!important;
  }

  /* Paragraph width and rhythm */
  .intro-copy p,
  .feature-copy p,
  .membership-intro p,
  .culture-copy p,
  .reserve-content p,
  .contact-heading p,
  .benefit p{
    width:100%!important;
    max-width:100%!important;
    font-size:.96rem!important;
    line-height:2!important;
  }

  /* Philosophy */
  body.ja .quote-section blockquote{
    width:100%!important;
    max-width:100%!important;
    padding:0!important;
    font-size:clamp(1.35rem,6.3vw,1.65rem)!important;
    line-height:1.85!important;
  }

  /* Cards and details */
  .card-content{
    width:auto!important;
    max-width:calc(100% - 36px)!important;
  }

  .card-content h3{
    font-size:2.15rem!important;
  }

  .card-content span{
    width:100%!important;
    max-width:100%!important;
  }

  .detail-row{
    width:100%!important;
  }

  .detail-row span{
    width:100%!important;
    white-space:normal!important;
  }

  /* Culture media */
  .culture-gallery{
    grid-template-columns:1fr!important;
  }

  .culture-gallery figure{
    width:100%!important;
    max-width:100%!important;
  }

  /* Reservation */
  .reserve-title-fixed .title-line{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    white-space:normal!important;
  }

  .reserve-options a{
    width:100%!important;
    max-width:100%!important;
  }

  /* Forms */
  .field-grid,
  .form-row{
    width:100%!important;
    grid-template-columns:1fr!important;
  }

  input,
  select,
  textarea,
  button{
    width:100%;
    max-width:100%;
  }

  /* Footer */
  .footer-bottom,
  .footer-bottom div{
    width:100%!important;
    max-width:100%!important;
  }
}

@media(max-width:390px){
  .hero-content{
    padding-left:16px!important;
    padding-right:16px!important;
  }

  .hero-brand-title,
  body.ja .hero-brand-title{
    font-size:clamp(2.1rem,10.5vw,2.55rem)!important;
  }

  body.ja .intro-two-line-title,
  body.ja .feature-copy h2,
  body.ja .video-title h2,
  body.ja .membership-heading h2,
  body.ja .culture-copy h2,
  body.ja .reserve-title-fixed,
  body.ja .contact-heading h2{
    font-size:1.82rem!important;
  }
}


/* =========================================================
   NATURAL MOBILE JAPANESE WRAPPING
   ========================================================= */

@media(max-width:768px){

  body.ja p,
  body.ja li,
  body.ja span,
  body.ja a,
  body.ja small,
  body.ja blockquote{
    word-break:normal!important;
    overflow-wrap:break-word!important;
    line-break:strict!important;
    white-space:normal!important;
  }

  /* Headings keep only the intentional HTML line break */
  body.ja h1,
  body.ja h2,
  body.ja h3{
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    text-wrap:balance;
  }

  body.ja .hero-brand-title{
    white-space:nowrap!important;
    word-break:keep-all!important;
    font-size:clamp(2.15rem,10.2vw,3.35rem)!important;
  }

  body.ja .hero-brand-statement,
  body.ja .hero-guest-welcome,
  body.ja .intro-copy p,
  body.ja .feature-copy p,
  body.ja .membership-intro p,
  body.ja .culture-copy p,
  body.ja .reserve-content p,
  body.ja .contact-heading p{
    max-width:100%!important;
    font-size:.95rem!important;
    line-height:1.95!important;
    letter-spacing:.01em!important;
  }

  body.ja .intro-title h2,
  body.ja .feature-copy h2,
  body.ja .video-title h2,
  body.ja .membership-heading h2,
  body.ja .culture-copy h2,
  body.ja .reserve-title-fixed,
  body.ja .contact-heading h2{
    font-size:clamp(1.9rem,8.3vw,2.35rem)!important;
    line-height:1.42!important;
    max-width:100%!important;
  }

  body.ja .quote-section blockquote{
    font-size:clamp(1.3rem,6vw,1.6rem)!important;
    line-height:1.8!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
  }

  body.ja br{
    display:block!important;
  }
}

@media(max-width:390px){
  body.ja .hero-brand-title{
    font-size:2.05rem!important;
  }

  body.ja .intro-title h2,
  body.ja .feature-copy h2,
  body.ja .video-title h2,
  body.ja .membership-heading h2,
  body.ja .culture-copy h2,
  body.ja .reserve-title-fixed,
  body.ja .contact-heading h2{
    font-size:1.78rem!important;
  }
}


/* =========================================================
   FINAL PHILOSOPHY / RESERVATION / FOOTER FIX
   ========================================================= */

/* Reservation heading: two deliberate lines */
.reserve-title-fixed,
#reserve h2{
  max-width:1000px!important;
}

#reserve h2 .reserve-line{
  display:block!important;
}

#reserve h2 .reserve-line-brand{
  white-space:nowrap!important;
  word-break:keep-all!important;
}

/* Footer brand must remain one line */
.footer-brand-line{
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow:visible!important;
}

/* Mobile-specific sizing */
@media(max-width:768px){

  #reserve h2{
    max-width:100%!important;
    font-size:clamp(1.9rem,8.1vw,2.3rem)!important;
    line-height:1.42!important;
  }

  #reserve h2 .reserve-line{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
  }

  #reserve h2 .reserve-line-brand{
    white-space:nowrap!important;
    font-size:.96em!important;
    letter-spacing:-.03em!important;
  }

  .footer-brand-line{
    display:block!important;
    max-width:100%!important;
    white-space:nowrap!important;
    font-size:clamp(2rem,10vw,3rem)!important;
    line-height:1!important;
    letter-spacing:.01em!important;
  }

  body.ja .quote-section blockquote{
    font-size:clamp(1.35rem,6vw,1.65rem)!important;
    line-height:1.85!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
  }
}

@media(max-width:390px){

  #reserve h2{
    font-size:1.75rem!important;
  }

  #reserve h2 .reserve-line-brand{
    font-size:.9em!important;
  }

  .footer-brand-line{
    font-size:2rem!important;
  }
}

.restaurant-page-link-row{margin:1.4rem 0 .9rem;display:flex;flex-wrap:wrap;gap:.75rem}
@media(max-width:700px){.restaurant-page-link-row .button{width:100%;text-align:center}}


/* layout-final.css */

/* =========================================================
   FINAL LAYOUT SEPARATION
   Desktop and mobile are intentionally isolated here.
   This file must load after styles.css.
   ========================================================= */

/* Shared safety */
html,
body{
  max-width:100%;
}

.hero-brand-title,
.footer-brand-line,
.reserve-line-brand{
  font-family:"Cormorant Garamond",serif!important;
}

/* =========================================================
   DESKTOP — 769px AND ABOVE
   ========================================================= */
@media (min-width:769px){

  html,
  body{
    overflow-x:hidden!important;
  }

  main,
  section,
  header,
  footer,
  .hero,
  .intro,
  .split-feature,
  .membership,
  .culture,
  .reserve,
  .contact{
    overflow:visible!important;
  }

  /* Never clip desktop headings or paragraphs */
  h1,h2,h3,p,blockquote,
  .hero-content,
  .intro-title,
  .intro-copy,
  .feature-copy,
  .membership-heading,
  .membership-intro,
  .culture-copy,
  .reserve-content,
  .contact-heading{
    overflow:visible!important;
  }

  body.ja h1,
  body.ja h2,
  body.ja h3,
  body.ja p,
  body.ja blockquote{
    word-break:normal!important;
    overflow-wrap:normal!important;
    line-break:strict!important;
  }

  /* Hero */
  .hero-content{
    width:min(1180px,88vw)!important;
    max-width:1180px!important;
    padding-bottom:clamp(5.5rem,8vh,7.5rem)!important;
  }

  .hero-brand-title,
  body.ja .hero-brand-title{
    display:block!important;
    max-width:100%!important;
    margin:0 0 1.25rem!important;
    font-size:clamp(5.6rem,10vw,10.5rem)!important;
    line-height:.84!important;
    letter-spacing:.01em!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
  }

  .hero-brand-subtitle{
    max-width:100%!important;
    white-space:normal!important;
  }

  .hero-brand-statement{
    max-width:760px!important;
    white-space:normal!important;
  }

  .all-instagram-links{
    grid-template-columns:repeat(2,max-content)!important;
  }

  /* Introduction */
  .intro{
    grid-template-columns:minmax(0,1fr) minmax(380px,.8fr)!important;
    gap:7vw!important;
  }

  .intro-title,
  .intro-copy{
    min-width:0!important;
    max-width:100%!important;
  }

  body.ja .intro-two-line-title{
    max-width:900px!important;
    font-size:clamp(2.7rem,4.25vw,4.45rem)!important;
    line-height:1.3!important;
    white-space:normal!important;
    word-break:keep-all!important;
  }

  .intro-copy p{
    max-width:620px!important;
    white-space:normal!important;
  }

  /* Restaurant and Lounge */
  .split-feature{
    grid-template-columns:minmax(0,58%) minmax(0,42%)!important;
    min-height:760px!important;
  }

  .split-feature.reverse{
    grid-template-columns:minmax(0,42%) minmax(0,58%)!important;
  }

  .feature-copy{
    min-width:0!important;
    max-width:100%!important;
    padding:clamp(5rem,7vw,8rem)!important;
  }

  body.ja .feature-copy h2{
    max-width:100%!important;
    font-size:clamp(2.8rem,4.3vw,4.7rem)!important;
    line-height:1.3!important;
    white-space:normal!important;
    word-break:keep-all!important;
  }

  .feature-copy p{
    max-width:620px!important;
    white-space:normal!important;
  }

  /* Philosophy */
  .quote-section{
    overflow:visible!important;
    min-height:auto!important;
  }

  body.ja .quote-section blockquote{
    max-width:980px!important;
    font-size:clamp(2.1rem,3.4vw,3.7rem)!important;
    line-height:1.65!important;
    white-space:normal!important;
  }

  /* Membership */
  .membership-heading,
  .membership-layout,
  .membership-intro{
    max-width:100%!important;
    overflow:visible!important;
  }

  body.ja .membership-heading h2{
    max-width:100%!important;
    font-size:clamp(2.8rem,4.5vw,4.9rem)!important;
    line-height:1.3!important;
    white-space:normal!important;
  }

  /* Music & Art */
  .culture{
    grid-template-columns:minmax(360px,.75fr) minmax(0,1.25fr)!important;
    gap:5vw!important;
    align-items:start!important;
    min-height:auto!important;
    overflow:visible!important;
  }

  .culture-copy{
    min-width:0!important;
    max-width:620px!important;
    padding-right:0!important;
    overflow:visible!important;
  }

  body.ja .culture-copy h2{
    max-width:620px!important;
    font-size:clamp(2.7rem,4vw,4.35rem)!important;
    line-height:1.35!important;
    white-space:normal!important;
    word-break:keep-all!important;
  }

  .culture-copy p{
    max-width:580px!important;
    white-space:normal!important;
  }

  .culture-gallery{
    grid-template-columns:1fr 1fr!important;
    min-width:0!important;
    align-items:stretch!important;
  }

  .culture-gallery figure{
    height:720px!important;
    min-height:720px!important;
  }

  /* Reservations */
  .reserve-content{
    width:min(1000px,86vw)!important;
    max-width:1000px!important;
    overflow:visible!important;
  }

  #reserve h2{
    max-width:1000px!important;
    overflow:visible!important;
  }

  #reserve h2 .reserve-line{
    display:block!important;
    width:max-content!important;
    max-width:100%!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
  }

  body.ja #reserve h2{
    font-size:clamp(2.75rem,4.5vw,4.65rem)!important;
    line-height:1.3!important;
  }

  /* Contact */
  .contact{
    grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)!important;
  }

  .contact-heading,
  .contact-form{
    min-width:0!important;
  }

  body.ja .contact-heading h2{
    max-width:100%!important;
    font-size:clamp(2.8rem,4.4vw,4.7rem)!important;
    line-height:1.3!important;
    white-space:normal!important;
  }

  /* Footer */
  .footer-brand-line{
    display:block!important;
    width:max-content!important;
    max-width:100%!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow:visible!important;
    font-size:clamp(4rem,7vw,7.5rem)!important;
    line-height:.95!important;
  }
}

/* =========================================================
   MOBILE — 768px AND BELOW
   ========================================================= */
@media (max-width:768px){

  html,
  body{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }

  *,
  *::before,
  *::after{
    box-sizing:border-box;
    min-width:0;
  }

  .hero-content,
  .intro,
  .intro-title,
  .intro-copy,
  .feature-copy,
  .video-title,
  .membership-heading,
  .membership-layout,
  .membership-intro,
  .culture-copy,
  .culture-gallery,
  .reserve-content,
  .contact,
  .contact-heading,
  .contact-form,
  footer{
    width:100%!important;
    max-width:100%!important;
  }

  body.ja p,
  body.ja a,
  body.ja span,
  body.ja small,
  body.ja blockquote{
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
    line-break:strict!important;
  }

  /* Header */
  .site-header{
    position:fixed!important;
    display:block!important;
    height:64px!important;
  }

  .wordmark{
    position:absolute!important;
    left:16px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    max-width:32vw!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .language-toggle{
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    transform:translate(-50%,-50%)!important;
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    z-index:20!important;
    color:var(--ink)!important;
    font-size:.76rem!important;
    font-weight:700!important;
  }

  .menu-toggle{
    position:absolute!important;
    right:12px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
  }

  /* Hero */
  .hero-content{
    padding:0 18px 92px!important;
  }

  .hero-brand-title,
  body.ja .hero-brand-title{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(2.15rem,10.2vw,3.35rem)!important;
    line-height:.95!important;
    letter-spacing:-.02em!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow:visible!important;
  }

  .hero-actions-simple,
  .all-instagram-links{
    grid-template-columns:1fr!important;
  }

  /* General headings */
  body.ja .intro-two-line-title,
  body.ja .feature-copy h2,
  body.ja .video-title h2,
  body.ja .membership-heading h2,
  body.ja .culture-copy h2,
  body.ja .contact-heading h2{
    max-width:100%!important;
    font-size:clamp(1.85rem,8.2vw,2.3rem)!important;
    line-height:1.43!important;
    white-space:normal!important;
    word-break:keep-all!important;
  }

  /* Reservation title: exactly two meaningful lines */
  #reserve h2{
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(1.7rem,7.5vw,2.15rem)!important;
    line-height:1.45!important;
  }

  #reserve h2 .reserve-line{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
  }

  #reserve h2 .reserve-line-brand{
    white-space:nowrap!important;
    word-break:keep-all!important;
    letter-spacing:-.035em!important;
  }

  /* Footer brand */
  .footer-brand-line{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow:visible!important;
    font-size:clamp(1.9rem,9.5vw,2.9rem)!important;
    line-height:1!important;
    letter-spacing:0!important;
  }

  body.ja .quote-section blockquote{
    max-width:100%!important;
    font-size:clamp(1.3rem,6vw,1.6rem)!important;
    line-height:1.85!important;
  }
}

@media (max-width:390px){

  .hero-brand-title,
  body.ja .hero-brand-title{
    font-size:2.02rem!important;
  }

  #reserve h2{
    font-size:1.62rem!important;
  }

  #reserve h2 .reserve-line-brand{
    font-size:.92em!important;
  }

  .footer-brand-line{
    font-size:1.88rem!important;
  }
}


/* pc-copy.css */

/* =========================================================
   PC EDITORIAL JAPANESE LINE BREAKS
   Mobile layout remains untouched.
   ========================================================= */

@media (min-width:769px){

  body.ja [data-ja-pc]{
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    line-break:strict!important;
  }

  body.ja .hero-brand-statement,
  body.ja .intro-copy p,
  body.ja .feature-copy p,
  body.ja .membership-intro p,
  body.ja .culture-copy p,
  body.ja .reserve-content p,
  body.ja .contact-heading p{
    line-height:2!important;
  }

  body.ja .intro-title h2,
  body.ja .feature-copy h2,
  body.ja .membership-heading h2,
  body.ja .culture-copy h2,
  body.ja .contact-heading h2{
    text-wrap:balance;
  }

  body.ja #reserve h2 .reserve-line{
    display:block!important;
    width:max-content!important;
    max-width:100%!important;
    white-space:nowrap!important;
  }

  body.ja .quote-section blockquote{
    max-width:900px!important;
    line-height:1.8!important;
  }

  body.ja [data-ja-pc] br{
    display:block!important;
  }
}


/* lounge-fix.css */

/* =========================================================
   LOUNGE HEADING OVERLAP FIX — DESKTOP ONLY
   ========================================================= */

@media (min-width:769px){

  #lounge{
    position:relative;
    overflow:hidden;
  }

  /* Darker gradient behind the lounge copy */
  #lounge::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
      linear-gradient(
        90deg,
        rgba(0,0,0,.74) 0%,
        rgba(0,0,0,.48) 34%,
        rgba(0,0,0,.18) 58%,
        rgba(0,0,0,.03) 100%
      );
  }

  #lounge .feature-image{
    position:relative;
    z-index:0;
  }

  #lounge .feature-copy{
    position:relative;
    z-index:2;
    align-self:end!important;
    padding:
      clamp(8rem,11vh,11rem)
      clamp(5rem,6.5vw,7.5rem)
      clamp(6rem,8vh,8rem)
      clamp(4.5rem,5.5vw,6rem)!important;
  }

  body.ja #lounge .feature-copy h2{
    max-width:620px!important;
    margin-bottom:2.5rem!important;
    font-size:clamp(2.7rem,4vw,4.35rem)!important;
    line-height:1.38!important;
    color:#fff!important;
    text-shadow:0 3px 24px rgba(0,0,0,.48);
  }

  #lounge .feature-copy p,
  #lounge .detail-row span,
  #lounge .eyebrow{
    color:rgba(255,255,255,.94)!important;
    text-shadow:0 2px 18px rgba(0,0,0,.42);
  }

  #lounge .feature-copy > p:not(.eyebrow){
    max-width:560px!important;
  }

  #lounge .detail-row{
    margin-top:2rem!important;
  }
}


/* pc-final-refinement.css */

/* =========================================================
   PC HERO / BUILDING / TYPOGRAPHY FINAL REFINEMENT
   Desktop only unless explicitly marked shared.
   ========================================================= */

/* Font system shared across both languages */
:root{
  --font-en-display:"Cormorant Garamond","Times New Roman",serif;
  --font-en-body:"Manrope","Helvetica Neue",Arial,sans-serif;
  --font-ja-display:"Shippori Mincho","Yu Mincho","Hiragino Mincho ProN",serif;
  --font-ja-body:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}

/* English typography */
html[lang="en"] body{
  font-family:var(--font-en-body)!important;
  font-weight:400;
  letter-spacing:.01em;
}

html[lang="en"] h1,
html[lang="en"] h2,
html[lang="en"] h3,
html[lang="en"] blockquote,
html[lang="en"] .lead,
html[lang="en"] .footer-brand-line{
  font-family:var(--font-en-display)!important;
  font-weight:500!important;
}

/* Japanese typography */
html[lang="ja"] body{
  font-family:var(--font-ja-body)!important;
  font-weight:400;
  letter-spacing:.02em;
}

html[lang="ja"] h1,
html[lang="ja"] h2,
html[lang="ja"] h3,
html[lang="ja"] blockquote,
html[lang="ja"] .lead,
html[lang="ja"] .footer-brand-line{
  font-family:var(--font-ja-display)!important;
  font-weight:500!important;
}

/* Brand name always uses the same Roman serif */
.hero-brand-title,
.wordmark,
.footer-brand-line,
.reserve-line-brand{
  font-family:var(--font-en-display)!important;
}

/* Body-copy consistency */
p,
li,
small,
input,
select,
textarea,
button,
.button,
.eyebrow,
.detail-row span,
.section-social-link,
.social-group a{
  font-family:inherit;
}

@media (min-width:769px){

  /* =======================================================
     HERO — vertically and horizontally balanced on desktop
     ======================================================= */
  .hero{
    min-height:100vh!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding-top:72px!important;
    overflow:hidden!important;
  }

  .hero-content{
    position:relative!important;
    inset:auto!important;
    width:min(1180px,88vw)!important;
    max-width:1180px!important;
    margin:0 auto!important;
    padding:3rem 0 2rem!important;
    transform:translateY(2.5vh);
    text-align:left;
  }

  .hero-brand-title,
  body.ja .hero-brand-title{
    margin:0 0 1.35rem!important;
    font-size:clamp(5.5rem,9.2vw,10rem)!important;
    line-height:.84!important;
    letter-spacing:.012em!important;
    white-space:nowrap!important;
  }

  .hero-brand-subtitle{
    margin-bottom:1.35rem!important;
    font-size:clamp(.88rem,1.05vw,1.08rem)!important;
    font-weight:600!important;
    line-height:1.7!important;
    letter-spacing:.2em!important;
  }

  .hero-brand-statement{
    max-width:720px!important;
    margin-bottom:1.6rem!important;
    font-size:clamp(1.05rem,1.25vw,1.25rem)!important;
    font-weight:450!important;
    line-height:1.9!important;
  }

  html[lang="ja"] .hero-brand-statement{
    font-family:var(--font-ja-display)!important;
    font-weight:500!important;
    line-height:2!important;
    letter-spacing:.035em!important;
  }

  .hero-actions-simple{
    margin-bottom:1.35rem!important;
  }

  .all-instagram-links{
    margin-top:.25rem!important;
  }

  .hero-guest-welcome{
    margin-top:1rem!important;
  }

  /* =======================================================
     DESKTOP TYPE SCALE
     ======================================================= */
  html[lang="en"] h2{
    letter-spacing:-.025em!important;
  }

  html[lang="ja"] h2{
    letter-spacing:-.035em!important;
  }

  html[lang="en"] p{
    line-height:1.85;
  }

  html[lang="ja"] p{
    line-height:2;
  }

  .eyebrow{
    font-size:.78rem!important;
    font-weight:600!important;
    letter-spacing:.13em!important;
  }

  html[lang="ja"] .eyebrow{
    letter-spacing:.09em!important;
  }

  .button{
    font-size:.75rem!important;
    font-weight:600!important;
    letter-spacing:.1em!important;
  }

  html[lang="ja"] .button{
    letter-spacing:.06em!important;
  }

  /* =======================================================
     FINAL BUILDING / RESERVATION IMAGE
     ======================================================= */
  .reserve{
    position:relative!important;
    min-height:88vh!important;
    overflow:hidden!important;
    background:#111!important;
  }

  .reserve-bg,
  .reserve-bg picture,
  .reserve-bg img{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
  }

  .reserve-bg img{
    object-fit:cover!important;
    object-position:center 42%!important;
    transform:none!important;
    animation:none!important;
    filter:brightness(.83) saturate(.96)!important;
    background:transparent!important;
  }

  /* Fallback if image is a direct child */
  .reserve > img{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center 42%!important;
    transform:none!important;
    animation:none!important;
  }

  .reserve::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
      linear-gradient(90deg,rgba(0,0,0,.68) 0%,rgba(0,0,0,.34) 44%,rgba(0,0,0,.12) 100%),
      linear-gradient(0deg,rgba(0,0,0,.24),transparent 55%);
  }

  .reserve-content{
    position:relative!important;
    z-index:2!important;
  }
}

/* Keep the approved mobile version intact.
   Only font-family consistency is inherited from shared rules above. */


/* fonts-unified.css */

/* =========================================================
   FINAL UNIFIED TYPOGRAPHY
   Same font system on PC, tablet and mobile.
   Must load after every other stylesheet.
   ========================================================= */

:root{
  --atlas-en-display:"Cormorant Garamond","Times New Roman",serif;
  --atlas-en-body:"Manrope","Helvetica Neue",Arial,sans-serif;
  --atlas-ja-display:"Shippori Mincho","Yu Mincho","Hiragino Mincho ProN",serif;
  --atlas-ja-body:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}

/* -------------------------
   ENGLISH
   ------------------------- */
html[lang="en"] body,
html[lang="en"] p,
html[lang="en"] li,
html[lang="en"] a,
html[lang="en"] span,
html[lang="en"] small,
html[lang="en"] label,
html[lang="en"] input,
html[lang="en"] select,
html[lang="en"] textarea,
html[lang="en"] button,
html[lang="en"] .button,
html[lang="en"] .eyebrow,
html[lang="en"] .detail-row,
html[lang="en"] .section-social-link,
html[lang="en"] .reserve-instagram-link,
html[lang="en"] .social-group{
  font-family:var(--atlas-en-body)!important;
}

html[lang="en"] h1,
html[lang="en"] h2,
html[lang="en"] h3,
html[lang="en"] h4,
html[lang="en"] blockquote,
html[lang="en"] .lead,
html[lang="en"] .card-content h3,
html[lang="en"] .benefit h3,
html[lang="en"] .reserve-options span{
  font-family:var(--atlas-en-display)!important;
  font-weight:500!important;
}

/* -------------------------
   JAPANESE
   ------------------------- */
html[lang="ja"] body,
html[lang="ja"] p,
html[lang="ja"] li,
html[lang="ja"] a,
html[lang="ja"] span,
html[lang="ja"] small,
html[lang="ja"] label,
html[lang="ja"] input,
html[lang="ja"] select,
html[lang="ja"] textarea,
html[lang="ja"] button,
html[lang="ja"] .button,
html[lang="ja"] .eyebrow,
html[lang="ja"] .detail-row,
html[lang="ja"] .section-social-link,
html[lang="ja"] .reserve-instagram-link,
html[lang="ja"] .social-group{
  font-family:var(--atlas-ja-body)!important;
}

html[lang="ja"] h1,
html[lang="ja"] h2,
html[lang="ja"] h3,
html[lang="ja"] h4,
html[lang="ja"] blockquote,
html[lang="ja"] .lead,
html[lang="ja"] .card-content h3,
html[lang="ja"] .benefit h3,
html[lang="ja"] .reserve-options span{
  font-family:var(--atlas-ja-display)!important;
  font-weight:500!important;
}

/* Roman brand name remains identical in both languages */
.hero-brand-title,
.wordmark,
.scroll-wordmark,
.footer-brand-line,
.footer-brand h2,
.reserve-line-brand{
  font-family:var(--atlas-en-display)!important;
  font-weight:500!important;
}

/* Consistent controls, navigation and labels */
.site-header,
.desktop-nav,
.mobile-menu,
.language-toggle,
.menu-toggle,
.header-cta,
.hero-actions,
.hero-instagram-links,
.detail-row,
.social-links,
.reserve-options small,
.contact-form,
.footer-bottom,
.mobile-sticky-actions{
  font-family:inherit!important;
}

.eyebrow,
.detail-row span,
.section-social-link,
.reserve-instagram-link,
.social-group a,
.reserve-options small,
.footer-bottom,
.mobile-sticky-actions a{
  font-weight:600!important;
}

/* Consistent Japanese rhythm on every screen size */
html[lang="ja"] body{
  font-weight:400!important;
  letter-spacing:.018em;
}

html[lang="ja"] p,
html[lang="ja"] li{
  line-height:2!important;
}

html[lang="ja"] h1,
html[lang="ja"] h2,
html[lang="ja"] h3{
  letter-spacing:-.03em!important;
}

/* Consistent English rhythm on every screen size */
html[lang="en"] body{
  font-weight:400!important;
  letter-spacing:.008em;
}

html[lang="en"] p,
html[lang="en"] li{
  line-height:1.85!important;
}

html[lang="en"] h1,
html[lang="en"] h2,
html[lang="en"] h3{
  letter-spacing:-.025em!important;
}

/* Hero title uses one identical style in Japanese and English */
.hero-brand-title,
html[lang="ja"] .hero-brand-title,
html[lang="en"] .hero-brand-title{
  font-family:var(--atlas-en-display)!important;
  font-weight:500!important;
  letter-spacing:.01em!important;
}

/* Japanese and English button typography remain visually balanced */
html[lang="ja"] .button,
html[lang="ja"] button{
  letter-spacing:.055em!important;
}

html[lang="en"] .button,
html[lang="en"] button{
  letter-spacing:.09em!important;
}

/* Mobile must use the same families — only sizes may change */
@media(max-width:768px){
  html[lang="en"] body,
  html[lang="en"] p,
  html[lang="en"] a,
  html[lang="en"] span,
  html[lang="en"] button,
  html[lang="en"] input,
  html[lang="en"] select,
  html[lang="en"] textarea{
    font-family:var(--atlas-en-body)!important;
  }

  html[lang="ja"] body,
  html[lang="ja"] p,
  html[lang="ja"] a,
  html[lang="ja"] span,
  html[lang="ja"] button,
  html[lang="ja"] input,
  html[lang="ja"] select,
  html[lang="ja"] textarea{
    font-family:var(--atlas-ja-body)!important;
  }

  html[lang="en"] h1,
  html[lang="en"] h2,
  html[lang="en"] h3,
  html[lang="en"] blockquote,
  html[lang="en"] .lead{
    font-family:var(--atlas-en-display)!important;
  }

  html[lang="ja"] h1,
  html[lang="ja"] h2,
  html[lang="ja"] h3,
  html[lang="ja"] blockquote,
  html[lang="ja"] .lead{
    font-family:var(--atlas-ja-display)!important;
  }

  .hero-brand-title,
  .wordmark,
  .footer-brand-line,
  .footer-brand h2,
  .reserve-line-brand{
    font-family:var(--atlas-en-display)!important;
  }
}


/* english-cormorant-all.css */

/* =========================================================
   ALL ENGLISH TEXT — CORMORANT GARAMOND
   Applies to PC, tablet and mobile.
   Japanese typography remains unchanged.
   ========================================================= */

:root{
  --atlas-en-all:"Cormorant Garamond","Times New Roman",serif;
}

/* Every English text element */
html[lang="en"] body,
html[lang="en"] h1,
html[lang="en"] h2,
html[lang="en"] h3,
html[lang="en"] h4,
html[lang="en"] h5,
html[lang="en"] h6,
html[lang="en"] p,
html[lang="en"] li,
html[lang="en"] a,
html[lang="en"] span,
html[lang="en"] small,
html[lang="en"] strong,
html[lang="en"] em,
html[lang="en"] blockquote,
html[lang="en"] label,
html[lang="en"] input,
html[lang="en"] select,
html[lang="en"] textarea,
html[lang="en"] button,
html[lang="en"] option,
html[lang="en"] .button,
html[lang="en"] .eyebrow,
html[lang="en"] .lead,
html[lang="en"] .wordmark,
html[lang="en"] .hero-brand-title,
html[lang="en"] .hero-brand-subtitle,
html[lang="en"] .hero-brand-statement,
html[lang="en"] .hero-guest-welcome,
html[lang="en"] .hero-instagram-links,
html[lang="en"] .card-content,
html[lang="en"] .detail-row,
html[lang="en"] .benefit,
html[lang="en"] .social-group,
html[lang="en"] .section-social-link,
html[lang="en"] .reserve-instagram-link,
html[lang="en"] .reserve-options,
html[lang="en"] .contact-form,
html[lang="en"] .footer,
html[lang="en"] .mobile-menu,
html[lang="en"] .mobile-sticky-actions{
  font-family:var(--atlas-en-all)!important;
}

/* Refined weight hierarchy */
html[lang="en"] body,
html[lang="en"] p,
html[lang="en"] li,
html[lang="en"] a,
html[lang="en"] span,
html[lang="en"] small,
html[lang="en"] label,
html[lang="en"] input,
html[lang="en"] select,
html[lang="en"] textarea,
html[lang="en"] button{
  font-weight:500!important;
}

html[lang="en"] h1,
html[lang="en"] h2,
html[lang="en"] h3,
html[lang="en"] h4,
html[lang="en"] blockquote,
html[lang="en"] .lead,
html[lang="en"] .hero-brand-title,
html[lang="en"] .footer-brand-line{
  font-weight:500!important;
}

/* Keep smaller UI text readable */
html[lang="en"] .eyebrow,
html[lang="en"] .button,
html[lang="en"] button,
html[lang="en"] .detail-row span,
html[lang="en"] .section-social-link,
html[lang="en"] .reserve-instagram-link,
html[lang="en"] .social-group a,
html[lang="en"] .reserve-options small,
html[lang="en"] .footer-bottom,
html[lang="en"] .mobile-sticky-actions a{
  font-weight:600!important;
  letter-spacing:.07em!important;
}

/* English paragraph rhythm */
html[lang="en"] p,
html[lang="en"] li{
  line-height:1.8!important;
  letter-spacing:.01em!important;
}

/* English heading rhythm */
html[lang="en"] h1,
html[lang="en"] h2,
html[lang="en"] h3{
  letter-spacing:-.02em!important;
}


/* japanese-zen-all.css */

/* =========================================================
   ALL JAPANESE TEXT — ZEN KAKU GOTHIC NEW
   PC + Mobile
   ========================================================= */
:root{
  --atlas-ja-all:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}
html[lang="ja"] body,
html[lang="ja"] h1,
html[lang="ja"] h2,
html[lang="ja"] h3,
html[lang="ja"] h4,
html[lang="ja"] h5,
html[lang="ja"] h6,
html[lang="ja"] p,
html[lang="ja"] li,
html[lang="ja"] a,
html[lang="ja"] span,
html[lang="ja"] small,
html[lang="ja"] strong,
html[lang="ja"] em,
html[lang="ja"] blockquote,
html[lang="ja"] label,
html[lang="ja"] input,
html[lang="ja"] select,
html[lang="ja"] textarea,
html[lang="ja"] button,
html[lang="ja"] option,
html[lang="ja"] .button,
html[lang="ja"] .eyebrow,
html[lang="ja"] .lead,
html[lang="ja"] .hero-brand-subtitle,
html[lang="ja"] .hero-brand-statement,
html[lang="ja"] .hero-guest-welcome,
html[lang="ja"] .hero-instagram-links,
html[lang="ja"] .card-content,
html[lang="ja"] .detail-row,
html[lang="ja"] .benefit,
html[lang="ja"] .social-group,
html[lang="ja"] .section-social-link,
html[lang="ja"] .reserve-instagram-link,
html[lang="ja"] .reserve-options,
html[lang="ja"] .contact-form,
html[lang="ja"] .footer,
html[lang="ja"] .mobile-menu,
html[lang="ja"] .mobile-sticky-actions{
 font-family:var(--atlas-ja-all)!important;
}
html[lang="ja"] .hero-brand-title,
html[lang="ja"] .wordmark,
html[lang="ja"] .footer-brand-line,
html[lang="ja"] .reserve-line-brand{
 font-family:"Cormorant Garamond","Times New Roman",serif!important;
}


/* japanese-shippori-all.css */

/* =========================================================
   ALL JAPANESE — SHIPPORI MINCHO
   PC + MOBILE
   ========================================================= */

:root{
  --atlas-ja-all:"Shippori Mincho","Yu Mincho","Hiragino Mincho ProN",serif;
}

/* Every Japanese text element */
html[lang="ja"] body,
html[lang="ja"] h1,
html[lang="ja"] h2,
html[lang="ja"] h3,
html[lang="ja"] h4,
html[lang="ja"] h5,
html[lang="ja"] h6,
html[lang="ja"] p,
html[lang="ja"] li,
html[lang="ja"] a,
html[lang="ja"] span,
html[lang="ja"] small,
html[lang="ja"] strong,
html[lang="ja"] em,
html[lang="ja"] blockquote,
html[lang="ja"] label,
html[lang="ja"] input,
html[lang="ja"] select,
html[lang="ja"] textarea,
html[lang="ja"] button,
html[lang="ja"] option,
html[lang="ja"] .button,
html[lang="ja"] .eyebrow,
html[lang="ja"] .lead,
html[lang="ja"] .hero-brand-subtitle,
html[lang="ja"] .hero-brand-statement,
html[lang="ja"] .hero-guest-welcome,
html[lang="ja"] .hero-instagram-links,
html[lang="ja"] .card-content,
html[lang="ja"] .detail-row,
html[lang="ja"] .benefit,
html[lang="ja"] .social-group,
html[lang="ja"] .section-social-link,
html[lang="ja"] .reserve-instagram-link,
html[lang="ja"] .reserve-options,
html[lang="ja"] .contact-form,
html[lang="ja"] .footer,
html[lang="ja"] .mobile-menu,
html[lang="ja"] .mobile-sticky-actions{
    font-family:var(--atlas-ja-all)!important;
}

/* Keep Roman brand name in Cormorant */
html[lang="ja"] .hero-brand-title,
html[lang="ja"] .wordmark,
html[lang="ja"] .footer-brand-line,
html[lang="ja"] .reserve-line-brand{
    font-family:"Cormorant Garamond","Times New Roman",serif!important;
}


/* japanese-zen-old-final.css */

/* =========================================================
   JAPANESE — ZEN OLD MINCHO
   PC + MOBILE / FINAL OVERRIDE
   ========================================================= */

:root{
  --atlas-ja-final:"Zen Old Mincho","Yu Mincho","Hiragino Mincho ProN",serif;
}

/* All Japanese text uses one font everywhere */
html[lang="ja"] body,
html[lang="ja"] h1,
html[lang="ja"] h2,
html[lang="ja"] h3,
html[lang="ja"] h4,
html[lang="ja"] h5,
html[lang="ja"] h6,
html[lang="ja"] p,
html[lang="ja"] li,
html[lang="ja"] a,
html[lang="ja"] span,
html[lang="ja"] small,
html[lang="ja"] strong,
html[lang="ja"] em,
html[lang="ja"] blockquote,
html[lang="ja"] label,
html[lang="ja"] input,
html[lang="ja"] select,
html[lang="ja"] textarea,
html[lang="ja"] button,
html[lang="ja"] option,
html[lang="ja"] .button,
html[lang="ja"] .eyebrow,
html[lang="ja"] .lead,
html[lang="ja"] .card-content,
html[lang="ja"] .detail-row,
html[lang="ja"] .benefit,
html[lang="ja"] .social-group,
html[lang="ja"] .section-social-link,
html[lang="ja"] .reserve-instagram-link,
html[lang="ja"] .reserve-options,
html[lang="ja"] .contact-form,
html[lang="ja"] .footer,
html[lang="ja"] .mobile-menu,
html[lang="ja"] .mobile-sticky-actions{
  font-family:var(--atlas-ja-final)!important;
}

/* Roman brand remains Cormorant Garamond */
html[lang="ja"] .hero-brand-title,
html[lang="ja"] .wordmark,
html[lang="ja"] .footer-brand-line,
html[lang="ja"] .footer-brand h2,
html[lang="ja"] .reserve-line-brand{
  font-family:"Cormorant Garamond","Times New Roman",serif!important;
}

/* Refined Japanese rhythm */
html[lang="ja"] body{
  font-weight:400!important;
  letter-spacing:.025em!important;
}

html[lang="ja"] h1,
html[lang="ja"] h2,
html[lang="ja"] h3,
html[lang="ja"] blockquote{
  font-weight:500!important;
  letter-spacing:.01em!important;
}

html[lang="ja"] p,
html[lang="ja"] li{
  line-height:2.05!important;
}

/* Mobile menu — smaller, elegant, editorial */
@media(max-width:768px){
  .mobile-menu{
    padding:34px 24px 88px!important;
  }

  .mobile-menu nav,
  .mobile-menu .mobile-nav{
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
  }

  .mobile-menu a{
    display:block!important;
    padding:11px 0!important;
    font-size:1.08rem!important;
    font-weight:500!important;
    line-height:1.45!important;
    letter-spacing:.075em!important;
    border-bottom:1px solid rgba(0,0,0,.12);
  }

  html[lang="ja"] .mobile-menu a{
    font-family:var(--atlas-ja-final)!important;
    font-size:1rem!important;
    letter-spacing:.09em!important;
  }

  .mobile-menu p{
    margin-top:24px!important;
    max-width:28em!important;
    font-size:.78rem!important;
    font-weight:400!important;
    line-height:1.9!important;
    letter-spacing:.045em!important;
    opacity:.72;
  }

  .mobile-menu .button,
  .mobile-menu .mobile-menu-cta{
    margin-top:22px!important;
    padding:13px 16px!important;
    font-size:.76rem!important;
    letter-spacing:.09em!important;
    text-align:center;
    border:1px solid currentColor;
  }
}

/* Keep intentional Japanese line breaks visible */
html[lang="ja"] .hero-brand-statement br,
html[lang="ja"] .intro-title h2 br,
html[lang="ja"] .experience-video h2 br,
html[lang="ja"] .video-title h2 br,
html[lang="ja"] .quote-section blockquote br,
html[lang="ja"] #lounge .feature-copy h2 br,
html[lang="ja"] #membership .membership-heading h2 br,
html[lang="ja"] #culture .culture-copy h2 br{
  display:block!important;
}


/* punctuation-menu-final.css */

/* =========================================================
   FINAL PUNCTUATION + MOBILE MENU CLICK FIX
   ========================================================= */

/* Ensure menu button is always clickable on mobile */
@media(max-width:768px){
  .site-header{
    position:fixed!important;
    z-index:9999!important;
    pointer-events:auto!important;
  }

  .menu-toggle{
    position:absolute!important;
    right:12px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    z-index:10020!important;
    display:grid!important;
    place-items:center!important;
    width:48px!important;
    height:48px!important;
    min-width:48px!important;
    min-height:48px!important;
    padding:0!important;
    pointer-events:auto!important;
    cursor:pointer!important;
    opacity:1!important;
    visibility:visible!important;
    background:transparent!important;
    border:0!important;
    touch-action:manipulation!important;
    -webkit-tap-highlight-color:transparent;
  }

  .menu-toggle::before{
    content:"";
    position:absolute;
    inset:-6px;
  }

  .menu-toggle span{
    position:relative!important;
    z-index:2!important;
    display:block!important;
    width:22px!important;
    height:1px!important;
    margin:3px 0!important;
    pointer-events:none!important;
  }

  .language-toggle{
    z-index:10010!important;
  }

  .wordmark{
    z-index:10000!important;
    pointer-events:auto!important;
  }

  .mobile-menu{
    position:fixed!important;
    z-index:10000!important;
    pointer-events:auto!important;
  }

  .mobile-menu[aria-hidden="true"],
  .mobile-menu:not(.open):not(.is-open):not(.active){
    pointer-events:none!important;
  }

  .mobile-menu.open,
  .mobile-menu.is-open,
  .mobile-menu.active,
  body.menu-open .mobile-menu{
    pointer-events:auto!important;
  }

  /* Avoid invisible overlays blocking the menu button */
  .hero::before,
  .hero::after,
  .hero-overlay,
  .hero-media,
  main{
    pointer-events:none;
  }

  main a,
  main button,
  main input,
  main select,
  main textarea,
  main video{
    pointer-events:auto;
  }
}

/* Keep reservation title as two clean lines */
#reserve h2 .reserve-line{
  display:block!important;
}

#reserve h2 .reserve-line-brand{
  white-space:nowrap!important;
  word-break:keep-all!important;
}


/* hero-two-stage-contact-fix.css */

/* =========================================================
   TWO-STAGE HERO + CONTACT OVERLAP FIX
   ========================================================= */

/* -------------------------
   HERO SCROLL STORY
   ------------------------- */
.hero-scroll-story{
  position:relative!important;
  min-height:200svh!important;
  display:block!important;
  padding:0!important;
  overflow:visible!important;
}

.hero-scroll-story .hero-media,
.hero-scroll-story .hero-overlay{
  position:sticky!important;
  top:0!important;
  width:100%!important;
  height:100svh!important;
  min-height:100svh!important;
}

.hero-scroll-story .hero-media{
  z-index:0!important;
}

.hero-scroll-story .hero-overlay{
  z-index:1!important;
  margin-top:-100svh;
  pointer-events:none!important;
}

.hero-scroll-story .hero-content{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  max-width:none!important;
  min-height:200svh!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  z-index:2!important;
}

.hero-scroll-story .hero-stage{
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(5rem,8vh,7rem) clamp(1.25rem,6vw,6rem);
}

.hero-scroll-story .hero-stage-inner{
  width:min(1180px,88vw);
  margin:0 auto;
}

/* Opening screen: title only */
.hero-stage-one{
  text-align:center;
}

.hero-stage-one-inner{
  display:flex;
  min-height:calc(100svh - 10rem);
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

.hero-opening-title{
  margin:0;
  color:#fff;
  font-family:"Cormorant Garamond","Times New Roman",serif!important;
  font-size:clamp(5.8rem,12vw,13rem)!important;
  font-weight:500!important;
  line-height:.82!important;
  letter-spacing:.015em!important;
  white-space:nowrap!important;
  text-shadow:0 5px 40px rgba(0,0,0,.42);
}

.hero-opening-scroll{
  position:absolute;
  bottom:clamp(2.5rem,5vh,4rem);
  color:rgba(255,255,255,.9);
  font-size:.72rem!important;
  font-weight:600!important;
  letter-spacing:.14em!important;
  text-transform:uppercase;
}

html[lang="ja"] .hero-opening-scroll{
  font-family:"Zen Old Mincho","Yu Mincho","Hiragino Mincho ProN",serif!important;
  letter-spacing:.1em!important;
  text-transform:none;
}

/* Information screen */
.hero-stage-two{
  align-items:center;
  justify-content:center;
}

.hero-stage-two-inner{
  padding-top:2rem;
  padding-bottom:2rem;
}

/* Remove duplicate huge title from stage 2 */
.hero-stage-two .hero-brand-title{
  display:none!important;
}

/* Make stage 2 calmer and less crowded */
.hero-stage-two .hero-brand-subtitle{
  margin-bottom:1.2rem!important;
}

.hero-stage-two .hero-brand-statement{
  max-width:720px!important;
  margin-bottom:1.4rem!important;
}

.hero-stage-two .hero-actions-simple{
  margin-bottom:1.25rem!important;
}

.hero-stage-two .all-instagram-links{
  margin-top:.25rem!important;
}

.hero-stage-two .hero-guest-welcome{
  margin-top:1rem!important;
}

/* Background image remains consistent between both stages */
.hero-scroll-story .hero-media img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
}

/* -------------------------
   CONTACT — NO OVERLAP
   ------------------------- */
#contact{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr)!important;
  align-items:start!important;
  gap:clamp(3rem,6vw,7rem)!important;
  overflow:visible!important;
}

#contact .contact-heading{
  position:relative!important;
  min-width:0!important;
  max-width:100%!important;
  padding-right:0!important;
  z-index:1!important;
}

#contact .contact-form{
  position:relative!important;
  min-width:0!important;
  max-width:100%!important;
  z-index:1!important;
}

#contact .contact-heading h2{
  max-width:100%!important;
  margin-bottom:2rem!important;
  font-size:clamp(2.5rem,4vw,4.5rem)!important;
  line-height:1.35!important;
  white-space:normal!important;
  word-break:keep-all!important;
}

#contact .contact-heading p{
  max-width:34em!important;
}

/* Mobile */
@media(max-width:768px){
  .hero-scroll-story{
    min-height:200svh!important;
  }

  .hero-scroll-story .hero-stage{
    padding:5rem 18px 4rem!important;
  }

  .hero-opening-title{
    max-width:100%!important;
    font-size:clamp(2.7rem,13vw,4.4rem)!important;
    line-height:.9!important;
    white-space:nowrap!important;
  }

  .hero-opening-scroll{
    bottom:2.5rem!important;
    font-size:.66rem!important;
  }

  .hero-stage-two-inner{
    width:100%!important;
    max-width:100%!important;
    padding-top:1rem!important;
    padding-bottom:5rem!important;
  }

  .hero-stage-two .hero-brand-subtitle{
    font-size:.74rem!important;
  }

  .hero-stage-two .hero-brand-statement{
    font-size:.94rem!important;
    line-height:1.9!important;
  }

  #contact{
    display:block!important;
    padding-left:20px!important;
    padding-right:20px!important;
  }

  #contact .contact-heading{
    margin-bottom:3rem!important;
  }

  #contact .contact-heading h2{
    font-size:clamp(1.85rem,8vw,2.25rem)!important;
    line-height:1.45!important;
  }

  #contact .contact-form{
    width:100%!important;
    max-width:100%!important;
  }
}

@media(max-width:390px){
  .hero-opening-title{
    font-size:2.5rem!important;
  }
}


/* final-visual-corrections.css */

/* =========================================================
   BRIGHT HERO / CONTACT SEPARATION / BUILDING COLOR FIX
   ========================================================= */

/* ---------------------------------------------------------
   HERO — brighter, same image throughout both scroll stages
   --------------------------------------------------------- */
.hero-scroll-story .hero-media,
.hero-scroll-story .hero-overlay{
  position:sticky!important;
  top:0!important;
  height:100svh!important;
  min-height:100svh!important;
}

.hero-scroll-story .hero-media img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  filter:
    brightness(1.18)
    contrast(.96)
    saturate(1.04)
    sepia(.02)!important;
  transform:none!important;
}

/* Lighter overlay so the room feels bright, not dull */
.hero-scroll-story .hero-overlay{
  background:
    linear-gradient(
      0deg,
      rgba(0,0,0,.46) 0%,
      rgba(0,0,0,.18) 48%,
      rgba(0,0,0,.08) 100%
    )!important;
}

/* Keep both stages visually tied to the same fixed image */
.hero-scroll-story .hero-stage{
  background:transparent!important;
}

.hero-opening-title,
.hero-stage-two{
  text-shadow:0 3px 24px rgba(0,0,0,.34);
}

/* ---------------------------------------------------------
   CONTACT — eliminate overlap completely
   --------------------------------------------------------- */
#contact{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:4rem!important;
  overflow:visible!important;
}

#contact .contact-heading{
  position:relative!important;
  width:100%!important;
  max-width:860px!important;
  margin:0!important;
  padding:0!important;
  z-index:1!important;
}

#contact .contact-heading h2{
  width:100%!important;
  max-width:760px!important;
  margin:0 0 1.75rem!important;
  font-size:clamp(2.5rem,4.2vw,4.6rem)!important;
  line-height:1.35!important;
  white-space:normal!important;
  word-break:keep-all!important;
  overflow:visible!important;
}

#contact .contact-heading p{
  width:100%!important;
  max-width:620px!important;
  margin:0!important;
}

#contact .contact-form{
  position:relative!important;
  width:100%!important;
  max-width:920px!important;
  margin:0!important;
  padding:0!important;
  z-index:1!important;
  clear:both!important;
}

/* Desktop alignment */
@media(min-width:769px){
  #contact{
    padding-top:clamp(7rem,9vw,10rem)!important;
    padding-bottom:clamp(7rem,9vw,10rem)!important;
  }

  #contact .contact-heading{
    margin-left:auto!important;
    margin-right:auto!important;
  }

  #contact .contact-form{
    margin-left:auto!important;
    margin-right:auto!important;
  }
}

/* Mobile */
@media(max-width:768px){
  #contact{
    display:block!important;
    padding:72px 20px!important;
  }

  #contact .contact-heading{
    max-width:100%!important;
    margin-bottom:3.25rem!important;
  }

  #contact .contact-heading h2{
    max-width:100%!important;
    font-size:clamp(1.9rem,8vw,2.3rem)!important;
    line-height:1.45!important;
  }

  #contact .contact-form{
    max-width:100%!important;
  }
}

/* ---------------------------------------------------------
   FINAL BUILDING IMAGE — remove blue cast
   --------------------------------------------------------- */
.reserve,
.reserve-bg,
.reserve-bg picture{
  background:#15120f!important;
}

.reserve-bg img,
.reserve > img{
  object-fit:cover!important;
  object-position:center 42%!important;
  filter:
    brightness(.92)
    contrast(1.02)
    saturate(.82)
    sepia(.10)
    hue-rotate(-8deg)!important;
  background:#15120f!important;
}

/* Replace any cool blue overlay with a warm neutral overlay */
.reserve::before,
.reserve-overlay,
.reserve-shade{
  background:
    linear-gradient(
      90deg,
      rgba(24,18,13,.68) 0%,
      rgba(24,18,13,.36) 45%,
      rgba(24,18,13,.12) 100%
    ),
    linear-gradient(
      0deg,
      rgba(20,15,11,.24),
      transparent 58%
    )!important;
  mix-blend-mode:normal!important;
}

/* Prevent inherited blue filters or tints */
.reserve,
.reserve *{
  box-shadow:none;
}

.reserve::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
  background:rgba(255,238,214,.025);
}


/* same-hero-background-final.css */

/* =========================================================
   SAME HERO BACKGROUND — BOTH SCROLL STAGES
   ========================================================= */

/* One continuous hero canvas */
.hero-scroll-story{
  position:relative!important;
  min-height:200svh!important;
  background:transparent!important;
  overflow:visible!important;
}

/* The image is a single sticky background for both stages */
.hero-scroll-story .hero-media{
  position:sticky!important;
  top:0!important;
  left:0!important;
  width:100%!important;
  height:100svh!important;
  min-height:100svh!important;
  z-index:0!important;
  overflow:hidden!important;
  margin:0!important;
}

.hero-scroll-story .hero-media picture,
.hero-scroll-story .hero-media img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
}

.hero-scroll-story .hero-media img{
  object-fit:cover!important;
  object-position:center center!important;
  filter:
    brightness(1.2)
    contrast(.96)
    saturate(1.05)!important;
  transform:none!important;
  animation:none!important;
}

/* One consistent overlay across both stages */
.hero-scroll-story .hero-overlay{
  position:sticky!important;
  top:0!important;
  width:100%!important;
  height:100svh!important;
  min-height:100svh!important;
  margin-top:-100svh!important;
  z-index:1!important;
  pointer-events:none!important;
  background:
    linear-gradient(
      0deg,
      rgba(0,0,0,.42) 0%,
      rgba(0,0,0,.17) 50%,
      rgba(0,0,0,.07) 100%
    )!important;
}

/* Content scrolls over the same sticky background */
.hero-scroll-story .hero-content{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  max-width:none!important;
  min-height:200svh!important;
  margin-top:-100svh!important;
  padding:0!important;
  z-index:2!important;
  transform:none!important;
  background:transparent!important;
}

.hero-scroll-story .hero-stage{
  position:relative!important;
  min-height:100svh!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:transparent!important;
}

.hero-scroll-story .hero-stage-inner{
  width:min(1180px,88vw)!important;
  max-width:1180px!important;
  margin:0 auto!important;
}

/* Stage 1: brand only */
.hero-stage-one{
  text-align:center!important;
}

.hero-stage-one-inner{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
  min-height:100svh!important;
}

.hero-opening-title{
  margin:0!important;
  color:#fff!important;
  font-family:"Cormorant Garamond","Times New Roman",serif!important;
  font-size:clamp(5.8rem,12vw,13rem)!important;
  font-weight:500!important;
  line-height:.82!important;
  letter-spacing:.015em!important;
  white-space:nowrap!important;
  text-shadow:0 5px 40px rgba(0,0,0,.4);
}

.hero-opening-scroll{
  position:absolute!important;
  bottom:clamp(2.4rem,5vh,4rem)!important;
  color:rgba(255,255,255,.94)!important;
}

/* Stage 2: information over the exact same background */
.hero-stage-two{
  background:transparent!important;
}

.hero-stage-two-inner{
  padding:5rem 0!important;
}

/* Keep the brand visible again in stage 2 */
.hero-stage-two .hero-brand-title{
  display:block!important;
  margin-bottom:1.25rem!important;
}

/* Improve readability without changing the photo */
.hero-stage-two .hero-brand-title,
.hero-stage-two .hero-brand-subtitle,
.hero-stage-two .hero-brand-statement,
.hero-stage-two .hero-guest-welcome,
.hero-stage-two .hero-actions-simple,
.hero-stage-two .all-instagram-links{
  position:relative!important;
  z-index:3!important;
}

.hero-stage-two .hero-brand-title,
.hero-stage-two .hero-brand-subtitle,
.hero-stage-two .hero-brand-statement,
.hero-stage-two .hero-guest-welcome{
  text-shadow:0 3px 24px rgba(0,0,0,.42)!important;
}

/* Mobile */
@media(max-width:768px){
  .hero-scroll-story{
    min-height:200svh!important;
  }

  .hero-scroll-story .hero-media,
  .hero-scroll-story .hero-overlay{
    height:100svh!important;
    min-height:100svh!important;
  }

  .hero-scroll-story .hero-stage-inner{
    width:100%!important;
    max-width:100%!important;
    padding-left:18px!important;
    padding-right:18px!important;
  }

  .hero-opening-title{
    font-size:clamp(2.7rem,13vw,4.4rem)!important;
    line-height:.9!important;
  }

  .hero-stage-two-inner{
    padding-top:5.5rem!important;
    padding-bottom:6rem!important;
  }

  .hero-stage-two .hero-brand-title{
    font-size:clamp(2.15rem,10.2vw,3.35rem)!important;
    white-space:nowrap!important;
  }
}

@media(max-width:390px){
  .hero-opening-title{
    font-size:2.5rem!important;
  }

  .hero-stage-two .hero-brand-title{
    font-size:2.02rem!important;
  }
}


/* hero-white-screen-repair.css */

/* =========================================================
   HERO WHITE-SCREEN REPAIR
   Robust two-stage hero using one fixed canvas.
   ========================================================= */

.hero-fixed-canvas{
  position:relative!important;
  min-height:200svh!important;
  background:#111!important;
  overflow:visible!important;
  isolation:isolate;
}

/* One fixed background image shared by both stages */
.hero-fixed-media{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100svh!important;
  min-height:100svh!important;
  z-index:-3!important;
  overflow:hidden!important;
  margin:0!important;
  opacity:1!important;
  visibility:visible!important;
  display:block!important;
  background:#111!important;
  pointer-events:none!important;
}

.hero-fixed-media picture,
.hero-fixed-media img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
}

.hero-fixed-media img{
  object-fit:cover!important;
  object-position:center center!important;
  filter:brightness(1.16) contrast(.97) saturate(1.04)!important;
  transform:none!important;
  animation:none!important;
}

/* Shared overlay, also fixed */
.hero-fixed-overlay{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100svh!important;
  min-height:100svh!important;
  z-index:-2!important;
  margin:0!important;
  opacity:1!important;
  visibility:visible!important;
  display:block!important;
  pointer-events:none!important;
  background:
    linear-gradient(
      0deg,
      rgba(0,0,0,.44) 0%,
      rgba(0,0,0,.16) 52%,
      rgba(0,0,0,.06) 100%
    )!important;
}

/* Scrolling content sits above the fixed background */
.hero-fixed-content{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  max-width:none!important;
  min-height:200svh!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  z-index:2!important;
  background:transparent!important;
  color:#fff!important;
}

.hero-fixed-content .hero-stage{
  position:relative!important;
  min-height:100svh!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:clamp(5rem,8vh,7rem) clamp(1.25rem,6vw,6rem)!important;
  background:transparent!important;
}

.hero-fixed-content .hero-stage-inner{
  width:min(1180px,88vw)!important;
  max-width:1180px!important;
  margin:0 auto!important;
}

/* Stage 1 */
.hero-stage-one{
  text-align:center!important;
}

.hero-stage-one-inner{
  min-height:calc(100svh - 10rem)!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
}

.hero-opening-title{
  color:#fff!important;
  opacity:1!important;
  visibility:visible!important;
  text-shadow:0 5px 40px rgba(0,0,0,.42);
}

.hero-opening-scroll{
  color:rgba(255,255,255,.94)!important;
  opacity:1!important;
  visibility:visible!important;
}

/* Stage 2 */
.hero-stage-two{
  color:#fff!important;
}

.hero-stage-two-inner{
  padding-top:4rem!important;
  padding-bottom:4rem!important;
}

.hero-stage-two .hero-brand-title,
.hero-stage-two .hero-brand-subtitle,
.hero-stage-two .hero-brand-statement,
.hero-stage-two .hero-guest-welcome,
.hero-stage-two .hero-actions-simple,
.hero-stage-two .all-instagram-links{
  color:#fff!important;
  opacity:1!important;
  visibility:visible!important;
}

.hero-stage-two .hero-brand-title,
.hero-stage-two .hero-brand-subtitle,
.hero-stage-two .hero-brand-statement,
.hero-stage-two .hero-guest-welcome{
  text-shadow:0 3px 24px rgba(0,0,0,.45)!important;
}

/* Keep hero links/buttons visible */
.hero-stage-two a{
  opacity:1!important;
  visibility:visible!important;
}

/* Restore normal document rendering after the hero */
.hero-fixed-canvas + *{
  position:relative;
  z-index:1;
  background:inherit;
}

/* Mobile */
@media(max-width:768px){
  .hero-fixed-media,
  .hero-fixed-overlay{
    height:100svh!important;
    min-height:100svh!important;
  }

  .hero-fixed-content .hero-stage{
    padding:5rem 18px 4rem!important;
  }

  .hero-fixed-content .hero-stage-inner{
    width:100%!important;
    max-width:100%!important;
  }

  .hero-stage-two-inner{
    padding-top:5rem!important;
    padding-bottom:6rem!important;
  }
}


/* single-hero-restore.css */

/* =========================================================
   SINGLE HERO RESTORE
   All information appears on one hero page.
   ========================================================= */

.hero{
  position:relative!important;
  min-height:100svh!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  background:#111!important;
}

.hero-media{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  z-index:0!important;
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  overflow:hidden!important;
}

.hero-media picture,
.hero-media img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  display:block!important;
}

.hero-media img{
  object-fit:cover!important;
  object-position:center center!important;
  filter:brightness(1.16) contrast(.97) saturate(1.04)!important;
  transform:none!important;
  animation:none!important;
}

.hero-overlay{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  z-index:1!important;
  margin:0!important;
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:none!important;
  background:
    linear-gradient(
      0deg,
      rgba(0,0,0,.48) 0%,
      rgba(0,0,0,.20) 52%,
      rgba(0,0,0,.08) 100%
    )!important;
}

.hero-content{
  position:relative!important;
  inset:auto!important;
  z-index:2!important;
  width:min(1180px,88vw)!important;
  max-width:1180px!important;
  min-height:0!important;
  margin:0 auto!important;
  padding:clamp(7rem,11vh,9rem) 0 clamp(4rem,7vh,6rem)!important;
  transform:none!important;
  background:transparent!important;
  color:#fff!important;
}

.hero-content .hero-brand-title{
  display:block!important;
  margin:0 0 1.25rem!important;
  color:#fff!important;
  opacity:1!important;
  visibility:visible!important;
  font-size:clamp(5.4rem,9.3vw,10rem)!important;
  line-height:.84!important;
  white-space:nowrap!important;
  text-shadow:0 5px 36px rgba(0,0,0,.42);
}

.hero-brand-subtitle,
.hero-brand-statement,
.hero-guest-welcome{
  color:#fff!important;
  opacity:1!important;
  visibility:visible!important;
  text-shadow:0 3px 22px rgba(0,0,0,.45)!important;
}

.hero-brand-subtitle{
  margin-bottom:1.15rem!important;
}

.hero-brand-statement{
  max-width:720px!important;
  margin-bottom:1.35rem!important;
}

.hero-actions-simple{
  margin-bottom:1.25rem!important;
}

.all-instagram-links{
  margin-top:.25rem!important;
}

.hero-guest-welcome{
  margin-top:1rem!important;
}

/* Remove any leftover stage layout effects */
.hero-stage,
.hero-stage-one,
.hero-stage-two,
.hero-opening-title,
.hero-opening-scroll{
  all:unset;
}

@media(max-width:768px){
  .hero{
    min-height:100svh!important;
    align-items:flex-end!important;
  }

  .hero-content{
    width:100%!important;
    max-width:none!important;
    padding:6rem 18px 5.5rem!important;
  }

  .hero-content .hero-brand-title{
    font-size:clamp(2.15rem,10.2vw,3.35rem)!important;
    line-height:.95!important;
    white-space:nowrap!important;
  }

  .hero-brand-subtitle{
    font-size:.74rem!important;
  }

  .hero-brand-statement{
    font-size:.94rem!important;
    line-height:1.9!important;
  }

  .hero-actions-simple,
  .all-instagram-links{
    grid-template-columns:1fr!important;
  }
}

@media(max-width:390px){
  .hero-content .hero-brand-title{
    font-size:2.02rem!important;
  }
}


/* hero-readability-final.css */

/* =========================================================
   HERO READABILITY — FINAL
   Keeps the existing single-Hero layout.
   ========================================================= */

.hero-overlay{
  background:
    linear-gradient(
      180deg,
      rgba(0,0,0,.16) 0%,
      rgba(0,0,0,.28) 42%,
      rgba(0,0,0,.56) 100%
    )!important;
}

.hero-content{
  position:relative!important;
  z-index:10!important;
}

/* Main brand title */
.hero-brand-title{
  color:#fff!important;
  font-weight:500!important;
  letter-spacing:.015em!important;
  text-shadow:
    0 3px 14px rgba(0,0,0,.5),
    0 12px 42px rgba(0,0,0,.28)!important;
}

/* Subtitle */
.hero-brand-subtitle{
  color:rgba(255,255,255,.98)!important;
  font-weight:600!important;
  text-shadow:
    0 2px 10px rgba(0,0,0,.62)!important;
}

/* Main statement */
.hero-brand-statement{
  color:#fff!important;
  font-weight:500!important;
  line-height:1.95!important;
  text-shadow:
    0 2px 12px rgba(0,0,0,.62)!important;
}

/* Guest message */
.hero-guest-welcome{
  color:rgba(255,255,255,.98)!important;
  font-weight:500!important;
  text-shadow:
    0 2px 10px rgba(0,0,0,.62)!important;
}

/* Reservation buttons */
.hero-actions-simple{
  margin-top:2rem!important;
  margin-bottom:1.75rem!important;
  gap:.9rem!important;
}

.hero-actions-simple .button{
  min-height:52px!important;
  padding:0 1.4rem!important;
  color:#fff!important;
  background:rgba(20,20,20,.3)!important;
  border:1px solid rgba(255,255,255,.42)!important;
  backdrop-filter:blur(12px)!important;
  -webkit-backdrop-filter:blur(12px)!important;
  box-shadow:0 8px 24px rgba(0,0,0,.18)!important;
  font-weight:600!important;
  transition:
    background .3s ease,
    color .3s ease,
    border-color .3s ease,
    transform .3s ease!important;
}

.hero-actions-simple .button:hover{
  color:#111!important;
  background:#fff!important;
  border-color:#fff!important;
  transform:translateY(-2px)!important;
}

/* Instagram links */
.all-instagram-links{
  width:max-content!important;
  max-width:100%!important;
  margin-top:0!important;
  padding:1rem 1.1rem!important;
  gap:.75rem 1.4rem!important;
  background:rgba(10,10,10,.24)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:14px!important;
  backdrop-filter:blur(12px)!important;
  -webkit-backdrop-filter:blur(12px)!important;
  box-shadow:0 8px 28px rgba(0,0,0,.18)!important;
}

.all-instagram-links a{
  color:#fff!important;
  font-weight:600!important;
  text-shadow:0 2px 8px rgba(0,0,0,.55)!important;
  border-bottom:1px solid rgba(255,255,255,.72)!important;
  transition:
    color .25s ease,
    border-color .25s ease,
    transform .25s ease!important;
}

.all-instagram-links a:hover{
  color:#fff!important;
  border-color:#fff!important;
  transform:translateX(3px)!important;
}

/* Slightly more breathing room */
.hero-brand-subtitle{
  margin-bottom:1.3rem!important;
}

.hero-brand-statement{
  margin-bottom:0!important;
}

.hero-guest-welcome{
  margin-top:1.2rem!important;
}

/* Mobile readability */
@media(max-width:768px){
  .hero-overlay{
    background:
      linear-gradient(
        180deg,
        rgba(0,0,0,.15) 0%,
        rgba(0,0,0,.3) 46%,
        rgba(0,0,0,.68) 100%
      )!important;
  }

  .hero-brand-title{
    text-shadow:
      0 2px 12px rgba(0,0,0,.68),
      0 9px 28px rgba(0,0,0,.36)!important;
  }

  .hero-brand-subtitle,
  .hero-brand-statement,
  .hero-guest-welcome{
    text-shadow:
      0 2px 10px rgba(0,0,0,.72)!important;
  }

  .hero-actions-simple{
    margin-top:1.5rem!important;
    margin-bottom:1.4rem!important;
  }

  .hero-actions-simple .button{
    min-height:50px!important;
  }

  .all-instagram-links{
    width:100%!important;
    padding:1rem!important;
    border-radius:12px!important;
    grid-template-columns:1fr!important;
  }

  .all-instagram-links a{
    width:max-content!important;
    max-width:100%!important;
  }

  .hero-guest-welcome{
    margin-top:1rem!important;
  }
}


/* hero-mobile-final.css */

/* Hero separators */
.hero-brand-statement{
 display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;
}
.hero-brand-statement .sep::before{content:"|";opacity:.55;margin:0 .2rem;}
/* if statement is plain text, author should wrap with spans:
<span>食</span><span class="sep"></span><span>ワイン</span>... */

/* Transparent hero buttons */
.hero-actions-simple .button{
 background:transparent!important;
 color:#fff!important;
 border:1px solid rgba(255,255,255,.55)!important;
 backdrop-filter:blur(8px);
}
.hero-actions-simple .button:hover{
 background:rgba(255,255,255,.14)!important;
 color:#fff!important;
}

/* Mobile typography */
@media (max-width:768px){
 .hero-brand-title{font-size:2.8rem!important;line-height:.92!important;white-space:nowrap!important;}
 .hero-brand-subtitle{font-size:.72rem!important;line-height:1.6!important;}
 .hero-brand-statement{
   display:block!important;
   font-size:.98rem!important;
   line-height:1.9!important;
   letter-spacing:.02em!important;
 }
 .hero-guest-welcome{
   font-size:.9rem!important;
   line-height:1.85!important;
 }
 .all-instagram-links a{
   font-size:.88rem!important;
   line-height:1.7!important;
 }
}


/* hero-copy-correct-final.css */

/* =========================================================
   HERO COPY — CORRECT PC + MOBILE IMPLEMENTATION
   ========================================================= */

.hero-brand-statement{
  display:block!important;
  max-width:760px!important;
}

/* Japanese category row */
.hero-categories-ja{
  display:flex!important;
  align-items:center!important;
  flex-wrap:nowrap!important;
  gap:.8rem!important;
  width:max-content;
  max-width:100%;
  margin-bottom:1.15rem;
  white-space:nowrap!important;
}

.hero-divider-ja{
  display:block!important;
  width:1px!important;
  height:1.15em!important;
  flex:0 0 1px!important;
  background:rgba(255,255,255,.68)!important;
}

/* Japanese two-line tagline */
.hero-tagline-ja,
.hero-tagline-en{
  display:flex!important;
  flex-direction:column!important;
  gap:.15rem!important;
}

.hero-tagline-ja > span,
.hero-tagline-en > span{
  display:block!important;
}

/* Desktop */
@media(min-width:769px){
  .hero-categories-ja{
    font-size:1.08rem!important;
    gap:1rem!important;
    margin-bottom:1.35rem!important;
  }

  .hero-divider-ja{
    height:1.25em!important;
  }

  .hero-tagline-ja,
  .hero-tagline-en{
    font-size:1.12rem!important;
    line-height:1.85!important;
  }
}

/* Mobile */
@media(max-width:768px){
  .hero-brand-statement{
    width:100%!important;
    max-width:100%!important;
    font-size:.94rem!important;
    line-height:1.75!important;
  }

  .hero-categories-ja{
    width:100%!important;
    max-width:100%!important;
    justify-content:flex-start!important;
    gap:.48rem!important;
    margin-bottom:.9rem!important;
    font-size:.86rem!important;
    letter-spacing:.01em!important;
  }

  .hero-divider-ja{
    height:1em!important;
  }

  .hero-tagline-ja,
  .hero-tagline-en{
    gap:0!important;
    font-size:.92rem!important;
    line-height:1.75!important;
  }

  .hero-tagline-ja > span,
  .hero-tagline-en > span{
    white-space:normal!important;
  }
}

@media(max-width:390px){
  .hero-categories-ja{
    gap:.36rem!important;
    font-size:.79rem!important;
  }

  .hero-tagline-ja,
  .hero-tagline-en{
    font-size:.86rem!important;
  }
}


/* mobile-guest-break-final.css */

/* =========================================================
   MOBILE GUEST MESSAGE — INTENTIONAL TWO-LINE BREAK
   ========================================================= */

.guest-mobile-ja{
  display:none!important;
}

@media(max-width:768px){
  html[lang="ja"] .hero-guest-welcome{
    width:100%!important;
    max-width:100%!important;
    font-size:.9rem!important;
    line-height:1.85!important;
    letter-spacing:.02em!important;
  }

  html[lang="ja"] .guest-desktop-ja{
    display:none!important;
  }

  html[lang="ja"] .guest-mobile-ja{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
  }

  html[lang="ja"] .guest-mobile-line{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    white-space:nowrap!important;
  }
}

@media(max-width:390px){
  html[lang="ja"] .hero-guest-welcome{
    font-size:.84rem!important;
  }
}


/* signature-brand-font.css */

/* =========================================================
   THE ATLAS SINGS — SIGNATURE BRAND FONT
   Japanese + English / PC + Mobile
   ========================================================= */

:root{
  --atlas-signature-font:"Cormorant Upright","Cormorant Garamond","Times New Roman",serif;
}

/* Every visible brand-name treatment */
.hero-brand-title,
.hero-opening-title,
.wordmark,
.scroll-wordmark,
.footer-brand-line,
.footer-brand h2,
.reserve-line-brand,
[data-brand-name],
.brand-name,
.site-brand,
.logo-text{
  font-family:var(--atlas-signature-font)!important;
  font-weight:500!important;
  font-style:normal!important;
  letter-spacing:.055em!important;
  text-transform:uppercase!important;
}

/* Main Hero brand */
.hero-brand-title,
.hero-opening-title{
  line-height:.84!important;
  letter-spacing:.045em!important;
}

/* Header brand */
.wordmark,
.scroll-wordmark,
.site-brand,
.logo-text{
  letter-spacing:.11em!important;
}

/* Footer brand */
.footer-brand-line,
.footer-brand h2{
  letter-spacing:.065em!important;
}

/* Reservation line containing THE ATLAS SINGS */
.reserve-line-brand{
  letter-spacing:.035em!important;
}

/* Japanese and English use exactly the same brand typography */
html[lang="ja"] .hero-brand-title,
html[lang="en"] .hero-brand-title,
html[lang="ja"] .wordmark,
html[lang="en"] .wordmark,
html[lang="ja"] .footer-brand-line,
html[lang="en"] .footer-brand-line,
html[lang="ja"] .reserve-line-brand,
html[lang="en"] .reserve-line-brand{
  font-family:var(--atlas-signature-font)!important;
}

/* Mobile tuning — same font, adjusted scale only */
@media(max-width:768px){
  .hero-brand-title,
  .hero-opening-title{
    letter-spacing:.025em!important;
  }

  .wordmark,
  .scroll-wordmark,
  .site-brand,
  .logo-text{
    letter-spacing:.075em!important;
  }

  .footer-brand-line,
  .footer-brand h2{
    letter-spacing:.035em!important;
  }

  .reserve-line-brand{
    letter-spacing:.01em!important;
  }
}


/* intro-video.css */

.intro-video{
position:relative;
width:100%;
height:100vh;
overflow:hidden;
background:#000;
}
.intro-video video{
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
}
.intro-video::after{
content:"";
position:absolute;
inset:0;
background:linear-gradient(to bottom,rgba(0,0,0,.08),rgba(0,0,0,.28));
}
.intro-scroll{
position:absolute;
bottom:40px;
left:50%;
transform:translateX(-50%);
z-index:2;
color:#fff;
font-family:"Cormorant Garamond",serif;
letter-spacing:.3em;
font-size:.8rem;
opacity:.85;
}


/* =========================================================
   SHOW THE COMPLETE PORTRAIT VIDEO ON DESKTOP
   ========================================================= */

@media (min-width:769px){
  .intro-video{
    height:100vh!important;
    min-height:100vh!important;
    background:#000!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }

  .intro-video video{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center center!important;
    background:#000!important;
  }

  .intro-video::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    background:#000;
  }

  .intro-video::after{
    z-index:1!important;
    background:
      linear-gradient(
        to bottom,
        rgba(0,0,0,.02),
        rgba(0,0,0,.12)
      )!important;
    pointer-events:none;
  }

  .intro-video video{
    z-index:1!important;
  }

  .intro-scroll{
    z-index:3!important;
  }
}

/* Mobile remains immersive and full-screen */
@media (max-width:768px){
  .intro-video video{
    object-fit:cover!important;
    object-position:center center!important;
  }
}


/* japanese-philosophy-culture-update.css */

/* =========================================================
   JAPANESE PHILOSOPHY / MUSIC & ART COPY
   PC + MOBILE
   ========================================================= */

html[lang="ja"] .jp-copy-line{
  display:block!important;
  max-width:100%!important;
}

html[lang="ja"] .jp-copy-spacer{
  display:block!important;
  height:1.15em!important;
}

html[lang="ja"] .jp-copy-lead{
  font-weight:500!important;
}

@media(min-width:769px){
  html[lang="ja"] .quote-section blockquote .jp-copy-line{
    line-height:1.8!important;
  }

  html[lang="ja"] .culture-copy > p .jp-copy-line{
    line-height:2!important;
  }
}

@media(max-width:768px){
  html[lang="ja"] .quote-section blockquote{
    font-size:1.28rem!important;
    line-height:1.75!important;
  }

  html[lang="ja"] .quote-section blockquote .jp-copy-line{
    white-space:normal!important;
    word-break:keep-all!important;
    overflow-wrap:break-word!important;
  }

  html[lang="ja"] .culture-copy h2{
    line-height:1.45!important;
  }

  html[lang="ja"] .culture-copy > p{
    font-size:.95rem!important;
    line-height:1.95!important;
  }

  html[lang="ja"] .culture-copy > p .jp-copy-line{
    white-space:normal!important;
    word-break:keep-all!important;
    overflow-wrap:break-word!important;
  }

  html[lang="ja"] .jp-copy-spacer{
    height:.9em!important;
  }
}


/* japanese-linebreaks-final.css */

/* =========================================================
   FINAL JAPANESE LINE BREAK SYSTEM
   Separate editorial line breaks for PC and mobile.
   ========================================================= */

.ja-copy-mobile{
  display:none!important;
}

html[lang="ja"] .ja-line{
  display:block!important;
  max-width:100%!important;
}

html[lang="ja"] .ja-space{
  display:block!important;
  height:1.15em!important;
}

html[lang="ja"] .ja-space-small{
  display:block!important;
  height:.7em!important;
}

html[lang="ja"] .ja-emphasis{
  font-weight:500!important;
}

@media(min-width:769px){
  html[lang="ja"] .ja-copy-desktop{
    display:block!important;
  }

  html[lang="ja"] .ja-copy-mobile{
    display:none!important;
  }

  html[lang="ja"] .ja-line{
    white-space:normal!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    line-break:strict!important;
  }
}

@media(max-width:768px){
  html[lang="ja"] .ja-copy-desktop{
    display:none!important;
  }

  html[lang="ja"] .ja-copy-mobile{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
  }

  html[lang="ja"] .ja-line{
    white-space:normal!important;
    word-break:keep-all!important;
    overflow-wrap:break-word!important;
    line-break:strict!important;
  }

  html[lang="ja"] .ja-nowrap{
    white-space:nowrap!important;
    font-size:.82rem!important;
    letter-spacing:0!important;
  }

  html[lang="ja"] .hero-brand-statement{
    font-size:.92rem!important;
    line-height:1.8!important;
  }

  html[lang="ja"] .hero-guest-welcome{
    font-size:.88rem!important;
    line-height:1.8!important;
  }

  html[lang="ja"] .quote-section blockquote{
    font-size:1.22rem!important;
    line-height:1.72!important;
  }

  html[lang="ja"] .culture-copy > p{
    font-size:.94rem!important;
    line-height:1.95!important;
  }

  html[lang="ja"] #reserve h2 .reserve-line{
    display:block!important;
    width:100%!important;
  }

  html[lang="ja"] #reserve h2 .reserve-line-brand{
    white-space:nowrap!important;
    font-size:.92em!important;
  }
}

@media(max-width:390px){
  html[lang="ja"] .ja-nowrap{
    font-size:.74rem!important;
  }

  html[lang="ja"] .hero-guest-welcome{
    font-size:.82rem!important;
  }

  html[lang="ja"] .quote-section blockquote{
    font-size:1.12rem!important;
  }
}


/* contact-ajax-netlify.css */

/* =========================================================
   INLINE NETLIFY CONTACT SUBMISSION
   ========================================================= */

.contact-honeypot{
  position:absolute!important;
  left:-10000px!important;
  top:auto!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

.form-status{
  min-height:1.8em;
  margin-top:1rem;
  font-size:.9rem;
  line-height:1.7;
}

.form-status.is-success{
  color:#315c3b!important;
}

.form-status.is-error{
  color:#9b2c2c!important;
}

.contact-form button[disabled]{
  opacity:.6!important;
  cursor:wait!important;
}


/* contact-form-robust.css */

.contact-honeypot,[hidden]{display:none!important}


/* footer-language-fix.css */

html[lang="en"] footer [data-en],
html[lang="en"] .footer [data-en]{
  word-break:normal!important;
  overflow-wrap:anywhere!important;
  white-space:normal!important;
}


/* footer-english-structural-fix.css */

.footer-locations > div{
  min-width:0;
}
.footer-locations p,
.footer-locations a{
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
}
html[lang="en"] .footer-locations p{
  max-width:30rem;
  line-height:1.75;
}


/* intro-fast-hero-buttons.css */

.intro-video{background:#0a0a0a!important}
.intro-video video{background:#0a0a0a!important}

.hero-actions-simple{
  gap:14px!important;
  margin-top:1.8rem!important;
  margin-bottom:1.8rem!important;
}
.hero-actions-simple .button{
  position:relative!important;
  min-height:54px!important;
  padding:0 28px!important;
  overflow:hidden!important;
  color:#fff!important;
  background:rgba(8,8,8,.28)!important;
  border:1px solid rgba(255,255,255,.78)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.24),inset 0 0 0 1px rgba(255,255,255,.07)!important;
  backdrop-filter:blur(12px)!important;
  -webkit-backdrop-filter:blur(12px)!important;
  font-weight:600!important;
  letter-spacing:.075em!important;
  transition:transform .28s ease,background .28s ease,color .28s ease,border-color .28s ease,box-shadow .28s ease!important;
}
.hero-actions-simple .button::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.14) 44%,transparent 58%);
  transform:translateX(-120%);
  transition:transform .65s ease;
  pointer-events:none;
}
.hero-actions-simple .button:hover,
.hero-actions-simple .button:focus-visible{
  color:#111!important;
  background:#fff!important;
  border-color:#fff!important;
  transform:translateY(-3px)!important;
  box-shadow:0 14px 34px rgba(0,0,0,.3)!important;
}
.hero-actions-simple .button:hover::before,
.hero-actions-simple .button:focus-visible::before{transform:translateX(120%)}
.hero-actions-simple .button:first-child{
  background:rgba(255,255,255,.96)!important;
  color:#111!important;
  border-color:#fff!important;
}
.hero-actions-simple .button:first-child:hover,
.hero-actions-simple .button:first-child:focus-visible{
  background:#f4f0e8!important;
  color:#111!important;
}
@media(max-width:768px){
  .hero-actions-simple{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
    width:100%!important;
    margin-top:1.35rem!important;
    margin-bottom:1.45rem!important;
  }
  .hero-actions-simple .button{
    width:100%!important;
    min-width:0!important;
    min-height:50px!important;
    padding:0 10px!important;
    font-size:.78rem!important;
    line-height:1.35!important;
    letter-spacing:.035em!important;
    text-align:center!important;
  }
}
@media(max-width:390px){
  .hero-actions-simple{grid-template-columns:1fr!important}
  .hero-actions-simple .button{font-size:.82rem!important}
}


/* hero-buttons-speed-final.css */
/* Both reservation buttons: identical premium primary treatment */
.hero-actions-simple .button,
.hero-actions-simple .button:first-child,
.hero-actions-simple .button:last-child,
.hero-actions-simple .button-light,
.hero-actions-simple .button-ghost {
  background: rgba(255,255,255,.96) !important;
  color: #111 !important;
  border: 1px solid #fff !important;
  box-shadow: 0 12px 30px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.25) !important;
}
.hero-actions-simple .button:hover,
.hero-actions-simple .button:focus-visible,
.hero-actions-simple .button:first-child:hover,
.hero-actions-simple .button:last-child:hover {
  background: #f4f0e8 !important;
  color: #111 !important;
  border-color: #f4f0e8 !important;
  transform: translateY(-3px) !important;
}
/* Keep the important Japanese phrase together on mobile */
.membership-nowrap {
  white-space: nowrap !important;
  display: inline-block !important;
}
@media (max-width: 768px) {
  .hero-actions-simple .button,
  .hero-actions-simple .button:first-child,
  .hero-actions-simple .button:last-child {
    background: rgba(255,255,255,.96) !important;
    color: #111 !important;
    border-color: #fff !important;
  }
}


/* glasshour-home.css */
.glasshour-teaser{
  background:linear-gradient(135deg,#f6f2ea 0%,#eee7dc 48%,#f8f5ef 100%);
  color:#24211d;
  padding:clamp(96px,11vw,160px) 7vw;
  position:relative;
  overflow:hidden;
}
.glasshour-teaser:before{
  content:"";
  position:absolute;
  width:min(48vw,640px);
  aspect-ratio:1;
  border:1px solid rgba(119,91,60,.10);
  border-radius:50%;
  right:-16%;
  top:48%;
  transform:translateY(-50%);
  pointer-events:none;
}
.glasshour-teaser:after{
  content:"";
  position:absolute;
  width:240px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(117,91,63,.32),transparent);
  left:50%;
  bottom:44px;
  transform:translateX(-50%);
  pointer-events:none;
}
.glasshour-teaser-grid{
  position:relative;
  z-index:1;
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(330px,.92fr) minmax(430px,1.08fr);
  gap:clamp(58px,8vw,118px);
  align-items:center;
}
.glasshour-photo-wrap{
  margin:0;
  overflow:hidden;
  background:#d9c9b7;
  aspect-ratio:4/5;
  box-shadow:0 30px 80px rgba(62,46,31,.14);
  position:relative;
}
.glasshour-photo-wrap:after{
  content:"";
  position:absolute;
  inset:0;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);
  pointer-events:none;
}
.glasshour-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center center}
.glasshour-teaser-inner{position:relative;max-width:650px;text-align:left}
.glasshour-kicker{
  display:flex;
  align-items:center;
  gap:14px;
  font-size:10px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:rgba(36,33,29,.54);
  margin:0 0 30px;
}
.glasshour-kicker:before{content:"";width:38px;height:1px;background:rgba(112,83,52,.45);flex:0 0 auto}
.glasshour-teaser h2{
  font-family:"Cormorant Garamond","Zen Old Mincho",serif;
  font-size:clamp(40px,4.4vw,64px);
  font-weight:400;
  line-height:1.38;
  letter-spacing:.01em;
  margin:0;
  color:#28241f;
  text-wrap:balance;
}
.glasshour-summary{
  max-width:590px;
  margin:34px 0 0;
  padding-top:30px;
  border-top:1px solid rgba(76,60,43,.14);
  font-size:14px;
  line-height:2.3;
  letter-spacing:.035em;
  color:rgba(36,33,29,.67);
  line-break:strict;
  text-wrap:pretty;
}
.glasshour-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:38px}
.glasshour-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:164px;
  min-height:46px;
  padding:13px 24px;
  border:1px solid rgba(36,33,29,.36);
  color:#28241f;
  background:rgba(255,255,255,.16);
  text-decoration:none;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:none !important;
  transition:background .3s ease,color .3s ease,border-color .3s ease,transform .3s ease;
  white-space:nowrap;
  box-sizing:border-box;
}
.glasshour-link:hover{background:#28241f;color:#f6f2ea;border-color:#28241f;transform:translateY(-1px)}
.glasshour-link.secondary{border-color:rgba(36,33,29,.36)}
@media(max-width:900px){
  .glasshour-teaser-grid{grid-template-columns:minmax(280px,.9fr) minmax(330px,1.1fr);gap:46px}
}
@media(max-width:768px){
  .glasshour-teaser{padding:70px 0 84px!important;margin-left:-18px;margin-right:-18px;background:linear-gradient(180deg,#f3eee6 0%,#f8f5ef 100%)}
  .glasshour-teaser:before,.glasshour-teaser:after{display:none}
  .glasshour-teaser-grid{display:flex;flex-direction:column;gap:0;max-width:none}
  .glasshour-photo-wrap{width:calc(100% - 36px);aspect-ratio:4/5;box-shadow:0 20px 48px rgba(62,46,31,.12)}
  .glasshour-photo{object-position:center 48%}
  .glasshour-teaser-inner{width:100%;max-width:none;padding:48px 26px 0;text-align:left;box-sizing:border-box}
  .glasshour-kicker{display:block;font-size:9.5px;letter-spacing:.22em;margin-bottom:25px;text-align:center;width:100%}
  .glasshour-kicker:before{display:none}
  .glasshour-teaser h2{font-size:clamp(30px,8.8vw,38px);line-height:1.55;letter-spacing:.005em;word-break:keep-all;text-wrap:initial}
  .glasshour-summary{font-size:13px;line-height:2.15;margin-top:27px;padding-top:25px;letter-spacing:.02em;word-break:normal;text-wrap:pretty}
  .glasshour-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:32px}
  .glasshour-link{width:100%;min-width:0;min-height:48px;text-align:center;padding:14px 10px;font-size:10.5px;letter-spacing:.05em}
}
@media(max-width:390px){
  .glasshour-teaser-inner{padding-left:22px;padding-right:22px}
  .glasshour-actions{grid-template-columns:1fr}
  .glasshour-link{min-height:48px}
}


/* spirit-archive-home.css */
.spirit-home-teaser{background:#0c0b0a;color:#f2eee7;display:grid;grid-template-columns:minmax(0,1.36fr) minmax(320px,.64fr);min-height:520px;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);overflow:hidden}
.spirit-home-gallery{display:block;background:#0c0b0a;min-width:0;overflow:hidden}
.spirit-home-gallery img{display:block;width:100%;height:100%;min-height:520px;object-fit:cover;object-position:center;background:#111}
.spirit-home-copy{display:flex;flex-direction:column;justify-content:center;padding:64px clamp(32px,4vw,72px);background:#0c0b0a;min-width:0}
.spirit-home-kicker{margin:0 0 22px;font-size:10px;letter-spacing:.24em;color:#aaa096}
.spirit-home-copy h2{margin:0;font-family:"Cormorant Garamond","Zen Old Mincho",serif;font-size:clamp(42px,4.2vw,72px);font-weight:400;line-height:.98;letter-spacing:-.025em;color:#f2eee7}
.spirit-home-text{margin:28px 0 0;max-width:460px;color:#bdb4aa;font-size:13px;line-height:1.95}
.spirit-home-link{display:inline-flex;align-items:center;align-self:flex-start;margin-top:34px;color:#f2eee7;text-decoration:none;font-size:10px;letter-spacing:.16em;border-bottom:1px solid rgba(242,238,231,.45);padding-bottom:7px;transition:border-color .25s ease,opacity .25s ease}
.spirit-home-link:hover{border-color:#f2eee7;opacity:.8}
@media(max-width:900px){.spirit-home-teaser{grid-template-columns:1fr;min-height:0}.spirit-home-gallery{display:block;height:auto}.spirit-home-gallery img{min-height:0;aspect-ratio:4/5;height:auto;width:100%;object-fit:cover}.spirit-home-copy{padding:42px 20px 48px}.spirit-home-kicker{font-size:9px;margin-bottom:16px}.spirit-home-copy h2{font-size:clamp(39px,12vw,56px);line-height:1}.spirit-home-text{font-size:12px;line-height:1.9;margin-top:22px}.spirit-home-link{min-height:44px;display:inline-flex;align-items:center;margin-top:26px}}

.spirit-home-title-line{display:block;white-space:nowrap}

@media(max-width:420px){.spirit-home-copy h2{font-size:clamp(34px,10.5vw,44px)}.spirit-home-title-line{white-space:nowrap}}


/* quality-update.css */
.hero-actions-simple .button{background:#fff!important;color:#111!important;border:1px solid #fff!important}
.hero-actions-simple .button:hover{background:#f4f0e8!important}
.nowrap{white-space:nowrap;}

/* our-wines-premium.css */

.glasshour-teaser{background:linear-gradient(135deg,#f7f3ea,#efe2c4)!important;padding:120px 0}
.glasshour-kicker{letter-spacing:.35em;color:#b08d57;font-weight:600}
.glasshour-teaser-grid{align-items:center}
.glasshour-photo{width:100%;transform:scale(1.08)}
.glasshour-actions a{padding:16px 34px;border-radius:999px;background:linear-gradient(135deg,#d7b56d,#b58a43);color:#fff!important;border:none;box-shadow:0 10px 30px rgba(181,138,67,.3)}
.glasshour-actions a.secondary{background:transparent;color:#8b6a2f!important;border:1px solid #c6a56a}
@media(max-width:768px){.glasshour-teaser{padding:72px 0}.glasshour-photo{transform:none}}

/* MOBILE GLASSHOUR SECTION — TRUE VIEWPORT CENTER */
@media (max-width: 768px) {
  /*
   * The page body has 18px left/right padding.
   * Make this section exactly viewport-wide and pull it back by 18px.
   */
  .glasshour-teaser {
    width: calc(100% + 36px) !important;
    max-width: none !important;
    margin-left: -18px !important;
    margin-right: -18px !important;
    padding: 72px 0 84px !important;
    box-sizing: border-box !important;
  }

  .glasshour-teaser .glasshour-teaser-grid {
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    box-sizing: border-box !important;
  }

  .glasshour-teaser .glasshour-photo-wrap {
    width: calc(100% - 36px) !important;
    max-width: 560px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
  }

  .glasshour-teaser .glasshour-teaser-inner {
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 48px 44px 0 !important;
    box-sizing: border-box !important;
    text-align: left !important;
  }

  .glasshour-teaser .glasshour-kicker {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto 25px !important;
    padding: 0 !important;
    position: static !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }

  .glasshour-teaser .glasshour-kicker::before,
  .glasshour-teaser .glasshour-kicker::after {
    content: none !important;
    display: none !important;
  }

  .glasshour-teaser .glasshour-kicker-text {
    display: inline-block !important;
    margin: 0 -.35em 0 0 !important;
    padding: 0 !important;
    letter-spacing: .35em !important;
    transform: none !important;
  }
}

@media (max-width: 390px) {
  .glasshour-teaser .glasshour-teaser-inner {
    padding-left: 36px !important;
    padding-right: 36px !important;
  }
}


/* Header OUR WINES anchor alignment */
#glasshour { scroll-margin-top: 92px; }
@media (max-width: 768px) { #glasshour { scroll-margin-top: 72px; } }


/* membership-summary.css */

.membership-summary{padding:120px 5vw;background:#0c0c0c;color:#f6f2ea;}
.membership-summary-inner{max-width:1240px;margin:0 auto;}
.membership-summary-heading{max-width:920px;margin-bottom:58px;}
.membership-summary-heading h2{font-size:clamp(2.7rem,5vw,5.8rem);line-height:1.04;margin:14px 0 30px;font-weight:400;}
.membership-guest-lead{font-size:clamp(1.25rem,2vw,1.72rem);line-height:1.85;color:#fff;margin:0 0 18px;font-weight:500;max-width:900px;}
.membership-summary-copy{max-width:860px;line-height:2;color:rgba(255,255,255,.72);}
.membership-key-benefits{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.22);border-bottom:1px solid rgba(255,255,255,.22);margin:0 0 42px;}
.membership-key-benefits>div{padding:28px 22px 30px;border-right:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;gap:9px;}
.membership-key-benefits>div:last-child{border-right:0}.membership-key-benefits span{font-size:.72rem;opacity:.45;letter-spacing:.18em}.membership-key-benefits strong{font-size:1.06rem;font-weight:500;line-height:1.55}.membership-key-benefits small{opacity:.55;line-height:1.55}
.membership-summary-actions{display:flex;gap:12px;flex-wrap:wrap}.membership-summary-actions .button{min-width:260px;text-align:center}
@media(max-width:900px){.membership-key-benefits{grid-template-columns:repeat(2,1fr)}.membership-key-benefits>div:nth-child(2){border-right:0}.membership-key-benefits>div:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.14)}}
@media(max-width:768px){.membership-summary{padding:80px 0!important}.membership-summary-heading{margin-bottom:38px}.membership-summary-heading h2{font-size:clamp(2.1rem,10vw,3.1rem)!important}.membership-key-benefits{display:grid!important;grid-template-columns:1fr!important}.membership-key-benefits>div{width:auto!important;max-width:none!important;margin:0!important;border-right:0!important;border-bottom:1px solid rgba(255,255,255,.14)!important}.membership-key-benefits>div:last-child{border-bottom:0!important}.membership-summary-actions{display:grid}.membership-summary-actions .button{width:100%;min-width:0}}


/* mobile-home-refinement.css */
@media (max-width:768px){
html[lang="ja"] .glasshour-actions .glasshour-link:first-child{min-height:62px!important;padding:12px 8px!important;line-height:1.55!important;white-space:normal!important;word-break:keep-all!important;overflow:visible!important;}
.experience-card{min-height:560px!important;height:72svh!important;}
.experience-card:nth-child(3){min-height:590px!important;}
.experience-card .card-content{left:24px!important;right:24px!important;bottom:32px!important;max-width:calc(100% - 48px)!important;overflow:visible!important;}
html[lang="ja"] .experience-card .card-content p,html[lang="ja"] .experience-card .card-content h3,html[lang="ja"] .experience-card .card-content span,html[lang="ja"] .experience-card .card-content a{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;word-break:keep-all!important;overflow-wrap:break-word!important;}
html[lang="ja"] .experience-card .card-content h3{font-size:2rem!important;line-height:1.35!important;margin-bottom:.75rem!important;}
html[lang="ja"] .experience-card .card-content span{font-size:.92rem!important;line-height:1.9!important;}
html[lang="ja"] .experience-card .card-content a{margin-top:1.7rem!important;padding-bottom:5px!important;font-size:.74rem!important;line-height:1.65!important;}
.membership-summary{padding:112px 24px 118px!important;margin-left:-18px!important;margin-right:-18px!important;}
.membership-summary-inner{width:100%!important;max-width:560px!important;margin:0 auto!important;}
.membership-summary-heading{max-width:100%!important;margin:0 0 64px!important;}
.membership-summary-heading .eyebrow{margin-bottom:24px!important;}
.membership-summary-heading h2{font-size:clamp(2.05rem,9.5vw,3rem)!important;line-height:1.45!important;letter-spacing:-.035em!important;margin:0 0 38px!important;white-space:normal!important;word-break:keep-all!important;}
.membership-guest-lead{font-size:1.08rem!important;line-height:2.05!important;margin:0 0 28px!important;max-width:100%!important;white-space:normal!important;word-break:keep-all!important;}
.membership-summary-copy{font-size:.96rem!important;line-height:2.15!important;max-width:100%!important;margin:0!important;white-space:normal!important;word-break:keep-all!important;}
.membership-key-benefits{grid-template-columns:1fr!important;margin:0 0 58px!important;border-top:1px solid rgba(255,255,255,.22)!important;border-bottom:1px solid rgba(255,255,255,.22)!important;}
.membership-key-benefits>div{min-height:0!important;padding:30px 8px 32px!important;gap:12px!important;border-right:0!important;border-bottom:1px solid rgba(255,255,255,.14)!important;overflow:visible!important;}
.membership-key-benefits>div:last-child{border-bottom:0!important;}
.membership-key-benefits span,.membership-key-benefits strong,.membership-key-benefits small{display:block!important;width:100%!important;max-width:100%!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;word-break:keep-all!important;overflow-wrap:break-word!important;}
.membership-key-benefits span{font-size:.72rem!important;line-height:1.5!important;}
.membership-key-benefits strong{font-size:1.08rem!important;line-height:1.7!important;}
.membership-key-benefits small{font-size:.84rem!important;line-height:1.8!important;}
.membership-summary-actions{display:block!important;width:100%!important;}
.membership-summary-actions .button{display:flex!important;width:100%!important;max-width:100%!important;min-width:0!important;min-height:58px!important;padding:15px 18px!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;line-height:1.55!important;white-space:normal!important;word-break:keep-all!important;overflow:visible!important;text-align:center!important;}
html[lang="ja"] .culture-copy h2 .ja-copy-mobile{line-height:1.55!important;word-break:keep-all!important;}
}
@media (max-width:390px){.membership-summary{padding-left:22px!important;padding-right:22px!important;}.membership-summary-heading h2{font-size:clamp(1.95rem,9vw,2.5rem)!important;}html[lang="ja"] .glasshour-actions .glasshour-link:first-child{min-height:64px!important;}}

/* 2026-09-04 Mobile membership centering fix */
@media (max-width:768px){
  .membership-summary{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    padding:108px 28px 116px!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  .membership-summary-inner{
    width:100%!important;
    max-width:520px!important;
    margin:0 auto!important;
    padding:0!important;
    box-sizing:border-box!important;
    text-align:center!important;
  }
  .membership-summary-heading{
    width:100%!important;
    max-width:100%!important;
    margin:0 auto 60px!important;
    padding:0!important;
    text-align:center!important;
    box-sizing:border-box!important;
  }
  .membership-summary-heading .eyebrow{
    width:100%!important;
    margin:0 auto 26px!important;
    text-align:center!important;
  }
  .membership-summary-heading h2{
    width:100%!important;
    max-width:100%!important;
    margin:0 auto 36px!important;
    padding:0!important;
    text-align:center!important;
    font-size:clamp(1.9rem,8.6vw,2.7rem)!important;
    line-height:1.5!important;
    letter-spacing:-.025em!important;
    white-space:normal!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    box-sizing:border-box!important;
  }
  .membership-guest-lead,
  .membership-summary-copy{
    width:100%!important;
    max-width:100%!important;
    margin-left:auto!important;
    margin-right:auto!important;
    text-align:center!important;
    box-sizing:border-box!important;
  }
  .membership-key-benefits{
    width:100%!important;
    max-width:100%!important;
    margin-left:auto!important;
    margin-right:auto!important;
    text-align:center!important;
    box-sizing:border-box!important;
  }
  .membership-key-benefits>div{
    width:100%!important;
    max-width:100%!important;
    padding-left:12px!important;
    padding-right:12px!important;
    align-items:center!important;
    text-align:center!important;
    box-sizing:border-box!important;
  }
  .membership-key-benefits span,
  .membership-key-benefits strong,
  .membership-key-benefits small{
    text-align:center!important;
  }
  .membership-summary-actions{
    width:100%!important;
    max-width:100%!important;
    margin:0 auto!important;
    text-align:center!important;
  }
  .membership-summary-actions .button{
    width:100%!important;
    max-width:360px!important;
    margin:0 auto!important;
    text-align:center!important;
  }
}
@media (max-width:390px){
  .membership-summary{padding-left:24px!important;padding-right:24px!important;}
  .membership-summary-heading h2{font-size:clamp(1.82rem,8.3vw,2.28rem)!important;}
}

@media (max-width:768px){
html[lang="ja"] .membership-summary-heading h2{
font-size:clamp(1.62rem,7.2vw,2.05rem)!important;
line-height:1.55!important;
letter-spacing:-0.02em!important;
padding:0 18px!important;
}
}


/* reservation-click-fix.css */

/* Ensure restaurant reservation buttons remain clickable above decorative/reveal layers. */
a.restaurant-reservation-direct{
  position:relative!important;
  z-index:50!important;
  pointer-events:auto!important;
  touch-action:manipulation;
  cursor:pointer!important;
}
#restaurant .feature-copy{
  position:relative!important;
  z-index:10!important;
}
#restaurant .feature-copy::before,
#restaurant .feature-copy::after{
  pointer-events:none!important;
}


/* header-pairing-nav.css */
/* Header refinement for THIS WEEK'S PAIRING navigation */
@media (min-width: 981px) {
  .desktop-nav {
    gap: clamp(.85rem, 1.35vw, 1.6rem);
    font-size: clamp(.61rem, .62vw, .70rem);
    letter-spacing: .10em;
    white-space: nowrap;
  }
}


/* hamburger-dividers.css */
/* Shared mobile hamburger dividers — mirrors Pairing / Archive */
@media(max-width:768px){
  .mobile-menu nav a,
  .mobile-menu .mobile-nav a{
    display:block!important;
    width:100%!important;
    border-bottom:1px solid rgba(255,255,255,.12)!important;
  }
}


/* press-feature.css */

/* Tokyo Calendar feature — added 2026-09-18 */
.press-feature{background:#f4f0e9;color:#171512;padding:110px 7vw 120px;}
.press-feature-inner{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:minmax(320px,.82fr) minmax(420px,1.18fr);gap:clamp(56px,8vw,120px);align-items:center;}
.press-feature-copy{max-width:520px;}
.press-feature .eyebrow{letter-spacing:.22em;margin-bottom:18px;}
.press-release-badge{display:inline-block;margin:0 0 28px;padding:8px 13px;border:1px solid rgba(23,21,18,.45);font-size:11px;letter-spacing:.17em;line-height:1;text-transform:uppercase;}
.press-feature h2{font-family:'Cormorant Garamond','Zen Old Mincho',serif;font-size:clamp(46px,5vw,76px);font-weight:400;line-height:.98;letter-spacing:-.025em;margin:0 0 34px;}
body.ja .press-feature h2{font-family:'Zen Old Mincho',serif;font-size:clamp(36px,4vw,56px);line-height:1.35;letter-spacing:.02em;}
.press-feature-copy>p:not(.eyebrow):not(.press-meta){font-size:15px;line-height:2.05;margin:0 0 22px;max-width:460px;}
.press-meta{margin:0 0 30px;font-size:12px;letter-spacing:.08em;opacity:.68;}
.press-view-link{display:inline-flex;align-items:center;gap:10px;color:inherit;}
.press-feature-image{display:block;position:relative;overflow:hidden;background:#fff;box-shadow:0 34px 80px rgba(35,26,18,.16);transition:transform .45s ease,box-shadow .45s ease;}
.press-feature-image:hover{transform:translateY(-5px);box-shadow:0 42px 92px rgba(35,26,18,.22);}
.press-feature-image img{display:block;width:100%;height:auto;}
@media(max-width:900px){
  .press-feature{padding:72px 0 78px!important;}
  .press-feature-inner{display:flex;flex-direction:column;gap:38px;}
  .press-feature-copy{max-width:none;width:100%;}
  body.ja .press-feature h2{font-size:2rem!important;line-height:1.45!important;}
  .press-feature-copy>p:not(.eyebrow):not(.press-meta){font-size:1rem!important;line-height:1.9!important;}
  .press-feature-image{width:100%;}
}

/* Compact homepage press teaser */
.press-feature-teaser{padding-top:clamp(72px,8vw,120px);padding-bottom:clamp(72px,8vw,120px)}
.press-feature-teaser .press-feature-inner{align-items:center}
.press-feature-teaser .press-feature-image{max-width:520px;justify-self:end}
.press-feature-teaser .press-feature-image img{aspect-ratio:4/5;object-fit:cover;object-position:center;max-height:650px}
@media(max-width:768px){.press-feature-teaser .press-feature-image{max-width:none}.press-feature-teaser .press-feature-copy h2{font-size:clamp(2.4rem,11vw,4rem)}}

/* 2026-09-18: full-bleed Tokyo Calendar cover */
.press-feature-teaser{padding:0!important;overflow:hidden}
.press-feature-teaser .press-feature-inner{max-width:none;width:100%;grid-template-columns:minmax(320px,.82fr) minmax(500px,1.18fr);gap:0;align-items:stretch}
.press-feature-teaser .press-feature-copy{max-width:none;padding:clamp(72px,8vw,128px) 7vw;align-self:center}
.press-feature-teaser .press-feature-image{max-width:none!important;width:100%;height:100%;justify-self:stretch;box-shadow:none!important;background:transparent;border-radius:0;transform:none!important}
.press-feature-teaser .press-feature-image:hover{transform:none!important;box-shadow:none!important}
.press-feature-teaser .press-feature-image img{width:100%;height:100%;min-height:720px;max-height:none!important;aspect-ratio:auto!important;object-fit:cover;object-position:center;display:block}
@media(max-width:900px){
  .press-feature-teaser .press-feature-inner{display:flex;flex-direction:column;gap:0}
  .press-feature-teaser .press-feature-copy{padding:70px 22px 54px}
  .press-feature-teaser .press-feature-image{width:100vw!important;max-width:none!important;margin:0!important}
  .press-feature-teaser .press-feature-image img{width:100%;height:auto;min-height:0;object-fit:contain}
}

/* 2026-09-18: tighter homepage FEATURED IN spacing + clean Japanese title */
.press-feature-teaser .press-feature-copy{
  padding:clamp(36px,4.5vw,64px) 4.5vw!important;
}
.press-feature-teaser .press-feature-inner{
  grid-template-columns:minmax(300px,.72fr) minmax(560px,1.28fr)!important;
}
.press-feature-teaser .press-feature .eyebrow,
.press-feature-teaser .eyebrow{margin-bottom:10px!important;}
.press-feature-teaser .press-release-badge{margin-bottom:16px!important;}
.press-feature-teaser h2{margin-bottom:20px!important;}
.press-feature-teaser .press-feature-copy>p:not(.eyebrow):not(.press-meta){margin-bottom:14px!important;}
.press-feature-teaser .press-meta{margin-bottom:20px!important;}
.press-title-nowrap{white-space:nowrap;}
body.ja .press-feature-teaser h2{font-size:clamp(30px,3.3vw,48px)!important;line-height:1.28!important;}
@media(max-width:900px){
  .press-feature-teaser .press-feature-copy{padding:40px 18px 34px!important;}
  .press-feature-teaser .press-feature-inner{display:flex!important;flex-direction:column!important;gap:0!important;}
  body.ja .press-feature-teaser h2{font-size:clamp(28px,8.8vw,42px)!important;line-height:1.25!important;}
}

/* 2026-09-18 FINAL: align homepage press block with the site's split-feature layout */
.press-feature-teaser{
  margin:0!important;
  padding:0!important;
  width:100%!important;
  overflow:hidden!important;
  background:var(--cream,#f4f0e9)!important;
}
.press-feature-teaser .press-feature-inner{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,42%) minmax(0,58%)!important;
  gap:0!important;
  align-items:stretch!important;
  min-height:760px!important;
}
.press-feature-teaser .press-feature-copy{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:clamp(5rem,7vw,8rem)!important;
  align-self:center!important;
}
.press-feature-teaser .press-feature-image{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  height:100%!important;
  min-height:760px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
  overflow:hidden!important;
  align-self:stretch!important;
}
.press-feature-teaser .press-feature-image img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:760px!important;
  margin:0!important;
  padding:0!important;
  object-fit:cover!important;
  object-position:center center!important;
}
.press-feature-teaser .eyebrow{margin:0 0 18px!important;}
.press-feature-teaser .press-release-badge{margin:0 0 28px!important;}
.press-feature-teaser h2{margin:0 0 2rem!important;}
.press-feature-teaser .press-feature-copy>p:not(.eyebrow):not(.press-meta){margin:0 0 22px!important;}
.press-feature-teaser .press-meta{margin:0 0 30px!important;}
.press-feature-teaser .press-title-nowrap{white-space:nowrap!important;word-break:keep-all!important;}
body.ja .press-feature-teaser h2{
  font-size:clamp(2.8rem,4.3vw,4.7rem)!important;
  line-height:1.3!important;
  white-space:normal!important;
  word-break:keep-all!important;
}

@media(max-width:768px){
  .press-feature-teaser{
    width:calc(100% + 36px)!important;
    margin-left:-18px!important;
    margin-right:-18px!important;
  }
  .press-feature-teaser .press-feature-inner{
    display:flex!important;
    flex-direction:column!important;
    min-height:0!important;
  }
  .press-feature-teaser .press-feature-image{
    order:1!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
  }
  .press-feature-teaser .press-feature-image img{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    object-fit:contain!important;
  }
  .press-feature-teaser .press-feature-copy{
    order:2!important;
    width:100%!important;
    padding:58px 20px 72px!important;
  }
  body.ja .press-feature-teaser h2{
    font-size:2.6rem!important;
    line-height:1.3!important;
  }
}


/* 2026-09-18 mobile bilingual final override */
@media(max-width:768px){
  .press-feature-teaser{width:100%!important;margin:0!important;padding:0!important;overflow:hidden!important;}
  .press-feature-teaser .press-feature-inner{width:100%!important;margin:0!important;padding:0!important;display:flex!important;flex-direction:column!important;gap:0!important;}
  .press-feature-teaser .press-feature-image{order:1!important;width:100%!important;height:auto!important;min-height:0!important;margin:0!important;}
  .press-feature-teaser .press-feature-image img{display:block!important;width:100%!important;height:auto!important;min-height:0!important;object-fit:contain!important;object-position:center!important;}
  .press-feature-teaser .press-feature-copy{order:2!important;width:100%!important;margin:0!important;padding:48px 22px 60px!important;}
  .press-feature-teaser .press-title-nowrap{white-space:nowrap!important;}
  body.ja .press-feature-teaser h2{font-size:clamp(32px,10vw,44px)!important;line-height:1.28!important;}
  html[lang="en"] .press-feature-teaser h2{font-size:clamp(44px,13vw,62px)!important;line-height:.98!important;}
  .press-feature-teaser .press-feature-copy>p:not(.eyebrow):not(.press-meta){font-size:14px!important;line-height:1.9!important;}
}


/* bar-time.css */
/* Restaurant BAR TIME — 2026-09-18 */
#restaurant .bar-time-card{
  margin:clamp(28px,3.2vw,48px) 0 clamp(28px,3.2vw,44px);
  padding:clamp(22px,2.4vw,34px) 0;
  border-top:1px solid rgba(255,255,255,.28);
  border-bottom:1px solid rgba(255,255,255,.28);
  color:inherit;
}
#restaurant .bar-time-heading{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px;
  margin-bottom:14px;
}
#restaurant .bar-time-label,
#restaurant .bar-time-hours{
  margin:0!important;
  font-family:"Cormorant Garamond",serif!important;
  text-transform:uppercase;
  letter-spacing:.13em;
  line-height:1.1!important;
}
#restaurant .bar-time-label{font-size:clamp(15px,1.15vw,19px)!important;font-weight:400!important}
#restaurant .bar-time-hours{font-size:clamp(15px,1.15vw,19px)!important;font-weight:400!important;white-space:nowrap}
#restaurant .bar-time-copy{
  margin:0 0 22px!important;
  max-width:38rem;
  font-size:clamp(13px,.9vw,15px)!important;
  line-height:1.9!important;
  opacity:.84;
}
#restaurant .bar-time-prices{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px 32px;
}
#restaurant .bar-time-prices>div{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:18px;
  min-width:0;
}
#restaurant .bar-time-prices span{
  font-family:"Cormorant Garamond",serif;
  font-size:12px;
  letter-spacing:.12em;
  opacity:.66;
  white-space:nowrap;
}
#restaurant .bar-time-prices strong{
  font-family:"Cormorant Garamond",serif;
  font-size:clamp(19px,1.45vw,25px);
  font-weight:400;
  letter-spacing:.02em;
  white-space:nowrap;
}
#restaurant .bar-time-prices small{
  font-size:.56em;
  font-weight:400;
  letter-spacing:.05em;
  opacity:.72;
}
body.ja #restaurant .bar-time-copy,
body.ja #restaurant .bar-time-prices span{
  font-family:"Shippori Mincho",serif;
  text-transform:none;
}
@media(max-width:768px){
  #restaurant .bar-time-card{
    width:100%;
    margin:30px 0 32px!important;
    padding:24px 0!important;
  }
  #restaurant .bar-time-heading{
    align-items:flex-end;
    margin-bottom:16px;
  }
  #restaurant .bar-time-label{font-size:14px!important}
  #restaurant .bar-time-hours{font-size:14px!important}
  #restaurant .bar-time-copy{
    margin-bottom:22px!important;
    font-size:13px!important;
    line-height:1.85!important;
  }
  #restaurant .bar-time-prices{
    grid-template-columns:1fr;
    gap:0;
  }
  #restaurant .bar-time-prices>div{
    padding:13px 0;
    border-top:1px solid rgba(255,255,255,.16);
  }
  #restaurant .bar-time-prices>div:last-child{border-bottom:1px solid rgba(255,255,255,.16)}
  #restaurant .bar-time-prices span{font-size:12px!important}
  #restaurant .bar-time-prices strong{font-size:22px!important}
}
@media(max-width:390px){
  #restaurant .bar-time-heading{display:block}
  #restaurant .bar-time-hours{margin-top:8px!important}
}

/* Restaurant homepage service availability */
#restaurant .detail-row .restaurant-offerings{white-space:nowrap;}
@media(max-width:768px){
  #restaurant .detail-row{align-items:center;}
  #restaurant .detail-row .restaurant-offerings{white-space:normal;flex-basis:100%;line-height:1.55;}
}

/* Final BAR TIME typography alignment — exact same treatment for label and hours */
#restaurant .bar-time-heading .bar-time-label,
#restaurant .bar-time-heading .bar-time-hours{
  font-family:"Cormorant Garamond",serif !important;
  font-size:clamp(15px,1.15vw,19px) !important;
  font-weight:400 !important;
  font-style:normal !important;
  font-variant:normal !important;
  font-stretch:normal !important;
  letter-spacing:.13em !important;
  line-height:1.1 !important;
  text-transform:uppercase !important;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}
@media(max-width:768px){
  #restaurant .bar-time-heading .bar-time-label,
  #restaurant .bar-time-heading .bar-time-hours{
    font-size:14px !important;
    letter-spacing:.13em !important;
  }
}

/* BAR TIME final font lock: label and time are one typographic run */
#restaurant .bar-time-heading .bar-time-combined{
  font-family:"Cormorant Garamond",serif !important;
  font-size:clamp(15px,1.15vw,19px) !important;
  font-weight:400 !important;
  font-style:normal !important;
  letter-spacing:.13em !important;
  line-height:1.1 !important;
  text-transform:uppercase !important;
  white-space:nowrap;
}
#restaurant .bar-time-heading .bar-time-hours-inline{
  font-family:inherit !important;
  font-size:inherit !important;
  font-weight:inherit !important;
  font-style:inherit !important;
  letter-spacing:inherit !important;
  line-height:inherit !important;
  text-transform:inherit !important;
  margin-left:.75em;
}
@media(max-width:768px){
  #restaurant .bar-time-heading .bar-time-combined{font-size:14px !important;white-space:normal;}
  #restaurant .bar-time-heading .bar-time-hours-inline{display:inline-block;margin-left:.65em;}
}

/* 2026-09-20 final fix: BAR TIME + hours are a single text run, never separate typography */
#restaurant .bar-time-heading .bar-time-combined{
  font-family:"Cormorant Garamond","Times New Roman",serif!important;
  font-size:clamp(15px,1.15vw,19px)!important;
  font-weight:400!important;
  font-style:normal!important;
  font-variant:normal!important;
  font-stretch:normal!important;
  letter-spacing:.13em!important;
  line-height:1.1!important;
  text-transform:uppercase!important;
  font-feature-settings:normal!important;
  font-kerning:normal!important;
}
@media(max-width:768px){
  #restaurant .bar-time-heading .bar-time-combined{font-size:14px!important;letter-spacing:.13em!important;}
}


/* v31: final BAR TIME typography lock — keep hours identical to BAR TIME */
#restaurant .bar-time-heading .bar-time-combined{
  font-family:"Cormorant Garamond","Times New Roman",serif!important;
  font-weight:400!important;
  font-style:normal!important;
  font-variant:normal!important;
  font-variant-numeric:lining-nums tabular-nums!important;
  font-feature-settings:"lnum" 1,"tnum" 1!important;
  letter-spacing:.13em!important;
  line-height:1.1!important;
  text-transform:uppercase!important;
}
#restaurant .bar-time-heading .bar-time-combined *{
  font:inherit!important;
  letter-spacing:inherit!important;
  font-variant-numeric:inherit!important;
  font-feature-settings:inherit!important;
}


/* phone-actions.css */
.venue-action-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.35rem;align-items:center}
.venue-action-row .button{margin:0!important}
.venue-phone-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
@media(max-width:768px){.venue-action-row{display:grid;grid-template-columns:1fr;gap:10px}.venue-action-row .button{width:100%!important;text-align:center!important}}

/* Homepage reservation call buttons */
.reserve-phone-actions{
  max-width:850px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:18px;
}
.reserve-phone-actions .reserve-phone-button{
  border:1px solid rgba(255,255,255,.35);
  padding:14px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  transition:background .25s ease,border-color .25s ease;
}
.reserve-phone-actions .reserve-phone-button:hover{
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.6);
}
.reserve-phone-actions .reserve-phone-button span{
  font-family:var(--serif);
  font-size:1.05rem;
}
.reserve-phone-actions .reserve-phone-button small{
  color:rgba(255,255,255,.65);
  letter-spacing:.08em;
  white-space:nowrap;
}
@media(max-width:768px){
  .reserve-phone-actions{grid-template-columns:1fr;gap:10px;margin-top:14px;}
  .reserve-phone-actions .reserve-phone-button{min-height:52px;}
}

/* Call rows integrated with reservation links */
.reserve-options .reserve-call-row span{font-size:1.45rem;}
.reserve-options .reserve-call-row small{white-space:nowrap;}
@media(max-width:768px){
  .reserve-options .reserve-call-row span{font-size:1.2rem;}
}

/* Mobile: keep Japanese call-to-restaurant label as one clean phrase */
@media (max-width:768px){
  .venue-action-row .venue-phone-button{
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    font-size:clamp(13px,3.7vw,15px)!important;
    padding-left:14px!important;
    padding-right:14px!important;
    min-width:0!important;
  }
}


/* homepage-venue-cta.css */

/* Home hero reservation/call pairs + refined reservation section */
.hero-venue-actions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px!important;
  width:min(820px,100%)!important;
  margin:32px auto 0!important;
}
.hero-venue-pair{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  min-width:0;
  padding:30px 16px 16px;
  border:1px solid rgba(255,255,255,.38);
  background:rgba(12,10,8,.24);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}
.hero-venue-pair::after{
  content:"";
  position:absolute;
  left:16px;
  right:16px;
  top:25px;
  height:1px;
  background:rgba(255,255,255,.16);
}
.hero-venue-label{
  position:absolute;
  top:9px;
  left:50%;
  transform:translateX(-50%);
  z-index:2;
  padding:0 10px;
  background:transparent;
  color:rgba(255,255,255,.72);
  font-family:"Cormorant Garamond",serif;
  font-size:10px;
  font-weight:500;
  letter-spacing:.24em;
  line-height:1;
  white-space:nowrap;
}
.hero-venue-pair .button{
  min-width:0!important;
  width:100%!important;
  white-space:nowrap!important;
  font-size:clamp(10px,.78vw,12px)!important;
  padding-left:14px!important;
  padding-right:14px!important;
  min-height:48px!important;
}
.hero-venue-pair .button-light{
  background:#f3ede3!important;
  color:#1b1612!important;
  border-color:#f3ede3!important;
}
.hero-venue-pair .button-ghost{
  background:rgba(255,255,255,.025)!important;
  border-color:rgba(255,255,255,.52)!important;
}
.reserve-venues{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:34px;width:min(920px,100%)}
.reserve-venue-card{padding:30px 28px;border:1px solid rgba(255,255,255,.32);background:rgba(15,13,10,.24);backdrop-filter:blur(4px)}
.reserve-venue-kicker{margin:0 0 7px!important;font-family:"Cormorant Garamond",serif!important;font-size:11px!important;letter-spacing:.24em!important;text-transform:uppercase;color:rgba(255,255,255,.64)!important}
.reserve-venue-card h3{margin:0 0 20px;font-size:clamp(26px,2.8vw,40px);font-weight:400;line-height:1.25;color:#fff}
.reserve-venue-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.reserve-button{display:flex!important;align-items:center;justify-content:center;min-height:50px;padding:12px 13px;border:1px solid rgba(255,255,255,.65)!important;color:#fff!important;text-decoration:none!important;font-size:12px;letter-spacing:.06em;line-height:1.4;text-align:center;background:rgba(255,255,255,.03);white-space:nowrap}
.reserve-button:first-child{background:#f5efe5!important;color:#18130f!important;border-color:#f5efe5!important}
.reserve-membership-note{margin:22px 0 0!important;font-size:12px!important;letter-spacing:.04em!important}
.reserve-membership-note a{color:rgba(255,255,255,.78)!important;text-decoration:none!important;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:3px}
@media(max-width:760px){
 .hero-venue-actions{grid-template-columns:1fr!important;gap:12px!important;width:100%!important;max-width:390px!important;margin-top:26px!important}
 .hero-venue-pair{grid-template-columns:1fr 1fr!important;gap:8px!important;padding:29px 12px 12px}
 .hero-venue-pair::after{left:12px;right:12px;top:24px}
 .hero-venue-label{top:8px;font-size:9px;letter-spacing:.22em}
 .hero-venue-pair .button{font-size:10px!important;letter-spacing:.025em!important;padding:12px 7px!important;min-height:46px!important}
 html[lang="ja"] .hero-venue-pair .button{font-size:10px!important;white-space:nowrap!important}
 .reserve-venues{grid-template-columns:1fr;gap:14px;margin-top:28px}
 .reserve-venue-card{padding:24px 18px}
 .reserve-venue-actions{grid-template-columns:1fr 1fr;gap:8px}
 .reserve-button{font-size:11px;letter-spacing:.02em;padding:11px 7px;white-space:nowrap}
 html[lang="ja"] .reserve-button{font-size:10.5px}
}
@media(max-width:360px){
 .hero-venue-pair,.reserve-venue-actions{grid-template-columns:1fr!important}
 .hero-venue-pair .button,.reserve-button{font-size:11px!important}
}


/* Final reservation card consistency */
.hero-venue-pair .button-light,.reserve-venue-actions .reserve-button:first-child{background:#f5efe5!important;color:#18130f!important;border-color:#f5efe5!important}
.hero-venue-pair .button-ghost,.reserve-venue-actions .reserve-button-call{background:rgba(255,255,255,.025)!important;color:#fff!important;border-color:rgba(255,255,255,.52)!important}
@media(max-width:760px){html[lang="ja"] .hero-venue-pair .button,html[lang="ja"] .reserve-button{white-space:nowrap!important;word-break:keep-all!important}}

/* v17 mobile header hit-area fix: preserve exact visual header; isolate existing controls */
@media (max-width:768px){
  #siteHeader .header-right,
  #siteHeader .header-actions{
    pointer-events:none!important;
  }
  #siteHeader .language-toggle{
    pointer-events:auto!important;
    z-index:20!important;
  }
  #siteHeader .wordmark{
    pointer-events:auto!important;
    z-index:21!important;
  }
  #siteHeader .menu-toggle{
    pointer-events:auto!important;
    z-index:22!important;
  }
}

/* v20 — mobile-only copy fixes requested 2026-09-24. No other layout changes. */
@media (max-width:768px){
  /* Philosophy: never clip/cut the copy on mobile. */
  .quote-section.philosophy-compact,
  .quote-section.philosophy-compact .philosophy-copy{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .quote-section.philosophy-compact .philosophy-copy h2,
  .quote-section.philosophy-compact .philosophy-copy p{
    max-width:100%!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
  }
  .quote-section.philosophy-compact .philosophy-copy br{
    display:block!important;
  }

  /* Japanese experience heading: exactly two lines. */
  html[lang="ja"] .experience-video .video-title h2 .ja-copy-mobile{
    display:block!important;
    white-space:normal!important;
  }
  html[lang="ja"] .experience-video .video-title h2 .ja-copy-mobile br{
    display:block!important;
  }
  html[lang="ja"] .experience-video .video-title h2 .ja-copy-mobile{
    font-size:clamp(2.15rem,10vw,3rem)!important;
    line-height:1.22!important;
    letter-spacing:-.035em!important;
  }
}

/* v94: center desktop navigation across the viewport, independent of the
   different widths of the wordmark and right-side actions. Mobile unchanged. */
@media (min-width: 981px) {
  .site-header { position: fixed !important; }
  .site-header > .desktop-nav {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    justify-content: center !important;
    justify-self: center !important;
    width: max-content !important;
    max-width: calc(100vw - 390px) !important;
    gap: clamp(7px, .85vw, 17px) !important;
    font-size: clamp(9px, .60vw, 11px) !important;
    letter-spacing: .055em !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .site-header > .wordmark { z-index: 1; }
  .site-header > .header-right { z-index: 1; }
}
