/* ---------- Homepage specific ---------- */
  .home-hero{
    position:relative;
    background:var(--gen-frost);
    color:var(--gen-navy);
    overflow:hidden;
    padding:64px 0 0;
    border-bottom:1px solid var(--gen-navy-line);
  }
  .home-hero::before{
    content:"";
    position:absolute;
    inset:0;
    background: radial-gradient(ellipse at 78% 25%, rgba(42,157,143,0.10), transparent 55%);
    z-index:1;
  }
  /* Copy above the globe on a phone; side by side once there is room. The
     export had this two-up at every width, which squeezed the hero text
     into roughly half a phone screen. */
  .home-hero-grid{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:1fr;
    gap:32px;
    align-items:center;
    padding-bottom:48px;
  }
  @media (min-width:860px){
    .home-hero-grid{
      grid-template-columns:1.1fr 0.9fr;
      gap:48px;
      padding-bottom:64px;
    }
  }
  h1.home-head{
    font-family:var(--gen-font);
    font-weight:700;
    font-size:clamp(2.4rem,4.6vw,4rem);
    line-height:1.06;
    letter-spacing:-0.01em;
    color:var(--gen-navy);
  }
  .home-hero-sub{
    margin-top:22px;
    max-width:50ch;
    color:var(--gen-text-dim);
    font-size:16.5px;
    line-height:1.65;
  }
  .home-hero-actions{ margin-top:32px; }

  .globe-panel{ position:relative; aspect-ratio:1/1; z-index:2; }
  .globe-panel svg{ width:100%; height:100%; }
  .globe-line{ stroke: rgba(13,34,64,0.22); stroke-width:1; fill:none; }
  .globe-outline{ stroke: rgba(13,34,64,0.4); stroke-width:1.3; fill:none; }
  .globe-arc{ stroke: rgba(42,157,143,0.55); stroke-width:1.3; fill:none; }
  .globe-node{ fill:var(--gen-navy-2); }
  .globe-node.flag{ fill:var(--gen-gold); stroke:var(--gen-navy); stroke-width:0.5; }
  @media (prefers-reduced-motion: no-preference){
    .globe-pulse{ animation: globePulse 3.6s ease-in-out infinite; transform-origin:center; }
    .globe-pulse:nth-child(2){ animation-delay:.7s; }
    .globe-pulse:nth-child(3){ animation-delay:1.5s; }
  }
  @keyframes globePulse{
    0%,100%{ opacity:1; r:4; }
    50%{ opacity:.45; r:6; }
  }

  .about-copy p{
    color:var(--gen-text-dim);
    font-size:16px;
    line-height:1.75;
    margin-bottom:18px;
    max-width:78ch;
  }

  /* Partner grid — logo placeholder marks */
  .partner-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:16px;
    margin-top:24px;
  }
  .partner-cell{
    background:var(--gen-frost-2);
    border-radius:3px;
    padding:14px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .partner-mark{ width:100%; height:auto; max-width:120px; }
  .partner-mark .mark-frame{
    fill:none;
    stroke: var(--gen-navy-line);
  }
  .partner-mark .mark-initials{
    font-family:var(--gen-font);
    font-size:15px;
    font-weight:700;
    letter-spacing:0.02em;
    fill:var(--gen-teal);
  }
  @media (min-width:520px){ .partner-grid{ grid-template-columns:repeat(3,1fr); } }
  @media (min-width:860px){ .partner-grid{ grid-template-columns:repeat(5,1fr); } }

  /* Sequential CTA bands — light, alternating frost tones, no heavy fills */
  .cta-band{ padding:64px 0; }
  .cta-band.alt{ background:var(--gen-frost-2); }
  .cta-band .file-eyebrow{ font-family:var(--gen-font); font-size:14.5px; font-style:italic; color:var(--gen-teal-text); }
  .cta-band h3{
    font-family:var(--gen-font);
    font-size:clamp(1.4rem,2.4vw,1.8rem);
    font-weight:700;
    margin:12px 0 20px;
    max-width:38ch;
    color:var(--gen-navy);
  }
