/* The Earth belongs to the opening section. The rest of the page stays in flow. */
.home-overview.hero-earth {
  --earth-lateral-extra:80px;
  --earth-lateral-limit:80px;
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  align-items:center;
  gap:4rem;
  width:100%;
  min-height:0;
  margin:0;
  padding:3.75rem max(3rem,calc((100% - 1320px)/2)) 4rem;
  overflow:hidden;
  background:#061725;
  color:#fff;
}
.hero-earth::before { content:none; }
.hero-earth .home-intro { position:relative; z-index:2; display:block; width:100%; margin:0; padding:0; }
.hero-earth .home-intro>div:first-child { max-width:39rem; }
.hero-earth .home-intro .eyebrow { color:#bad6f4; }
.hero-earth .home-intro h1 { max-width:none; font-size:clamp(3.1rem,4.7vw,4.35rem); line-height:1.08; color:#fff; letter-spacing:-.022em; }
.hero-earth .home-intro h1 em { color:#b4d6f7; }
.hero-earth .home-intro-copy { max-width:29rem; margin-top:1.8rem; }
.hero-earth .home-intro-copy>p:first-child { color:#e1edf3; font-size:1.125rem; line-height:1.5; margin:0; }
.hero-earth .home-intro .actions { margin-top:1.5rem; gap:.7rem 1.6rem; }
.hero-earth .home-intro .text-link { color:#e3f0f6; }
.hero-earth .home-intro .text-link:hover { color:#fff; }
.hero-earth .home-intro a:focus-visible { outline-color:#fff; }
.hero-earth .world-section { position:relative; inset:auto; width:100%; max-width:560px; margin:0; padding:0; justify-self:end; }
.hero-earth .world-heading { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; }
.hero-earth .world-figure { position:relative; margin:0; border-radius:0; overflow:visible; background:transparent; container-type:inline-size; }
.home-overview.hero-earth .world-stage,
.home-overview.hero-earth .world-stage.globe-enhanced { position:relative; inset:auto; width:100%; height:auto; min-height:0; max-height:none; aspect-ratio:100 / 86; overflow:hidden; isolation:isolate; background:transparent; container-type:normal; }
html.js .home-overview.hero-earth .world-stage,
html.js .home-overview.hero-earth .world-stage.globe-enhanced { width:min(calc(100% + var(--earth-lateral-extra)),calc(100% + var(--earth-lateral-limit)),calc(100vw - 16px)); height:86cqw; left:50%; transform:translateX(-50%); aspect-ratio:auto; }
.hero-earth .world-stage>img,
.hero-earth .world-stage>.world-overlay { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:center; }
/* Only the photograph is masked. All six country controls remain below it.
   JS supplies these same physical measures even before texture decoding. */
html.js .home-overview.hero-earth .world-stage::before { content:""; position:absolute; z-index:0; left:var(--earth-center-x,50%); top:var(--earth-center-y,auto); bottom:var(--earth-poster-bottom,0); width:var(--earth-diameter,min(110cqw,calc(100% - 16px))); height:auto; aspect-ratio:1; transform:translate(-50%,var(--earth-poster-shift,32%)); background:url('earth-poster.webp') center / contain no-repeat; opacity:1; pointer-events:none; }
/* The final 24px belong to the visible stage, not the larger poster square.
   This last painted layer sits above both photographs at z0; routes stay z1. */
html.js .home-overview.hero-earth .world-stage::after { content:""; position:absolute; z-index:0; left:0; right:0; bottom:0; height:24px; background:linear-gradient(to bottom,#ffffff00,#fff); pointer-events:none; }
html.js .home-overview.hero-earth .world-stage[data-globe-phase=ready]::before { opacity:0; }
html.js .home-overview.hero-earth .world-stage[data-globe-phase=error]::before { transition:none; }
html.js .home-overview.hero-earth .world-stage>img,
html.js .home-overview.hero-earth .world-stage>.world-overlay { visibility:visible; opacity:0; pointer-events:none; }
.hero-earth .globe-heading,.hero-earth .globe-key { display:none; }

.hero-earth .world-legend { position:relative; inset:auto; display:block; min-height:0; margin:0; padding:1.1rem 0 0; background:transparent; border-top:1px solid #99b9de33; }
.hero-earth .country-controls { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.15rem .8rem; }
.hero-earth .country-controls button { min-height:44px; font-size:1rem; text-align:left; }
.hero-earth .world-selected { margin:1rem 0 0; border:0; padding:0; max-width:none; color:#daeaf2; font-size:.9375rem; }
.hero-earth .destination-dot { background:#e8cc90; box-shadow:none; }
.page-home .audience-section { padding-block:var(--space); }
.page-home .inquiry-process { padding-block:var(--space); }
.page-home .corpi-intro { padding-block:2.5rem; }
.no-js:not(.js) .home-overview.hero-earth .world-stage { min-height:0; max-height:none; aspect-ratio:2 / 1; }
@container(max-width:519.99px) {
  html.js .home-overview.hero-earth .world-stage::before { transform:translate(-50%,var(--earth-poster-shift,30%)); }
}
@media(max-width:1100px) {
  .home-overview.hero-earth { --earth-lateral-limit:48px; gap:3rem; padding:3rem 2rem 3.25rem; }
  .hero-earth .home-intro h1 { font-size:clamp(3.1rem,4.7vw,4rem); }
  .hero-earth .country-controls { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.15rem .8rem; }
  .hero-earth .country-controls button { text-align:left; }
  
}
@media(max-width:860px) {
  .home-overview.hero-earth { --earth-lateral-extra:40px; --earth-lateral-limit:40px; grid-template-columns:1fr; align-items:start; gap:2.25rem; padding:2.75rem 1.5rem 3rem; }
  .hero-earth .home-intro-copy { max-width:36rem; }
  .hero-earth .home-intro h1 { font-size:clamp(3.2rem,8vw,4.3rem); }
  .hero-earth .world-section { max-width:560px; justify-self:center; }
  .no-js:not(.js) .home-overview.hero-earth .world-stage { height:auto; aspect-ratio:2 / 1; }
}
@media(max-width:560px) {
  .home-overview.hero-earth { padding:2rem 1.25rem 2.5rem; gap:1.8rem; }
  .hero-earth .home-intro h1 { font-size:clamp(2.45rem,12vw,4.2rem); }
  .hero-earth .home-intro-copy { margin-top:1.3rem; }
  .hero-earth .home-intro-copy>p:first-child { font-size:1rem; }
  .hero-earth .world-legend { padding-top:1rem; }
  .hero-earth .country-controls { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.15rem .8rem; }
  .hero-earth .world-selected { margin-top:.6rem; padding-top:.7rem; border-top:1px solid #99b9de33; }
  .page-home .corpi-intro { padding-block:1.75rem; }
}
@media print {
  .home-overview.hero-earth { display:block; min-height:0; padding:1rem 0; color:var(--ink); background:#fff; }
  .hero-earth .home-intro h1 { color:var(--ink); font-size:3rem; }
  .hero-earth .home-intro h1 em,.hero-earth .home-intro .eyebrow,.hero-earth .home-intro .text-link { color:var(--blue); }
  .hero-earth .home-intro-copy>p:first-child,  .hero-earth .world-section { max-width:none; margin-top:1rem; }
  .home-overview.hero-earth .world-stage,
  .home-overview.hero-earth .world-stage.globe-enhanced,
  .no-js:not(.js) .home-overview.hero-earth .world-stage,
  html.js .home-overview.hero-earth .world-stage,
  html.js .home-overview.hero-earth .world-stage.globe-enhanced { width:100%; height:auto; left:auto; transform:none; min-height:0; max-height:none; aspect-ratio:2 / 1; background:#061725; }
  .hero-earth .world-legend { padding:1rem; color:var(--ink); background:#052f65; }
  html.js .home-overview.hero-earth .world-stage>img,
  html.js .home-overview.hero-earth .world-stage>.world-overlay { opacity:1; }
  .home-overview.hero-earth .corpasa-globe { display:none; }
  html.js .home-overview.hero-earth .world-stage::after { display:none; }
}
