/* ============================================================
   FOOTER
   A continuation of Contact, not a separate block: same shared
   .room palette, one notch darker still, no divider/shadow
   between the two — Contact simply deepens into Footer.
============================================================ */
#site-footer{
  /* No background of its own — the shared .site-canvas backdrop
     (css/palette.css) shows straight through, so Footer reads as a
     continuation of Contact rather than its own separate block. */
  position:relative;
  z-index:1;
  font-family:var(--font-body);
  padding:8vh 6vw 4vh;
}

#site-footer .footer-inner{
  width:100%;
  max-width:1440px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:48px;
}

/* -- Left: brand -- */
.footer-brand{ max-width:340px; }
.footer-logo{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:20px;
}
.footer-logo img{ height:32px; width:auto; }
.footer-logo .footer-brand-text{
  display:flex;
  flex-direction:column;
  line-height:1.25;
}
.footer-logo .footer-brand-name{
  font-family:var(--font-display);
  font-weight:700;
  font-size:16px;
  letter-spacing:0.01em;
  color:var(--room-text);
}
.footer-logo .footer-brand-tagline{
  font-size:11px;
  letter-spacing:0.03em;
  color:var(--room-text-faint);
}
.footer-statement{
  font-size:14px;
  line-height:1.65;
  color:var(--room-text-muted);
}

/* -- Center: quick links -- */
.footer-col-title{
  font-size:11px;
  font-weight:600;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--room-text-faint);
  margin-bottom:20px;
}
.footer-links{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:13px;
}
.footer-links a{
  font-size:14.5px;
  color:var(--room-text-muted);
  transition:color 0.3s ease;
}
.footer-links a:hover{ color:var(--room-accent); }

/* -- Right: contact info -- */
.footer-contact{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:13px;
}
.footer-contact li{
  font-size:14.5px;
  color:var(--room-text-muted);
  line-height:1.5;
}
.footer-contact a{
  color:var(--room-text-muted);
  transition:color 0.3s ease;
}
.footer-contact a:hover{ color:var(--room-accent); }

/* -- Bottom row -- */
.footer-bottom{
  margin-top:64px;
  padding-top:24px;
  border-top:1px solid var(--room-border);
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  font-size:12.5px;
  color:var(--room-text-faint);
  letter-spacing:0.01em;
}

@media (max-width:900px){
  #site-footer .footer-inner{
    grid-template-columns:1fr 1fr;
  }
  .footer-brand{ grid-column:1 / -1; max-width:100%; margin-bottom:8px; }
}

@media (max-width:640px){
  /* A second density pass on top of the first — footer is the last
     thing on the page, so it can afford to run tight. */
  #site-footer{ padding:3.2vh 5vw 2vh; }
  #site-footer .footer-inner{
    grid-template-columns:1fr;
    gap:16px;
  }
  .footer-logo{ margin-bottom:9px; }
  .footer-logo img{ height:28px; }
  .footer-logo .footer-brand-name{ font-size:15px; }
  .footer-statement{ font-size:13px; }
  .footer-col-title{ margin-bottom:9px; }
  .footer-links{ gap:8px; }
  .footer-links a{ font-size:13.5px; }
  .footer-contact{ gap:8px; }
  .footer-contact li{ font-size:13.5px; }
  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
    margin-top:16px;
    padding-top:12px;
    font-size:11.5px;
  }
}
