/* Make the page a column so the footer can live at the bottom */
html, body { height: 100%; }
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* Any main content wrapper should have .page so it grows and pushes footer down */
.page { flex: 1 0 auto; }

/* Style whichever root your footer include outputs */
footer,
.pn-footer,
.site-footer,
.footer,
.footer-outer,
.site-footer__outer {
  margin-top: auto;                 /* sit at page bottom when content is short */
  width: 100%;
  display: block !important;        /* protect against accidental display:none */
  background: #0F2D2A;              /* matches --ink */
  color: #F7F2E7;                   /* matches --cream */
  visibility: visible !important;   /* protect against hidden */
  opacity: 1 !important;            /* protect against 0 */
}

/* Inner container width + padding */
footer .container,
.pn-footer .container,
.site-footer .container,
.footer .container,
.footer-outer .container,
.site-footer__outer .container {
  width: min(1140px, 100%);
  margin: 0 auto;
  padding: 28px clamp(16px, 6vw, 28px);
}

/* Typography */
footer a,
.pn-footer a,
.site-footer a,
.footer a {
  color: #E8F5F2;
  text-decoration: none;
}
footer a:hover,
.pn-footer a:hover,
.site-footer a:hover,
.footer a:hover {
  text-decoration: underline;
}

footer h4,
.pn-footer h4,
.site-footer h4,
.footer h4 {
  margin: 0 0 10px;
  font-weight: 800;
  font-size: 16px;
  color: #E8F5F2;
}

footer p,
.pn-footer p,
.site-footer p,
.footer p {
  margin: 0 0 8px;
  font-size: 14px;
  color: #E8F5F2;
  opacity: .9;
}

/* Simple columns if your footer uses a grid */
footer .grid,
.pn-footer .grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 980px) {
  footer .grid, .pn-footer .grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  footer .grid, .pn-footer .grid { grid-template-columns: 1fr; }
}

/* Subtle separator line if desired */
footer .topline,
.pn-footer .topline {
  border-top: 1px dashed #E7E0D3;
  margin-top: 12px;
  padding-top: 12px;
  opacity: .6;
}

/* Lists */
footer ul,
.pn-footer ul { list-style: none; padding: 0; margin: 0; }
footer ul li,
.pn-footer ul li { margin: 6px 0; }

/* Small print */
footer .small,
.pn-footer .small { font-size: 12px; opacity: .8; }
