/* =============================================================
   MS-PRO NEXT GENERATION — FOOTER STYLES
   v1.6.5: adaptive column grid (--footer-cols set by footer.php),
   full Gutenberg block-widget support (Page List, Categories,
   Latest Posts, Archives, Navigation, Search, Tag Cloud, Social
   Icons, Headings), classic widget parity, minimal-mode bottom bar.
   All colors/spacing come from theme design tokens.
   ============================================================= */

.mspng-footer {
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
  margin-top: auto;
  flex-shrink: 0;
}

/* ── Footer Widgets Area ── */
.mspng-footer-widgets {
  padding: var(--space-14) 0 var(--space-10);
}

/* Adaptive grid: footer.php renders only populated columns and sets
   --footer-cols (1–4). No empty cells, balanced at every count. */
.mspng-footer-grid {
  display: grid;
  grid-template-columns: repeat(var(--footer-cols, 4), minmax(0, 1fr));
  gap: var(--space-10);
}
/* With 3+ columns, give the About column extra breathing room */
.mspng-footer-grid[style*="--footer-cols: 4"],
.mspng-footer-grid[style*="--footer-cols: 3"] {
  grid-template-columns: 1.6fr repeat(calc(var(--footer-cols, 4) - 1), minmax(0, 1fr));
}

/* ── Widget Titles — classic AND block widgets ──
   Covers: classic .widget-title, Heading blocks (h2–h4,
   .wp-block-heading), and block-widget auto titles. */
.footer-widget .widget-title,
.footer-widget h2,
.footer-widget h3,
.footer-widget h4,
.footer-widget .wp-block-heading {
  font-family: var(--font-display);
  font-size: var(--text-base);
  font-weight: var(--fw-extrabold, 800);
  color: var(--color-heading);
  text-transform: uppercase;
  letter-spacing: var(--ls-wider, 0.05em);
  margin: 0 0 var(--space-5);
  padding-bottom: var(--space-3);
  border-bottom: 2px solid var(--color-primary);
  display: inline-block;
  line-height: 1.3;
}

/* Stacked block widgets inside one column: space them out */
.footer-widget .widget,
.footer-widget .widget_block {
  margin-bottom: var(--space-6);
}
.footer-widget .widget:last-child,
.footer-widget .widget_block:last-child { margin-bottom: 0; }

/* ── Link Lists — classic menus AND all list-type blocks ──
   Covers: generic ul, Page List, Categories, Archives, Latest
   Posts, Navigation block lists, classic nav-menu containers. */
.footer-widget ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-widget ul li {
  padding: var(--space-2) 0;
  border-bottom: 1px solid var(--color-border-light);
}
.footer-widget ul li:last-child { border-bottom: none; }

.footer-widget ul li a {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  text-decoration: none;
  transition: color var(--transition-fast);
  display: inline-flex;
  align-items: baseline;
  gap: var(--space-2);
}
.footer-widget ul li a::before {
  content: '›';
  color: var(--color-primary);
  font-weight: 700;
  flex-shrink: 0;
}
.footer-widget ul li a:hover { color: var(--color-primary); }

/* Nested sub-lists (child pages / sub-categories / submenus):
   indent, lighter, no double borders */
.footer-widget ul ul {
  margin-top: var(--space-2);
  padding-left: var(--space-4);
}
.footer-widget ul ul li {
  border-bottom: none;
  padding: var(--space-1) 0;
}
.footer-widget ul ul li a { font-size: var(--text-sm); opacity: 0.9; }
.footer-widget ul ul li a::before { content: '·'; }

/* Latest Posts block: muted dates, no chevron doubling on titles */
.footer-widget .wp-block-latest-posts__post-date,
.footer-widget .post-date {
  display: block;
  font-size: var(--text-xs, 12px);
  color: var(--color-text-muted);
  opacity: 0.75;
  padding-left: calc(var(--space-2) + 0.6em);
}

/* Category/archive post counts */
.footer-widget .wp-block-categories li,
.footer-widget .wp-block-archives li {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

/* ── Text / paragraph widgets ── */
.footer-widget p {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: var(--lh-relaxed, 1.7);
  margin: 0 0 var(--space-4);
}
.footer-widget p:last-child { margin-bottom: 0; }
.footer-widget img { max-width: 100%; height: auto; }

/* ── Search block / widget ── */
.footer-widget .wp-block-search__inside-wrapper,
.footer-widget form.search-form {
  display: flex;
  gap: var(--space-2);
}
.footer-widget .wp-block-search__input,
.footer-widget .search-form .search-field,
.footer-widget input[type="search"],
.footer-widget input[type="email"],
.footer-widget input[type="text"] {
  flex: 1;
  min-width: 0;
  padding: var(--space-2) var(--space-3);
  font-size: var(--text-sm);
  background: var(--color-surface-2);
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md, 8px);
  transition: border-color var(--transition-fast);
}
.footer-widget input:focus {
  outline: none;
  border-color: var(--color-primary);
}
.footer-widget .wp-block-search__button,
.footer-widget button[type="submit"],
.footer-widget input[type="submit"] {
  padding: var(--space-2) var(--space-4);
  font-size: var(--text-sm);
  font-weight: 700;
  background: var(--color-primary);
  color: #fff;
  border: 0;
  border-radius: var(--radius-md, 8px);
  cursor: pointer;
  transition: background var(--transition-fast);
}
.footer-widget .wp-block-search__button:hover,
.footer-widget button[type="submit"]:hover {
  background: var(--color-primary-hover);
}
.footer-widget .wp-block-search__label { display: none; }

/* ── Tag cloud (block + classic) ── */
.footer-widget .wp-block-tag-cloud a,
.footer-widget .tagcloud a {
  display: inline-block;
  padding: 3px 12px;
  margin: 0 var(--space-1) var(--space-2) 0;
  font-size: var(--text-xs, 12px) !important;
  color: var(--color-text-muted);
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full, 99px);
  text-decoration: none;
  transition: all var(--transition-fast);
}
.footer-widget .wp-block-tag-cloud a:hover,
.footer-widget .tagcloud a:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

/* ── Social Icons block: align with theme social styling ── */
.footer-widget .wp-block-social-links { gap: var(--space-2); }
.footer-widget .wp-block-social-links a::before { content: none; }

/* ── About column (first) ── */
.footer-widget--about .mspng-logo { margin-bottom: var(--space-4); display: inline-block; }
.footer-widget--about .mspng-logo img { max-height: 48px; width: auto; }
.footer-widget--about p {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: var(--lh-relaxed, 1.7);
  margin-bottom: var(--space-5);
}

/* Social icons (theme settings) */
.mspng-footer-social {
  display: flex;
  gap: var(--space-2);
  flex-wrap: wrap;
}
.mspng-footer-social__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  color: var(--color-text-muted);
  font-size: 14px;
  transition: all var(--transition-fast);
  text-decoration: none;
}
.mspng-footer-social__link:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
  transform: translateY(-2px);
}

/* ── Footer Bottom Bar (also the entire footer in minimal mode) ── */
.mspng-footer-bottom {
  border-top: 1px solid var(--color-border);
  padding: var(--space-5) 0;
}
/* Minimal mode: no widgets area above → no double border */
.mspng-footer > .mspng-footer-bottom:first-child { border-top: none; }

.mspng-footer-bottom__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  flex-wrap: wrap;
}

.mspng-footer-bottom__copy {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin: 0;
}
.mspng-footer-bottom__copy a { color: var(--color-primary); }

.mspng-footer-bottom__links {
  display: flex;
  align-items: center;
  gap: var(--space-5);
  list-style: none;
  padding: 0;
  margin: 0;
}
.mspng-footer-bottom__links a {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  text-decoration: none;
  transition: color var(--transition-fast);
}
.mspng-footer-bottom__links a:hover { color: var(--color-primary); }

/* ── Responsive ── */
@media (max-width: 1024px) {
  .mspng-footer-widgets { padding: var(--space-10) 0 var(--space-8); }
  .mspng-footer-grid,
  .mspng-footer-grid[style*="--footer-cols: 4"],
  .mspng-footer-grid[style*="--footer-cols: 3"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-8);
  }
  /* About spans full width on tablet when other columns exist */
  .mspng-footer-grid:not([style*="--footer-cols: 1"]) .footer-widget--about {
    grid-column: 1 / -1;
  }
}
@media (max-width: 640px) {
  .mspng-footer-widgets { padding: var(--space-8) 0 var(--space-6); }
  .mspng-footer-grid,
  .mspng-footer-grid[style*="--footer-cols: 4"],
  .mspng-footer-grid[style*="--footer-cols: 3"] {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }
  .mspng-footer-bottom__inner {
    flex-direction: column;
    text-align: center;
  }
  .mspng-footer-bottom__links { flex-wrap: wrap; justify-content: center; }
}
