/*
 * Short pages keep the footer at the viewport bottom.
 * Long pages retain normal flow, so the footer follows the content.
 */
.hub-site-layout {
  display: flex;
  min-height: 100vh;
  min-height: 100dvh;
  flex-direction: column;
}

.hub-site-layout > main {
  width: 100%;
  flex: 0 0 auto;
}

.hub-site-layout > .hub-header,
.hub-site-layout > .hub-footer {
  flex: 0 0 auto;
}

.hub-site-layout > .hub-footer {
  margin-top: auto;
}

/* REQ-332 / SPEC-332-02: 공통 푸터 fragment(fragments/legal-footer.html) — MediHub 톤 오버라이드 (구조는 MediEdu와 동일 클래스, 색상만 hub 변수) */
.legal-footer-links { display: inline-flex; align-items: center; gap: 0.4em; }
.legal-footer-links a { color: inherit; text-decoration: none; }
.legal-footer-links a:hover { text-decoration: underline; }
.legal-footer-sep { opacity: 0.5; }
.legal-footer-info-trigger {
  background: none; border: none; padding: 0; margin-left: 0.75em;
  color: inherit; font: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 0.3em;
}
.legal-footer-info-trigger:hover { text-decoration: underline; }
.legal-footer-modal {
  border: none; padding: 0; border-radius: var(--hub-radius, 12px);
  width: min(560px, calc(100vw - 32px)); max-height: min(82vh, 640px);
  background: #fff; color: var(--hub-ink); box-shadow: var(--hub-shadow);
}
.legal-footer-modal::backdrop { background: rgba(9, 27, 46, 0.55); }
.legal-footer-modal__header { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--hub-line); }
.legal-footer-modal__title { margin: 0; font-size: 1.05rem; font-weight: 700; color: var(--hub-ink); }
.legal-footer-modal__close { background: none; border: none; padding: 4px; color: var(--hub-muted); font-size: 1.05rem; line-height: 1; cursor: pointer; }
.legal-footer-modal__close:hover { color: var(--hub-ink); }
.legal-footer-modal__body { padding: 18px 20px 20px; overflow-y: auto; }
.company-info-dl { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; margin: 0; }
.company-info-dl dt { font-weight: 600; color: var(--hub-muted); font-size: 0.85rem; white-space: nowrap; }
.company-info-dl dd { margin: 0; font-size: 0.85rem; color: var(--hub-ink); word-break: break-all; }

.hub-footer__legal { margin: 10px 0 0; font-size: 0.8rem; color: #a9bfbb; }
