/* /63 LOCATION */
.sub-hero { position: relative; height: 420px; color: #fff; background: #555 var(--hero-bg) center / cover no-repeat; overflow: hidden; }
.sub-hero::before { content: ''; position: absolute; inset: 0; background: var(--overlay, rgba(0,0,0,.35)); }
.sub-hero > .container { position: relative; height: 100%; }
.sub-hero__label { position: absolute; top: 25px; left: calc(var(--gutter) + 12px); font-family: var(--font-en); font-weight: 700; font-size: 18px; letter-spacing: 1px; line-height: 1.2; }
.sub-hero__title { position: absolute; left: var(--gutter); right: var(--gutter); top: 209px; transform: translateY(-50%); text-align: center; font-family: var(--font-en); font-weight: 400; font-size: 60px; line-height: 1.1; }

.loc { padding: 0 0 20px; }
.loc__row { display: grid; grid-template-columns: 503px minmax(0, 717px); justify-content: space-between; gap: 30px; padding: 60px 0 93px; border-bottom: 1px solid rgba(0,0,0,.05); }
.loc__row:last-child { border-bottom: 0; }
.loc__info { padding-top: 16px; }
.loc__name { font-family: var(--font-en); font-weight: 700; font-size: 26px; line-height: 1.2; color: #212121; margin-bottom: 39px; }
.loc__addr { font-size: 20px; line-height: 1.5; color: #363636; }
.loc__notice { font-size: 20px; line-height: 1.5; color: #ec6868; margin-top: 8px; }
.loc__notice + .loc__en { margin-top: 0; }
.loc__en { margin-top: 10px; font-family: var(--font-en); font-size: 16px; line-height: 1.5; color: #787878; }
.loc__links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.loc__links a { display: inline-flex; align-items: center; height: 36px; padding: 0 16px; border: 1px solid #d5d5d5; font-size: 14px; color: #555; transition: border-color .2s, color .2s, background .2s; }
.loc__links a:hover { border-color: #212121; background: #212121; color: #fff; }
.loc__map { position: relative; height: 350px; background: #eee; overflow: hidden; }
.loc__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* contact section tone on this page (navy title like the original) */
.contact-section__title, .contact-section__intro p { color: #233056; }
.contact-section__title { font-size: 50px; }
.contact-section__intro p { font-size: 22px; }

@media (max-width: 1200px) {
  .loc__row { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); }
}
@media (max-width: 960px) {
  .sub-hero { height: 300px; }
  .sub-hero__title { top: 160px; font-size: 44px; }
  .loc__row { grid-template-columns: 1fr; gap: 24px; padding: 48px 0 56px; }
  .loc__info { padding-top: 0; }
  .loc__name { margin-bottom: 18px; font-size: 24px; }
  .loc__addr, .loc__notice { font-size: 18px; }
  .loc__map { height: 280px; }
  .contact-section__title { font-size: 38px; }
  .contact-section__intro p { font-size: 18px; }
}

