/* Final editorial pass: stronger desktop entrance, compact mobile composition. */
body[data-view="A"] { --ivory:#F8F5EF; --ivory-deep:#ECE8DF; --ink:#302F29; --gold:#84785F; }
body[data-view="B"] { --ivory:#F5F2EC; --ivory-deep:#E9E4DC; --ink:#292824; --gold:#796A57; }
body[data-view="C"] { --ivory:#F5F5F2; --ivory-deep:#E7E8E5; --ink:#222624; --gold:#59635E; }
header#top {
  position:relative;
  display:block;
  height:clamp(540px, 78svh, 800px);
  min-height:0;
  padding-top:0;
  overflow:hidden;
  background:var(--ink);
}
header#top .hero-bg {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
header#top .hero-bg img {
  width:100%;
  height:100%;
  max-height:none;
  object-fit:cover;
  object-position:var(--hero-position, 50% 45%);
}
header#top .hero-veil {
  display:block;
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(15,18,16,.03) 20%, rgba(15,18,16,.15) 48%, rgba(15,18,16,.70));
}
header#top .hero-inner {
  position:absolute;
  left:6vw;
  right:6vw;
  bottom:48px;
  margin:0;
  padding:0;
  background:transparent;
}
header#top .hero-title {
  color:#FFF;
  font-size:clamp(62px, 7vw, 108px);
  margin:12px 0 16px;
}
header#top .hero-jp { color:#FFF; font-size:clamp(17px, 1.7vw, 24px); letter-spacing:.10em; }
header#top .hero-inner > .eyebrow {
  color:#FFF;
  justify-content:center;
  letter-spacing:.15em;
}
header#top .hero-inner > .eyebrow::before { background:rgba(255,255,255,.65); }
.concept-text p, .profile-text p { letter-spacing:.035em; }
.style-swiper { margin-top:42px !important; }
.style-swiper figcaption { letter-spacing:.035em; }
.reserve { padding:92px 6vw; background-position:center 42%; }
.reserve h2 { margin:0 0 22px; font-size:clamp(40px, 5vw, 64px); }
.reserve > p { max-width:36em; margin:0 auto 30px; line-height:1.9; letter-spacing:.08em; }
.reserve a { letter-spacing:.15em; }
.footer-links { gap:18px 28px; }
@media (max-width:820px) {
  .section { padding:80px 0; }
  .concept-grid, .profile-grid { gap:30px; }
}
@media (max-width:640px) {
  header#top {
    display:flex;
    flex-direction:column;
    height:auto;
    min-height:0;
    padding-top:72px;
    background:var(--ivory);
  }
  header#top .hero-bg {
    position:relative;
    inset:auto;
    height:auto;
    aspect-ratio:4/3;
    flex:none;
  }
  header#top .hero-bg img { height:100%; object-fit:cover; }
  header#top .hero-veil { display:none; }
  header#top .hero-inner {
    position:relative;
    left:auto;
    right:auto;
    bottom:auto;
    width:100%;
    padding:26px 6vw 32px;
  }
  header#top .hero-title { color:var(--ink); font-size:clamp(40px, 11vw, 64px); margin:10px 0 14px; }
  header#top .hero-jp { color:var(--ink); font-size:16px; line-height:1.9; }
  header#top .hero-inner > .eyebrow { color:var(--ink); font-size:11px; letter-spacing:.08em; max-width:none; }
  header#top .hero-inner > .eyebrow::before { display:none; }
  .section { padding:64px 0; }
  .reserve { padding:68px 6vw; }
  .reserve > p { font-size:13px; }
  .reserve a { padding:16px 26px; }
  footer { padding:42px 6vw 30px; }
  .footer-links { gap:16px 22px; }
}

/* Keep the close toggle above the full-screen mobile menu. */
nav#nav.menu-open { z-index:220; }
#mobile-menu { overflow-y:auto; overscroll-behavior:contain; }
#mobile-menu .mm-inner { padding-top:90px; padding-bottom:40px; }
