/* Shared axes and a 13 / 21 / 34 / 55 / 89 / 144 spacing progression.
   Content remains in natural flow; the artwork adapts to the available height. */
:root {
  --space-detail: 13px;
  --space-small: 21px;
  --space-medium: 34px;
  --space-large: 55px;
  --space-section: clamp(89px, 10vw, 144px);
}

.nav { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
.nav > .wordmark { justify-self: start; }
.nav-links { justify-self: center; }
.language-switch { justify-self: end; margin: 0; }
.language-switch a { min-width: 44px; }
.hero-copy .hero-description,
.investment-hero-copy .hero-description { margin-inline: auto; }
.section { padding-block: var(--space-section); }
.section-heading { gap: var(--space-large); }
/* Anchors align the section's first line, rather than its outer whitespace. */
.section[id] { scroll-margin-top: calc(21px - var(--space-section)); }
.intelligence-journey { scroll-margin-top: -107px; }

/* Equal outer rails keep the wordmark, statement and utility links on one grid. */
.footer { padding-block: 89px 55px; }
.footer-top,
.footer-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, auto) minmax(0, 1fr);
  align-items: center;
  gap: var(--space-medium);
}
.footer-top > .wordmark { justify-self: start; }
.footer-top > p { margin: 0; text-align: center; }
.footer-top > .back-top { justify-self: end; }
.footer-bottom { margin-top: 55px; padding-top: 21px; align-items: start; }
.footer-bottom > p { margin: 0; padding-top: 12px; line-height: 20px; }
.footer-bottom > p:last-child { text-align: right; }
.footer-access { display: flex; flex-direction: column; align-items: center; gap: 0; }
.footer-access > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 44px;
  margin: 0;
  padding: 0 21px;
  text-align: center;
  line-height: 1.5;
  transition: color .25s ease;
}
.footer-access > a > span { position: absolute; right: 0; font-size: 12px; }
.footer-access > .staff-entry { font-size: 11px; letter-spacing: .025em; color: #626d7d; }
.footer-access > a:hover { color: var(--blue); }
.footer-access > a:focus-visible { border-radius: 3px; outline-offset: 2px; }

@media (min-width: 701px) {
  .hero-premium, .investment-restored { padding-top: clamp(34px, 5svh, 89px); }
  .hero-premium h1, .investment-restored h1 { margin-top: 21px; }
  .hero-premium .hero-description, .investment-restored .hero-description { margin-top: 21px; }
  .signature-scene { margin-top: 0; }
  .signature-art { width: min(900px, 80vw, calc(clamp(220px, 100svh - 490px, 600px) * 1.5)); }
  .signature-caption { bottom: 34px; }
  .hero-premium .hero-bottom { margin-top: 0; }
  .hero-bottom { padding-block: 13px; }
  .investment-restored .audience { margin-top: 13px; }
  .investment-doc-link { display: flex; align-items: center; justify-content: center; margin-top: 8px; }
  .earth-hero { height: clamp(180px, calc(100svh - 605px), 440px); margin-top: 21px; }
  .earth-hero .earth-poster, .earth-hero .earth-live { width: min(1100px, 108%, calc(clamp(180px, 100svh - 605px, 440px) * 2.3)); }
  .journey-visual { top: calc(var(--header-height, 76px) + 21px); }
  .intelligence-stage, .allocation-stage { max-height: calc(100svh - var(--header-height, 76px) - 110px); }
}
@media (min-width: 701px) and (max-width: 1100px) {
  .signature-caption { position: relative; inset: auto; margin-top: -13px; padding-bottom: 21px; gap: 34px; }
  .signature-caption > div { max-width: 45%; }
}
@media (min-width: 701px) and (max-height: 900px) {
  :root { --type-display: clamp(3rem, min(6vw, 8.5svh), 5.25rem); }
  html[lang=en] .hero-copy h1 { font-size: clamp(40px, min(5.2vw, 8.5svh), 80px); }
}
@media (min-width: 701px) and (max-height: 600px) {
  .journey-visual { position: relative; top: auto; }
  .intelligence-stage, .allocation-stage { max-height: none; }
}

@media (max-width: 700px) {
  .nav { grid-template-columns: minmax(0, 1fr) auto; gap: 0 21px; padding-top: 5px; min-height: 94px; }
  .nav > .wordmark { grid-area: 1 / 1; align-self: center; margin: 0; }
  .nav .language-switch { position: static; grid-area: 1 / 2; align-self: center; font-size: 10px; }
  .language-switch a { min-width: 44px; min-height: 44px; }
  .nav-links { grid-area: 2 / 1 / 3 / -1; align-self: center; gap: 34px; }
  .nav-links a { display: flex; align-items: center; min-height: 44px; padding-block: 8px; }
  .hero-premium, .investment-restored { padding-top: 55px; }
  .intelligence-journey { scroll-margin-top: -71px; }
  .hero-bottom { column-gap: 13px; row-gap: 8px; }
  .hero-bottom > span { flex: 1 1 125px; max-width: none; }
  .hero-actions { flex: 0 0 auto; gap: 13px; }
  .signature-caption { gap: 21px; }
  .signature-caption .micro-label { font-size: 10px; letter-spacing: .09em; }
  .signature-caption strong { font-size: 12px; }
  html[lang=en] .earth-hero { height: 180px; }
  .footer { padding-block: 55px 34px; }
  .footer-top { grid-template-columns: minmax(0, 1fr) auto; gap: 21px; }
  .footer-top > .wordmark { font-size: 2.4rem; }
  .footer-top > .back-top { grid-area: 1 / 2; }
  .footer-top > p { grid-area: 2 / 1 / 3 / -1; text-align: left; }
  .footer-bottom { grid-template-columns: 1fr; margin-top: 34px; padding-top: 21px; gap: 13px; }
  .footer-access { grid-row: 1; padding-bottom: 8px; }
  .footer-bottom > p, .footer-bottom > p:last-child { padding: 0; text-align: center; }
  .footer-bottom > p:last-child { font-size: 11px; }
}
@media (max-width: 700px) and (max-height: 760px) {
  .hero-premium, .investment-restored { padding-top: 34px; }
  .hero-premium h1, .investment-restored h1 { margin-top: 21px; }
  .hero-premium .hero-description, .investment-restored .hero-description { margin-top: 21px; }
  .signature-art { width: min(100%, 360px); }
  .earth-hero { height: 180px; }
}
@media (max-width: 359px) {
  .hero-bottom { align-items: flex-start; }
  .hero-bottom > span { flex-basis: 100%; }
  .hero-actions { width: 100%; justify-content: space-between; }
}
html[data-large-type="true"] .intelligence-stage,
html[data-large-type="true"] .allocation-stage { max-height: none; }
@media print {
  .staff-entry, .language-switch { display: none; }
  .footer { padding-block: 34px; }
}
