@media (max-width: 768px) {.container{width:min(calc(100% - 28px),var(--max))}}

/* Keep Japanese display headings on intentional, phrase-level lines. */
.heading-balance {
  word-break: auto-phrase;
  overflow-wrap: normal;
  text-wrap: balance;
}
.heading-line {
  display: block;
}
@media (min-width: 769px) {
  .heading-line {
    white-space: nowrap;
  }
  .home-experience .heading-balance,
  .home-trust .heading-balance {
    font-size: clamp(2rem, 3.45vw, 3.15rem);
  }
}

.contact-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--gold-dark);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .2em;
  touch-action: manipulation;
}
.contact-phone {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  color: var(--gold-dark);
  font: 500 clamp(1.8rem, 4vw, 2.8rem)/1.2 Georgia, serif;
  letter-spacing: .04em;
  text-decoration: underline;
  text-underline-offset: .18em;
  touch-action: manipulation;
}

/* Keep keyboard focus clearly visible on light, image and dark backgrounds. */
:where(a, button, input, select, textarea, summary, iframe, [tabindex]):focus-visible {
  outline: 3px solid #8a5a00;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px #fff;
}
.button:focus-visible {
  transform: translateY(-2px);
}
.gateway a:focus-visible h3,
.sidebar a:focus-visible {
  color: var(--gold-dark);
}
.hero-ba-divider:focus-visible .hero-ba-handle {
  box-shadow: 0 0 0 4px #fff, 0 0 0 7px #8a5a00, 0 7px 24px rgba(0,0,0,.32);
}

.home-price {
  flex-wrap: wrap;
}
.home-price span {
  color: var(--muted);
  font-size: .85rem;
  line-height: 1.6;
}

.home-message__button {
  min-width: 260px;
  margin-top: 22px;
  border-color: #d2ad6a;
  background: #d2ad6a;
  color: #211d19;
}
.home-message__button:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 4px;
}
.access-map {
  margin: 48px 0 70px;
}
.access-map iframe {
  display: block;
  width: 100%;
  height: clamp(320px, 48vw, 520px);
  border: 1px solid var(--line);
  background: var(--paper);
}
.access-map iframe:focus {
  outline: 3px solid #8a5a00;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px #fff;
}
.access-map:focus-within {
  outline: 3px solid #8a5a00;
  outline-offset: 3px;
}
.date-grid label:focus-within {
  outline: 3px solid #8a5a00;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px #fff;
}
.access-map p {
  margin: 18px 0 0;
  text-align: right;
}
.contact-channels {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.home-guide-links,
.faq-actions,
.related-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 22px;
}
.home-guide-links {
  justify-content: center;
  margin-top: 34px;
  padding-top: 26px;
  border-top: 1px solid var(--line);
}
.home-guide-links a,
.related-links .text-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--gold-dark);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .24em;
}
.service-overview {
  margin-bottom: 40px;
}
.faq-actions {
  margin-top: 32px;
}
.related-links {
  margin-top: 12px;
}
@media (max-width: 640px) {
  .home-message__button {
    width: 100%;
    min-width: 0;
  }
  .access-map {
    margin: 36px 0 54px;
  }
  .access-map iframe {
    height: 360px;
  }
  .access-map .button {
    width: 100%;
  }
  .contact-channels {
    grid-template-columns: 1fr;
  }
  .home-guide-links,
  .faq-actions,
  .related-links {
    align-items: stretch;
    flex-direction: column;
  }
  .home-guide-links a,
  .faq-actions .button,
  .related-links .text-link {
    width: 100%;
  }
  .faq-actions .button {
    text-align: center;
  }
}
