/* ============================================================
   Footer — Figma node 319:40895 ("footer-section")
   Absolutely positioned within the page's 1440px-wide stage,
   left:0 top:8443px (matches the shared stage coordinate space
   used by the hero section: STAGE_H = 8906 = 8443 + 463).
   All descendants are positioned absolutely, nested relative to
   their own immediate parent, using the exact local x/y pulled
   from Figma metadata. Flex is used only for leaf-level content
   centering (social icon circles), matching the project's
   existing precedent (see .cta-button / .gift-card-rotate in
   the shared styles.css).
   ============================================================ */

.site-footer,
.site-footer * {
  box-sizing: border-box;
}

.site-footer {
  position: absolute;
  left: 0;
  top: 8443px;
  width: 1440px;
  height: 463px;
  overflow: hidden;
  background: #0b1f3a;
  border-top: 1px solid rgba(51, 77, 115, 0.3);
  font-family: 'Inter', "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* ---------- Divider ---------- */
.footer-divider {
  position: absolute;
  left: 160px;
  top: 72px;
  width: 1120px;
  height: 1px;
  background: rgba(222, 191, 105, 0.3);
}

/* ---------- Main row (brand / nav columns / social) ---------- */
.footer-main {
  position: absolute;
  left: 160px;
  top: 105px;
  width: 1120px;
  height: 165px;
}

/* Brand */
.footer-brand {
  position: absolute;
  left: 0;
  top: 0;
  width: 420px;
  height: 93px;
}
.footer-brand-name {
  position: absolute;
  left: 0;
  top: 0;
  width: 201px;
  height: 37px;
  margin: 0;
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  font-size: 28px;
  line-height: normal;
  white-space: nowrap;
  color: #e4be5b; /* fallback for browsers without background-clip:text */
  background-image: linear-gradient(165.6925443653685deg, rgb(180, 136, 48) 5.7138%, rgb(228, 190, 91) 30.935%, rgb(255, 225, 135) 55.368%, rgb(228, 190, 91) 79.801%, rgb(159, 113, 35) 116.45%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.footer-brand-tagline {
  position: absolute;
  left: 0;
  top: 49px;
  width: 420px;
  height: 44px;
  margin: 0;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.6;
  color: #a1d9fa;
  opacity: 0.9;
}

/* Nav columns */
.footer-nav-columns {
  position: absolute;
  left: 484px;
  top: 0;
  width: 352px;
  height: 165px;
}
.footer-col {
  position: absolute;
  top: 0;
}
.footer-col-about    { left: 0px;   width: 55px;  height: 65px; }
.footer-col-programs { left: 103px; width: 80px;  height: 133px; }
.footer-col-legal    { left: 231px; width: 69px;  height: 165px; }
.footer-col-contact  { left: 348px; width: 52px;  height: 133px; }

.footer-col-label {
  position: absolute;
  left: 0;
  top: 0;
  margin: 0;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 11px;
  line-height: normal;
  text-transform: uppercase;
  color: #debf69;
  white-space: nowrap;
}
.footer-col a {
  position: absolute;
  left: 0;
  width: 100%;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 13px;
  line-height: 1.6;
  color: #a1d9fa;
  opacity: 0.9;
  text-decoration: none;
}
.footer-col a:hover {
  opacity: 1;
  text-decoration: underline;
}

/* col-about (line-height ~normal, single-line items) */
.footer-col-about a[data-node-id="319:40908"] { top: 23px; }
.footer-col-about a[data-node-id="319:40909"] { top: 49px; }

/* col-programs */
.footer-col-programs a[data-node-id="319:40914"] { top: 23px; }
.footer-col-programs a[data-node-id="319:40915"] { top: 65px; }
.footer-col-programs a[data-node-id="319:40916"] { top: 91px; }
.footer-col-programs a[data-node-id="319:40917"] { top: 117px; }

/* col-legal */
.footer-col-legal a[data-node-id="319:40920"] { top: 23px; }
.footer-col-legal a[data-node-id="319:40921"] { top: 65px; }
.footer-col-legal a[data-node-id="319:40922"] { top: 107px; }
.footer-col-legal a[data-node-id="319:40923"] { top: 149px; }

/* col-contact */
.footer-col-contact a[data-node-id="319:40926"] { top: 23px; }
.footer-col-contact a[data-node-id="319:40927"] { top: 65px; }
.footer-col-contact a[data-node-id="319:40928"] { top: 91px; }
.footer-col-contact a[data-node-id="319:40929"] { top: 117px; }

/* Social */
.footer-social {
  position: absolute;
  left: 900px;
  top: 0;
  width: 220px;
  height: 61px;
}
.footer-social-label {
  position: absolute;
  left: 173px;
  top: 0;
  margin: 0;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 11px;
  line-height: normal;
  text-transform: uppercase;
  color: #debf69;
  white-space: nowrap;
}
.footer-social-icons {
  position: absolute;
  left: 92px;
  top: 25px;
  width: 128px;
  height: 36px;
}
.footer-social-icon {
  position: absolute;
  top: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  background: rgba(222, 191, 105, 0.1);
  border: 1px solid rgba(222, 191, 105, 0.3);
  transition: background 0.2s ease, border-color 0.2s ease;
}
.footer-social-icon:hover {
  background: rgba(222, 191, 105, 0.2);
  border-color: rgba(222, 191, 105, 0.5);
}
.footer-social-icon img {
  width: 18px;
  height: 18px;
}
.footer-social-icon[data-node-id="319:40933"] { left: 0px; }
.footer-social-icon[data-node-id="319:40936"] { left: 46px; }
.footer-social-icon[data-node-id="319:40939"] { left: 92px; }

/* ---------- Fine print ---------- */
.footer-fine-print {
  position: absolute;
  left: 160px;
  top: 302px;
  width: 1120px;
  height: 105px;
}
.footer-disclaimer,
.footer-copyright {
  position: absolute;
  left: 0;
  width: 1120px;
  margin: 0;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 11px;
  line-height: 1.7;
}
.footer-disclaimer {
  top: 0;
  color: rgba(178, 191, 204, 0.76);
}
.footer-copyright {
  top: 67px;
  color: rgba(178, 191, 204, 0.72);
}
