/*
 * Global footer (redesign): dark band with brand block, link groups and newsletter, then a bottom
 * bar with the copyright (and legal links once they exist). Scoped "nx-" classes and local tokens.
 * Only verified content is shown: items without a destination or approved URL stay out (layout.js).
 */
.nx-footer {
  --nx-bg: #1E293B; --nx-bg-2: #172033; --nx-text: #CBD5E1; --nx-dim: #94A3B8; --nx-line: rgba(255, 255, 255, .1);
  --nx-accent: #DD5E1F;
  margin-top: 60px; background: var(--nx-bg); color: var(--nx-text); font-size: 14.5px; line-height: 1.6;
}
.nx-footer :focus-visible { outline: 2px solid #FDBA74; outline-offset: 3px; }
.nx-footer__main {
  display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)) minmax(0, 1.5fr);
  gap: 40px 32px; padding: 64px var(--gutter) 52px;
}

/* Brand */
.nx-logo--footer { color: #fff; }
.nx-logo--footer:hover { color: #fff; }
.nx-logo--footer .nx-logo__mark { height: 44px; }
.nx-logo--footer .nx-logo__word { font-size: 23px; }
.nx-footer__intro { max-width: 34ch; margin: 18px 0 0; color: var(--nx-text); }
.nx-footer .is-pending { text-decoration-color: rgba(255, 255, 255, .45); }
.nx-footer__socials { display: flex; gap: 10px; margin-top: 20px; }
.nx-social {
  display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%;
  background: rgba(255, 255, 255, .08); color: #fff;
}
.nx-social svg { width: 18px; height: 18px; }
.nx-social:hover { background: var(--nx-accent); color: #fff; }

/* Link groups */
.nx-footer__heading {
  position: relative; margin: 6px 0 22px; padding-bottom: 12px;
  font-family: var(--f-system); font-size: 13px; line-height: 1.3; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: #fff;
}
.nx-footer__heading::after { content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 2px; border-radius: 2px; background: var(--nx-accent); }
.nx-footer__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.nx-footer__links a { color: var(--nx-text); }
.nx-footer__links a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }

/* Newsletter */
.nx-newsletter { display: flex; max-width: 380px; padding: 4px; border: 1px solid var(--nx-line); border-radius: 999px; background: rgba(255, 255, 255, .06); }
.nx-newsletter:focus-within { border-color: rgba(253, 186, 116, .7); }
.nx-newsletter__input {
  flex: 1; min-width: 0; height: 42px; padding: 0 14px; border: 0; background: transparent; color: #fff; font-size: 14px;
}
.nx-newsletter__input::placeholder { color: var(--nx-dim); }
.nx-newsletter__input:focus { outline: none; }
.nx-newsletter__submit {
  flex: none; height: 42px; padding: 0 20px; border: 0; border-radius: 999px; background: #C2410C; color: #fff; /* 5.2:1 */
  font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.nx-newsletter__submit:hover { background: #9A3412; }
.nx-newsletter__msg { min-height: 1.6em; margin: 10px 0 0 6px; font-size: 13.5px; color: var(--nx-text); }
.nx-newsletter__msg.is-error { color: #FCA5A5; }

/* Bottom bar */
.nx-footer__bottom { background: var(--nx-bg-2); border-top: 1px solid var(--nx-line); }
.nx-footer__bottom-inner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px;
  padding: 18px var(--gutter); font-size: 13px; color: var(--nx-dim);
}
.nx-footer__copy { margin: 0; }
.nx-footer__legal { display: flex; flex-wrap: wrap; gap: 6px 20px; list-style: none; margin: 0; padding: 0; }
.nx-footer__legal a { color: var(--nx-dim); }
.nx-footer__legal a:hover { color: #fff; }

/* Keep the bottom bar clear of the fixed scroll-to-top (left) and WhatsApp (right) buttons:
   centred while the container is narrower than the viewport margins they need. */
@media (max-width: 1399px) {
  .nx-footer__bottom-inner { justify-content: center; text-align: center; }
}

/* ---------- Tablet / small desktop: brand + newsletter on top, link groups below */
@media (max-width: 1099px) {
  .nx-footer__main { grid-template-columns: repeat(6, minmax(0, 1fr)); padding-top: 52px; }
  .nx-footer__brand { grid-column: 1 / 4; }
  .nx-footer__news { grid-column: 4 / 7; grid-row: 1; }
  .nx-footer__col { grid-column: span 2; }
}

/* ---------- Mobile: stacked; link groups side by side where they fit */
@media (max-width: 767px) {
  .nx-footer { margin-top: 40px; }
  .nx-footer__main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; padding: 44px 16px 36px; }
  .nx-footer__brand, .nx-footer__news { grid-column: 1 / -1; }
  .nx-footer__news { grid-row: auto; }
  .nx-footer__col { grid-column: span 1; }
  .nx-footer__intro { max-width: none; }
  .nx-newsletter { max-width: none; }
  .nx-footer__bottom-inner { padding: 16px 16px 92px; } /* room above the floating buttons (bottom 16px, 60px tall) */
}
@media (max-width: 359px) {
  .nx-footer__main { grid-template-columns: minmax(0, 1fr); }
  .nx-newsletter__submit { padding: 0 14px; }
}
/* Newsletter consent + developer credit. */
.nx-newsletter__consent { display: flex; align-items: flex-start; gap: 8px; max-width: 380px; margin: 12px 0 0 6px; font-size: 12.5px; line-height: 1.45; color: var(--nx-text); cursor: pointer; }
.nx-newsletter__consent input { flex: none; width: 16px; height: 16px; margin: 1px 0 0; accent-color: var(--nx-accent); }
.nx-newsletter-form .nexo-captcha { margin: 12px 0 0 6px; }
.nx-newsletter__msg.is-success, .nx-newsletter__msg:not(.is-error):not(:empty) { color: #86efac; }
.nx-footer__credit { margin: 0; font-size: 13px; color: var(--nx-dim, #94a3b8); }
.nx-footer__credit a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.nx-footer__credit a:hover { color: var(--nx-accent); }
