/* Global nav + footer */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  display: grid; grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 28px 48px;
  transition: background var(--tr-med), backdrop-filter var(--tr-med), padding var(--tr-med);
}
.nav.scrolled {
  background: rgba(10,10,10,.78);
  backdrop-filter: blur(18px) saturate(120%);
  padding: 18px 48px;
  border-bottom: 1px solid rgba(201,169,97,.18);
}
.nav-brand {
  display: flex; align-items: center; gap: 14px; grid-column: 2;
}
.nav-brand .mark { width: 38px; height: 38px; }
.nav-brand .wordmark {
  font-family: var(--f-mincho);
  font-size: 22px; letter-spacing: .5em;
  color: var(--washi);
  padding-left: .3em;
}
.nav-brand .sub {
  font-family: var(--f-latin);
  font-size: 9px; letter-spacing: .5em;
  color: var(--kin); text-transform: uppercase;
  margin-top: 4px;
}
.nav-links {
  display: flex; gap: 26px; justify-self: start;
  grid-column: 1;
}
.nav-links a {
  font-family: var(--f-mincho);
  font-size: 13px; letter-spacing: .25em;
  color: var(--washi); opacity: .75;
  padding: 6px 0; position: relative;
  white-space: nowrap;
  transition: opacity var(--tr-fast), color var(--tr-fast);
}
.nav-links a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -2px;
  height: 1px; background: var(--kin);
  transform: scaleX(0); transform-origin: left;
  transition: transform var(--tr-med);
}
.nav-links a:hover, .nav-links a.active { opacity: 1; color: var(--kin); }
.nav-links a.active::after, .nav-links a:hover::after { transform: scaleX(1); }
.nav-cta {
  justify-self: end; grid-column: 3;
  display: flex; align-items: center; gap: 22px;
}
.nav-cta .lang {
  font-family: var(--f-latin); font-size: 11px;
  letter-spacing: .4em; color: var(--washi); opacity: .6;
  display: flex; gap: 10px;
}
.nav-cta .lang span.on { color: var(--kin); opacity: 1; }
.nav-cta .book {
  font-family: var(--f-mincho); font-size: 12px;
  letter-spacing: .35em; color: var(--kin);
  border: 1px solid var(--kin);
  padding: 10px 22px;
  transition: all var(--tr-med);
}
.nav-cta .book:hover { background: var(--kin); color: var(--sumi); }

/* ————— Footer ————— */
.footer {
  background: var(--sumi);
  padding: 110px 64px 48px;
  border-top: 1px solid rgba(201,169,97,.18);
  position: relative;
}
.footer-grid {
  display: grid; grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 72px;
  max-width: 1440px; margin: 0 auto;
}
.footer-brand .mark { width: 56px; margin-bottom: 24px; }
.footer-brand h3 {
  font-family: var(--f-mincho); font-weight: 500;
  font-size: 28px; letter-spacing: .4em;
  margin-bottom: 18px;
}
.footer-brand p {
  font-size: 13px; line-height: 2; color: rgba(245,240,230,.55);
  max-width: 320px;
}
.footer h5 {
  font-family: var(--f-latin); font-style: italic;
  color: var(--kin); font-size: 12px; letter-spacing: .3em;
  text-transform: uppercase;
  margin-bottom: 18px; font-weight: 400;
}
.footer ul { list-style: none; }
.footer ul li {
  font-family: var(--f-mincho); font-size: 13px;
  letter-spacing: .2em; margin-bottom: 12px;
  color: rgba(245,240,230,.7);
  transition: color var(--tr-fast);
  cursor: pointer;
}
.footer ul li:hover { color: var(--kin); }
.footer-bottom {
  max-width: 1440px; margin: 80px auto 0;
  padding-top: 28px;
  border-top: 1px solid rgba(201,169,97,.12);
  display: flex; justify-content: space-between;
  font-family: var(--f-latin); font-size: 11px;
  letter-spacing: .3em; color: rgba(245,240,230,.35);
  text-transform: uppercase;
}
