/* ==========================================================================================================
   Footer, design v2 (spec §5.2, P5). Kit source: design/redesign/kit/css/gp-footer.css, installed as
   static/css/gp-footer.css (loaded by base.html after gp-header.css). It REPLACES the footer block of base.css
   (removed by kit patch 05).
   1. the dark CTA panel that opens the footer (pages/_demo_cta.html: section.gp-tray.gp-cta-panel.tone-deep,
      the palette's one dark surface per page and the gold sun watermark; no lock-up since polish B, QA P3-7)
   2. the stone footer tray with four columns (partials/footer.html)
   ========================================================================================================== */

/* ---- 1. dark CTA panel ---- */
.gp-cta-panel { overflow: clip; isolation: isolate; }
.gp-cta-panel .cta-band {
  position: relative; display: grid; gap: 32px; align-items: start; justify-content: stretch;
  padding: 0; border-radius: 0; background: none; color: var(--text); overflow: visible;
}
.gp-cta-panel .cta-band::after { content: none; }
.gp-cta-panel .cta-band__title {
  margin: 0; max-width: 680px; color: var(--heading);
  font-size: var(--gp-fs-cta-h2); line-height: var(--gp-lh-cta-h2); letter-spacing: var(--gp-ls-cta-h2);
  font-weight: var(--gp-fw-cta-h2);
}
.gp-cta-panel .cta-band__text { margin-top: 16px; max-width: 560px; font-size: 18px; line-height: 28px; color: var(--muted); }
.gp-cta-panel .cta-band__text p { margin: 0; }
.gp-cta-panel .cta-band__actions { display: flex; flex-direction: column; gap: 12px; }
.gp-cta-panel__sun {
  position: absolute; z-index: -1; width: 220px; height: 220px; right: -64px; bottom: -110px; max-width: none;
  pointer-events: none; user-select: none;
}
.section.gp-cta-panel { padding-bottom: 168px; }
@media (min-width: 480px) { .gp-cta-panel .cta-band__actions { flex-direction: row; flex-wrap: wrap; } }
@media (min-width: 768px) {
  .section.gp-cta-panel { padding-block: var(--gp-space-9); }
  .gp-cta-panel__sun { width: 360px; height: 360px; right: -180px; bottom: auto; top: 50%; translate: 0 -50%; }
  .gp-cta-panel .cta-band { padding-right: 200px; }
}
@media (min-width: 992px) {
  .gp-cta-panel .container { padding-inline: calc(var(--gp-tray-pad-x) + 40px); }
}

/* ---- 2. footer tray ---- */
.gp-footer { margin-top: var(--gp-tray-gap); padding: 56px 0 24px; border-radius: var(--gp-radius-tray) var(--gp-radius-tray) 0 0;
  font-size: 15px; line-height: 22px; }
.gp-footer .site-footer__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px 24px; }
.gp-footer .site-footer__brand, .gp-footer__contact { grid-column: 1 / -1; }
.gp-footer__logo { display: inline-block; border-radius: 8px; }
.gp-footer__logo img { width: 205px; height: 44px; }
.gp-footer .site-footer__intro { margin: 20px 0 0; max-width: 340px; color: var(--gp-muted); }
.gp-footer .site-footer__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.gp-footer .site-footer__heading { margin: 0 0 12px; color: var(--gp-heading); font-size: 16px; line-height: 22px;
  font-weight: 600; letter-spacing: 0; text-transform: none; }
.gp-footer .site-footer__col ul { list-style: none; margin: 0; padding: 0; }
.gp-footer .site-footer__col li { margin: 0; padding: 5px 0; }
.gp-footer .site-footer__col a { color: var(--gp-heading); text-decoration: none; }
.gp-footer .site-footer__col a:hover { color: var(--gp-link-hover); text-decoration: underline; }
.gp-footer .site-footer__meta { display: block; color: var(--gp-muted); font-size: 14px; }
.gp-footer .site-footer__legal {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px;
  margin-top: 48px; padding-top: 20px; border-top: var(--gp-border); font-size: 14px; line-height: 20px; color: var(--gp-muted);
}
.gp-footer .site-footer__legal-links { display: flex; flex-wrap: wrap; gap: 8px 24px; list-style: none; margin: 0; padding: 0; }
.gp-footer .site-footer__legal a { color: var(--gp-muted); text-decoration: none; }
.gp-footer .site-footer__legal a:hover { color: var(--gp-heading); text-decoration: underline; }
@media (min-width: 768px) {
  .gp-footer { padding-top: 72px; }
  .gp-footer .site-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gp-footer__contact { grid-column: auto; }
}
@media (min-width: 992px) {
  .gp-footer .site-footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1.1fr; gap: 48px; }
  .gp-footer .site-footer__brand { grid-column: auto; }
}
