/* ================= FOOTER (scoped; no section/row overrides) ================= */
.site-footer, .site-footer * { box-sizing:border-box; }
.site-footer h1, .site-footer h2, .site-footer h3,
.site-footer h4, .site-footer h5, .site-footer h6,
.site-footer p, .site-footer ul, .site-footer li { margin:0; padding:0; }
.site-footer img { display:block; border:0; line-height:0; }

/* ----- CORE LAYOUT ----- */
.site-footer { font-size:16px; line-height:1.6; }

/* OUTER: brand + nav cluster */
.site-footer .footer-top{
  display:flex; align-items:flex-start;
  flex-wrap:nowrap;                     /* desktop: single row */
  max-width:1272px; margin:0 auto; padding:0 0 0;
  gap:24px;                             /* space between logo & cluster only */
}

/* Brand column */
.site-footer .footer-top .brand{
  flex:0 0 40%; max-width:40%;
  display:inline-flex; align-items:center;
}

/* Nav cluster (contains 4 navs) */
.site-footer .footer-nav-group{
  flex:1 1 auto; 
  display:flex; align-items:flex-start;
  justify-content:space-between;        /* equalize space BETWEEN the 4 navs */
  gap:0;
  min-width:0;
}

/* Individual navs auto-size to content */
.site-footer .footer-nav{
  flex:0 0 auto;
  min-width:0;
  white-space:nowrap;
}

/* Logo sizes */
.site-footer .brand img{ width:206px; height:auto; }
@media (max-width:980px){
  .site-footer .brand img{ width:344px; height:auto; }
}

/* ----- TYPE & COLORS (wired to tokens) ----- */

/* Labels (About/Services/Locations/Connect) */
.site-footer .footer-nav h3{
  color: var(--color-heading);                     /* #ffffff token */
  font-size: var(--label-fs);
  line-height: var(--label-lh);
  letter-spacing: var(--label-trk);
  font-weight: var(--label-w);
  font-variation-settings: "wght" var(--label-w);
  margin:0 0 16px;
}

/* Lists */
.site-footer .footer-nav ul{ list-style:none; }
.site-footer .footer-nav li + li{ margin-top:16px; }

/* Footer nav links (About/Services/etc.) */
.site-footer .footer-nav a{
  color:#00FFE1;
  text-decoration:none;                              /* keep current behavior */
  font-size: var(--footer-link-fs);
  line-height: var(--footer-link-lh);
  letter-spacing: var(--footer-link-trk);
  font-weight: var(--footer-link-w);
  font-variation-settings: "wght" var(--footer-link-w);
}

/* ----- BOTTOM: legal above; copyright pinned bottom-left ----- */
.site-footer .footer-bottom{
  position:relative;
  max-width:1272px; margin:0 auto;
  padding-top:64px;
  padding-bottom:64px;
}

/* Legal block (bounded, consistent gaps) */
.site-footer .legal{
  display:flex; flex-wrap:wrap;
  justify-content:flex-start;
  max-width:550px;                      /* bound width for desktop look */
  gap:12px 20px;                        /* 20px horiz gap, 12px row gap */
  margin:0 0 12px 0;
}

/* Legal links use legal tokens + underline */
.site-footer .legal a{
  color: var(--color-body);                           /* #B4C0CC token */
  text-decoration: underline;
  font-size: var(--legal-fs);
  line-height: var(--legal-lh);
  letter-spacing: var(--legal-trk);
  font-weight: var(--legal-w);
  font-variation-settings: "wght" var(--legal-w);
  white-space:nowrap;
}

/* Copyright uses legal tokens */
.site-footer .copyright{
  position:absolute; left:0; bottom:0; margin:0;
  color: var(--color-body);
  font-size: var(--legal-fs);
  line-height: var(--legal-lh);
  letter-spacing: var(--legal-trk);
  font-weight: var(--legal-w);
  font-variation-settings: "wght" var(--legal-w);
}

/* ================= RESPONSIVE ================= */
@media (max-width:1100px) and (min-width:768px){
  .site-footer .footer-top{ flex-wrap:wrap; }
  .site-footer .footer-top .brand{
    flex:1 1 100%; max-width:100%; margin-bottom:16px;
  }
  .site-footer .footer-nav-group{
    flex:1 1 100%; max-width:100%;
    display:flex; flex-wrap:wrap; column-gap:32px; row-gap:28px;
    justify-content:flex-start;
  }
  .site-footer .footer-nav{
    flex:0 1 calc(50% - 16px);
    white-space:normal;
  }
}

@media (max-width:767px){
  .site-footer{ font-size:15px; }
  .site-footer .footer-top{ flex-wrap:wrap; gap:32px; margin-bottom:0; }
  .site-footer .footer-top .brand{ flex:1 1 100%; max-width:100%; margin-bottom:0; }
  .site-footer .footer-nav-group{
    flex:1 1 100%; max-width:100%;
    display:flex; flex-direction:column; gap:32px;
  }
  .site-footer .footer-nav{ flex:1 1 100%; white-space:normal; }
  .site-footer .footer-nav h3{ margin:0 0 12px; }     /* mobile label rhythm */
  .site-footer .footer-nav li + li{ margin-top:12px; }/* mobile link rhythm */
  .site-footer .footer-bottom{ padding-top:32px; padding-bottom:32px; }
  .site-footer .legal{ margin-bottom:12px; gap:12px 20px; max-width:100%; }
}