: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;
  }
}
