/* ========= Footer (scoped) ========= */
.libreinfra-footer{
  --icon-size: 42px; --icon-gap-x: 56px; --icon-gap-y: 28px; --icon-label-gap: 10px; --icons-maxw: 1400px;
  background:#000; color:#fff; padding:48px 6% 28px; font-family:inherit;
}

.libreinfra-footer h3{ margin:0 0 14px; font-size:20px; color:#fff; }
.libreinfra-footer a{ color:#fff; text-decoration:none; }
.libreinfra-footer a:hover, .libreinfra-footer a:focus{ color:var(--brand-500); text-decoration:underline; }

/* Top area */
.libreinfra-footer .footer-top{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:28px; }
@media (max-width:1000px){ .libreinfra-footer .footer-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:700px){ .libreinfra-footer .footer-top{ grid-template-columns:1fr; } }

.libreinfra-footer .list a{ display:block; margin:6px 0; }

/* Newsletter */
.libreinfra-footer .newsletter form{ margin:0; }
.libreinfra-footer .newsletter input[type="email"]{
  width:100%; max-width:520px; padding:10px 12px;
  border:1px solid #444; border-radius:6px; background:#0b0b0b; color:#fff;
}
.libreinfra-footer .newsletter p{ margin:10px 0 0 0; font-size:14px; color:#ddd; }
.libreinfra-footer .newsletter button{
  margin-top:10px; background:var(--brand-600); border:1px solid var(--brand-600);
  color:#fff; border-radius:8px; padding:10px 18px; cursor:pointer; font-size:14px; font-weight:700;
  transition: background .2s ease, border-color .2s ease, box-shadow .2s ease; box-shadow:0 2px 6px rgba(21,128,61,.25);
}
.libreinfra-footer .newsletter button:hover{ background:var(--brand-700); border-color:var(--brand-700); box-shadow:0 6px 18px rgba(21,128,61,.45); }

/* Icons row */
.libreinfra-footer .icons-row{ margin-top:36px; }
.libreinfra-footer .icon-deck{
  margin:0 auto; max-width:var(--icons-maxw);
  display:grid; grid-template-columns:repeat(auto-fit, minmax(150px,1fr));
  column-gap:var(--icon-gap-x); row-gap:var(--icon-gap-y);
  justify-items:center; align-items:start;
}

/* Neutralize page .tile conflicts inside footer */
.libreinfra-footer .tile{
  border:none; background:none; box-shadow:none; padding:0; text-align:center; text-decoration:none;
  display:flex; flex-direction:column; align-items:center; gap:var(--icon-label-gap); min-width:150px; line-height:1.25; transform:none;
}
.libreinfra-footer .tile img{
  width:var(--icon-size); height:var(--icon-size); display:block;
  /* LibreInfra green tint on black footer */
  filter: invert(39%) sepia(82%) saturate(435%) hue-rotate(86deg) brightness(95%) contrast(95%);
}
.libreinfra-footer .tile .spacer{ width:var(--icon-size); height:var(--icon-size); display:block; }
.libreinfra-footer .tile span{ color:#fff; }

/* Bottom row */
.libreinfra-footer .footer-bottom{
  text-align:center; margin-top:22px; padding-top:14px;
  border-top:1px solid #222; color:#ccc; font-size:14px;
}
.libreinfra-footer .footer-bottom a{ color:#fff; }
.libreinfra-footer .footer-bottom a:hover{ color:var(--brand-500); }

/* a11y helpers */
.libreinfra-footer .sr-only{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.libreinfra-footer a:focus-visible,
.libreinfra-footer button:focus-visible,
.libreinfra-footer input:focus-visible{ outline:2px solid var(--brand-600); outline-offset:2px; border-radius:4px; }

