/* ============================================================
   Site footer (fragment/footer.php)
   Layout copied 1:1 from the reference: brand + socials column,
   three link columns, divider, bottom copyright bar — recolored
   into the site's own pine/brass/cream palette instead of black/white.
   Relies on the shared theme variables (--bg, --ink, --pine, etc.)
   declared in index.php's own <style> block, with sensible
   hardcoded fallbacks so this still renders correctly if loaded
   somewhere those vars aren't defined.
   ============================================================ */

/* ---------------- sticky-footer guarantee ----------------
   Pins the footer to the bottom of the viewport on short pages and
   lets it follow content normally on long ones. Applied globally
   (not scoped to .rt-footer) so ANY page that fetches this fragment
   gets the correct layout automatically, even if that page's own
   markup forgot to set it up — as long as the page has a <body> and
   wraps its main content in a <main> element (already the
   convention used across this site's pages). */
html, body { height: 100%; }
body { display: flex; flex-direction: column; min-height: 100vh; }
body > main { flex: 1 0 auto; }
body > .rt-footer,
body > footer,
#footerPlaceholder { flex-shrink: 0; }

.rt-footer {
  background: #0a1f16;
  color: rgba(255, 255, 255, .6);
  padding: 64px 0 0;
}

/* Logo-only brand mark (no text name) — same idea as .rt-logo in
   navbar.css, sized up slightly for the footer's darker, more spacious
   context. Uploaded logo (tp-admin.php "Website Content" -> Site &
   Footer) takes over this same badge slot from the trophy-icon
   fallback, same pattern as the header. */
.rt-footer-brand {
  display: inline-block;
  margin-bottom: 20px;
}
/* Fallback ONLY — shown until a logo is uploaded. Fixed 48px circle
   suits a single icon glyph, not a real logo — see .rt-footer-logo-img-wrap
   below for how the uploaded image itself is sized (not off this class). */
.rt-footer-logo {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--brass, #b98a2f);
  color: #0a1f16;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
}
/* Uploaded brand logo — sized by height only, width auto, so a normal
   wide/rectangular logo renders at its own aspect ratio instead of
   being force-cropped into the 48px circle above. */
.rt-footer-logo-img-wrap {
  height: 84px;
  display: flex;
  align-items: center;
}
.rt-footer-logo-img {
  height: 100%;
  width: auto;
  max-width: 300px;
  object-fit: contain;
}

.rt-footer-social {
  display: flex;
  gap: 10px;
}
.rt-footer-social a {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .25);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  text-decoration: none;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.rt-footer-social a:hover {
  background: var(--brass, #b98a2f);
  border-color: var(--brass, #b98a2f);
  color: #0a1f16;
}

.rt-footer h6 {
  color: var(--brass, #b98a2f);
  font-weight: 700;
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 22px;
}

.rt-footer ul { list-style: none; margin: 0; padding: 0; }
.rt-footer ul li { margin-bottom: 12px; }
.rt-footer ul a {
  color: rgba(255, 255, 255, .6);
  text-decoration: none;
  font-size: .9rem;
  transition: color .15s ease;
}
.rt-footer ul a:hover { color: #fff; }

.rt-footer-divider {
  border-top: 1px solid rgba(255, 255, 255, .1);
  margin-top: 48px;
}

.rt-footer-bottom {
  padding: 20px 0;
  font-size: .82rem;
  color: rgba(255, 255, 255, .45);
}
.rt-footer-bottom strong { color: rgba(255, 255, 255, .7); }

.rt-footer-legal {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 6px;
}
.rt-footer-legal a {
  color: rgba(255, 255, 255, .45);
  text-decoration: none;
  transition: color .15s ease;
}
.rt-footer-legal a:hover { color: #fff; }
.rt-footer-legal span { color: rgba(255, 255, 255, .3); }

@media (min-width: 992px) {
  .rt-footer-legal { margin-top: 0; }
}

@media (max-width: 767.98px) {
  .rt-footer { padding-top: 48px; text-align: center; }
  .rt-footer-social { justify-content: center; }
  .rt-footer .col-lg-3:not(:first-child) { margin-top: 32px; }
  .rt-footer-bottom { text-align: center; }
  .rt-footer-bottom .text-lg-end { text-align: center !important; margin-top: 6px; }
}
