/* Sub page shared styles */
.sub-body { padding: 40px 0 80px; }
.sub-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 60px;
  align-items: start;
}
.sub-nav {
  position: sticky;
  top: calc(var(--header-h) + 24px);
}
.sub-nav__title { font-size: 22px; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 2px solid var(--color-navy); }
.sub-nav__list { display: flex; flex-direction: column; }
.sub-nav__list a {
  padding: 12px 4px;
  font-size: 15px;
  color: var(--color-text-mute);
  border-bottom: 1px solid var(--color-border);
}
.sub-nav__list a.is-active { color: var(--color-navy); font-weight: 700; }
.sub-nav__list a:hover { color: var(--color-navy); }

@media (max-width: 1024px) {
  .sub-layout { grid-template-columns: 1fr; gap: 24px; }
  .sub-nav { position: static; }
  .sub-nav__list { display: flex; flex-direction: row; overflow-x: auto; border-bottom: 1px solid var(--color-border); }
  .sub-nav__list a { border-bottom: none; padding: 12px 16px; white-space: nowrap; }
}

/* Greeting */
.greeting {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 60px;
  align-items: start;
}
.greeting__figure {
  border-radius: 12px;
  overflow: hidden;
  background: #0a1a2e;
}
.greeting__figure img { width: 100%; height: auto; display: block; }
.greeting__body { position: relative; }
.greeting__watermark {
  margin-top: 32px;
  text-align: right;
  pointer-events: none;
  opacity: 0.35;
}
.greeting__watermark img {
  width: 560px;
  max-width: 100%;
  height: auto;
  display: inline-block;
}
.greeting__lead {
  font-size: 22px;
  line-height: 1.55;
  letter-spacing: -0.01em;
  margin-bottom: 26px;
}
.greeting__lead b { color: var(--color-navy); font-weight: 700; }
.greeting__desc { font-size: 15px; line-height: 1.9; color: var(--color-text-mute); }
.greeting__desc p + p { margin-top: 20px; }

@media (max-width: 1024px) {
  .greeting { grid-template-columns: 1fr; gap: 28px; }
}

/* Location */
.location__map {
  width: 100%;
  height: 440px;
  border-radius: 12px;
  background: var(--color-bg-mute) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><text x='50%' y='50%' font-size='16' text-anchor='middle' fill='%23888'>MAP</text></svg>") center/60px no-repeat;
  border: 1px solid var(--color-border);
  overflow: hidden;
  margin-bottom: 32px;
}
.location__map iframe { width: 100%; height: 100%; border: 0; }
.location__info {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.location__info .card {
  background: var(--color-bg-soft);
  border-radius: 10px;
  padding: 22px 24px;
}
.location__info .card h4 { font-size: 13px; color: var(--color-navy); letter-spacing: .06em; margin-bottom: 6px; }
.location__info .card p { font-size: 15px; font-weight: 600; }
@media (max-width: 768px) {
  .location__info { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .sub-body { padding: 20px 0 40px; }
  .greeting__lead { font-size: 18px; margin-bottom: 16px; }
  .greeting__watermark { margin-top: 16px; }
  .greeting__watermark img { width: 100%; }
  .location__map { height: 260px; margin-bottom: 20px; }
  .location__info { grid-template-columns: 1fr; }
}
