/* ==========================================================================
   Notting Hill Vape — footer
   NHV-07 - Footer

   Depends on the design tokens in ../nhv.css. No colour, font or spacing
   literal below — add a token there first.
   ========================================================================== */

/* The default theme's stylesheet.css (line ~317) sets THREE things on `footer` that
   have to be undone here, not just left off:

     margin-top: 30px       put a white gap above the footer
     padding-top: 30px      stacked with .nhv-footer-cols' own padding
     border-top: 1px #ddd   a light rule above a near-black footer

   Omitting our own declaration is not enough — core's still applies. Each is
   explicitly zeroed. .nhv-footer (0,1,0) beats the bare `footer` (0,0,1), and this
   file loads after stylesheet.css anyway. */
.nhv-footer {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
  background: var(--nhv-footer-ground);
  color: var(--nhv-cream);
  font-family: var(--nhv-font-body);
}

/* --- Columns -------------------------------------------------------------- */

.nhv-footer-cols {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px var(--nhv-gutter);
  padding-top: 20px;
  padding-bottom: 10px;
}

/* Column headings deliberately skip the site-wide .nhv-block-head panel: four
   bordered boxes in a row would read as heavy, and the live footer uses plain
   headings here. This is the documented exception to that standard. */
.nhv-footer-title {
  margin: 0 0 12px;
  font-family: var(--nhv-font-display);
  font-size: 18px;
  font-weight: var(--nhv-fw-semi);
  color: var(--nhv-cream);
  text-transform: none;
}

.nhv-footer-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nhv-footer-list > li { margin-bottom: 6px; }

.nhv-footer-list a {
  font-size: var(--nhv-fs-lead);
  line-height: 1.5;
  color: var(--nhv-grey-link);
  text-decoration: none;
  transition: color var(--nhv-transition);
}
.nhv-footer-list a:hover,
.nhv-footer-list a:focus { color: var(--nhv-cream); text-decoration: none; }
.nhv-footer-list a:focus-visible { outline: 2px solid var(--nhv-copper); outline-offset: 2px; }

.nhv-footer-list i { width: 18px; margin-right: 4px; }

.nhv-footer-note {
  margin: 14px 0 0;
  font-size: var(--nhv-fs-base);
  line-height: 1.5;
  color: var(--nhv-cream);
}
.nhv-footer-note a { color: var(--nhv-copper-text); }
.nhv-footer-note a:hover { color: var(--nhv-cream-bright); }

/* --- Bottom bar ----------------------------------------------------------- */

.nhv-footer-bottom {
  border-top: 1px solid var(--nhv-rule);
}

.nhv-footer-bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nhv-gutter);
  padding-top: 15px;
  padding-bottom: 15px;
}

.nhv-footer-copy {
  margin: 0;
  font-size: var(--nhv-fs-small);
  color: var(--nhv-grey-link);
}

.nhv-footer-meta {
  display: flex;
  align-items: center;
  gap: 16px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nhv-footer-meta a {
  font-size: var(--nhv-fs-small);
  color: var(--nhv-grey-link);
  text-decoration: none;
  transition: color var(--nhv-transition);
}
.nhv-footer-meta a:hover { color: var(--nhv-cream); }
.nhv-footer-meta i { margin-right: 4px; font-size: var(--nhv-fs-nav); }

/* --- Responsive ----------------------------------------------------------- */

@media (max-width: 991px) {
  .nhv-footer-cols { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
  .nhv-footer-cols { grid-template-columns: 1fr; gap: 24px; }
  .nhv-footer-bottom-inner { flex-direction: column; text-align: center; }
}
