/* ============================================================
   GLOBAL FOOTER, air.inc-style "ground" footer (migration).
   footer.js injects #gfooter; this skins it for LIGHT pages,
   inheriting tokens (--ink / --soft / --accent / --green / --line).
   ============================================================ */
#gfooter.ground{position:relative;z-index:20;width:100%;margin-top:clamp(28px,6vh,64px);border-top:1px solid rgba(20,32,52,.05);background:radial-gradient(42% 62% at 15% 16%,rgba(255,255,255,.88),transparent 56%),radial-gradient(40% 52% at 85% 6%,rgba(255,255,255,.72),transparent 52%),radial-gradient(50% 60% at 64% 98%,rgba(255,255,255,.62),transparent 56%),linear-gradient(180deg,#cfe3f6 0%,#e1edfb 46%,#eef5fc 100%);}
#gfooter .ground-contact{max-width:1180px;margin:0 auto;padding:var(--sp-section,clamp(64px,10vh,118px)) var(--edge,max(22px,8%)) clamp(48px,8vh,80px);}

#gfooter .ground-kick{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint,#8b95a3);}
#gfooter .ground-ttl{font-family:var(--font-display);font-weight:500;letter-spacing:-.02em;font-size:var(--fs-h2,clamp(30px,3.8vw,52px));line-height:1;color:var(--ink,#22271e);margin-top:12px;text-transform:lowercase;}
#gfooter .ground-ttl em{font-style:normal;font-weight:inherit;color:inherit;}
#gfooter .ground-mail{display:inline-flex;align-items:center;gap:14px;text-decoration:none;margin-top:clamp(20px,3vh,30px);
  font-family:var(--font-mono);font-size:13px;letter-spacing:.04em;text-transform:lowercase;
  color:var(--on-accent,#fff);background:var(--accent,#16202b);border:1px solid var(--accent,#16202b);border-radius:8px;padding:14px 22px;
  transition:background-color var(--motion-standard,260ms) var(--ease-standard,ease),transform var(--motion-fast,160ms) var(--ease-standard,ease);}
#gfooter .ground-mail:hover{background:var(--accent-deep,#0f1822);transform:translateY(-2px);}
#gfooter .ground-mail .arw{transition:transform var(--motion-standard,260ms) var(--ease-standard,ease);}
#gfooter .ground-mail:hover .arw{transform:translateX(5px);}
#gfooter .ground-sub{font-family:var(--font-text);font-size:15px;line-height:1.6;color:var(--soft,#4a4a40);margin-top:20px;max-width:430px;}
#gfooter .ground-sub b{color:var(--ink,#22271e);font-weight:600;}

#gfooter .gf-top{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(36px,6vw,84px);align-items:start;}
#gfooter .gf-cols{display:flex;gap:clamp(26px,4vw,60px);flex-wrap:wrap;}
#gfooter .gf-col{display:flex;flex-direction:column;gap:11px;}
#gfooter .gf-h{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint,#8b95a3);margin-bottom:3px;}
#gfooter .gf-col a{font-family:var(--font-text);font-size:15px;color:var(--soft,#4a4a40);text-decoration:none;width:fit-content;transition:color var(--motion-fast,160ms) var(--ease-standard,ease),transform var(--motion-standard,260ms) var(--ease-expressive,cubic-bezier(.22,1,.36,1));}
#gfooter .gf-col a:hover{color:var(--ink,#22271e);transform:translateX(3px);}
#gfooter .gf-avail{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-text);font-size:15px;color:var(--ink,#22271e);}
#gfooter .gf-avail i{width:8px;height:8px;border-radius:50%;background:#3a9d6e;box-shadow:0 0 0 0 rgba(58,157,110,.6);animation:gfPulse 2.2s infinite;}
@keyframes gfPulse{0%{box-shadow:0 0 0 0 rgba(58,157,110,.5)}70%{box-shadow:0 0 0 7px rgba(58,157,110,0)}100%{box-shadow:0 0 0 0 rgba(58,157,110,0)}}
#gfooter .gf-line{font-family:var(--font-text);font-size:15px;color:var(--soft,#4a4a40);}
#gfooter .gf-line b{color:var(--ink,#22271e);font-weight:500;font-variant-numeric:tabular-nums;}

#gfooter .gf-mark{display:inline-flex;align-items:flex-end;gap:clamp(7px,1vw,12px);font-family:var(--font-display);font-weight:600;font-size:clamp(28px,3.4vw,48px);letter-spacing:-.03em;color:var(--ink,#22271e);text-decoration:none;line-height:.85;text-transform:lowercase;}
#gfooter .gf-mark svg{width:.66em;height:.6em;flex:0 0 auto;margin-bottom:.04em;color:var(--sun,#ffc93c);}
#gfooter .gf-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:clamp(40px,8vh,80px);padding-top:22px;border-top:1px solid var(--line,rgba(20,32,52,.12));}
#gfooter .gf-meta{display:flex;flex-direction:column;gap:3px;text-align:right;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;text-transform:lowercase;color:var(--faint,#8b95a3);}

@media(prefers-reduced-motion:reduce){#gfooter .gf-avail i{animation:none;}}
@media(max-width:560px){#gfooter .gf-bar{align-items:flex-start;}#gfooter .gf-meta{text-align:left;}}
@media(max-width:760px){#gfooter .gf-top{grid-template-columns:1fr;gap:38px;}#gfooter .gf-bar{flex-direction:column;gap:6px;}}

/* ============================================================
   SKY FOOTER (v2), match the homepage's .ground footer:
   day-sky gradient + drifting clouds + white text, with a
   staggered fade-up reveal on scroll (footer.js adds .in).
   Overrides the earlier pale-cloud rules above (loads later).
   ============================================================ */
#gfooter.ground{position:relative;overflow:hidden;border-top:none;text-align:left;
  /* long, seamless white->sky fade: pure page-white at the very top ramps
     into deep sky over ~270px, so there is no visible cut. The blue only
     arrives where the content sits, keeping the white text legible. */
  background:linear-gradient(180deg,#ffffff 0px,#f1f7fd 70px,#cfe3f6 140px,#93bfe6 205px,#5793d0 268px,#3f7dc4 62%,#3a78c0 100%);}
#gfooter .ground-contact{position:relative;z-index:3;padding-top:clamp(170px,24vh,280px);}

/* drifting clouds */
#gfooter .gf-sky{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;}
/* same build as the homepage sky (.i-cloud): solid white multi-blob
   shapes drifting across, just shifted down into the footer's blue band */
#gfooter .gf-cloud{position:absolute;background:#fff;border-radius:50%;filter:blur(22px);opacity:.3;will-change:transform;}
#gfooter .gf-cloud::before,#gfooter .gf-cloud::after{content:'';position:absolute;background:#fff;border-radius:50%;}
#gfooter .gf-cloud.c1{width:210px;height:62px;top:48%;left:0;opacity:.32;animation:gfDrift1 64s linear infinite;animation-delay:-16s;}
#gfooter .gf-cloud.c1::before{width:120px;height:120px;left:30px;top:-46px;}
#gfooter .gf-cloud.c1::after{width:80px;height:80px;left:120px;top:-22px;}
#gfooter .gf-cloud.c2{width:330px;height:92px;top:66%;left:0;opacity:.26;animation:gfDrift2 92s linear infinite;animation-delay:-46s;}
#gfooter .gf-cloud.c2::before{width:160px;height:150px;left:60px;top:-66px;}
#gfooter .gf-cloud.c2::after{width:110px;height:110px;left:190px;top:-34px;}
#gfooter .gf-cloud.c3{width:150px;height:46px;top:42%;left:0;opacity:.22;animation:gfDrift3 74s linear infinite;animation-delay:-55s;}
#gfooter .gf-cloud.c3::before{width:84px;height:84px;left:24px;top:-32px;}
#gfooter .gf-cloud.c4{width:260px;height:74px;top:78%;left:0;opacity:.2;animation:gfDrift4 104s linear infinite;animation-delay:-20s;}
#gfooter .gf-cloud.c4::before{width:140px;height:130px;left:50px;top:-54px;}
#gfooter .gf-cloud.c4::after{width:96px;height:96px;left:165px;top:-28px;}
@keyframes gfDrift1{from{transform:translateX(-25vw)}to{transform:translateX(125vw)}}
@keyframes gfDrift2{from{transform:translateX(-45vw)}to{transform:translateX(130vw)}}
@keyframes gfDrift3{from{transform:translateX(-20vw)}to{transform:translateX(122vw)}}
@keyframes gfDrift4{from{transform:translateX(-40vw)}to{transform:translateX(128vw)}}

/* white text on the sky */
#gfooter.ground .ground-kick{color:rgba(255,255,255,.74);}
#gfooter.ground .ground-ttl{color:#fff;}
#gfooter.ground .ground-ttl em{color:inherit;}
#gfooter.ground .ground-sub{color:#e9f1fb;}
#gfooter.ground .ground-sub b{color:#fff;}
#gfooter.ground .ground-mail{background:#fff;border-color:#fff;color:#16202b;}
#gfooter.ground .ground-mail:hover{background:#eaf1fb;}
#gfooter.ground .gf-h{color:rgba(255,255,255,.66);}
#gfooter.ground .gf-col a{color:#e3edf9;}
#gfooter.ground .gf-col a:hover{color:#fff;}
#gfooter.ground .gf-avail{color:#fff;}
#gfooter.ground .gf-avail i{background:#7ef0b0;box-shadow:0 0 0 0 rgba(126,240,176,.6);}
@keyframes gfPulse2{0%{box-shadow:0 0 0 0 rgba(126,240,176,.55)}70%{box-shadow:0 0 0 7px rgba(126,240,176,0)}100%{box-shadow:0 0 0 0 rgba(126,240,176,0)}}
#gfooter.ground .gf-avail i{animation:gfPulse2 2.2s infinite;}
#gfooter.ground .gf-line{color:#dce8f7;}
#gfooter.ground .gf-line b{color:#fff;}
#gfooter.ground .gf-mark{color:#fff;}
#gfooter.ground .gf-mark svg{color:var(--sun,#ffc93c);}
#gfooter.ground .gf-bar{border-top:1px solid rgba(255,255,255,.22);}
#gfooter.ground .gf-meta{color:rgba(255,255,255,.66);}

/* staggered fade-up reveal on scroll */
#gfooter .gf-cta,#gfooter .gf-cols,#gfooter .gf-bar{opacity:0;transform:translateY(28px);transition:opacity .85s var(--ease,cubic-bezier(.22,1,.36,1)),transform .85s var(--ease,cubic-bezier(.22,1,.36,1));}
#gfooter.in .gf-cta{transition-delay:.04s;}
#gfooter.in .gf-cols{transition-delay:.14s;}
#gfooter.in .gf-bar{transition-delay:.26s;}
#gfooter.in .gf-cta,#gfooter.in .gf-cols,#gfooter.in .gf-bar{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  #gfooter .gf-cta,#gfooter .gf-cols,#gfooter .gf-bar{opacity:1;transform:none;transition:none;}
  #gfooter .gf-cloud{animation:none;}
}
