/* ============================================================
   NAMYNOT footer. Loaded only by the namynot-footer plugin.

   Everything is namespaced .nnf and every rule is scoped under it, because
   this renders INSIDE the theme's <footer> element. The theme styles that
   element with BARE TAG selectors (footer, footer a, footer .widget) and
   gives it no stable base class, so a single .nnf class selector already
   out-specifies it. No !important is needed anywhere and none is used.

   Single dark world on purpose. The site is light; the footer is the one
   dark band, and it must look identical to every visitor.
   ============================================================ */

.nnf,
.nnf-fallback .nnf {
  --nnf-ground: #0B1220;
  --nnf-ground-2: #0F1930;
  --nnf-line: #1E2C4A;
  --nnf-text: #E8EEF9;
  --nnf-muted: #8FA0C0;
  --nnf-royal: #5AA0FF;

  background: var(--nnf-ground);
  color: var(--nnf-text);
  font-family: 'Poppins', 'Inter', -apple-system, 'Segoe UI', sans-serif;
  font-size: 14.5px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
}
.nnf *, .nnf *::before, .nnf *::after { box-sizing: border-box; }

.nnf a { color: var(--nnf-muted); text-decoration: none; transition: color .15s ease; }
.nnf a:hover { color: var(--nnf-text); }
.nnf a:focus-visible { outline: 2px solid var(--nnf-royal); outline-offset: 3px; border-radius: 4px; }
.nnf p { margin: 0 0 10px; color: var(--nnf-muted); }
.nnf p:last-child { margin-bottom: 0; }
.nnf strong { color: #C3D2EC; font-weight: 600; }

/* ---------- the trust band ---------- */
.nnf__trust { background: var(--nnf-ground-2); border-bottom: 1px solid var(--nnf-line); }
.nnf__trustin {
  max-width: 1120px; margin: 0 auto; padding: 24px 30px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; flex-wrap: wrap;
}
.nnf__bureaus { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.nnf__blabel {
  font-weight: 700; font-size: .68rem; letter-spacing: .13em;
  text-transform: uppercase; color: var(--nnf-muted);
}
/* Plain text, never styled to resemble a bureau logo: the footer states we are
   not affiliated with them, and a logo-like treatment would contradict it. */
.nnf__b {
  font-weight: 700; font-size: .92rem; color: #fff;
  display: flex; align-items: center; gap: 8px;
}
.nnf__b::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: var(--nnf-royal); flex: none;
}
.nnf .nnf__kit {
  display: inline-flex; align-items: center; gap: 8px;
  border: 1px solid var(--nnf-line); border-radius: 8px;
  padding: 9px 14px; font-weight: 600; font-size: 13px;
  color: var(--nnf-text);
}
.nnf .nnf__kit:hover { border-color: var(--nnf-royal); color: #fff; }

/* ---------- main ---------- */
.nnf__main { max-width: 1120px; margin: 0 auto; padding: 50px 30px 0; }
.nnf__cols {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px;
}
.nnf__mark {
  font-weight: 800; font-size: 1.5rem; letter-spacing: -.03em;
  color: #fff; margin: 0 0 12px; line-height: 1;
}
.nnf__mark span { color: var(--nnf-royal); }
.nnf__blurb { max-width: 32ch; }
.nnf__meta { display: grid; gap: 6px; font-size: 13.4px; color: var(--nnf-muted); }
.nnf .nnf__phone { color: #fff; font-weight: 700; font-size: 1.02rem; }
.nnf .nnf__phone:hover { color: var(--nnf-royal); }

.nnf__col { min-width: 0; }
.nnf h2.nnf__h {
  font-weight: 700; font-size: .7rem; letter-spacing: .13em;
  text-transform: uppercase; color: var(--nnf-royal);
  margin: 0 0 16px; padding: 0; line-height: 1.4;
}
.nnf__col ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.nnf__col li { margin: 0; padding: 0; list-style: none; }
.nnf__col li::before, .nnf__col li::marker { content: none; }

/* ---------- bottom row ---------- */
.nnf__bot {
  display: flex; justify-content: space-between; align-items: center;
  gap: 24px; flex-wrap: wrap;
  border-top: 1px solid var(--nnf-line);
  margin-top: 42px; padding: 22px 0;
}
.nnf__copy { color: var(--nnf-muted); font-size: 13px; }
.nnf__soc { display: flex; gap: 12px; align-items: center; }
.nnf .nnf__soc a {
  width: 32px; height: 32px; border: 1px solid var(--nnf-line);
  border-radius: 7px; display: grid; place-items: center; color: var(--nnf-muted);
}
.nnf .nnf__soc a:hover { border-color: var(--nnf-royal); color: var(--nnf-royal); }
.nnf__soc svg { width: 15px; height: 15px; fill: currentColor; display: block; }

/* ---------- the legal band ---------- */
.nnf__legal { background: #08101E; border-top: 1px solid var(--nnf-line); }
.nnf__legalin {
  max-width: 1120px; margin: 0 auto; padding: 26px 30px;
  line-height: 1.7; color: var(--nnf-muted);
}
/* 12.5px, not smaller. Legal text people cannot read is not disclosure, and
   the house floor for body text is 12px. */
.nnf .nnf__legalin p { font-size: 12.5px; margin: 0 0 10px; line-height: 1.7; }
.nnf__legalin p:last-child { margin-bottom: 0; }
.nnf__legallinks { display: flex; gap: 18px; flex-wrap: wrap; padding-top: 8px; }
.nnf__legallinks a { text-decoration: underline; text-underline-offset: 2px; }

/* ---------- responsive ---------- */
@media (max-width: 1000px) {
  .nnf__cols { grid-template-columns: 1fr 1fr 1fr; gap: 32px; }
  .nnf__brand { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  .nnf__trustin { padding: 20px; gap: 16px; }
  .nnf__bureaus { gap: 8px 18px; }
  .nnf__main { padding: 38px 20px 0; }
  .nnf__cols { grid-template-columns: 1fr 1fr; gap: 28px; }
  .nnf__legalin { padding: 20px; }
  .nnf__bot { justify-content: flex-start; gap: 18px; }
}
@media (max-width: 420px) {
  .nnf__cols { grid-template-columns: 1fr; gap: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .nnf a { transition: none; }
}

/* The fallback wrapper, used only if the theme's show_footer_top option is off.
   It has to supply the page-width bleed the theme's own footer would have. */
.nnf-fallback { display: block; width: 100%; }

/* ---------- clearance for the cookie bar ----------
   The Cookie Notice plugin pins its bar to the bottom of the viewport, and it
   was covering the last line of the legal band: Terms, Privacy, Accessibility
   and Do Not Sell. Those are the four links that must never be unreachable.

   The clearance is MEASURED, not guessed. footer.js reads the bar's real
   height at load, on resize and when the body class changes, then writes it to
   --nnf-cookie-clear. Three hardcoded breakpoint numbers were the first
   attempt; they are wrong the moment the bar wraps to a different number of
   lines or somebody edits the consent copy.

   The var() fallback is what a visitor with JavaScript off gets. It is
   deliberately generous: too much space costs a gap, too little costs a link
   nobody can click.

   Gated on `cookies-not-set`, the class the plugin puts on <body> only while
   the bar is showing, so a visitor who already accepted gets no dead gap. */
body.cookies-not-set .nnf .nnf__legalin {
  padding-bottom: calc(26px + var(--nnf-cookie-clear, 130px));
}
@media (max-width: 680px) {
  body.cookies-not-set .nnf .nnf__legalin {
    padding-bottom: calc(20px + var(--nnf-cookie-clear, 210px));
  }
}
