/*
Theme Name: No Flash Needed
Theme URI: https://www.noflashneeded.com
Author: C. Collett
Description: Custom WordPress theme for No Flash Needed. Concert photography, reviews, tour news, and festival coverage.
Version: 8.03
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: no-flash-needed
*/

/* ===========================
   BASE
=========================== */
:root {
  --nfn-ink: #08080a;
  --nfn-charcoal: #141319;
  --nfn-charcoal-2: #1f1d26;
  --nfn-paper: #f6f1e8;
  --nfn-paper-2: #fbf8f2;
  --nfn-card: #ffffff;
  --nfn-muted: #69645f;
  --nfn-soft: #d9d0c0;
  --nfn-line: rgba(8, 8, 10, 0.12);
  --nfn-line-dark: rgba(255, 255, 255, 0.12);
  --nfn-blue: #285cff;
  --nfn-blue-dark: #143fc7;
  --nfn-gold: #f0b748;
  --nfn-radius: 18px;
  --nfn-shadow: 0 18px 50px rgba(8, 8, 10, 0.12);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background: var(--nfn-paper);
  color: var(--nfn-ink);
  font-size: 15px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background:
    radial-gradient(circle at 16% 0%, rgba(40, 92, 255, 0.08), transparent 28%),
    radial-gradient(circle at 84% 18%, rgba(240, 183, 72, 0.14), transparent 24%),
    linear-gradient(180deg, #fffaf2 0, var(--nfn-paper) 380px, #f2ecdf 100%);
}
a { color: inherit; text-decoration: none; }
a:hover { color: var(--nfn-blue); }
img { display: block; max-width: 100%; height: auto; }
ul, ol { list-style-position: inside; }
.container { width: min(100% - 40px, 1240px); margin: 0 auto; }
::selection { background: var(--nfn-blue); color: #fff; }

/* ===========================
   UTILITY TYPE
=========================== */
.nfn-section-label {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--nfn-line);
  padding-bottom: 14px;
}
.nfn-section-label > span {
  font-family: 'Barlow Condensed', Impact, sans-serif;
  font-size: clamp(26px, 4vw, 40px);
  line-height: .9;
  font-weight: 900;
  letter-spacing: .4px;
  text-transform: uppercase;
  color: var(--nfn-ink);
}
.nfn-section-label > span::before {
  content: '';
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--nfn-blue);
  margin-right: 10px;
  transform: translateY(-4px);
}
.view-all,
.nfn-section-label .view-all {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-weight: 800;
  color: var(--nfn-ink);
  border: 1px solid var(--nfn-line);
  border-radius: 999px;
  padding: 9px 12px;
  background: rgba(255,255,255,.46);
}
.view-all:hover,
.nfn-section-label .view-all:hover {
  color: #fff;
  border-color: var(--nfn-blue);
  background: var(--nfn-blue);
}

/* ===========================
   TICKER
=========================== */
.nfn-ticker {
  background: var(--nfn-ink);
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,.08);
  font-size: 12px;
}
.nfn-ticker-inner {
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.nfn-ticker-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--nfn-gold);
  white-space: nowrap;
}
.nfn-ticker-dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--nfn-blue);
  box-shadow: 0 0 0 5px rgba(40, 92, 255, .18);
}
.nfn-ticker-content {
  min-width: 0;
  flex: 1;
  color: rgba(255,255,255,.76);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nfn-ticker-content:hover { color: #fff; }
.nfn-ticker-read-more {
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  font-weight: 800;
  white-space: nowrap;
}

/* ===========================
   NAV
=========================== */
.nfn-nav {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(8, 8, 10, .94);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.nfn-nav > .container { width: min(100% - 32px, 1440px); }
.nfn-nav-inner {
  min-height: 72px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 28px;
}
.nfn-logo {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  line-height: 1;
  color: #fff;
}
.nfn-logo:hover { color: #fff; }
.nfn-logo-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  height: 32px;
  padding: 0 9px;
  border: 2px solid currentColor;
  font-family: 'Barlow Condensed', Impact, sans-serif;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: 1px;
  line-height: 1;
}
.nfn-logo-sub {
  font-family: 'Inter', sans-serif;
  color: rgba(255,255,255,.58);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 2.2px;
  text-transform: uppercase;
}
.nfn-nav-links { justify-self: center; min-width: 0; }
.nfn-nav-links ul,
.nfn-nav-ul {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: clamp(12px, 2vw, 28px) !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.nfn-nav-links li { display: block !important; list-style: none !important; }
.nfn-nav-links li ul,
.nfn-nav-ul li ul { display: none !important; }
.nfn-nav-links a,
.nfn-nav-ul a {
  display: block;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(255,255,255,.72);
  white-space: nowrap;
  padding: 26px 0 25px;
  border-bottom: 2px solid transparent;
}
.nfn-nav-links a:hover,
.nfn-nav-links .current-menu-item > a,
.nfn-nav-ul .current-menu-item > a {
  color: #fff;
  border-bottom-color: var(--nfn-blue);
}
.nfn-nav-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
}
.nfn-nav-social { display: flex; align-items: center; gap: 10px; }
.nfn-nav-social a,
#nfnSearchBtn {
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  color: rgba(255,255,255,.78);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.04);
}
.nfn-nav-social a:hover,
#nfnSearchBtn:hover {
  color: #fff;
  background: var(--nfn-blue);
  border-color: var(--nfn-blue);
}
.nfn-nav-social svg,
#nfnSearchBtn svg { width: 15px; height: 15px; fill: currentColor; }
#nfnSearchBtn { cursor: pointer; }

/* search overlay */
.nfn-search-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 999;
  align-items: center;
  justify-content: center;
  background: rgba(8,8,10,.94);
}
.nfn-search-overlay.is-open { display: flex; }
.nfn-search-overlay form { width: min(100%, 760px); margin: 0 auto; }
.nfn-search-overlay input[type='search'] {
  width: 100%;
  border: 0;
  border-bottom: 2px solid var(--nfn-blue);
  background: transparent;
  color: #fff;
  outline: none;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(38px, 7vw, 66px);
  font-weight: 900;
  text-transform: uppercase;
  padding: 10px 0;
}
.nfn-search-overlay input::placeholder { color: rgba(255,255,255,.28); }
.nfn-search-close {
  position: fixed;
  right: clamp(16px, 2.4vw, 30px);
  top: clamp(16px, 2.4vw, 30px);
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(8,8,10,.32);
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  z-index: 1001;
}
body.admin-bar .nfn-search-close {
  top: calc(32px + clamp(14px, 2vw, 24px));
}
@media (max-width: 782px) {
  body.admin-bar .nfn-search-close {
    top: calc(46px + 14px);
  }
}

/* ===========================
   HOME HERO
=========================== */
.nfn-hero {
  padding: 38px 0 26px;
  background: linear-gradient(180deg, #f8f3ea 0%, var(--nfn-paper) 100%);
}
.nfn-hero-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.9fr) minmax(300px, .9fr);
  gap: 22px;
  align-items: stretch;
}
.nfn-hero-main {
  position: relative;
  min-height: 560px;
  overflow: hidden;
  background: var(--nfn-ink);
  border-radius: 28px;
  box-shadow: var(--nfn-shadow);
  isolation: isolate;
}
.nfn-hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity .55s ease;
}
.nfn-hero-slide.is-active {
  opacity: 1;
  pointer-events: auto;
}
.nfn-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.08) contrast(1.04);
}
.nfn-hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(8,8,10,.88) 0%, rgba(8,8,10,.58) 42%, rgba(8,8,10,.08) 100%),
    linear-gradient(0deg, rgba(8,8,10,.92) 0%, rgba(8,8,10,.08) 58%);
}
.nfn-hero-content {
  position: absolute;
  left: clamp(24px, 4vw, 52px);
  bottom: clamp(28px, 4vw, 54px);
  max-width: 690px;
  color: #fff;
}
.nfn-hero-eyebrow,
.nfn-badge,
.nfn-related-badge {
  display: inline-flex;
  width: max-content;
  align-items: center;
  gap: 8px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: 1.7px;
  line-height: 1;
  text-transform: uppercase;
  color: var(--nfn-blue);
}
.nfn-hero-eyebrow::before,
.nfn-badge::before,
.nfn-related-badge::before {
  content: '';
  width: 7px;
  height: 7px;
  background: var(--nfn-gold);
  border-radius: 999px;
}
.nfn-hero-title {
  max-width: 760px;
  margin: 14px 0 14px;
  font-family: 'Barlow Condensed', Impact, sans-serif;
  font-size: clamp(46px, 6.8vw, 86px);
  line-height: .88;
  font-weight: 900;
  letter-spacing: -.7px;
  text-transform: uppercase;
  color: #fff;
}
.nfn-hero-title a { color: inherit; }
.nfn-hero-title a:hover { color: #fff; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; }
.nfn-hero-excerpt {
  max-width: 600px;
  color: rgba(255,255,255,.76);
  font-size: 15px;
  line-height: 1.65;
}
.nfn-hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 24px;
}
.nfn-hero-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  border-radius: 999px;
  background: #fff;
  color: var(--nfn-ink);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  letter-spacing: 1.7px;
  font-weight: 900;
  text-transform: uppercase;
}
.nfn-hero-btn::after { content: '→'; margin-left: 8px; }
.nfn-hero-btn:hover { background: var(--nfn-blue); color: #fff; }
.nfn-hero-meta { color: rgba(255,255,255,.58); font-size: 12px; }
.nfn-hero-arrow {
  position: absolute;
  right: 22px;
  bottom: 22px;
  z-index: 5;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: rgba(8,8,10,.46);
  color: #fff;
  font-size: 28px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.nfn-hero-prev { right: 72px; }
.nfn-hero-next { right: 22px; }
.nfn-hero-arrow:hover { background: var(--nfn-blue); border-color: var(--nfn-blue); }
.nfn-hero-dots {
  position: absolute;
  top: 24px;
  right: 24px;
  z-index: 4;
  display: flex;
  gap: 8px;
}
.nfn-hero-dot {
  width: 28px;
  height: 4px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.32);
  cursor: pointer;
}
.nfn-hero-dot.is-active { background: var(--nfn-gold); }

.nfn-hero-rail {
  display: flex;
  flex-direction: column;
  background: var(--nfn-card);
  border: 1px solid rgba(8,8,10,.1);
  border-radius: 28px;
  box-shadow: 0 16px 40px rgba(8,8,10,.08);
  overflow: hidden;
}
.nfn-hero-rail-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 22px 22px 14px;
  border-bottom: 1px solid var(--nfn-line);
}
.nfn-hero-rail-head span {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 28px;
  line-height: .9;
  font-weight: 900;
  letter-spacing: .4px;
  text-transform: uppercase;
}
.nfn-hero-rail-head a {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  font-weight: 900;
  color: var(--nfn-blue);
  white-space: nowrap;
}
.nfn-hero-rail-list { display: grid; }
.nfn-rail-story {
  display: grid;
  grid-template-columns: 82px 1fr;
  gap: 14px;
  padding: 16px 22px;
  border-bottom: 1px solid var(--nfn-line);
  color: var(--nfn-ink);
}
.nfn-rail-story:last-child { border-bottom: 0; }
.nfn-rail-story:hover { background: var(--nfn-paper-2); color: var(--nfn-ink); }
.nfn-rail-story img {
  width: 82px;
  height: 70px;
  object-fit: cover;
  border-radius: 12px;
  background: #ddd;
}
.nfn-rail-story span { min-width: 0; }
.nfn-rail-story em {
  display: block;
  margin-bottom: 4px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--nfn-blue);
}
.nfn-rail-story strong {
  display: block;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 18px;
  line-height: 1.05;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .1px;
}
.nfn-rail-story small { display: block; margin-top: 7px; color: var(--nfn-muted); font-size: 11px; }

/* ===========================
   IDENTITY STRIP
=========================== */
.nfn-focus-strip {
  background: var(--nfn-paper);
  border-top: 1px solid var(--nfn-line);
  border-bottom: 1px solid var(--nfn-line);
}
.nfn-focus-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  min-height: 102px;
}
.nfn-focus-copy span {
  display: block;
  margin-bottom: 6px;
  color: var(--nfn-blue);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  font-weight: 900;
}
.nfn-focus-copy strong {
  display: block;
  max-width: 830px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(25px, 3.8vw, 44px);
  line-height: .95;
  letter-spacing: -.25px;
  text-transform: uppercase;
  font-weight: 900;
}
.nfn-focus-links { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.nfn-focus-links a {
  border: 1px solid var(--nfn-line);
  border-radius: 999px;
  background: #fff;
  color: var(--nfn-ink);
  padding: 10px 14px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 1.5px;
}
.nfn-focus-links a:hover { color: #fff; background: var(--nfn-ink); border-color: var(--nfn-ink); }

/* ===========================
   COVERAGE CARDS
=========================== */
.nfn-coverage { padding: 54px 0 58px; background: var(--nfn-paper-2); }
.nfn-coverage-grid,
.nfn-archive-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.nfn-coverage-scroll {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(260px, 1fr);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  padding: 2px 2px 12px;
}
.nfn-coverage-scroll .nfn-coverage-card { scroll-snap-align: start; }
.nfn-coverage-scroll::-webkit-scrollbar { height: 8px; }
.nfn-coverage-scroll::-webkit-scrollbar-track { background: rgba(8,8,10,.08); border-radius: 999px; }
.nfn-coverage-scroll::-webkit-scrollbar-thumb { background: var(--nfn-blue); border-radius: 999px; }
.nfn-coverage-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  background: #fff;
  color: var(--nfn-ink);
  border: 1px solid rgba(8,8,10,.1);
  border-radius: 20px;
  box-shadow: 0 12px 30px rgba(8,8,10,.07);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.nfn-coverage-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 44px rgba(8,8,10,.13);
  border-color: rgba(40,92,255,.38);
  color: var(--nfn-ink);
}
.nfn-coverage-thumb,
.nfn-coverage-thumb-placeholder {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: linear-gradient(135deg, var(--nfn-charcoal), var(--nfn-charcoal-2));
}
.nfn-coverage-body { padding: 17px 18px 18px; display: flex; flex-direction: column; flex: 1; }
.nfn-badge {
  margin-bottom: 12px;
  color: var(--nfn-blue);
  font-size: 11px;
}
.nfn-coverage-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(21px, 2.4vw, 26px);
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -.1px;
  color: var(--nfn-ink);
}
.nfn-coverage-card:hover .nfn-coverage-title { color: var(--nfn-blue); }
.nfn-coverage-excerpt { margin-top: 12px; font-size: 13px; color: var(--nfn-muted); line-height: 1.55; }
.nfn-coverage-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  padding-top: 14px;
  color: #8a8379;
  font-size: 11px;
}
.nfn-coverage-meta svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2; }

/* ===========================
   UPCOMING SHOWS
=========================== */
.nfn-shows {
  background: var(--nfn-ink);
  color: #fff;
  padding: 20px 0;
  border-block: 1px solid rgba(255,255,255,.08);
}
.nfn-shows-inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: stretch;
  gap: 18px;
}
.nfn-shows-label {
  display: flex;
  align-items: center;
  color: var(--nfn-gold);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  white-space: nowrap;
}
.nfn-shows-list {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(190px, 1fr);
  gap: 1px;
  overflow-x: auto;
  background: rgba(255,255,255,.1);
  border-radius: 16px;
}
.nfn-show-item {
  min-width: 0;
  background: #111116;
  padding: 14px 16px;
}
.nfn-show-date-row { display: flex; align-items: baseline; gap: 6px; }
.nfn-show-month { color: var(--nfn-gold); font-family: 'Barlow Condensed', sans-serif; font-size: 12px; font-weight: 900; letter-spacing: 1.5px; text-transform: uppercase; }
.nfn-show-day { font-family: 'Barlow Condensed', sans-serif; font-size: 28px; line-height: 1; font-weight: 900; }
.nfn-show-artist {
  margin-top: 7px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 17px;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nfn-show-venue,
.nfn-show-city { color: rgba(255,255,255,.55); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nfn-show-tickets,
.nfn-shows-view-all {
  display: inline-flex;
  align-items: center;
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1.4px;
  text-transform: uppercase;
}
.nfn-show-tickets { margin-top: 10px; color: var(--nfn-gold); }
.nfn-shows-view-all {
  justify-content: center;
  align-self: stretch;
  min-width: 130px;
  padding: 0 16px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
}
.nfn-shows-view-all:hover { color: #fff; background: var(--nfn-blue); border-color: var(--nfn-blue); }

/* ===========================
   TOURS
=========================== */
.nfn-tours { padding: 58px 0 66px; background: var(--nfn-paper); }
.nfn-tours-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 18px; }
.nfn-tour-card {
  overflow: hidden;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(8,8,10,.1);
  box-shadow: 0 10px 26px rgba(8,8,10,.07);
  color: var(--nfn-ink);
  transition: transform .18s ease, box-shadow .18s ease;
}
.nfn-tour-card:hover { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(8,8,10,.12); color: var(--nfn-ink); }
.nfn-tour-poster { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.nfn-tour-body { padding: 14px; }
.nfn-tour-artist {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 20px;
  line-height: .95;
  font-weight: 900;
  text-transform: uppercase;
}
.nfn-tour-name,
.nfn-tour-dates { color: var(--nfn-muted); font-size: 12px; margin-top: 5px; line-height: 1.3; }
.nfn-tour-link {
  display: inline-flex;
  margin-top: 13px;
  color: var(--nfn-blue);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}

/* ===========================
   CONNECT BAND
=========================== */
.nfn-connect-band {
  padding: 44px 0;
  background: linear-gradient(135deg, var(--nfn-charcoal) 0%, #0d0d12 62%, #121b3f 100%);
  color: #fff;
}
.nfn-connect-row {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: 24px;
  align-items: stretch;
}
.nfn-connect-left,
.nfn-connect-right {
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 24px;
  background: rgba(255,255,255,.055);
  padding: 24px;
}
.nfn-connect-left h3,
.nfn-connect-right h3 {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 30px;
  line-height: .9;
  text-transform: uppercase;
  font-weight: 900;
}
.nfn-connect-left p,
.nfn-connect-right p { color: rgba(255,255,255,.68); font-size: 13px; margin-top: 7px; }
.nfn-connect-left iframe { width: 100%; min-height: 152px; border: 0; margin-top: 14px; border-radius: 14px; }
.nfn-connect-form,
.mc4wp-form-fields { display: flex; gap: 10px; margin-top: 18px; }
.nfn-connect-form input,
.mc4wp-form-fields input[type='email'],
.mc4wp-form-fields input[type='text'] {
  min-width: 0;
  flex: 1;
  min-height: 44px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: rgba(255,255,255,.09);
  color: #fff;
  padding: 0 16px;
  outline: none;
}
.nfn-connect-form input::placeholder,
.mc4wp-form-fields input::placeholder { color: rgba(255,255,255,.42); }
.nfn-connect-form button,
.mc4wp-form-fields input[type='submit'],
.mc4wp-form-fields button {
  min-height: 44px;
  border: 0;
  border-radius: 999px;
  background: var(--nfn-gold);
  color: var(--nfn-ink);
  padding: 0 18px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  cursor: pointer;
}
.nfn-connect-social { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.nfn-connect-social a {
  color: rgba(255,255,255,.8);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 999px;
  padding: 8px 12px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1.3px;
  text-transform: uppercase;
}
.nfn-connect-social a:hover { color: #fff; background: var(--nfn-blue); border-color: var(--nfn-blue); }

/* ===========================
   NEWS AND FOOTER
=========================== */
.nfn-bottom-section { padding: 60px 0 66px; background: var(--nfn-paper-2); }
.nfn-news-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.nfn-news-card {
  overflow: hidden;
  border: 1px solid rgba(8,8,10,.1);
  border-radius: 18px;
  background: #fff;
  color: var(--nfn-ink);
  box-shadow: 0 10px 24px rgba(8,8,10,.06);
}
.nfn-news-card:hover { color: var(--nfn-blue); transform: translateY(-3px); box-shadow: 0 18px 36px rgba(8,8,10,.12); }
.nfn-news-card-thumb { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.nfn-news-card-body { padding: 15px 16px 16px; }
.nfn-news-title {
  display: block;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 22px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -.1px;
  text-transform: uppercase;
}
.nfn-news-age { display: block; margin-top: 10px; color: var(--nfn-muted); font-size: 11px; }

.nfn-footer {
  background: var(--nfn-ink);
  color: rgba(255,255,255,.74);
  padding: 52px 0 24px;
  border-top: 1px solid rgba(255,255,255,.1);
}
.nfn-footer-grid { display: grid; grid-template-columns: 1.2fr .8fr .8fr 1.1fr; gap: 38px; }
.nfn-footer-brand p,
.nfn-footer-col p { margin-top: 16px; color: rgba(255,255,255,.6); font-size: 13px; line-height: 1.65; }
.nfn-footer-col h4,
.nfn-sidebar-heading {
  font-family: 'Barlow Condensed', sans-serif;
  color: #fff;
  font-size: 18px;
  letter-spacing: 1.6px;
  line-height: 1;
  text-transform: uppercase;
  font-weight: 900;
  margin-bottom: 14px;
}
.nfn-footer-col ul { list-style: none; display: grid; gap: 8px; }
.nfn-footer-col a { color: rgba(255,255,255,.64); font-size: 13px; }
.nfn-footer-col a:hover { color: #fff; }
.nfn-footer-email-btn {
  display: inline-flex;
  margin-top: 16px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  padding: 10px 14px;
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
.nfn-footer-email-btn:hover { background: var(--nfn-blue); border-color: var(--nfn-blue); color: #fff; }
.nfn-footer-social { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.nfn-footer-social a {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.82);
}
.nfn-footer-social a:hover { background: var(--nfn-blue); border-color: var(--nfn-blue); color: #fff; }
.nfn-footer-social svg { width: 15px; height: 15px; fill: currentColor; }
.nfn-footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin-top: 38px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,.1);
  font-size: 12px;
  color: rgba(255,255,255,.45);
}
.nfn-footer-bottom-links { display: flex; gap: 16px; flex-wrap: wrap; }
.nfn-footer-bottom-links a { color: rgba(255,255,255,.52); }
.nfn-footer-bottom-links a:hover { color: #fff; }

/* ===========================
   SINGLE, PAGE, ARCHIVE
=========================== */
.nfn-single-hero,
.nfn-archive-header,
.nfn-page-wrap > .container > h1 {
  color: var(--nfn-ink);
}
.nfn-single-hero {
  padding: 56px 0 36px;
  background: var(--nfn-paper);
  border-bottom: 1px solid var(--nfn-line);
}
.nfn-single-kicker {
  display: inline-flex;
  color: var(--nfn-blue);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}
.nfn-single-hero h1,
.nfn-archive-header h1,
.nfn-page-wrap h1 {
  max-width: 980px;
  margin-top: 10px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(44px, 8vw, 82px);
  line-height: .9;
  font-weight: 900;
  letter-spacing: -.5px;
  text-transform: uppercase;
}
.nfn-single-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 18px;
  color: var(--nfn-muted);
  font-size: 13px;
}
.nfn-share-buttons { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.nfn-share-buttons > span { color: var(--nfn-muted); font-size: 12px; text-transform: uppercase; letter-spacing: 1px; }
.nfn-share-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--nfn-line);
  border-radius: 999px;
  padding: 7px 11px;
  color: var(--nfn-ink);
  font-size: 12px;
}
.nfn-share-btn:hover { background: var(--nfn-blue); border-color: var(--nfn-blue); color: #fff; }
.nfn-single-wrap { padding: 48px 0 70px; background: var(--nfn-paper-2); }
.nfn-single-container { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 42px; align-items: start; }
.nfn-single-article { min-width: 0; }
.nfn-single-featured-img {
  width: 100%;
  border-radius: 24px;
  box-shadow: 0 16px 38px rgba(8,8,10,.1);
  margin-bottom: 30px;
}
.nfn-single-content {
  background: #fff;
  border: 1px solid rgba(8,8,10,.08);
  border-radius: 24px;
  padding: clamp(24px, 5vw, 54px);
  box-shadow: 0 12px 34px rgba(8,8,10,.06);
  color: #222;
  font-size: 17px;
  line-height: 1.78;
}
.nfn-single-content h2,
.nfn-single-content h3,
.nfn-page-content h2,
.nfn-page-content h3 {
  margin: 1.6em 0 .5em;
  font-family: 'Barlow Condensed', sans-serif;
  line-height: 1;
  text-transform: uppercase;
  font-weight: 900;
  color: var(--nfn-ink);
}
.nfn-single-content h2 { font-size: clamp(30px, 4vw, 48px); }
.nfn-single-content h3 { font-size: clamp(24px, 3vw, 34px); }
.nfn-single-content p { margin-bottom: 1.1em; }
.nfn-single-content a { color: var(--nfn-blue); text-decoration: underline; text-underline-offset: 3px; }
.nfn-single-content ul,
.nfn-single-content ol { margin: 0 0 1.2em 1.2em; }
.nfn-single-content img { border-radius: 18px; margin: 1.4em 0; }
.nfn-post-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.nfn-post-tags a { border: 1px solid var(--nfn-line); border-radius: 999px; background: #fff; padding: 7px 10px; font-size: 12px; color: var(--nfn-muted); }
.nfn-post-tags a:hover { color: #fff; background: var(--nfn-blue); border-color: var(--nfn-blue); }
.nfn-single-sidebar { position: sticky; top: 98px; display: grid; gap: 18px; }
.nfn-sidebar-card {
  background: #fff;
  border: 1px solid rgba(8,8,10,.09);
  border-radius: 22px;
  padding: 18px;
  box-shadow: 0 12px 26px rgba(8,8,10,.06);
}
.nfn-sidebar-heading { color: var(--nfn-ink); border-bottom: 1px solid var(--nfn-line); padding-bottom: 10px; }
.nfn-sidebar-post-item { display: grid; grid-template-columns: 76px 1fr; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--nfn-line); color: var(--nfn-ink); }
.nfn-sidebar-post-item:last-child { border-bottom: 0; padding-bottom: 0; }
.nfn-sidebar-post-thumb { width: 76px; height: 62px; object-fit: cover; border-radius: 12px; }
.nfn-sidebar-post-title-text { font-family: 'Barlow Condensed', sans-serif; font-size: 17px; line-height: 1; font-weight: 900; text-transform: uppercase; }
.nfn-sidebar-post-date-text { margin-top: 6px; font-size: 11px; color: var(--nfn-muted); }
.nfn-sidebar-show { display: grid; grid-template-columns: 48px 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--nfn-line); }
.nfn-sidebar-show-date { display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 12px; background: var(--nfn-ink); color: #fff; min-height: 48px; }
.nfn-sidebar-show-date span { color: var(--nfn-gold); font-family: 'Barlow Condensed', sans-serif; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.nfn-sidebar-show-date strong { font-family: 'Barlow Condensed', sans-serif; font-size: 22px; line-height: .8; }
.nfn-sidebar-show-name { font-family: 'Barlow Condensed', sans-serif; font-size: 17px; line-height: 1; font-weight: 900; text-transform: uppercase; }
.nfn-sidebar-show-venue-text { color: var(--nfn-muted); font-size: 11px; margin-top: 4px; }
.nfn-sidebar-ticket-link,
.nfn-sidebar-view-all { grid-column: 2; color: var(--nfn-blue); font-family: 'Barlow Condensed', sans-serif; font-size: 11px; font-weight: 900; letter-spacing: 1.2px; text-transform: uppercase; }
.nfn-sidebar-view-all { display: inline-flex; margin-top: 12px; }
.nfn-related { margin-top: 36px; }
.nfn-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.nfn-related-card { display: grid; grid-template-columns: 88px 1fr; gap: 12px; background: #fff; border: 1px solid rgba(8,8,10,.08); border-radius: 18px; padding: 12px; color: var(--nfn-ink); }
.nfn-related-thumb { width: 88px; height: 74px; object-fit: cover; border-radius: 12px; }
.nfn-related-title { margin-top: 6px; font-family: 'Barlow Condensed', sans-serif; font-size: 18px; line-height: 1; font-weight: 900; text-transform: uppercase; }
.nfn-related-date { display: block; margin-top: 6px; color: var(--nfn-muted); font-size: 11px; }
.nfn-related-badge { font-size: 10px; }

.nfn-archive,
.nfn-page-wrap { padding: 56px 0 72px; background: var(--nfn-paper-2); }
.nfn-archive-header,
.nfn-page-wrap > .container > h1 { margin-bottom: 34px; }
.nfn-archive-header p { margin-top: 12px; color: var(--nfn-muted); max-width: 760px; }
.nfn-page-content { max-width: 940px; }
.navigation.pagination .nav-links { display: inline-flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.navigation.pagination a,
.navigation.pagination span { display: inline-flex; padding: 9px 13px; border: 1px solid var(--nfn-line); border-radius: 999px; background: #fff; color: var(--nfn-ink); }
.navigation.pagination .current { background: var(--nfn-ink); color: #fff; }

/* forms and special pages */
.nfn-page-content input[type='text'],
.nfn-page-content input[type='email'],
.nfn-page-content input[type='url'],
.nfn-page-content textarea,
.nfn-page-content select {
  width: 100%;
  border: 1px solid var(--nfn-line);
  border-radius: 14px;
  background: #fff;
  color: var(--nfn-ink);
  padding: 12px 14px;
  font: inherit;
}
.nfn-page-content textarea { min-height: 150px; }
.nfn-page-content button,
.nfn-page-content input[type='submit'] {
  border: 0;
  border-radius: 999px;
  background: var(--nfn-ink);
  color: #fff;
  padding: 12px 18px;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  cursor: pointer;
}
.nfn-page-content button:hover,
.nfn-page-content input[type='submit']:hover { background: var(--nfn-blue); }

/* back to top */
.nfn-back-to-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: var(--nfn-blue);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity .2s, transform .2s;
  z-index: 99;
}
.nfn-back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }

/* ===========================
   RESPONSIVE
=========================== */
@media (max-width: 1180px) {
  .nfn-nav-inner { grid-template-columns: 1fr auto; }
  .nfn-nav-links { grid-column: 1 / -1; justify-self: start; width: 100%; overflow-x: auto; border-top: 1px solid rgba(255,255,255,.08); }
  .nfn-nav-links a, .nfn-nav-ul a { padding: 15px 0; }
  .nfn-hero-slide { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .nfn-hero-rail-list { grid-template-columns: repeat(2, 1fr); }
  .nfn-rail-story:nth-child(odd) { border-right: 1px solid var(--nfn-line); }
  .nfn-tours-grid { grid-template-columns: repeat(3, 1fr); }
  .nfn-footer-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .container { width: min(100% - 28px, 1240px); }
  .nfn-focus-inner,
  .nfn-connect-row,
  .nfn-single-container { grid-template-columns: 1fr; }
  .nfn-focus-links { justify-content: flex-start; }
  .nfn-coverage-grid,
  .nfn-archive-grid,
  .nfn-news-grid { grid-template-columns: repeat(2, 1fr); }
  .nfn-coverage-scroll { grid-template-columns: unset; grid-auto-columns: 72%; }
  .nfn-shows-inner { grid-template-columns: 1fr; }
  .nfn-shows-view-all { min-height: 42px; }
  .nfn-single-sidebar { position: static; }
  .nfn-related-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .nfn-ticker-read-more { display: none; }
  .nfn-nav > .container { width: min(100% - 24px, 1440px); }
  .nfn-nav-inner { min-height: 64px; gap: 14px; }
  .nfn-nav-social { display: none; }
  .nfn-logo-mark { min-width: 52px; height: 30px; font-size: 22px; }
  .nfn-logo-sub { font-size: 7px; }
  .nfn-hero { padding: 0; }
  .nfn-hero-main { min-height: 0; border-radius: 0; }
  .nfn-hero-slide { grid-template-columns: 1fr; }
  .nfn-hero-img { grid-column: 1; grid-row: 1; min-height: 260px; max-height: 300px; }
  .nfn-hero-overlay { grid-column: 1; grid-row: 1; background: linear-gradient(0deg, rgba(8,8,10,1) 0%, rgba(8,8,10,.55) 40%, rgba(8,8,10,0) 100%); }
  .nfn-hero-content { grid-column: 1; grid-row: 2; padding: 28px 22px 36px; }
  .nfn-hero-title { font-size: clamp(32px, 9vw, 46px); }
  .nfn-hero-excerpt { font-size: 14px; }
  .nfn-hero-arrow { top: 16px; bottom: auto; width: 38px; height: 38px; }
  .nfn-hero-prev { right: 62px; }
  .nfn-hero-next { right: 18px; }
  .nfn-hero-dots { left: 20px; right: auto; top: 26px; }
  .nfn-hero-rail-list { grid-template-columns: 1fr; }
  .nfn-rail-story:nth-child(odd) { border-right: 0; }
  .nfn-focus-inner { padding: 24px 0; }
  .nfn-focus-links a { flex: 1; text-align: center; }
  .nfn-coverage,
  .nfn-tours,
  .nfn-bottom-section { padding: 40px 0; }
  .nfn-section-label { align-items: start; flex-direction: column; }
  .nfn-coverage-grid,
  .nfn-archive-grid,
  .nfn-news-grid,
  .nfn-tours-grid { grid-template-columns: 1fr; }
  .nfn-coverage-scroll { grid-auto-columns: 86%; }
  .nfn-connect-form,
  .mc4wp-form-fields { flex-direction: column; }
  .nfn-footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .nfn-footer-bottom { align-items: flex-start; flex-direction: column; }
  .nfn-single-content { font-size: 16px; padding: 22px; border-radius: 18px; }
  .nfn-single-hero { padding: 40px 0 28px; }
}

/* ===========================
   NFN v2.5 CLEAN EDITORIAL REFINEMENT
   Simplified palette, split hero, no identity strip, cleaner coverage grid.
=========================== */
:root {
  --nfn-ink: #080808;
  --nfn-charcoal: #121212;
  --nfn-charcoal-2: #1d1d1d;
  --nfn-paper: #f3f0eb;
  --nfn-paper-2: #faf8f4;
  --nfn-card: #ffffff;
  --nfn-muted: #62605c;
  --nfn-soft: #d8d1c7;
  --nfn-line: rgba(8, 8, 8, 0.13);
  --nfn-line-dark: rgba(255, 255, 255, 0.13);
  --nfn-blue: #111111;
  --nfn-blue-dark: #111111;
  --nfn-gold: #8b867d;
  --nfn-radius: 16px;
  --nfn-shadow: 0 18px 45px rgba(8, 8, 8, 0.11);
}
body {
  background: var(--nfn-paper);
  color: var(--nfn-ink);
}
body::before {
  background: linear-gradient(180deg, #faf8f4 0, var(--nfn-paper) 390px, #ebe5dc 100%);
}
a:hover { color: var(--nfn-ink); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
::selection { background: var(--nfn-ink); color: #fff; }
.nfn-ticker-label { color: #d8d8d8; }
.nfn-ticker-dot { background: #fff; box-shadow: 0 0 0 4px rgba(255,255,255,.16); }
.nfn-nav-links a:hover,
.nfn-nav-links .current-menu-item > a,
.nfn-nav-ul .current-menu-item > a { border-bottom-color: #fff; }
.nfn-section-label {
  align-items: center;
  margin-bottom: 22px;
  border-bottom: 2px solid var(--nfn-ink);
  padding-bottom: 12px;
}
.nfn-section-label > span {
  font-size: clamp(24px, 3vw, 34px);
  letter-spacing: .1px;
}
.nfn-section-label > span::before {
  width: 8px;
  height: 8px;
  background: var(--nfn-ink);
  transform: translateY(-3px);
}
.view-all,
.nfn-section-label .view-all {
  background: transparent;
  border-color: var(--nfn-line);
  color: var(--nfn-ink);
}
.view-all:hover,
.nfn-section-label .view-all:hover {
  background: var(--nfn-ink);
  border-color: var(--nfn-ink);
  color: #fff;
  text-decoration: none;
}

/* Split hero: text gets its own panel instead of covering the photo */
.nfn-hero {
  padding: 0;
  background: #08080a;
}
.nfn-hero-shell {
  display: block;
  max-width: 100%;
  padding: 0;
  gap: 0;
}
.nfn-hero-main {
  min-height: 460px;
  border-radius: 0;
  background: #08080a;
  border: 0;
  box-shadow: none;
}
/* Split slide: image left, black text panel right */
.nfn-hero-slide {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
  align-items: stretch;
  background: #08080a;
}
.nfn-hero-img {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  height: 100%;
  min-height: 460px;
  object-fit: contain;
  object-position: center center;
  background: #08080a;
  filter: saturate(1.05) contrast(1.02);
}
/* Gradient that fades the photo into the black panel on its right edge */
.nfn-hero-overlay {
  display: block;
  grid-column: 1;
  grid-row: 1;
  align-self: stretch;
  justify-self: stretch;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 2;
  background: linear-gradient(90deg,
    rgba(8,8,10,0) 0%,
    rgba(8,8,10,0) 88%,
    rgba(8,8,10,.28) 94%,
    rgba(8,8,10,.96) 100%);
}
.nfn-hero-content {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  left: auto;
  bottom: auto;
  align-self: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 620px;
  padding: clamp(32px, 4vw, 64px) clamp(32px, 5vw, 80px) clamp(32px, 4vw, 64px) clamp(28px, 3vw, 48px);
  color: #fff;
  background: #08080a;
}
.nfn-hero-eyebrow,
.nfn-badge,
.nfn-related-badge { color: var(--nfn-blue); }
.nfn-hero-eyebrow::before,
.nfn-badge::before,
.nfn-related-badge::before { background: var(--nfn-blue); }
.nfn-hero-title {
  max-width: 560px;
  margin: 16px 0 16px;
  font-size: clamp(34px, 3.4vw, 50px);
  line-height: .98;
  letter-spacing: -.4px;
  color: #fff;
}
.nfn-hero-title a { color: #fff; }
.nfn-hero-title a:hover { color: var(--nfn-blue); text-decoration: none; }
.nfn-hero-excerpt {
  max-width: 520px;
  color: rgba(255,255,255,.72);
  font-size: 15px;
  line-height: 1.6;
}
.nfn-hero-btn {
  background: var(--nfn-blue);
  color: #fff;
  border: 1px solid var(--nfn-blue);
}
.nfn-hero-btn:hover {
  background: #fff;
  color: #08080a;
  border-color: #fff;
  text-decoration: none;
}
.nfn-hero-meta { color: rgba(255,255,255,.5); }
.nfn-hero-arrow {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.3);
  color: #fff;
}
.nfn-hero-arrow:hover { background: var(--nfn-blue); border-color: var(--nfn-blue); color: #fff; }
.nfn-hero-dot { background: rgba(255,255,255,.34); }
.nfn-hero-dot.is-active { background: var(--nfn-blue); }
/* Hide the side rail — hero is now full-width split */
.nfn-hero-rail { display: none; }
.nfn-hero-rail {
  border-radius: 18px;
  border: 1px solid var(--nfn-line);
  box-shadow: 0 16px 36px rgba(8,8,8,.08);
}
.nfn-hero-rail-head a,
.nfn-rail-story em { color: var(--nfn-muted); }
.nfn-rail-story:hover { background: var(--nfn-paper-2); color: var(--nfn-ink); text-decoration: none; }
.nfn-rail-story strong { font-family: 'Inter', system-ui, sans-serif; font-size: 14px; line-height: 1.18; letter-spacing: -.15px; text-transform: none; }

/* Remove the NFN magazine strip under the hero */
.nfn-focus-strip { display: none !important; }

/* Latest coverage: no horizontal scroller, no skinny stacked text columns */
.nfn-coverage {
  padding: 52px 0 58px;
  background: var(--nfn-paper-2);
  border-top: 1px solid var(--nfn-line);
}
.nfn-coverage-scroll {
  display: grid;
  grid-auto-flow: row;
  grid-auto-columns: unset;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  overflow: visible;
  overscroll-behavior-x: auto;
  scroll-snap-type: none;
  padding: 0;
}
.nfn-coverage-scroll::-webkit-scrollbar { display: none; }
.nfn-coverage-card {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  border: 1px solid rgba(8,8,8,.12);
  box-shadow: none;
  background: #fff;
  overflow: hidden;
  min-height: 0;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.nfn-coverage-card:hover {
  transform: translateY(-3px);
  border-color: rgba(8,8,8,.32);
  box-shadow: 0 18px 34px rgba(8,8,8,.11);
  color: var(--nfn-ink);
  text-decoration: none;
}
.nfn-coverage-card:first-child {
  grid-column: span 2;
  grid-row: span 2;
}
.nfn-coverage-thumb,
.nfn-coverage-thumb-placeholder {
  aspect-ratio: 16 / 9;
  filter: grayscale(.05) saturate(.96) contrast(1.02);
}
.nfn-coverage-card:first-child .nfn-coverage-thumb,
.nfn-coverage-card:first-child .nfn-coverage-thumb-placeholder {
  aspect-ratio: 16 / 8.6;
}
.nfn-coverage-body {
  padding: 16px;
  gap: 0;
}
.nfn-coverage-card:first-child .nfn-coverage-body { padding: 22px 24px 24px; }
.nfn-badge {
  margin-bottom: 10px;
  font-size: 10px;
  letter-spacing: 1.4px;
}
.nfn-coverage-title {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.14;
  letter-spacing: -.2px;
  text-transform: none;
  font-weight: 850;
}
.nfn-coverage-card:first-child .nfn-coverage-title {
  font-family: 'Barlow Condensed', Impact, sans-serif;
  font-size: clamp(31px, 4vw, 48px);
  line-height: .94;
  letter-spacing: -.25px;
  text-transform: uppercase;
}
.nfn-coverage-card:hover .nfn-coverage-title { color: var(--nfn-ink); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
.nfn-coverage-excerpt {
  margin-top: 10px;
  font-size: 13px;
  color: var(--nfn-muted);
  line-height: 1.5;
}
.nfn-coverage-card:not(:first-child) .nfn-coverage-excerpt { display: none; }
.nfn-coverage-meta {
  padding-top: 12px;
  color: #77736d;
  font-size: 11px;
}

/* Keep the rest quiet and consistent */
.nfn-shows-label,
.nfn-show-month,
.nfn-show-tickets,
.nfn-tour-link,
.nfn-news-age,
.nfn-footer h4 { color: #d8d8d8; }
.nfn-tours { background: var(--nfn-paper); }
.nfn-tour-card,
.nfn-news-card { border-radius: 13px; box-shadow: none; border-color: rgba(8,8,8,.12); }
.nfn-tour-card:hover,
.nfn-news-card:hover { border-color: rgba(8,8,8,.34); box-shadow: 0 18px 34px rgba(8,8,8,.1); text-decoration: none; }
.nfn-connect-band { background: #111; }
.nfn-connect-row { border-color: rgba(255,255,255,.12); }
.nfn-connect-form button { background: #fff; color: var(--nfn-ink); }
.nfn-connect-form button:hover { background: var(--nfn-paper); color: var(--nfn-ink); }

@media (max-width: 1060px) {
  .nfn-hero-shell { grid-template-columns: 1fr; }
  .nfn-hero-main { min-height: auto; }
  .nfn-hero-slide { position: relative; min-height: auto; display: grid; grid-template-columns: 1fr; }
  .nfn-hero-img { grid-column: 1; min-height: 330px; height: 330px; }
  .nfn-hero-content { grid-column: 1; grid-row: 2; padding: 28px; }
  .nfn-coverage-scroll { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .nfn-coverage-card:first-child { grid-column: span 2; }
}
@media (max-width: 680px) {
  .container { width: min(100% - 28px, 1240px); }
  .nfn-hero { padding: 24px 0 28px; }
  .nfn-hero-img { min-height: 260px; height: 260px; }
  .nfn-hero-title { font-size: clamp(34px, 12vw, 50px); }
  .nfn-hero-arrow { bottom: auto; top: 220px; }
  .nfn-hero-dots { top: 18px; right: 18px; }
  .nfn-coverage-scroll { grid-template-columns: 1fr; }
  .nfn-coverage-card:first-child { grid-column: auto; grid-row: auto; }
  .nfn-coverage-card:not(:first-child) .nfn-coverage-excerpt { display: block; }
  .nfn-coverage-card:first-child .nfn-coverage-title,
  .nfn-coverage-title { font-family: 'Inter', system-ui, sans-serif; font-size: 19px; line-height: 1.12; text-transform: none; }
}


/* ===========================
   NFN V2.6 REFINEMENTS
   Original NFN color returned, hero text reduced, latest coverage trimmed,
   stay-connected icons, and cleaner footer menus.
=========================== */
:root {
  --nfn-ink: #08070c;
  --nfn-charcoal: #14091f;
  --nfn-charcoal-2: #21142d;
  --nfn-paper: #f6f1e8;
  --nfn-paper-2: #fbf7f0;
  --nfn-card: #ffffff;
  --nfn-muted: #6d6660;
  --nfn-soft: #ded5c7;
  --nfn-line: rgba(8, 7, 12, 0.12);
  --nfn-line-dark: rgba(255,255,255,.12);
  --nfn-purple: #7e22ce;
  --nfn-purple-dark: #5f189d;
  --nfn-purple-soft: #b97ae8;
  --nfn-blue: #7e22ce;
  --nfn-gold: #b97ae8;
  --nfn-shadow: 0 18px 45px rgba(8,7,12,.11);
}
body::before {
  background:
    radial-gradient(circle at 18% -6%, rgba(126,34,206,.12), transparent 24%),
    radial-gradient(circle at 88% 10%, rgba(185,122,232,.10), transparent 25%),
    linear-gradient(180deg, #fffaf4 0, var(--nfn-paper) 420px, #f1e9da 100%);
}
a:hover { color: var(--nfn-purple); }
::selection { background: var(--nfn-purple); color: #fff; }

.nfn-ticker { background: #120717; }
.nfn-ticker-label { color: var(--nfn-purple-soft); }
.nfn-ticker-dot,
.nfn-section-label > span::before,
.nfn-hero-eyebrow::before,
.nfn-badge::before,
.nfn-related-badge::before { background: var(--nfn-purple); }
.view-all:hover,
.nfn-section-label .view-all:hover,
.nfn-show-tickets:hover,
.nfn-tour-link:hover { background: var(--nfn-purple); border-color: var(--nfn-purple); color: #fff; }

.nfn-nav { background: rgba(8,7,12,.95); border-bottom-color: rgba(126,34,206,.22); }
.nfn-nav-inner { min-height: 68px; }
.nfn-logo-mark { border-color: #fff; box-shadow: inset 0 -4px 0 rgba(126,34,206,.45); }
.nfn-nav-links a:hover,
.nfn-nav-ul a:hover { color: #fff; }
.nfn-nav-links a::after,
.nfn-nav-ul a::after { background: var(--nfn-purple); }

/* Hero: smaller type and button stays clickable */
.nfn-hero {
  padding: 30px 0 34px;
  background: linear-gradient(180deg, #fffaf4 0%, var(--nfn-paper) 100%);
}
.nfn-hero-shell { grid-template-columns: minmax(0, 2fr) minmax(310px, .86fr); gap: 22px; }
.nfn-hero-main {
  min-height: 430px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(8,7,12,.13);
  box-shadow: 0 18px 44px rgba(8,7,12,.12);
}
.nfn-hero-slide { grid-template-columns: minmax(330px, .86fr) minmax(0, 1.14fr); }
.nfn-hero-img {
  min-height: 430px;
  height: 100%;
  filter: grayscale(.04) saturate(1.02) contrast(1.03);
}
.nfn-hero-content {
  z-index: 6;
  padding: clamp(22px, 3vw, 36px);
  justify-content: center;
  background: #fff;
}
.nfn-hero-eyebrow { color: var(--nfn-purple-dark); }
.nfn-hero-title {
  max-width: 455px;
  margin: 9px 0 12px;
  font-size: clamp(25px, 2.6vw, 36px);
  line-height: 1;
  letter-spacing: -.25px;
}
.nfn-hero-excerpt {
  max-width: 455px;
  font-size: 14px;
  line-height: 1.45;
}
.nfn-hero-actions {
  position: relative;
  z-index: 20;
  margin-top: 18px;
  gap: 12px;
}
.nfn-hero-btn {
  min-height: 40px;
  padding: 0 16px;
  background: var(--nfn-purple);
  border-color: var(--nfn-purple);
  color: #fff;
  box-shadow: 0 9px 20px rgba(126,34,206,.22);
}
.nfn-hero-btn:hover {
  background: var(--nfn-ink);
  border-color: var(--nfn-ink);
  color: #fff;
}
.nfn-hero-meta { font-size: 11px; }
.nfn-hero-arrow { background: rgba(8,7,12,.72); }
.nfn-hero-arrow:hover { background: var(--nfn-purple); border-color: var(--nfn-purple); color: #fff; }
.nfn-hero-dot.is-active { background: var(--nfn-purple); }

/* Latest coverage: 5 cards only from PHP, clean 1 large + 4 small layout */
.nfn-coverage { padding: 48px 0 52px; background: var(--nfn-paper-2); }
.nfn-coverage-scroll {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.nfn-coverage-card { border-color: rgba(8,7,12,.12); }
.nfn-coverage-card:hover { border-color: rgba(126,34,206,.5); box-shadow: 0 18px 34px rgba(8,7,12,.11); }
.nfn-coverage-card:hover .nfn-coverage-title { color: var(--nfn-purple-dark); }
.nfn-coverage-card:first-child .nfn-coverage-title {
  font-size: clamp(26px, 3.1vw, 39px);
  line-height: .98;
}
.nfn-coverage-card:first-child .nfn-coverage-thumb,
.nfn-coverage-card:first-child .nfn-coverage-thumb-placeholder { aspect-ratio: 16 / 8.9; }

/* Stay connected spacing and icon buttons */
.nfn-connect-band { background: #0f0b14; }
.nfn-connect-row {
  grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
  gap: 28px;
  padding: 26px;
  border: 1px solid rgba(185,122,232,.16);
  background: linear-gradient(135deg, rgba(126,34,206,.13), rgba(255,255,255,.03));
}
.nfn-connect-left,
.nfn-connect-right { padding: 0; }
.nfn-connect-left h3,
.nfn-connect-right h3 { color: #fff; }
.nfn-connect-form { margin-top: 18px; max-width: 660px; }
.nfn-connect-social {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
  flex-wrap: wrap;
}
.nfn-connect-social a {
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.18);
}
.nfn-connect-social a:hover { background: var(--nfn-purple); border-color: var(--nfn-purple); color: #fff; }
.nfn-connect-social svg { width: 17px; height: 17px; fill: currentColor; }
.nfn-connect-form button { background: var(--nfn-purple); color: #fff; }
.nfn-connect-form button:hover { background: #fff; color: var(--nfn-ink); }

/* Footer: centered brand, cleaner menus */
.nfn-footer { background: #08070c; padding: 46px 0 18px; }
.nfn-footer-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 34px 58px;
  align-items: start;
}
.nfn-footer-brand {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-bottom: 28px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.nfn-footer-brand .nfn-logo { align-items: center; }
.nfn-footer-brand p {
  max-width: 510px;
  margin: 15px auto 0;
  color: rgba(255,255,255,.66);
  line-height: 1.6;
}
.nfn-footer-social {
  justify-content: center;
  margin-top: 16px;
}
.nfn-footer-social a {
  width: 38px;
  height: 38px;
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.05);
}
.nfn-footer-social a:hover { background: var(--nfn-purple); border-color: var(--nfn-purple); }
.nfn-footer-col { min-width: 0; }
.nfn-footer-col h4 {
  color: var(--nfn-purple-soft);
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.nfn-footer-col a {
  display: block;
  line-height: 1.35;
  margin: 0 0 9px;
  color: rgba(255,255,255,.68);
}
.nfn-footer-col a:hover { color: #fff; }
.nfn-footer-col p { margin-top: 0; max-width: 320px; }
.nfn-footer-email-btn {
  display: inline-flex;
  width: auto;
  margin-top: 14px;
  border-color: rgba(185,122,232,.35);
}
.nfn-footer-email-btn:hover { background: var(--nfn-purple); border-color: var(--nfn-purple); }
.nfn-footer-bottom { margin-top: 34px; padding-top: 16px; }

@media (max-width: 1060px) {
  .nfn-hero-main { min-height: auto; }
  .nfn-hero-slide { grid-template-columns: 1fr; }
  .nfn-hero-img { grid-column: 1; min-height: 320px; height: 320px; }
  .nfn-hero-content { grid-column: 1; grid-row: 2; padding: 26px; }
  .nfn-hero-title { max-width: 720px; font-size: clamp(28px, 5vw, 42px); }
  .nfn-hero-excerpt { max-width: 720px; }
  .nfn-connect-row { grid-template-columns: 1fr; }
  .nfn-footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .nfn-hero { padding: 22px 0 26px; }
  .nfn-hero-img { min-height: 245px; height: 245px; }
  .nfn-hero-title { font-size: clamp(28px, 10vw, 40px); }
  .nfn-hero-excerpt { font-size: 13px; }
  .nfn-hero-actions { align-items: flex-start; flex-direction: column; }
  .nfn-hero-arrow { top: 202px; }
  .nfn-coverage-scroll { grid-template-columns: 1fr; }
  .nfn-coverage-card:first-child { grid-column: auto; grid-row: auto; }
  .nfn-coverage-card:first-child .nfn-coverage-title,
  .nfn-coverage-title { font-family: 'Inter', system-ui, sans-serif; font-size: 19px; line-height: 1.12; text-transform: none; }
  .nfn-footer-grid { grid-template-columns: 1fr; gap: 26px; }
  .nfn-footer-col { text-align: center; }
  .nfn-footer-col p { margin-left: auto; margin-right: auto; }
}


/* ===========================
   NFN V2.7 FOCUSED CLEANUP
   Keep the working AMP bones, tighten spacing, restore compact NFN feel.
=========================== */

/* Hero: slightly smaller and calmer so the button stays reachable */
.nfn-hero-main { min-height: 390px; }
.nfn-hero-slide { grid-template-columns: minmax(320px, .84fr) minmax(0, 1.16fr); }
.nfn-hero-img { min-height: 390px; }
.nfn-hero-content { padding: clamp(22px, 2.5vw, 32px); }
.nfn-hero-title {
  max-width: 430px;
  font-size: clamp(23px, 2.15vw, 31px);
  line-height: 1.04;
  margin: 8px 0 11px;
}
.nfn-hero-excerpt { max-width: 430px; font-size: 13.5px; line-height: 1.42; }
.nfn-hero-actions { margin-top: 14px; position: relative; z-index: 60; }
.nfn-hero-btn { position: relative; z-index: 70; pointer-events: auto; min-height: 38px; padding-inline: 15px; }

/* Upcoming shows: pull 10 from PHP and make the row scroll cleanly */
.nfn-shows { padding: 17px 0; }
.nfn-shows-inner {
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
}
.nfn-shows-list {
  display: flex;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  gap: 1px;
  padding: 0 0 6px;
  background: rgba(255,255,255,.09);
  border-radius: 15px;
  scrollbar-width: thin;
  scrollbar-color: rgba(185,122,232,.55) rgba(255,255,255,.08);
}
.nfn-shows-list::-webkit-scrollbar { height: 7px; }
.nfn-shows-list::-webkit-scrollbar-track { background: rgba(255,255,255,.08); border-radius: 999px; }
.nfn-shows-list::-webkit-scrollbar-thumb { background: rgba(185,122,232,.58); border-radius: 999px; }
.nfn-show-item {
  flex: 0 0 188px;
  scroll-snap-align: start;
  padding: 13px 15px 14px;
}
.nfn-shows-view-all { min-width: 132px; min-height: 92px; }

/* On Repeat + Stay Connected: remove the giant framed slab and tighten the cards */
.nfn-connect-band {
  padding: 34px 0;
  background: #0c0a10;
  border-top: 1px solid rgba(255,255,255,.07);
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.nfn-connect-row {
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: 18px;
  padding: 0;
  border: 0;
  background: transparent;
  align-items: stretch;
}
.nfn-connect-left,
.nfn-connect-right {
  padding: 20px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.12);
  background: linear-gradient(180deg, rgba(126,34,206,.16), rgba(255,255,255,.045));
  box-shadow: none;
}
.nfn-connect-left h3,
.nfn-connect-right h3 { font-size: 25px; line-height: .95; margin: 0; }
.nfn-connect-left p,
.nfn-connect-right p { margin-top: 7px; margin-bottom: 0; line-height: 1.45; }
.nfn-connect-left iframe {
  display: block;
  height: 152px;
  min-height: 0;
  margin-top: 12px;
  border-radius: 13px;
}
.nfn-connect-form,
.mc4wp-form-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  margin-top: 14px;
  align-items: center;
}
.nfn-connect-form input,
.mc4wp-form-fields input[type='email'],
.mc4wp-form-fields input[type='text'] { min-height: 42px; }
.nfn-connect-form button,
.mc4wp-form-fields input[type='submit'],
.mc4wp-form-fields button { min-height: 42px; }
.nfn-connect-social { margin-top: 13px; gap: 10px; }
.nfn-connect-social a { width: 38px; height: 38px; }

/* Footer: put the logo/social block back into the first column and reduce height */
.nfn-footer {
  padding: 34px 0 18px;
  background: #08070c;
}
.nfn-footer-grid {
  grid-template-columns: minmax(220px, 1.1fr) minmax(130px, .7fr) minmax(170px, .85fr) minmax(240px, 1.05fr);
  gap: 26px 36px;
  align-items: start;
}
.nfn-footer-brand {
  grid-column: auto;
  align-items: flex-start;
  text-align: left;
  padding-bottom: 0;
  border-bottom: 0;
}
.nfn-footer-brand .nfn-logo { justify-content: flex-start; }
.nfn-footer-brand p {
  max-width: 270px;
  margin: 13px 0 0;
  line-height: 1.5;
}
.nfn-footer-social {
  justify-content: flex-start;
  margin-top: 13px;
  gap: 9px;
}
.nfn-footer-social a { width: 34px; height: 34px; }
.nfn-footer-col h4 {
  margin-bottom: 11px;
  padding-bottom: 8px;
}
.nfn-footer-col a {
  line-height: 1.25;
  margin-bottom: 7px;
}
.nfn-footer-col p {
  max-width: 300px;
  margin-top: 0;
  line-height: 1.52;
}
.nfn-footer-email-btn {
  margin-top: 12px;
  padding: 9px 13px;
}
.nfn-footer-bottom {
  margin-top: 26px;
  padding-top: 14px;
}

@media (max-width: 1060px) {
  .nfn-shows-inner { grid-template-columns: 1fr; }
  .nfn-shows-view-all { min-height: 44px; width: 100%; }
  .nfn-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .nfn-hero-title { font-size: clamp(26px, 9vw, 36px); }
  .nfn-connect-row { grid-template-columns: 1fr; }
  .nfn-connect-form,
  .mc4wp-form-fields { grid-template-columns: 1fr; }
  .nfn-footer-grid { grid-template-columns: 1fr; gap: 22px; }
  .nfn-footer-brand,
  .nfn-footer-col { text-align: left; align-items: flex-start; }
  .nfn-footer-social { justify-content: flex-start; }
  .nfn-footer-col p { margin-left: 0; margin-right: 0; }
}


/* ===========================
   NFN V2.8 INSPIRATION RESET
   Returns to the cleaner black/white concert-mag inspiration while keeping NFN purple.
=========================== */
:root {
  --nfn-ink: #050505;
  --nfn-charcoal: #0a0a0c;
  --nfn-charcoal-2: #141018;
  --nfn-paper: #f7f5f1;
  --nfn-paper-2: #ffffff;
  --nfn-card: #ffffff;
  --nfn-muted: #5f5f64;
  --nfn-soft: #dedede;
  --nfn-line: rgba(5,5,5,.13);
  --nfn-line-dark: rgba(255,255,255,.14);
  --nfn-purple: #7e22ce;
  --nfn-purple-dark: #6215a5;
  --nfn-purple-soft: #b782ea;
  --nfn-blue: #7e22ce;
  --nfn-gold: #7e22ce;
  --nfn-radius: 8px;
  --nfn-shadow: 0 12px 26px rgba(0,0,0,.08);
}
html { scroll-padding-top: 120px; }
body {
  background: #fff;
  color: var(--nfn-ink);
}
body::before { display: none; }
a:hover { color: var(--nfn-purple); }
.container { width: min(100% - 56px, 1280px); }

/* Header order and feel: nav first, clean update bar underneath */
.nfn-nav {
  position: sticky;
  top: 0;
  background: #050505;
  border-bottom: 1px solid rgba(255,255,255,.12);
  box-shadow: none;
}
.admin-bar .nfn-nav { top: 32px; }
.nfn-nav > .container { width: min(100% - 56px, 1360px); }
.nfn-nav-inner {
  min-height: 74px;
  gap: 32px;
}
.nfn-logo-mark {
  min-width: 72px;
  height: 42px;
  border: 0;
  box-shadow: none;
  font-size: 44px;
  letter-spacing: -2px;
  font-family: 'Barlow Condensed', Impact, sans-serif;
}
.nfn-logo-sub {
  color: #fff;
  font-size: 8px;
  letter-spacing: 1.7px;
  margin-top: 0;
}
.nfn-nav-links a,
.nfn-nav-ul a {
  color: #fff;
  font-size: 15px;
  letter-spacing: .8px;
  padding: 28px 0;
}
.nfn-nav-links a:hover,
.nfn-nav-links .current-menu-item > a,
.nfn-nav-ul .current-menu-item > a {
  color: var(--nfn-purple-soft);
  border-bottom-color: var(--nfn-purple);
  text-decoration: none;
}
.nfn-nav-social a,
#nfnSearchBtn {
  width: 34px;
  height: 34px;
  border: 0;
  color: #fff;
  background: transparent;
}
.nfn-nav-social a:hover,
#nfnSearchBtn:hover { color: var(--nfn-purple-soft); background: transparent; }

.nfn-ticker {
  background: #fff;
  color: #111;
  border-bottom: 1px solid #e8e8e8;
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
}
.nfn-ticker-inner { min-height: 46px; }
.nfn-ticker-label {
  color: var(--nfn-purple);
  letter-spacing: .9px;
}
.nfn-ticker-label::before {
  content: '↯';
  font-family: system-ui, sans-serif;
  font-size: 19px;
  line-height: 1;
}
.nfn-ticker-dot { display: none; }
.nfn-ticker-content { color: #242424; font-size: 13px; }
.nfn-ticker-read-more {
  color: var(--nfn-purple);
  font-size: 12px;
  letter-spacing: .8px;
}

/* Hero: match the inspiration, big black band, photo left, copy right, no card rail */
.nfn-hero {
  padding: 0;
  background: #050505;
}
.nfn-hero .container {
  width: 100%;
  max-width: none;
}
.nfn-hero-shell {
  display: block;
}
.nfn-hero-rail { display: none !important; }
.nfn-hero-main {
  min-height: 430px;
  border-radius: 0;
  border: 0;
  box-shadow: none;
  background: #050505;
}
.nfn-hero-slide {
  display: grid;
  grid-template-columns: minmax(0, 58%) minmax(390px, 42%);
  background: #050505;
}
.nfn-hero-img {
  grid-column: 1;
  grid-row: 1;
  min-height: 430px;
  height: 430px;
  object-fit: cover;
  object-position: center;
  filter: saturate(1.05) contrast(1.02);
}
.nfn-hero-content {
  grid-column: 2;
  grid-row: 1;
  background: #050505;
  color: #fff;
  padding: clamp(38px, 5vw, 76px) clamp(32px, 6vw, 82px) clamp(36px, 5vw, 70px) clamp(34px, 4vw, 60px);
  justify-content: center;
  align-self: stretch;
}
.nfn-hero-eyebrow {
  color: var(--nfn-purple-soft);
  font-size: 11px;
  letter-spacing: 1.1px;
}
.nfn-hero-eyebrow::before { background: var(--nfn-purple); }
.nfn-hero-title {
  max-width: 560px;
  margin: 12px 0 14px;
  font-size: clamp(34px, 4.4vw, 56px);
  line-height: .98;
  letter-spacing: -.55px;
  color: #fff;
}
.nfn-hero-title a:hover { color: #fff; text-decoration-color: var(--nfn-purple-soft); }
.nfn-hero-excerpt {
  max-width: 520px;
  color: rgba(255,255,255,.78);
  font-size: 15px;
  line-height: 1.55;
}
.nfn-hero-actions { margin-top: 26px; gap: 16px; }
.nfn-hero-btn {
  min-height: 42px;
  padding: 0 20px;
  background: var(--nfn-purple);
  border: 1px solid var(--nfn-purple);
  color: #fff;
  border-radius: 4px;
  box-shadow: none;
}
.nfn-hero-btn:hover { background: #fff; border-color: #fff; color: #050505; }
.nfn-hero-meta { color: rgba(255,255,255,.55); }
.nfn-hero-arrow {
  bottom: 24px;
  width: 38px;
  height: 38px;
  border-color: rgba(255,255,255,.22);
  background: rgba(0,0,0,.28);
  color: #fff;
}
.nfn-hero-prev { right: 72px; }
.nfn-hero-next { right: 28px; }
.nfn-hero-arrow:hover { background: var(--nfn-purple); border-color: var(--nfn-purple); }
.nfn-hero-dots { top: 26px; right: 32px; }
.nfn-hero-dot { width: 34px; height: 3px; background: rgba(255,255,255,.34); }
.nfn-hero-dot.is-active { background: var(--nfn-purple); }

/* Sections, sharper and closer to inspiration */
.nfn-section-label {
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 2px solid #111;
}
.nfn-section-label > span {
  font-size: clamp(22px, 2.5vw, 30px);
  letter-spacing: -.15px;
}
.nfn-section-label > span::before {
  width: 4px;
  height: 22px;
  border-radius: 0;
  background: var(--nfn-purple);
  transform: translateY(3px);
}
.view-all,
.nfn-section-label .view-all {
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--nfn-purple);
  font-size: 13px;
  letter-spacing: .8px;
}
.view-all:hover,
.nfn-section-label .view-all:hover { background: transparent; color: #050505; text-decoration: none; }

.nfn-coverage {
  padding: 26px 0 22px;
  background: #fff;
  border-top: 0;
}
.nfn-coverage-scroll {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}
.nfn-coverage-card:first-child {
  grid-column: auto;
  grid-row: auto;
}
.nfn-coverage-card {
  border-radius: 3px;
  border: 1px solid #e1e1e1;
  box-shadow: 0 2px 7px rgba(0,0,0,.06);
}
.nfn-coverage-card:hover {
  transform: translateY(-2px);
  border-color: rgba(126,34,206,.55);
  box-shadow: 0 8px 18px rgba(0,0,0,.1);
}
.nfn-coverage-thumb,
.nfn-coverage-thumb-placeholder,
.nfn-coverage-card:first-child .nfn-coverage-thumb,
.nfn-coverage-card:first-child .nfn-coverage-thumb-placeholder {
  aspect-ratio: 16 / 8.1;
  filter: none;
}
.nfn-coverage-body,
.nfn-coverage-card:first-child .nfn-coverage-body {
  padding: 13px 14px 14px;
}
.nfn-badge {
  color: var(--nfn-purple);
  margin-bottom: 7px;
}
.nfn-badge::before { background: var(--nfn-purple); width: 6px; height: 6px; }
.nfn-coverage-title,
.nfn-coverage-card:first-child .nfn-coverage-title {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.15;
  letter-spacing: -.2px;
  text-transform: none;
  font-weight: 800;
}
.nfn-coverage-excerpt,
.nfn-coverage-card:not(:first-child) .nfn-coverage-excerpt { display: none; }
.nfn-coverage-meta { padding-top: 10px; font-size: 11px; color: #777; }

/* Shows: 10 items, five-ish visible, still scrolls */
.nfn-shows {
  padding: 18px 0;
  background: #050505;
}
.nfn-shows-inner {
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 18px;
}
.nfn-shows-label {
  color: #fff;
  letter-spacing: 1.1px;
}
.nfn-shows-list {
  border-radius: 4px;
  background: #0b0b0d;
  border: 1px solid rgba(255,255,255,.12);
  padding: 0 0 6px;
}
.nfn-show-item {
  flex: 0 0 206px;
  padding: 16px 18px 15px;
  border-right: 1px solid rgba(255,255,255,.12);
}
.nfn-show-month { color: var(--nfn-purple-soft); }
.nfn-show-day { color: #fff; }
.nfn-show-artist { color: #fff; font-size: 16px; }
.nfn-show-venue,
.nfn-show-city { color: rgba(255,255,255,.62); }
.nfn-show-tickets { color: var(--nfn-purple-soft); }
.nfn-shows-view-all {
  min-height: 96px;
  border-radius: 999px;
  border-color: rgba(255,255,255,.24);
  color: #fff;
}
.nfn-shows-view-all:hover { background: var(--nfn-purple); border-color: var(--nfn-purple); }

.nfn-tours {
  padding: 30px 0 28px;
  background: #fff;
}
.nfn-tours-grid { gap: 14px; }
.nfn-tour-card {
  border-radius: 3px;
  border: 1px solid #e1e1e1;
  box-shadow: 0 2px 7px rgba(0,0,0,.06);
}
.nfn-tour-poster { aspect-ratio: 4 / 3; }
.nfn-tour-body { padding: 12px; }
.nfn-tour-artist { font-size: 15px; line-height: 1.06; }
.nfn-tour-link { color: var(--nfn-purple); background: transparent; }

/* One clean dark music/subscribe band, much tighter */
.nfn-connect-band {
  padding: 22px 0;
  background: #050505;
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.nfn-connect-row {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: 0;
  min-height: 128px;
  border-radius: 4px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(126,34,206,.23), rgba(0,0,0,.1) 45%, rgba(0,0,0,.4)),
    #0d0d10;
  border: 1px solid rgba(255,255,255,.14);
}
.nfn-connect-left,
.nfn-connect-right {
  padding: 20px 24px;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.nfn-connect-right { border-left: 1px solid rgba(255,255,255,.12); }
.nfn-connect-left h3,
.nfn-connect-right h3 {
  font-size: 24px;
  letter-spacing: .2px;
}
.nfn-connect-left p,
.nfn-connect-right p { font-size: 13px; margin-top: 6px; color: rgba(255,255,255,.72); }
.nfn-connect-left iframe {
  height: 80px;
  min-height: 0;
  margin-top: 10px;
  border-radius: 6px;
}
.nfn-connect-form,
.mc4wp-form-fields {
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 13px;
  gap: 8px;
}
.nfn-connect-form input,
.mc4wp-form-fields input[type='email'],
.mc4wp-form-fields input[type='text'] {
  min-height: 38px;
  border-radius: 3px;
}
.nfn-connect-form button,
.mc4wp-form-fields input[type='submit'],
.mc4wp-form-fields button {
  min-height: 38px;
  border-radius: 3px;
}
.nfn-connect-social { margin-top: 11px; gap: 8px; }
.nfn-connect-social a { width: 34px; height: 34px; background: rgba(255,255,255,.06); }

.nfn-bottom-section {
  padding: 26px 0 34px;
  background: #fff;
}
.nfn-news-grid { gap: 14px; }
.nfn-news-card {
  border-radius: 3px;
  border: 1px solid #e1e1e1;
  box-shadow: 0 2px 7px rgba(0,0,0,.06);
}
.nfn-news-title { font-family: 'Inter', system-ui, sans-serif; font-size: 15px; line-height: 1.15; text-transform: none; }
.nfn-news-age { color: #777; }

/* Footer: compact like the inspiration, logo back in first column */
.nfn-footer {
  padding: 24px 0 14px;
  background: #050505;
  border-top: 1px solid rgba(255,255,255,.12);
}
.nfn-footer-grid {
  grid-template-columns: minmax(230px, 1.15fr) minmax(130px, .75fr) minmax(200px, .95fr) minmax(260px, 1.1fr);
  gap: 22px 44px;
}
.nfn-footer-brand { align-self: start; }
.nfn-footer-brand .nfn-logo { align-items: flex-start; }
.nfn-footer-brand p {
  max-width: 250px;
  margin: 10px 0 0;
  font-size: 11px;
  line-height: 1.35;
  color: rgba(255,255,255,.64);
}
.nfn-footer-social { margin-top: 12px; gap: 12px; }
.nfn-footer-social a {
  width: 24px;
  height: 24px;
  border: 0;
  background: transparent;
  color: #fff;
}
.nfn-footer-social a:hover { background: transparent; color: var(--nfn-purple-soft); }
.nfn-footer-col h4 {
  color: #fff;
  font-size: 14px;
  letter-spacing: .9px;
  margin: 0 0 9px;
  padding: 0;
  border: 0;
}
.nfn-footer-col a {
  font-size: 12px;
  line-height: 1.15;
  margin-bottom: 5px;
  color: rgba(255,255,255,.72);
}
.nfn-footer-col p {
  font-size: 12px;
  line-height: 1.4;
  color: rgba(255,255,255,.68);
}
.nfn-footer-email-btn {
  display: inline;
  border: 0;
  border-radius: 0;
  padding: 0;
  margin-top: 7px;
  color: #fff;
  text-decoration: underline;
  text-transform: none;
  letter-spacing: 0;
  font-family: inherit;
  font-size: 12px;
}
.nfn-footer-email-btn:hover { background: transparent; color: var(--nfn-purple-soft); }
.nfn-footer-bottom {
  margin-top: 18px;
  padding-top: 12px;
  font-size: 11px;
  color: rgba(255,255,255,.52);
}
.nfn-back-to-top { background: var(--nfn-purple); color: #fff; }

@media (max-width: 1120px) {
  .nfn-coverage-scroll { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .nfn-tours-grid { grid-template-columns: repeat(3, 1fr); }
  .nfn-news-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 980px) {
  .container { width: min(100% - 32px, 1280px); }
  .nfn-hero-slide { grid-template-columns: 1fr; }
  .nfn-hero-img { grid-column: 1; grid-row: 1; min-height: 300px; height: 300px; }
  .nfn-hero-content { grid-column: 1; grid-row: 2; padding: 28px 24px; }
  .nfn-hero-title { font-size: clamp(32px, 8vw, 48px); max-width: 720px; }
  .nfn-hero-excerpt { max-width: 720px; }
  .nfn-shows-inner { grid-template-columns: 1fr; }
  .nfn-shows-view-all { min-height: 42px; border-radius: 3px; }
  .nfn-connect-row { grid-template-columns: 1fr; }
  .nfn-connect-right { border-left: 0; border-top: 1px solid rgba(255,255,255,.12); }
  .nfn-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .nfn-nav > .container { width: min(100% - 24px, 1360px); }
  .nfn-nav-inner { min-height: 64px; gap: 12px; }
  .nfn-logo-mark { min-width: 56px; height: 34px; font-size: 34px; }
  .nfn-coverage-scroll,
  .nfn-tours-grid,
  .nfn-news-grid { grid-template-columns: 1fr; }
  .nfn-coverage-card:first-child { grid-column: auto; }
  .nfn-connect-form,
  .mc4wp-form-fields { grid-template-columns: 1fr; }
  .nfn-footer-grid { grid-template-columns: 1fr; gap: 18px; }
  .nfn-footer-brand,
  .nfn-footer-col { text-align: left; }
  .nfn-footer-social { justify-content: flex-start; }
}


/* ===========================
   NFN V2.9 TIGHTENING
   Hero fit, soft photo-to-black fade, 5-card sections, scroll hints,
   taller player, and compact two-row footer info.
=========================== */

/* Live feed: do not invert to white on hover */
.nfn-ticker-content:hover,
.nfn-ticker-read-more:hover {
  color: var(--nfn-purple) !important;
  background: transparent !important;
  text-decoration: none;
}

/* Hero: keep the inspiration layout, but make the headline/button fit */
.nfn-hero-main {
  min-height: 405px;
}
.nfn-hero-slide {
  grid-template-columns: minmax(0, 58%) minmax(360px, 42%);
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.nfn-hero-slide::after {
  content: '';
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 0;
  left: calc(58% - 170px);
  width: 220px;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(5,5,5,0) 0%, rgba(5,5,5,.72) 56%, #050505 100%);
}
.nfn-hero-img {
  min-height: 405px;
  height: 405px;
  position: relative;
  z-index: 1;
}
.nfn-hero-content {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-width: 0;
  padding: clamp(28px, 4vw, 54px) clamp(28px, 4.6vw, 68px) clamp(28px, 4vw, 54px) clamp(28px, 3.4vw, 48px);
}
.nfn-hero-title {
  max-width: 500px;
  margin: 10px 0 12px;
  font-size: clamp(28px, 3.55vw, 46px);
  line-height: 1;
  letter-spacing: -.35px;
}
.nfn-hero-excerpt {
  max-width: 500px;
  font-size: 14px;
  line-height: 1.48;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nfn-hero-actions {
  margin-top: 20px;
  position: relative;
  z-index: 10;
}
.nfn-hero-btn {
  min-height: 40px;
  padding: 0 18px;
  position: relative;
  z-index: 11;
}
.nfn-hero-arrow { z-index: 12; }
.nfn-hero-dots { z-index: 12; }

/* Latest sections: show five clean cards */
.nfn-coverage-scroll,
.nfn-news-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.nfn-coverage-card,
.nfn-news-card {
  min-width: 0;
}

/* Upcoming shows: cleaner calendar link and subtle scroll affordance */
.nfn-shows-inner {
  position: relative;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: stretch;
}
.nfn-shows-list {
  position: relative;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(198px, 1fr);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  padding: 0 18px 8px 0;
  scrollbar-width: thin;
  scrollbar-color: rgba(185,122,232,.75) rgba(255,255,255,.12);
}
.nfn-shows-list::after {
  content: 'scroll →';
  position: sticky;
  right: 0;
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 76px;
  padding: 0 10px;
  margin-left: -76px;
  color: rgba(255,255,255,.72);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
  background: linear-gradient(90deg, rgba(5,5,5,0), #050505 42%, #050505 100%);
  pointer-events: none;
}
.nfn-show-item {
  scroll-snap-align: start;
  min-width: 198px;
}
.nfn-shows-view-all {
  align-self: center;
  min-height: 0;
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--nfn-purple-soft);
  white-space: nowrap;
}
.nfn-shows-view-all:hover {
  background: transparent;
  border-color: transparent;
  color: #fff;
  text-decoration: none;
}

/* On Repeat / Stay Connected: a little taller player, better spacing */
.nfn-connect-band {
  padding: 24px 0;
}
.nfn-connect-row {
  min-height: 172px;
}
.nfn-connect-left,
.nfn-connect-right {
  padding: 22px 24px;
}
.nfn-connect-left iframe {
  height: 116px;
  min-height: 116px;
  margin-top: 12px;
}
.nfn-connect-form,
.mc4wp-form-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  margin-top: 15px;
}
.nfn-connect-social {
  margin-top: 13px;
}

/* Latest news: five across on desktop */
.nfn-news-grid { gap: 14px; }
.nfn-news-card-thumb { aspect-ratio: 16 / 8.4; }

/* Footer: keep it compact, split Info into two rows, and space the connect email */
.nfn-footer {
  padding: 20px 0 12px;
}
.nfn-footer-grid {
  grid-template-columns: minmax(210px, .9fr) minmax(140px, .55fr) minmax(430px, 1.45fr) minmax(250px, .9fr);
  gap: 18px 34px;
  align-items: start;
}
.nfn-footer-grid > .nfn-footer-col:nth-child(3) {
  display: grid;
  grid-template-columns: repeat(4, max-content);
  gap: 6px 18px;
}
.nfn-footer-grid > .nfn-footer-col:nth-child(3) h4 {
  grid-column: 1 / -1;
}
.nfn-footer-grid > .nfn-footer-col:nth-child(3) a {
  margin: 0;
  white-space: nowrap;
}
.nfn-footer-brand p {
  max-width: 230px;
  margin-top: 8px;
}
.nfn-footer-social { margin-top: 10px; }
.nfn-footer-col h4 { margin-bottom: 8px; }
.nfn-footer-col a { margin-bottom: 4px; }
.nfn-footer-connect p {
  margin-top: 0;
  max-width: 330px;
  line-height: 1.35;
}
.nfn-footer-email-btn {
  display: inline-block;
  margin-top: 12px;
  padding-top: 2px;
  letter-spacing: .35px;
}
.nfn-footer-bottom {
  margin-top: 14px;
  padding-top: 10px;
}

@media (max-width: 1180px) {
  .nfn-coverage-scroll,
  .nfn-news-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .nfn-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nfn-footer-grid > .nfn-footer-col:nth-child(3) { grid-template-columns: repeat(2, max-content); }
}
@media (max-width: 980px) {
  .nfn-hero-main { min-height: auto; }
  .nfn-hero-slide {
    position: relative;
    grid-template-columns: 1fr;
  }
  .nfn-hero-slide::after {
    top: 230px;
    left: 0;
    right: 0;
    bottom: auto;
    width: 100%;
    height: 90px;
    background: linear-gradient(180deg, rgba(5,5,5,0), #050505);
  }
  .nfn-hero-img { min-height: 300px; height: 300px; }
  .nfn-hero-content { background: #050505; padding: 28px 24px 32px; }
  .nfn-hero-title { max-width: 720px; font-size: clamp(30px, 7vw, 46px); }
  .nfn-shows-inner { grid-template-columns: 1fr; gap: 10px; }
  .nfn-shows-view-all { justify-self: start; }
  .nfn-shows-list::after { display: none; }
  .nfn-connect-row { min-height: 0; }
}
@media (max-width: 680px) {
  .container { width: min(100% - 28px, 1280px); }
  .nfn-coverage-scroll,
  .nfn-news-grid { grid-template-columns: 1fr; }
  .nfn-connect-row { grid-template-columns: 1fr; }
  .nfn-connect-right { border-left: 0; border-top: 1px solid rgba(255,255,255,.12); }
  .nfn-connect-form,
  .mc4wp-form-fields { grid-template-columns: 1fr; }
  .nfn-footer-grid { grid-template-columns: 1fr; gap: 16px; }
  .nfn-footer-grid > .nfn-footer-col:nth-child(3) { grid-template-columns: repeat(2, max-content); }
}


/* ===========================
   NFN V3.0 CLEANUP
   Better hero blend, functional shows hint, exact player height,
   stacked info columns, and footer spacing fixes.
=========================== */

/* Hero: stronger photo-to-black blend and a little more room for text/button */
.nfn-hero-slide {
  grid-template-columns: minmax(0, 59%) minmax(350px, 41%);
}
.nfn-hero-slide::after {
  left: calc(59% - 210px);
  width: 300px;
  background: linear-gradient(90deg, rgba(5,5,5,0) 0%, rgba(5,5,5,.45) 28%, rgba(5,5,5,.86) 70%, #050505 100%);
}
.nfn-hero-content {
  padding: clamp(28px, 4vw, 52px) clamp(26px, 4.2vw, 62px) clamp(28px, 4vw, 52px) clamp(24px, 3vw, 42px);
}
.nfn-hero-title {
  max-width: 470px;
  font-size: clamp(26px, 3.15vw, 42px);
  line-height: .98;
}
.nfn-hero-excerpt {
  max-width: 470px;
  font-size: 13.5px;
  line-height: 1.46;
}
.nfn-hero-actions {
  margin-top: 16px;
  gap: 14px;
}

/* Upcoming shows: real subtle scroll control plus better affordance */
.nfn-shows-inner {
  gap: 14px;
}
.nfn-shows-scroll-wrap {
  position: relative;
  min-width: 0;
}
.nfn-shows-list {
  padding: 0 20px 10px 0;
}
.nfn-shows-scroll-wrap::after {
  content: '';
  position: absolute;
  top: 1px;
  right: 1px;
  bottom: 10px;
  width: 96px;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(5,5,5,0) 0%, rgba(5,5,5,.6) 42%, #050505 100%);
}
.nfn-shows-list::after {
  display: none;
}
.nfn-shows-scroll-hint {
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  z-index: 4;
  appearance: none;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(10,10,12,.72);
  color: rgba(255,255,255,.82);
  border-radius: 999px;
  min-height: 30px;
  padding: 0 12px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity .22s ease, transform .22s ease, background .22s ease, color .22s ease;
}
.nfn-shows-scroll-hint:hover {
  background: rgba(126,34,206,.88);
  color: #fff;
}
.nfn-shows-scroll-hint.is-hidden {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-50%) translateX(8px);
}
.nfn-shows-view-all {
  align-self: center;
}

/* On Repeat / newsletter band */
.nfn-connect-row {
  min-height: 208px;
}
.nfn-connect-left iframe {
  height: 152px;
  min-height: 152px;
}
.nfn-connect-right {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.nfn-connect-social {
  margin-top: 14px;
}

/* Footer: info links in two vertical columns, with clearer connect spacing */
.nfn-footer-grid {
  grid-template-columns: minmax(210px, .95fr) minmax(150px, .62fr) minmax(300px, 1.05fr) minmax(250px, .95fr);
  gap: 18px 28px;
}
.nfn-footer-grid > .nfn-footer-col:nth-child(3) {
  display: grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(4, auto);
  grid-template-columns: repeat(2, max-content);
  gap: 6px 28px;
  align-content: start;
}
.nfn-footer-grid > .nfn-footer-col:nth-child(3) h4 {
  grid-column: 1 / -1;
  grid-row: 1;
  margin-bottom: 6px;
}
.nfn-footer-grid > .nfn-footer-col:nth-child(3) a {
  margin: 0;
  white-space: nowrap;
}
.nfn-footer-connect p {
  margin-top: 0;
  margin-bottom: 0;
  max-width: 320px;
  line-height: 1.45;
}
.nfn-footer-email-btn {
  display: inline-block;
  margin-top: 16px;
  padding-top: 0;
}

@media (max-width: 1180px) {
  .nfn-footer-grid > .nfn-footer-col:nth-child(3) {
    grid-auto-flow: row;
    grid-template-rows: none;
    grid-template-columns: repeat(2, max-content);
  }
}
@media (max-width: 980px) {
  .nfn-hero-slide::after {
    top: 210px;
    left: 0;
    right: 0;
    width: 100%;
    height: 110px;
    background: linear-gradient(180deg, rgba(5,5,5,0), rgba(5,5,5,.88) 62%, #050505 100%);
  }
  .nfn-shows-scroll-wrap::after { display: none; }
  .nfn-shows-scroll-hint { display: none; }
}
@media (max-width: 680px) {
  .nfn-footer-grid > .nfn-footer-col:nth-child(3) {
    grid-auto-flow: row;
    grid-template-columns: repeat(2, minmax(0, max-content));
    gap: 6px 18px;
  }
}


/* ===========================
   NFN V3.1 CORRECTIONS
   Taller hero for portrait crops, no upcoming-show scroll,
   reset-style connect spacing, and 4x4 footer info links.
=========================== */

/* Hero: taller and safer for vertical/5x8 images */
.nfn-hero-main {
  min-height: 470px;
}
.nfn-hero-slide {
  grid-template-columns: minmax(0, 59%) minmax(350px, 41%);
}
.nfn-hero-img {
  min-height: 470px;
  height: 470px;
  object-position: center 24%;
}
.nfn-hero-slide::after {
  left: calc(59% - 245px);
  width: 360px;
  background: linear-gradient(90deg, rgba(5,5,5,0) 0%, rgba(5,5,5,.34) 22%, rgba(5,5,5,.75) 58%, #050505 100%);
}
.nfn-hero-content {
  padding-top: clamp(34px, 4.6vw, 62px);
  padding-bottom: clamp(34px, 4.6vw, 62px);
}

/* Upcoming Shows: remove the forced scroll and show a clean fixed row */
.nfn-shows-inner {
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 18px;
  align-items: stretch;
}
.nfn-shows-scroll-wrap,
.nfn-shows-scroll-wrap::after,
.nfn-shows-scroll-hint {
  display: none !important;
}
.nfn-shows-list {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  grid-auto-flow: row;
  grid-auto-columns: unset;
  overflow: visible !important;
  padding: 0 !important;
  scrollbar-width: none;
}
.nfn-shows-list::-webkit-scrollbar { display: none; }
.nfn-show-item {
  min-width: 0;
  flex: none;
  scroll-snap-align: none;
}
.nfn-shows-view-all {
  align-self: center;
  padding-left: 10px;
}

/* On Repeat / Stay Connected: spaced closer to the reset version, while keeping 152px player */
.nfn-connect-band {
  padding: 30px 0;
}
.nfn-connect-row {
  min-height: 236px;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: 0;
  border-radius: 3px;
}
.nfn-connect-left,
.nfn-connect-right {
  padding: 28px 32px;
}
.nfn-connect-left h3,
.nfn-connect-right h3 {
  margin-bottom: 4px;
}
.nfn-connect-left p,
.nfn-connect-right p {
  margin-top: 0;
  margin-bottom: 12px;
}
.nfn-connect-left iframe {
  height: 152px;
  min-height: 152px;
  margin-top: 0;
}
.nfn-connect-form,
.mc4wp-form-fields {
  margin-top: 20px;
  gap: 10px;
}
.nfn-connect-social {
  margin-top: 18px;
  gap: 10px;
}

/* Footer: Info = two columns of four links, not 3/3/2 */
.nfn-footer-grid {
  grid-template-columns: minmax(210px, .95fr) minmax(150px, .65fr) minmax(300px, 1.05fr) minmax(260px, 1fr);
  gap: 18px 30px;
}
.nfn-footer-info {
  display: block !important;
}
.nfn-footer-info-links {
  display: grid;
  grid-template-columns: repeat(2, max-content);
  grid-template-rows: repeat(4, auto);
  grid-auto-flow: column;
  gap: 6px 32px;
  align-items: start;
}
.nfn-footer-info-links a {
  margin: 0 !important;
  white-space: nowrap;
}
.nfn-footer-connect p {
  margin-bottom: 0;
  line-height: 1.45;
}
.nfn-footer-email-btn {
  margin-top: 18px !important;
}

@media (max-width: 1120px) {
  .nfn-shows-inner { grid-template-columns: 1fr; }
  .nfn-shows-label { margin-bottom: 0; }
  .nfn-shows-view-all { justify-self: start; padding-left: 0; }
  .nfn-shows-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nfn-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .nfn-hero-img {
    min-height: 360px;
    height: 360px;
    object-position: center 20%;
  }
  .nfn-hero-slide::after {
    top: 250px;
    height: 130px;
  }
  .nfn-connect-row { grid-template-columns: 1fr; }
  .nfn-connect-left,
  .nfn-connect-right { padding: 24px; }
}
@media (max-width: 680px) {
  .nfn-shows-list { grid-template-columns: 1fr; }
  .nfn-footer-info-links { grid-template-columns: repeat(2, minmax(0, max-content)); gap: 6px 20px; }
}


/* ===========================
   NFN V3.2 HERO 4x6 IMAGE SAFETY
   Uses a safer crop for normal hero images and prevents portrait
   featured images from chopping heads in the hero.
=========================== */

.nfn-hero-main {
  min-height: 500px;
}
.nfn-hero-img {
  min-height: 500px;
  height: 500px;
  object-position: center top;
}

/* Portrait featured images, including 4x6 crops, stay fully visible inside the image side. */
.nfn-hero-slide.is-portrait-hero .nfn-hero-img {
  object-fit: contain;
  object-position: center center;
  background: #050505;
}

@media (max-width: 980px) {
  .nfn-hero-img {
    min-height: 380px;
    height: 380px;
    object-position: center top;
  }
  .nfn-hero-slide.is-portrait-hero .nfn-hero-img {
    object-fit: contain;
  }
  .nfn-hero-slide::after {
    top: 270px;
    height: 130px;
  }
}


/* ===========================
   NFN V3.3 AMP-STYLE HERO BLEND + NEWS TICKER
   Hero image now bleeds under the right-side words with a smoother
   AMP-style dark gradient, while the ticker always uses the newest news post.
=========================== */

.nfn-hero-main {
  min-height: 530px;
}
.nfn-hero-slide {
  grid-template-columns: minmax(0, 60%) minmax(360px, 40%);
  background: #050505;
}
.nfn-hero-img {
  grid-column: 1 / -1;
  grid-row: 1;
  width: 100%;
  min-height: 530px;
  height: 530px;
  object-fit: cover;
  object-position: center top;
}
.nfn-hero-overlay {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(5,5,5,.12) 0%, rgba(5,5,5,.05) 28%, rgba(5,5,5,.36) 48%, rgba(5,5,5,.86) 70%, #050505 100%),
    linear-gradient(180deg, rgba(0,0,0,.14) 0%, rgba(0,0,0,.06) 34%, rgba(0,0,0,.34) 100%);
}
.nfn-hero-slide::after {
  display: none;
}
.nfn-hero-content {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  z-index: 3;
  background: transparent;
  padding: clamp(30px, 4.1vw, 56px) clamp(28px, 4vw, 54px) clamp(30px, 4.1vw, 56px) clamp(26px, 3.2vw, 42px);
}
.nfn-hero-title {
  max-width: 480px;
  font-size: clamp(28px, 3.3vw, 46px);
}
.nfn-hero-excerpt {
  max-width: 470px;
}
.nfn-hero-slide.is-portrait-hero .nfn-hero-img {
  object-fit: contain;
  object-position: left center;
  background: #050505;
}

@media (max-width: 980px) {
  .nfn-hero-main {
    min-height: auto;
  }
  .nfn-hero-img {
    min-height: 390px;
    height: 390px;
    object-position: center top;
  }
  .nfn-hero-slide.is-portrait-hero .nfn-hero-img {
    object-fit: contain;
    object-position: center top;
  }
  .nfn-hero-overlay {
    background:
      linear-gradient(180deg, rgba(5,5,5,.08) 0%, rgba(5,5,5,0) 36%, rgba(5,5,5,.8) 74%, #050505 100%),
      linear-gradient(90deg, rgba(5,5,5,0), rgba(5,5,5,0));
  }
  .nfn-hero-content {
    background: #050505;
    padding: 28px 24px 32px;
  }
}


/* ===========================
   NFN V3.4 HERO SEAM + AUTHOR META
   Removes the harsh hero seam and swaps time/read meta to author bylines.
=========================== */

.nfn-hero-overlay {
  background:
    linear-gradient(90deg, rgba(5,5,5,.1) 0%, rgba(5,5,5,.03) 28%, rgba(5,5,5,.22) 46%, rgba(5,5,5,.62) 60%, rgba(5,5,5,.9) 72%, #050505 100%),
    linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.05) 34%, rgba(0,0,0,.28) 100%);
}
.nfn-hero-content {
  background: linear-gradient(90deg, rgba(5,5,5,0) 0%, rgba(5,5,5,.22) 6%, rgba(5,5,5,.82) 22%, #050505 40%, #050505 100%);
}
.nfn-hero-content::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: -140px;
  width: 180px;
  background: linear-gradient(90deg, rgba(5,5,5,0) 0%, rgba(5,5,5,.22) 28%, rgba(5,5,5,.72) 68%, #050505 100%);
  pointer-events: none;
}
.nfn-hero-meta {
  color: rgba(255,255,255,.72);
  font-size: 13px;
  letter-spacing: .2px;
}
.nfn-coverage-author {
  display: block;
  padding-top: 8px;
  color: #777;
  font-size: 12px;
  letter-spacing: .15px;
}
.nfn-coverage-author svg {
  display: none;
}

@media (max-width: 980px) {
  .nfn-hero-content {
    background: #050505;
  }
  .nfn-hero-content::before {
    display: none;
  }
}


/* ===========================
   NFN V3.5 HERO RESET
   Brings back the AMP-style gradient blend, tones down the oversized photo,
   and keeps the right-side copy on a smoother fade.
=========================== */

.nfn-hero-main {
  min-height: 470px;
}
.nfn-hero-slide {
  grid-template-columns: minmax(0, 59%) minmax(390px, 41%);
  background: #050505;
}
.nfn-hero-img {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  min-height: 470px;
  height: 470px;
  object-fit: cover;
  object-position: center 18%;
  filter: saturate(1.05) contrast(1.02);
}
.nfn-hero-overlay {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(90deg,
      rgba(5,5,5,.02) 0%,
      rgba(5,5,5,.03) 34%,
      rgba(5,5,5,.14) 48%,
      rgba(5,5,5,.38) 56%,
      rgba(5,5,5,.72) 63%,
      rgba(5,5,5,.94) 71%,
      #050505 80%,
      #050505 100%),
    linear-gradient(180deg, rgba(0,0,0,.08) 0%, rgba(0,0,0,.03) 32%, rgba(0,0,0,.24) 100%);
}
.nfn-hero-slide::after {
  display: none !important;
}
.nfn-hero-content {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  z-index: 3;
  background: transparent;
  padding: clamp(34px, 4.2vw, 58px) clamp(34px, 4.2vw, 60px) clamp(34px, 4vw, 56px) clamp(32px, 3.3vw, 44px);
}
.nfn-hero-content::before {
  display: none !important;
}
.nfn-hero-title {
  max-width: 470px;
  font-size: clamp(28px, 3.1vw, 44px);
}
.nfn-hero-excerpt {
  max-width: 455px;
}
.nfn-hero-actions {
  margin-top: 18px;
}
.nfn-hero-meta {
  padding-left: 2px;
}

/* Portrait/4x6 hero images stay visible without blowing up too much. */
.nfn-hero-slide.is-portrait-hero .nfn-hero-img {
  object-fit: contain;
  object-position: center top;
  background: #050505;
}

@media (max-width: 980px) {
  .nfn-hero-main {
    min-height: auto;
  }
  .nfn-hero-slide {
    grid-template-columns: 1fr;
  }
  .nfn-hero-img {
    grid-column: 1;
    min-height: 350px;
    height: 350px;
    object-position: center top;
  }
  .nfn-hero-slide.is-portrait-hero .nfn-hero-img {
    object-fit: contain;
  }
  .nfn-hero-overlay {
    background:
      linear-gradient(180deg, rgba(5,5,5,.06) 0%, rgba(5,5,5,0) 34%, rgba(5,5,5,.82) 76%, #050505 100%),
      linear-gradient(90deg, rgba(5,5,5,0), rgba(5,5,5,0));
  }
  .nfn-hero-content {
    background: #050505;
    padding: 28px 24px 32px;
  }
}


/* ===========================
   NFN V3.6 HERO AMP GRADIENT
   Keep the better image size, but let the image run under the right side
   so the fade behaves like AMP instead of a hard split.
=========================== */

.nfn-hero-main {
  min-height: 430px;
}
.nfn-hero-slide {
  grid-template-columns: minmax(0, 60%) minmax(380px, 40%);
  background: #050505;
  overflow: hidden;
}
.nfn-hero-img {
  grid-column: 1 / -1;
  grid-row: 1;
  width: 100%;
  min-height: 430px;
  height: 430px;
  object-fit: cover;
  object-position: center 40%;
  filter: saturate(1.05) contrast(1.02);
}
.nfn-hero-overlay {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(90deg,
      rgba(5,5,5,0) 0%,
      rgba(5,5,5,.02) 26%,
      rgba(5,5,5,.08) 40%,
      rgba(5,5,5,.22) 50%,
      rgba(5,5,5,.48) 58%,
      rgba(5,5,5,.78) 65%,
      rgba(5,5,5,.94) 72%,
      #050505 80%,
      #050505 100%),
    linear-gradient(180deg,
      rgba(0,0,0,.08) 0%,
      rgba(0,0,0,.04) 34%,
      rgba(0,0,0,.22) 100%);
}
.nfn-hero-content {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  z-index: 3;
  background: transparent;
  padding: clamp(34px, 4.2vw, 58px) clamp(34px, 4.2vw, 60px) clamp(34px, 4vw, 56px) clamp(32px, 3.3vw, 44px);
}
.nfn-hero-content::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg,
    rgba(5,5,5,0) 0%,
    rgba(5,5,5,.18) 10%,
    rgba(5,5,5,.58) 28%,
    rgba(5,5,5,.9) 52%,
    #050505 76%,
    #050505 100%);
  pointer-events: none;
}
.nfn-hero-title {
  max-width: 470px;
  font-size: clamp(28px, 3.1vw, 44px);
}
.nfn-hero-excerpt {
  max-width: 455px;
}

/* Keep portrait/4x6 images from getting mangled while still allowing the fade. */
.nfn-hero-slide.is-portrait-hero .nfn-hero-img {
  object-fit: cover;
  object-position: center top;
}

@media (max-width: 980px) {
  .nfn-hero-main {
    min-height: auto;
  }
  .nfn-hero-slide {
    grid-template-columns: 1fr;
  }
  .nfn-hero-img {
    grid-column: 1;
    min-height: 350px;
    height: 350px;
    object-position: center top;
  }
  .nfn-hero-overlay {
    background:
      linear-gradient(180deg, rgba(5,5,5,.06) 0%, rgba(5,5,5,0) 34%, rgba(5,5,5,.82) 76%, #050505 100%),
      linear-gradient(90deg, rgba(5,5,5,0), rgba(5,5,5,0));
  }
  .nfn-hero-content {
    background: #050505;
    padding: 28px 24px 32px;
  }
  .nfn-hero-content::before {
    display: none;
  }
}


/* ===========================
   NFN V3.7 INNER PAGE SYSTEM
   Archive pages, info pages, contact, login, calendar, and legal pages.
=========================== */

.nfn-template-page {
  background: #f6f3ee;
  color: #111;
}
.nfn-inner-hero {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(90deg, #050505 0%, #050505 58%, rgba(126,34,206,.18) 100%),
    #050505;
  color: #fff;
  padding: 58px 0 54px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.nfn-inner-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 82% 30%, rgba(126,34,206,.28), transparent 36%),
    linear-gradient(180deg, rgba(255,255,255,.06), transparent 42%);
  opacity: .85;
}
.nfn-inner-hero .container {
  position: relative;
  z-index: 2;
  max-width: 1280px;
}
.nfn-inner-hero span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--nfn-purple-soft);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1.4px;
  text-transform: uppercase;
}
.nfn-inner-hero span::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--nfn-purple);
}
.nfn-inner-hero h1 {
  max-width: 760px;
  margin: 12px 0 12px;
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(44px, 6vw, 80px);
  line-height: .94;
  text-transform: uppercase;
  letter-spacing: -.5px;
}
.nfn-inner-hero p {
  max-width: 680px;
  margin: 0;
  color: rgba(255,255,255,.74);
  font-size: 16px;
  line-height: 1.55;
}
.nfn-inner-hero-compact {
  padding: 44px 0 42px;
}
.nfn-inner-hero-compact h1 {
  font-size: clamp(38px, 5vw, 62px);
}
.nfn-inner-body {
  padding: 34px 0 52px;
}
.nfn-page-section-label {
  margin-bottom: 22px;
}
.nfn-page-grid,
.nfn-archive-grid.nfn-page-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}
.nfn-page-card {
  border-radius: 4px;
}
.nfn-page-card .nfn-coverage-thumb {
  aspect-ratio: 16 / 8.8;
}
.nfn-coverage-author {
  display: block;
  padding-top: 8px;
  color: #777;
  font-size: 12px;
  letter-spacing: .15px;
}
.nfn-coverage-author svg { display: none; }
.nfn-empty-state {
  grid-column: 1 / -1;
  margin: 0;
  padding: 28px;
  background: #fff;
  border: 1px solid #e4e0d8;
  color: #666;
}
.nfn-pagination {
  display: flex;
  justify-content: center;
  gap: 8px;
  padding-top: 30px;
}
.nfn-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid #d9d4cb;
  background: #fff;
  color: #111;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .6px;
  text-transform: uppercase;
}
.nfn-pagination .page-numbers.current,
.nfn-pagination .page-numbers:hover {
  background: var(--nfn-purple);
  border-color: var(--nfn-purple);
  color: #fff;
}

.nfn-info-layout,
.nfn-contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  gap: 28px;
  align-items: start;
}
.nfn-info-main,
.nfn-contact-form-card,
.nfn-login-card,
.nfn-calendar-shell,
.nfn-legal-content {
  background: #fff;
  border: 1px solid #e4e0d8;
  border-radius: 4px;
  box-shadow: 0 8px 24px rgba(0,0,0,.05);
}
.nfn-info-main,
.nfn-legal-content {
  padding: clamp(24px, 4vw, 42px);
}
.nfn-info-side {
  display: grid;
  gap: 14px;
}
.nfn-info-card,
.nfn-contact-side {
  background: #050505;
  color: #fff;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 4px;
  padding: 22px;
}
.nfn-info-card strong,
.nfn-contact-side h2 {
  display: block;
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 24px;
  font-weight: 800;
  letter-spacing: .4px;
  text-transform: uppercase;
}
.nfn-info-card span,
.nfn-contact-side p {
  display: block;
  margin-top: 8px;
  color: rgba(255,255,255,.68);
  font-size: 13px;
  line-height: 1.55;
}
.nfn-page-content h2 {
  margin: 30px 0 12px;
  padding-left: 12px;
  border-left: 4px solid var(--nfn-purple);
  color: #111;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 28px;
  font-weight: 800;
  letter-spacing: .4px;
  line-height: 1;
  text-transform: uppercase;
}
.nfn-page-content p,
.nfn-page-content li {
  color: #313131;
  font-size: 16px;
  line-height: 1.72;
}
.nfn-page-content a {
  color: var(--nfn-purple);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.nfn-contact-side {
  position: sticky;
  top: 120px;
}
.nfn-contact-direct {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.12);
}
.nfn-contact-direct span {
  display: block;
  color: var(--nfn-purple-soft);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.nfn-contact-direct a {
  display: inline-block;
  margin-top: 8px;
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.nfn-contact-form-card,
.nfn-login-card,
.nfn-calendar-shell {
  padding: clamp(22px, 3vw, 34px);
}
.nfn-contact-form {
  display: grid;
  gap: 16px;
}
.nfn-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.nfn-contact-form label,
.nfn-login-card label {
  display: grid;
  gap: 7px;
  color: #333;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1.1px;
  text-transform: uppercase;
}
.nfn-contact-form input,
.nfn-contact-form select,
.nfn-contact-form textarea,
.nfn-login-card input[type='text'],
.nfn-login-card input[type='password'] {
  width: 100%;
  min-height: 44px;
  border: 1px solid #d8d2c8;
  background: #fbfaf7;
  color: #111;
  padding: 11px 13px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  text-transform: none;
  letter-spacing: 0;
}
.nfn-contact-form textarea {
  resize: vertical;
}
.nfn-contact-form button,
.nfn-login-card input[type='submit'],
.nfn-pill-button {
  justify-self: start;
  border: 0;
  border-radius: 4px;
  background: var(--nfn-purple);
  color: #fff;
  padding: 12px 24px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  cursor: pointer;
}
.nfn-contact-form button:hover,
.nfn-login-card input[type='submit']:hover,
.nfn-pill-button:hover {
  background: #050505;
  color: #fff;
  text-decoration: none;
}
.nfn-form-notice {
  margin: 0 0 18px;
  padding: 12px 14px;
  border-left: 4px solid var(--nfn-purple);
  background: #f5effb;
  color: #3d2352;
}
.nfn-form-notice.error {
  border-left-color: #be123c;
  background: #fff1f2;
  color: #7f1d1d;
}
.nfn-login-shell,
.nfn-legal-container {
  max-width: 860px;
}
.nfn-login-help,
.nfn-login-actions {
  margin-top: 18px;
  color: #666;
  font-size: 13px;
}
.nfn-login-help a,
.nfn-login-actions a {
  color: var(--nfn-purple);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.nfn-calendar-shell {
  min-height: 260px;
}

@media (max-width: 1180px) {
  .nfn-page-grid,
  .nfn-archive-grid.nfn-page-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .nfn-page-grid,
  .nfn-archive-grid.nfn-page-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1080px) {
  .nfn-info-layout,
  .nfn-contact-layout { grid-template-columns: 1fr; }
  .nfn-contact-side { position: static; }
}
@media (max-width: 680px) {
  .nfn-inner-hero { padding: 42px 0 38px; }
  .nfn-page-grid,
  .nfn-archive-grid.nfn-page-grid,
  .nfn-form-grid { grid-template-columns: 1fr; }
  .nfn-info-main,
  .nfn-contact-form-card,
  .nfn-login-card,
  .nfn-calendar-shell,
  .nfn-legal-content { padding: 22px; }
}


/* ===========================
   NFN V3.8 PAGE / SHARE POLISH
   Smaller inner page headers, proper Follow NFN socials, and cleaner share buttons.
=========================== */

.nfn-inner-hero {
  padding: 42px 0 40px;
}
.nfn-inner-hero h1 {
  max-width: 760px;
  font-size: clamp(36px, 4.7vw, 58px);
  line-height: .96;
  margin: 10px 0 10px;
}
.nfn-inner-hero p {
  max-width: 640px;
  font-size: 15px;
}
.nfn-inner-hero-compact {
  padding: 34px 0 32px;
}
.nfn-inner-hero-compact h1 {
  font-size: clamp(34px, 4.2vw, 50px);
}

.nfn-single-hero {
  padding: 44px 0 30px;
}
.nfn-single-hero h1,
.nfn-archive-header h1,
.nfn-page-wrap h1 {
  font-size: clamp(38px, 6vw, 62px);
  line-height: .94;
}
.nfn-single-meta {
  margin-top: 14px;
}

.nfn-share-buttons {
  gap: 8px;
  margin-top: 18px;
}
.nfn-share-buttons > span {
  margin-right: 2px;
  color: #6d6660;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1.2px;
}
.nfn-share-btn {
  min-height: 34px;
  border-color: #d8d2c8;
  background: #fff;
  color: #111;
  border-radius: 999px;
  padding: 0 12px;
  gap: 7px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .6px;
  text-transform: uppercase;
  box-shadow: none;
}
.nfn-share-btn svg {
  width: 13px;
  height: 13px;
  flex: 0 0 auto;
}
.nfn-share-btn:hover {
  background: var(--nfn-purple);
  border-color: var(--nfn-purple);
  color: #fff;
  text-decoration: none;
}

.nfn-follow-card p {
  margin: 0 0 15px;
  color: #666;
  font-size: 12px;
  line-height: 1.6;
}
.nfn-sidebar-social {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 2px;
}
.nfn-sidebar-social a {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #e0dbd2;
  border-radius: 999px;
  background: #fff;
  color: #111;
}
.nfn-sidebar-social a:hover {
  background: var(--nfn-purple);
  border-color: var(--nfn-purple);
  color: #fff;
}
.nfn-sidebar-social svg {
  width: 15px;
  height: 15px;
  fill: currentColor;
}

@media (max-width: 680px) {
  .nfn-inner-hero {
    padding: 34px 0 32px;
  }
  .nfn-inner-hero h1 {
    font-size: clamp(34px, 12vw, 48px);
  }
  .nfn-single-hero h1,
  .nfn-archive-header h1,
  .nfn-page-wrap h1 {
    font-size: clamp(34px, 12vw, 52px);
  }
}


/* ===========================
   NFN V3.9 PAGE RHYTHM CLEANUP
   Less repeated page language, smaller page heroes, and cleaner share/social UI.
=========================== */

.nfn-inner-hero {
  padding: 34px 0 34px;
}
.nfn-inner-hero span {
  margin-bottom: 8px;
}
.nfn-inner-hero h1 {
  font-size: clamp(32px, 4vw, 48px);
  line-height: .98;
  margin: 6px 0 8px;
  max-width: 720px;
}
.nfn-inner-hero p {
  font-size: 14px;
  line-height: 1.55;
  max-width: 620px;
}

.nfn-page-section-label {
  margin-bottom: 18px;
}
.nfn-page-section-label span {
  font-size: clamp(24px, 3vw, 34px);
}

/* Share buttons: cleaner and more intentional on single posts */
.nfn-share-buttons {
  align-items: center;
  gap: 10px;
  margin-top: 18px;
}
.nfn-share-buttons > span {
  margin-right: 0;
  color: #706961;
}
.nfn-share-btn {
  min-height: 36px;
  padding: 0 13px;
  border: 1px solid #d7d0c7;
  background: #fff;
  color: #111;
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
}
.nfn-share-btn svg {
  width: 14px;
  height: 14px;
}
.nfn-share-btn span {
  line-height: 1;
}

/* Follow NFN sidebar social row */
.nfn-follow-card .nfn-sidebar-social {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #eee8df;
}
.nfn-follow-card .nfn-sidebar-social a {
  width: 38px;
  height: 38px;
}

/* Single hero still bold, but less billboard-sized */
.nfn-single-hero h1,
.nfn-archive-header h1,
.nfn-page-wrap h1 {
  font-size: clamp(36px, 5.2vw, 56px);
}

@media (max-width: 680px) {
  .nfn-inner-hero {
    padding: 30px 0 28px;
  }
  .nfn-inner-hero h1 {
    font-size: clamp(30px, 10vw, 42px);
  }
  .nfn-page-section-label span {
    font-size: clamp(23px, 8vw, 30px);
  }
}


/* ===========================
   NFN V4.1 SITE HEADER LOCK
   One consistent page-header size across NFN pages.
=========================== */

.nfn-inner-hero,
.nfn-inner-hero-compact {
  padding: 32px 0 32px !important;
  background:
    radial-gradient(circle at 78% 28%, rgba(126,34,206,.24), transparent 36%),
    linear-gradient(90deg, #050505 0%, #050505 58%, rgba(126,34,206,.16) 100%),
    #050505 !important;
}
.nfn-inner-hero .container {
  width: min(92%, 1280px) !important;
}
.nfn-inner-hero span {
  margin: 0 0 8px !important;
  font-size: 13px !important;
  letter-spacing: 1.4px !important;
  line-height: 1 !important;
}
.nfn-inner-hero h1,
.nfn-inner-hero-compact h1 {
  max-width: 680px !important;
  margin: 6px 0 8px !important;
  font-size: clamp(30px, 3.6vw, 42px) !important;
  line-height: .98 !important;
  letter-spacing: -.25px !important;
}
.nfn-inner-hero p {
  max-width: 620px !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
}
.nfn-single-hero h1,
.nfn-archive-header h1,
.nfn-page-wrap h1 {
  font-size: clamp(32px, 4vw, 48px) !important;
  line-height: .96 !important;
}
@media (max-width: 680px) {
  .nfn-inner-hero,
  .nfn-inner-hero-compact {
    padding: 30px 0 28px !important;
  }
  .nfn-inner-hero h1,
  .nfn-inner-hero-compact h1 {
    font-size: clamp(30px, 10vw, 40px) !important;
  }
  .nfn-single-hero h1,
  .nfn-archive-header h1,
  .nfn-page-wrap h1 {
    font-size: clamp(32px, 11vw, 44px) !important;
  }
}


/* ===========================
   NFN V4.2 SITE HEADER FINAL LOCK
   One shared inner-page header size for every page template.
=========================== */

body .nfn-inner-hero,
body .nfn-inner-hero-compact {
  padding: 32px 0 32px !important;
  background:
    radial-gradient(circle at 78% 28%, rgba(126,34,206,.24), transparent 36%),
    linear-gradient(90deg, #050505 0%, #050505 58%, rgba(126,34,206,.16) 100%),
    #050505 !important;
  border-bottom: 0 !important;
}
body .nfn-inner-hero .container {
  width: min(92%, 1280px) !important;
  max-width: 1280px !important;
}
body .nfn-inner-hero span {
  margin: 0 0 8px !important;
  font-size: 13px !important;
  letter-spacing: 1.4px !important;
  line-height: 1 !important;
}
body .nfn-inner-hero h1,
body .nfn-inner-hero-compact h1 {
  max-width: 680px !important;
  margin: 6px 0 8px !important;
  font-size: clamp(30px, 3.6vw, 42px) !important;
  line-height: .98 !important;
  letter-spacing: -.25px !important;
}
body .nfn-inner-hero p {
  max-width: 620px !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
}
@media (max-width: 680px) {
  body .nfn-inner-hero,
  body .nfn-inner-hero-compact {
    padding: 30px 0 28px !important;
  }
  body .nfn-inner-hero h1,
  body .nfn-inner-hero-compact h1 {
    font-size: clamp(30px, 10vw, 40px) !important;
  }
}


/* ===========================
   NFN V4.3 HEADER LABEL CLEANUP
   Removes redundant kicker-label spacing so page headers lead with the page title.
=========================== */
body .nfn-inner-hero h1,
body .nfn-inner-hero-compact h1 {
  margin-top: 0 !important;
}
body .nfn-inner-hero > .container > span:first-child {
  display: none !important;
}


/* ===========================
   NFN V4.4 ABOUT PAGE POLISH
   Turns the About section cards into linked editorial cards and adds a tighter
   branded band without changing the global header system.
=========================== */

.nfn-about-page .nfn-inner-body {
  padding-bottom: 58px;
}
.nfn-about-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(330px, .98fr);
  gap: 28px;
  align-items: stretch;
}
.nfn-about-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 325px;
}
.nfn-about-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-top: 28px;
}
.nfn-about-text-link {
  color: var(--nfn-purple-dark);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .8px;
  text-transform: uppercase;
  text-decoration: none;
}
.nfn-about-text-link:hover {
  color: #111;
}
.nfn-about-side {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.nfn-about-section-card {
  position: relative;
  display: grid;
  gap: 7px;
  min-height: 122px;
  padding: 20px 22px;
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 20%, rgba(126,34,206,.35), transparent 35%),
    linear-gradient(135deg, #050505 0%, #08070b 70%, #17051f 100%);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 6px;
  color: #fff;
  text-decoration: none;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.nfn-about-section-card::after {
  content: '';
  position: absolute;
  right: -38px;
  top: -48px;
  width: 145px;
  height: 145px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 999px;
}
.nfn-about-section-card:hover {
  transform: translateY(-3px);
  border-color: rgba(168,85,247,.7);
  box-shadow: 0 18px 34px rgba(8,7,12,.16);
}
.nfn-about-card-kicker {
  color: var(--nfn-purple-soft);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.nfn-about-section-card strong {
  position: relative;
  z-index: 1;
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(25px, 2.3vw, 34px);
  font-weight: 900;
  line-height: .95;
  text-transform: uppercase;
}
.nfn-about-section-card em {
  position: relative;
  z-index: 1;
  max-width: 390px;
  color: rgba(255,255,255,.68);
  font-style: normal;
  font-size: 13px;
  line-height: 1.45;
}
.nfn-about-section-card b {
  position: relative;
  z-index: 1;
  display: inline-flex;
  width: fit-content;
  margin-top: 4px;
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.nfn-about-band {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: 28px;
  background: #111;
  border-radius: 6px;
  overflow: hidden;
}
.nfn-about-band div {
  min-height: 98px;
  padding: 22px 24px;
  background: #050505;
  color: #fff;
}
.nfn-about-band strong {
  display: block;
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: .4px;
  line-height: 1;
  text-transform: uppercase;
}
.nfn-about-band span {
  display: block;
  margin-top: 8px;
  color: rgba(255,255,255,.66);
  font-size: 13px;
  line-height: 1.45;
}

@media (max-width: 900px) {
  .nfn-about-layout,
  .nfn-about-band {
    grid-template-columns: 1fr;
  }
  .nfn-about-copy {
    min-height: 0;
  }
}

/* ===========================
   NFN V4.5 ABOUT AMP-INSPIRED POLISH
   Rebuilds About page into a finished editorial layout inspired by AMP,
   but keeps NFN black / cream / purple identity.
=========================== */

.nfn-about-page-v45 .nfn-about-body {
  padding: 34px 0 64px;
  background: #f3efe8;
}
.nfn-about-page-v45 .nfn-about-amp-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.38fr) minmax(330px, .82fr);
  gap: 22px;
  align-items: stretch;
}
.nfn-about-page-v45 .nfn-about-panel {
  position: relative;
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,0)),
    #070707;
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 22px 45px rgba(14,10,8,.12);
  color: #fff;
}
.nfn-about-page-v45 .nfn-about-who {
  padding: clamp(24px, 3vw, 36px);
  min-height: 420px;
}
.nfn-about-page-v45 .nfn-about-cover {
  padding: clamp(22px, 2.5vw, 30px);
}
.nfn-about-page-v45 .nfn-about-panel h2,
.nfn-about-page-v45 .nfn-about-contributors h2,
.nfn-about-page-v45 .nfn-about-work h2 {
  margin: 0;
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(26px, 2.6vw, 36px);
  font-weight: 900;
  line-height: .95;
  letter-spacing: .2px;
  text-transform: uppercase;
}
.nfn-about-page-v45 .nfn-about-panel-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.nfn-about-page-v45 .nfn-about-panel-head span,
.nfn-about-page-v45 .nfn-about-difference-title span,
.nfn-about-page-v45 .nfn-about-link-row span,
.nfn-about-page-v45 .nfn-about-contributor-card span {
  color: var(--nfn-purple-soft);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 1.1px;
  line-height: 1;
  text-transform: uppercase;
}
.nfn-about-page-v45 .nfn-about-panel-copy {
  max-width: 760px;
  padding: 22px 0 22px;
}
.nfn-about-page-v45 .nfn-about-panel-copy p {
  margin: 0 0 12px;
  color: rgba(255,255,255,.74);
  font-size: 15px;
  line-height: 1.65;
}
.nfn-about-page-v45 .nfn-about-panel-copy p:last-child {
  margin-bottom: 0;
}
.nfn-about-page-v45 .nfn-about-difference {
  margin-top: 4px;
}
.nfn-about-page-v45 .nfn-about-difference-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.nfn-about-page-v45 .nfn-about-difference-title strong {
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: .7px;
  text-transform: uppercase;
}
.nfn-about-page-v45 .nfn-about-difference-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.13);
}
.nfn-about-page-v45 .nfn-about-difference-grid div {
  min-height: 128px;
  padding: 18px;
  background:
    radial-gradient(circle at 95% 100%, rgba(126,34,206,.15), transparent 42%),
    #0b0b0c;
}
.nfn-about-page-v45 .nfn-about-difference-grid b {
  display: inline-block;
  position: relative;
  margin-bottom: 10px;
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 24px;
  font-weight: 900;
  text-transform: uppercase;
}
.nfn-about-page-v45 .nfn-about-difference-grid b::before {
  content: '';
  position: absolute;
  left: 0;
  bottom: -5px;
  width: 28px;
  height: 3px;
  background: var(--nfn-purple);
}
.nfn-about-page-v45 .nfn-about-difference-grid p {
  margin: 0;
  color: rgba(255,255,255,.64);
  font-size: 12.5px;
  line-height: 1.45;
}
.nfn-about-page-v45 .nfn-about-cover h2 {
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.nfn-about-page-v45 .nfn-about-link-row {
  display: block;
  padding: 15px 16px;
  color: #fff;
  text-decoration: none;
  border: 1px solid rgba(255,255,255,.12);
  border-top: 0;
  background: rgba(255,255,255,.02);
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.nfn-about-page-v45 .nfn-about-link-row:hover {
  background: rgba(126,34,206,.16);
  border-color: rgba(168,85,247,.55);
  transform: translateX(3px);
}
.nfn-about-page-v45 .nfn-about-link-row strong {
  display: block;
  margin-top: 7px;
  color: rgba(255,255,255,.84);
  font-size: 13px;
  line-height: 1.35;
}
.nfn-about-page-v45 .nfn-about-press-box {
  margin-top: 18px;
  padding: 20px;
  border-left: 4px solid var(--nfn-purple);
  background: rgba(255,255,255,.045);
}
.nfn-about-page-v45 .nfn-about-press-box h3 {
  margin: 0 0 8px;
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 24px;
  font-weight: 900;
  text-transform: uppercase;
}
.nfn-about-page-v45 .nfn-about-press-box p {
  margin: 0 0 14px;
  color: rgba(255,255,255,.66);
  font-size: 13px;
  line-height: 1.5;
}
.nfn-about-page-v45 .nfn-about-press-box a,
.nfn-about-page-v45 .nfn-about-work a,
.nfn-about-page-v45 .nfn-about-contributor-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 14px;
  background: var(--nfn-purple);
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .9px;
  text-transform: uppercase;
  text-decoration: none;
}
.nfn-about-page-v45 .nfn-about-contributors {
  margin-top: 28px;
}
.nfn-about-page-v45 .nfn-about-contributors h2 {
  color: #111;
  padding-bottom: 10px;
  border-bottom: 2px solid #111;
}
.nfn-about-page-v45 .nfn-about-contributor-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: 20px 0 0;
  max-width: 760px;
}
.nfn-about-page-v45 .nfn-about-contributor-card h3 {
  margin: 0 0 3px;
  color: #111;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 28px;
  font-weight: 900;
  text-transform: uppercase;
}
.nfn-about-page-v45 .nfn-about-contributor-card p {
  max-width: 560px;
  margin: 12px 0 0;
  color: #5c564f;
  font-size: 13.5px;
  line-height: 1.55;
}
.nfn-about-page-v45 .nfn-about-contributor-actions {
  display: flex;
  gap: 8px;
}
.nfn-about-page-v45 .nfn-about-work {
  margin-top: 34px;
  padding: 28px;
  text-align: center;
  background:
    radial-gradient(circle at 78% 20%, rgba(126,34,206,.22), transparent 34%),
    linear-gradient(180deg, #090909, #050505);
  border: 1px solid rgba(255,255,255,.1);
  color: #fff;
}
.nfn-about-page-v45 .nfn-about-work p {
  max-width: 720px;
  margin: 12px auto 18px;
  color: rgba(255,255,255,.68);
  font-size: 13.5px;
  line-height: 1.55;
}

/* Retire earlier About page blocks in case cached CSS still hits them. */
.nfn-about-page-v45 .nfn-about-layout,
.nfn-about-page-v45 .nfn-about-band,
.nfn-about-page-v45 .nfn-about-copy,
.nfn-about-page-v45 .nfn-about-side {
  all: unset;
}

@media (max-width: 920px) {
  .nfn-about-page-v45 .nfn-about-amp-layout,
  .nfn-about-page-v45 .nfn-about-difference-grid,
  .nfn-about-page-v45 .nfn-about-contributor-card {
    grid-template-columns: 1fr;
  }
  .nfn-about-page-v45 .nfn-about-contributor-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .nfn-about-page-v45 .nfn-about-panel-head,
  .nfn-about-page-v45 .nfn-about-difference-title {
    align-items: flex-start;
    flex-direction: column;
  }
  .nfn-about-page-v45 .nfn-about-who,
  .nfn-about-page-v45 .nfn-about-cover {
    padding: 22px;
  }
}


/* ===========================
   NFN V4.6 ABOUT + CONTRIBUTOR CMS
   Lightens and finishes the Who We Are panel, adds an NFN watermark,
   and styles the CMS-powered contributor grid.
=========================== */

.nfn-about-page-v45 .nfn-about-who {
  overflow: hidden;
  min-height: 0;
  background:
    radial-gradient(circle at 86% 84%, rgba(126,34,206,.28), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.025)),
    #121215;
  border-color: rgba(255,255,255,.18);
}
.nfn-about-page-v45 .nfn-about-who::after {
  content: 'NFN';
  position: absolute;
  right: clamp(20px, 4vw, 42px);
  bottom: -14px;
  color: rgba(255,255,255,.045);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(110px, 15vw, 210px);
  font-weight: 900;
  line-height: .75;
  letter-spacing: -7px;
  z-index: 0;
  pointer-events: none;
}
.nfn-about-page-v45 .nfn-about-who > * {
  position: relative;
  z-index: 1;
}
.nfn-about-page-v45 .nfn-about-panel-copy {
  padding-bottom: 14px;
}
.nfn-about-page-v45 .nfn-about-difference-grid div {
  min-height: 108px;
  background:
    radial-gradient(circle at 90% 100%, rgba(126,34,206,.24), transparent 46%),
    rgba(255,255,255,.04);
}
.nfn-about-page-v45 .nfn-about-difference {
  margin-top: 8px;
}

.nfn-about-page-v45 .nfn-about-contributors-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}
.nfn-about-page-v45 .nfn-about-contributor-card {
  position: relative;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  max-width: none;
  padding: 18px;
  background: #fff;
  border: 1px solid rgba(5,5,5,.08);
  border-left: 4px solid var(--nfn-purple);
  box-shadow: 0 16px 36px rgba(15,10,6,.08);
}
.nfn-about-page-v45 .nfn-about-contributor-card.nfn-about-contributor-desk {
  grid-column: 1 / -1;
  background:
    radial-gradient(circle at 92% 12%, rgba(126,34,206,.16), transparent 34%),
    #0b0b0d;
  border-color: rgba(255,255,255,.12);
  border-left-color: var(--nfn-purple);
  color: #fff;
}
.nfn-about-page-v45 .nfn-about-contributor-avatar {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border-radius: 6px;
  background: #090909;
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 26px;
  font-weight: 900;
  letter-spacing: .5px;
  text-transform: uppercase;
}
.nfn-about-page-v45 .nfn-about-contributor-desk .nfn-about-contributor-avatar {
  background: rgba(126,34,206,.2);
  color: #fff;
  border: 1px solid rgba(168,85,247,.35);
}
.nfn-about-page-v45 .nfn-about-contributor-card h3 {
  margin: 0 0 3px;
  color: #111;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 26px;
  font-weight: 900;
  line-height: .95;
  text-transform: uppercase;
}
.nfn-about-page-v45 .nfn-about-contributor-desk h3 {
  color: #fff;
}
.nfn-about-page-v45 .nfn-about-contributor-card span {
  display: block;
  margin-bottom: 8px;
}
.nfn-about-page-v45 .nfn-about-contributor-location {
  margin: 0 0 8px !important;
  color: #5f5852 !important;
  font-weight: 700;
}
.nfn-about-page-v45 .nfn-about-contributor-desk .nfn-about-contributor-location {
  color: rgba(255,255,255,.68) !important;
}
.nfn-about-page-v45 .nfn-about-contributor-card p {
  max-width: none;
  margin: 0;
  color: #5c564f;
  font-size: 13.5px;
  line-height: 1.5;
}
.nfn-about-page-v45 .nfn-about-contributor-desk p {
  color: rgba(255,255,255,.68);
}
.nfn-about-page-v45 .nfn-about-contributor-actions {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}
.nfn-about-page-v45 .nfn-about-contributor-actions a {
  min-height: 32px;
  padding: 0 12px;
}

@media (max-width: 920px) {
  .nfn-about-page-v45 .nfn-about-contributors-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 540px) {
  .nfn-about-page-v45 .nfn-about-contributor-card {
    grid-template-columns: 1fr;
  }
}

/* ===========================
   NFN V4.7 ABOUT LIGHT WHO PANEL
   Lightens the left About panel so it fits the cream page background,
   while keeping a subtle NFN watermark and the dark right rail for contrast.
=========================== */

.nfn-about-page-v45 .nfn-about-who {
  min-height: 0;
  background:
    radial-gradient(circle at 88% 92%, rgba(126,34,206,.10), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,244,237,.96));
  border: 1px solid rgba(17,17,17,.10);
  box-shadow: 0 18px 42px rgba(16,11,8,.10);
  color: #121212;
}
.nfn-about-page-v45 .nfn-about-who::after {
  content: 'NFN';
  right: clamp(22px, 4vw, 48px);
  bottom: -12px;
  color: rgba(126,34,206,.055);
  font-size: clamp(120px, 16vw, 220px);
  letter-spacing: -7px;
}
.nfn-about-page-v45 .nfn-about-who .nfn-about-panel-head {
  border-bottom-color: rgba(17,17,17,.11);
}
.nfn-about-page-v45 .nfn-about-who h2 {
  color: #111;
}
.nfn-about-page-v45 .nfn-about-who .nfn-about-panel-head span,
.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-title span {
  color: var(--nfn-purple);
}
.nfn-about-page-v45 .nfn-about-who .nfn-about-panel-copy p {
  color: #3f3933;
}
.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-title strong {
  color: #111;
}
.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid {
  background: rgba(17,17,17,.08);
  border: 1px solid rgba(17,17,17,.10);
}
.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid div {
  min-height: 104px;
  background:
    radial-gradient(circle at 96% 100%, rgba(126,34,206,.12), transparent 48%),
    linear-gradient(180deg, rgba(255,255,255,.76), rgba(246,241,233,.92));
}
.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid b {
  color: #111;
}
.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid p {
  color: #5c554e;
}



/* ===========================
   NFN V4.8 CONTRIBUTORS 4-UP
   Makes the CMS contributor section a four-across desktop grid with
   compact cards, then falls back to two and one column responsively.
=========================== */

.nfn-about-page-v45 .nfn-about-contributors-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}

.nfn-about-page-v45 .nfn-about-contributor-card,
.nfn-about-page-v45 .nfn-about-contributor-card.nfn-about-contributor-desk {
  grid-column: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 100%;
  padding: 18px;
  border-left-width: 4px;
}

.nfn-about-page-v45 .nfn-about-contributor-card.nfn-about-contributor-desk {
  background:
    radial-gradient(circle at 100% 0%, rgba(126,34,206,.20), transparent 42%),
    #0b0b0d;
}

.nfn-about-page-v45 .nfn-about-contributor-avatar {
  width: 58px;
  height: 58px;
  font-size: 22px;
}

.nfn-about-page-v45 .nfn-about-contributor-card h3 {
  font-size: clamp(21px, 1.45vw, 25px);
  line-height: .98;
  margin-bottom: 4px;
}

.nfn-about-page-v45 .nfn-about-contributor-card span {
  margin-bottom: 7px;
  font-size: 11px;
  line-height: 1.15;
}

.nfn-about-page-v45 .nfn-about-contributor-location {
  font-size: 12.5px;
  margin-bottom: 7px !important;
}

.nfn-about-page-v45 .nfn-about-contributor-card p {
  font-size: 13px;
  line-height: 1.45;
}

.nfn-about-page-v45 .nfn-about-contributor-actions {
  margin-top: auto;
  padding-top: 12px;
  flex-wrap: wrap;
}

.nfn-about-page-v45 .nfn-about-contributor-actions a {
  min-height: 30px;
  padding: 0 10px;
  font-size: 10.5px;
}

@media (max-width: 1180px) {
  .nfn-about-page-v45 .nfn-about-contributors-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .nfn-about-page-v45 .nfn-about-contributors-grid {
    grid-template-columns: 1fr;
  }
}


/* ===========================
   NFN V4.9 ABOUT LEFT PANEL FINISH
   Removes the unfinished dead space in the Who We Are panel by letting the
   panel sit at its natural height and adding a subtle closing note.
=========================== */

.nfn-about-page-v45 .nfn-about-amp-layout {
  align-items: start;
}

.nfn-about-page-v45 .nfn-about-who {
  padding-bottom: clamp(24px, 3vw, 34px);
}

.nfn-about-page-v45 .nfn-about-who::after {
  bottom: -22px;
  right: 30px;
  opacity: .72;
}

.nfn-about-page-v45 .nfn-about-difference {
  margin-bottom: 0;
}

.nfn-about-page-v45 .nfn-about-who-note {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(160px, .55fr) minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  margin-top: 18px;
  padding: 16px 18px;
  border: 1px solid rgba(17,17,17,.09);
  border-left: 4px solid var(--nfn-purple);
  background:
    linear-gradient(90deg, rgba(126,34,206,.075), rgba(255,255,255,.68)),
    rgba(255,255,255,.74);
}

.nfn-about-page-v45 .nfn-about-who-note strong {
  color: #111;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 23px;
  font-weight: 900;
  line-height: .95;
  text-transform: uppercase;
}

.nfn-about-page-v45 .nfn-about-who-note span {
  color: #4f4841;
  font-size: 13px;
  line-height: 1.45;
}

@media (max-width: 920px) {
  .nfn-about-page-v45 .nfn-about-who-note {
    grid-template-columns: 1fr;
  }
}


/* ===========================
   NFN V5.0 ABOUT AMP-STYLE RESET
   Restores the AMP editorial panel layout, but with NFN language:
=========================== */

.nfn-about-page-v45 .nfn-about-body {
  background: #f3efe8;
}

.nfn-about-page-v45 .nfn-about-amp-layout {
  grid-template-columns: minmax(0, 1.42fr) minmax(330px, .78fr);
  align-items: start;
  gap: 24px;
}

.nfn-about-page-v45 .nfn-about-panel {
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,0)),
    #090909;
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 26px 52px rgba(18,12,8,.16);
  color: #fff;
}

.nfn-about-page-v45 .nfn-about-who {
  min-height: 0;
  overflow: hidden;
  padding: clamp(26px, 3vw, 38px);
  background:
    radial-gradient(circle at 86% 92%, rgba(126,34,206,.16), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.01)),
    #090909;
  border-color: rgba(255,255,255,.15);
  color: #fff;
}

.nfn-about-page-v45 .nfn-about-who::after {
  content: 'NFN';
  position: absolute;
  right: 18px;
  bottom: -18px;
  color: rgba(126,34,206,.09);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(95px, 13vw, 178px);
  font-weight: 900;
  line-height: .75;
  letter-spacing: -5px;
  z-index: 0;
  pointer-events: none;
}

.nfn-about-page-v45 .nfn-about-who > * {
  position: relative;
  z-index: 1;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-panel-head {
  border-bottom-color: rgba(255,255,255,.12);
}

.nfn-about-page-v45 .nfn-about-who h2,
.nfn-about-page-v45 .nfn-about-cover h2 {
  color: #fff;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-panel-head span,
.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-title span,
.nfn-about-page-v45 .nfn-about-link-row span {
  color: var(--nfn-purple-soft);
}

.nfn-about-page-v45 .nfn-about-panel-copy {
  max-width: 780px;
  padding: 22px 0 18px;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-panel-copy p {
  color: rgba(255,255,255,.72);
  font-size: 15px;
  line-height: 1.62;
}

.nfn-about-page-v45 .nfn-about-difference {
  margin-top: 4px;
}

.nfn-about-page-v45 .nfn-about-difference-title {
  margin-bottom: 13px;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-title strong {
  color: #fff;
  font-size: clamp(20px, 2vw, 30px);
  letter-spacing: .8px;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.13);
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid div {
  position: relative;
  overflow: hidden;
  min-height: 142px;
  padding: 20px;
  background:
    radial-gradient(circle at 88% 100%, rgba(126,34,206,.16), transparent 48%),
    #0e0e0f;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid div::after {
  position: absolute;
  right: 12px;
  bottom: -20px;
  color: rgba(255,255,255,.035);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 94px;
  font-weight: 900;
  line-height: 1;
  z-index: 0;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid div:nth-child(1)::after { content: 'NO'; }
.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid div:nth-child(2)::after { content: 'FLUFF'; font-size: 70px; bottom: -14px; }
.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid div:nth-child(3)::after { content: 'NFN'; }

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid b,
.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid p {
  position: relative;
  z-index: 1;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid b {
  color: #fff;
  font-size: clamp(22px, 1.9vw, 28px);
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid p {
  color: rgba(255,255,255,.64);
  font-size: 13px;
  line-height: 1.48;
}

.nfn-about-page-v45 .nfn-about-who-note {
  display: none !important;
}

.nfn-about-page-v45 .nfn-about-cover {
  background:
    radial-gradient(circle at 100% 0%, rgba(126,34,206,.18), transparent 32%),
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,0)),
    #090909;
}

.nfn-about-page-v45 .nfn-about-cover h2 {
  font-size: clamp(26px, 2.6vw, 36px);
}

.nfn-about-page-v45 .nfn-about-link-row strong {
  color: rgba(255,255,255,.88);
}

.nfn-about-page-v45 .nfn-about-press-box {
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012)),
    #101010;
}

@media (max-width: 920px) {
  .nfn-about-page-v45 .nfn-about-amp-layout,
  .nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid {
    grid-template-columns: 1fr;
  }
}

/* ===========================
   NFN V5.1 ABOUT AMP MATCH
   Match AMP box proportions/spacing, make Who We Are light,
   and remove the oversized NFN watermark from the lower right.
=========================== */

.nfn-about-page-v45 .nfn-about-amp-layout {
  grid-template-columns: minmax(0, 1.42fr) minmax(330px, .72fr);
  align-items: stretch;
  gap: 28px;
}

.nfn-about-page-v45 .nfn-about-panel {
  min-height: 100%;
}

.nfn-about-page-v45 .nfn-about-who {
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.88)),
    linear-gradient(135deg, #fffaf2 0%, #f7efe5 100%);
  border: 1px solid rgba(8,8,10,.16);
  box-shadow: 0 24px 44px rgba(18,12,8,.13);
  color: var(--nfn-ink);
  padding: clamp(28px, 3vw, 40px);
}

.nfn-about-page-v45 .nfn-about-who::after {
  display: none !important;
  content: none !important;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-panel-head {
  border-bottom: 1px solid rgba(8,8,10,.12);
  padding-bottom: 18px;
  margin-bottom: 0;
}

.nfn-about-page-v45 .nfn-about-who h2 {
  color: var(--nfn-ink);
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-panel-head span,
.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-title span {
  color: #8f25dd;
}

.nfn-about-page-v45 .nfn-about-panel-copy {
  max-width: 820px;
  padding: 24px 0 22px;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-panel-copy p {
  color: #403b36;
  font-size: 15px;
  line-height: 1.62;
}

.nfn-about-page-v45 .nfn-about-difference {
  margin-top: 0;
  padding-top: 0;
}

.nfn-about-page-v45 .nfn-about-difference-title {
  align-items: center;
  margin-bottom: 14px;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-title strong {
  color: var(--nfn-ink);
  font-size: clamp(20px, 2vw, 29px);
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid {
  background: rgba(8,8,10,.08);
  border: 1px solid rgba(8,8,10,.14);
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid div {
  min-height: 142px;
  padding: 20px 20px 18px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.7), rgba(255,255,255,.32)),
    radial-gradient(circle at 92% 110%, rgba(143,37,221,.14), transparent 42%),
    #f7f0e7;
  border-color: rgba(8,8,10,.12);
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid div::after {
  display: none !important;
  content: none !important;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid b {
  color: var(--nfn-ink);
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid p {
  color: #5a514b;
  font-size: 13px;
  line-height: 1.48;
}

.nfn-about-page-v45 .nfn-about-cover {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: clamp(28px, 3vw, 40px);
}

.nfn-about-page-v45 .nfn-about-cover h2 {
  margin-bottom: 18px;
}

.nfn-about-page-v45 .nfn-about-link-row {
  padding: 18px 20px;
}

.nfn-about-page-v45 .nfn-about-press-box {
  margin-top: 18px;
  padding: 26px 26px 28px;
}

@media (max-width: 920px) {
  .nfn-about-page-v45 .nfn-about-amp-layout {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .nfn-about-page-v45 .nfn-about-cover,
  .nfn-about-page-v45 .nfn-about-who {
    min-height: 0;
  }
}


/* ===========================
   NFN V5.2 ABOUT PANEL BALANCE
   Shrinks the right column back down, keeps the left panel light,
   and removes the oversized stretched empty space.
=========================== */

.nfn-about-page-v45 .nfn-about-amp-layout {
  grid-template-columns: minmax(0, 1.42fr) minmax(330px, .72fr);
  gap: 26px;
  align-items: stretch;
}

.nfn-about-page-v45 .nfn-about-panel {
  min-height: 0 !important;
}

.nfn-about-page-v45 .nfn-about-who {
  height: auto !important;
  min-height: 0 !important;
  padding: 30px 34px 32px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.91)),
    linear-gradient(135deg, #fffaf3 0%, #f5ede4 100%) !important;
  color: var(--nfn-ink) !important;
}

.nfn-about-page-v45 .nfn-about-who::after {
  display: none !important;
  content: none !important;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-panel-head {
  padding-bottom: 16px;
}

.nfn-about-page-v45 .nfn-about-panel-copy {
  padding: 19px 0 18px !important;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-panel-copy p {
  color: #403b36 !important;
  font-size: 14.5px;
  line-height: 1.56;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-title {
  margin-bottom: 12px;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-title strong {
  color: var(--nfn-ink) !important;
  font-size: clamp(19px, 1.8vw, 26px) !important;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid div {
  min-height: 112px !important;
  padding: 18px !important;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid b {
  font-size: clamp(21px, 1.55vw, 25px) !important;
}

.nfn-about-page-v45 .nfn-about-who .nfn-about-difference-grid p {
  font-size: 12.5px !important;
  line-height: 1.42 !important;
}

.nfn-about-page-v45 .nfn-about-cover {
  height: auto !important;
  min-height: 0 !important;
  padding: 30px !important;
  display: flex;
  flex-direction: column;
}

.nfn-about-page-v45 .nfn-about-cover h2 {
  padding-bottom: 14px;
  margin-bottom: 0 !important;
}

.nfn-about-page-v45 .nfn-about-link-row {
  padding: 14px 16px !important;
}

.nfn-about-page-v45 .nfn-about-link-row strong {
  margin-top: 6px;
  font-size: 12.5px;
  line-height: 1.32;
}

.nfn-about-page-v45 .nfn-about-press-box {
  margin-top: 16px !important;
  padding: 20px 20px 22px !important;
}

.nfn-about-page-v45 .nfn-about-press-box h3 {
  font-size: 23px;
}

.nfn-about-page-v45 .nfn-about-press-box p {
  margin-bottom: 12px;
  font-size: 12.5px;
  line-height: 1.46;
}

@media (max-width: 920px) {
  .nfn-about-page-v45 .nfn-about-amp-layout {
    grid-template-columns: 1fr;
    align-items: start;
  }
}


/* ===========================
   NFN V5.3 CONTACT MEDIA KIT
   AMP-inspired contact/media-kit page with NFN branding.
=========================== */

.nfn-contact-media-kit-page .nfn-contact-hero {
  padding: 48px 0 42px;
}
.nfn-contact-media-kit-page .nfn-contact-hero h1 {
  font-size: clamp(38px, 4.5vw, 62px);
  max-width: 760px;
}
.nfn-contact-media-kit-page .nfn-contact-hero p {
  max-width: 760px;
}
.nfn-contact-kit-section {
  padding: 42px 0 70px;
  background: #f6f3ee;
}
.nfn-contact-kit-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: 28px;
  align-items: start;
}
.nfn-contact-kit-main {
  display: grid;
  gap: 24px;
}
.nfn-contact-panel,
.nfn-contact-side-card {
  border-radius: 4px;
  box-shadow: 0 14px 34px rgba(0,0,0,.07);
}
.nfn-contact-panel {
  background: #fff;
  border: 1px solid #e2ddd4;
  padding: clamp(26px, 3.6vw, 42px);
}
.nfn-contact-intro-panel {
  position: relative;
  overflow: hidden;
}
.nfn-contact-intro-panel::after {
  content: 'NFN';
  position: absolute;
  right: 26px;
  bottom: -34px;
  color: rgba(126,34,206,.055);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(90px, 14vw, 190px);
  font-weight: 900;
  line-height: .75;
  pointer-events: none;
}
.nfn-contact-panel-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 16px;
  margin-bottom: 20px;
  border-bottom: 1px solid #e5dfd5;
}
.nfn-contact-panel-head h2,
.nfn-contact-side-card h2 {
  margin: 0;
  color: #111;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(30px, 3vw, 42px);
  font-weight: 900;
  line-height: .95;
  letter-spacing: -.2px;
  text-transform: uppercase;
}
.nfn-contact-panel-head span {
  color: var(--nfn-purple);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  white-space: nowrap;
}
.nfn-contact-lede {
  position: relative;
  z-index: 2;
  max-width: 820px;
  margin: 0 0 26px;
  color: #2c2c2c;
  font-size: 17px;
  line-height: 1.68;
}
.nfn-contact-stats {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid #ddd6cc;
  background: linear-gradient(135deg, #fff 0%, #f8f3fb 100%);
}
.nfn-contact-stat {
  padding: 22px 20px;
  border-right: 1px solid #ddd6cc;
}
.nfn-contact-stat:last-child { border-right: 0; }
.nfn-contact-stat strong {
  display: block;
  color: #111;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(38px, 5vw, 58px);
  font-weight: 900;
  line-height: .9;
}
.nfn-contact-stat span {
  display: block;
  margin-top: 8px;
  color: #666;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .75px;
  text-transform: uppercase;
}
.nfn-contact-offer-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 24px;
  border: 1px solid #ddd6cc;
}
.nfn-contact-offer-grid article {
  padding: 20px 18px;
  min-height: 150px;
  border-right: 1px solid #ddd6cc;
  background: linear-gradient(180deg, #fff 0%, #faf7f2 100%);
}
.nfn-contact-offer-grid article:last-child { border-right: 0; }
.nfn-contact-offer-grid h3 {
  margin: 0 0 12px;
  color: #111;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 25px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}
.nfn-contact-offer-grid h3::after {
  content: '';
  display: block;
  width: 34px;
  height: 4px;
  margin-top: 9px;
  background: var(--nfn-purple);
}
.nfn-contact-offer-grid p {
  margin: 0;
  color: #5c5c5c;
  font-size: 13px;
  line-height: 1.5;
}
.nfn-contact-form-panel {
  background: #0a0a0b;
  border-color: rgba(255,255,255,.12);
  color: #fff;
}
.nfn-contact-form-panel .nfn-contact-panel-head {
  border-bottom-color: rgba(255,255,255,.14);
}
.nfn-contact-form-panel .nfn-contact-panel-head h2 {
  color: #fff;
}
.nfn-contact-form-media label {
  color: rgba(255,255,255,.88);
}
.nfn-contact-form-media input,
.nfn-contact-form-media select,
.nfn-contact-form-media textarea {
  background: #111114;
  border-color: rgba(255,255,255,.18);
  color: #fff;
}
.nfn-contact-form-media input:focus,
.nfn-contact-form-media select:focus,
.nfn-contact-form-media textarea:focus {
  border-color: var(--nfn-purple);
  box-shadow: 0 0 0 1px rgba(147,51,234,.5);
  outline: none;
}
.nfn-contact-form-media ::placeholder { color: #747474; }
.nfn-contact-form-media button:hover {
  background: #fff;
  color: #111;
}
.nfn-contact-kit-side {
  display: grid;
  gap: 18px;
  position: sticky;
  top: 120px;
}
.nfn-contact-side-card {
  background: #080809;
  color: #fff;
  border: 1px solid rgba(255,255,255,.12);
  padding: 26px;
}
.nfn-contact-side-card h2 {
  color: #fff;
  font-size: 32px;
  margin-bottom: 18px;
}
.nfn-contact-route-card a {
  display: block;
  padding: 16px 0;
  border-top: 1px solid rgba(255,255,255,.12);
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.nfn-contact-route-card a:first-of-type { border-top: 0; }
.nfn-contact-route-card a span {
  display: block;
  margin-bottom: 4px;
  color: var(--nfn-purple-soft);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  text-decoration: none;
}
.nfn-contact-checklist-card {
  border-left: 5px solid var(--nfn-purple);
}
.nfn-contact-checklist-card ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.nfn-contact-checklist-card li {
  position: relative;
  padding: 10px 0 10px 20px;
  border-top: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.72);
  font-size: 14px;
  line-height: 1.45;
}
.nfn-contact-checklist-card li:first-child { border-top: 0; }
.nfn-contact-checklist-card li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 17px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--nfn-purple);
}
.nfn-contact-fit-card p {
  margin: 0 0 18px;
  color: rgba(255,255,255,.7);
  font-size: 14px;
  line-height: 1.6;
}
.nfn-contact-side-link {
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: underline;
  text-underline-offset: 4px;
}
@media (max-width: 1180px) {
  .nfn-contact-kit-wrap { grid-template-columns: 1fr; }
  .nfn-contact-kit-side { position: static; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 920px) {
  .nfn-contact-offer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nfn-contact-offer-grid article:nth-child(2) { border-right: 0; }
  .nfn-contact-offer-grid article:nth-child(-n+2) { border-bottom: 1px solid #ddd6cc; }
  .nfn-contact-kit-side { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .nfn-contact-kit-section { padding: 28px 0 54px; }
  .nfn-contact-panel-head { align-items: start; flex-direction: column; }
  .nfn-contact-stats,
  .nfn-contact-offer-grid,
  .nfn-form-grid { grid-template-columns: 1fr; }
  .nfn-contact-stat,
  .nfn-contact-offer-grid article { border-right: 0; border-bottom: 1px solid #ddd6cc; }
  .nfn-contact-stat:last-child,
  .nfn-contact-offer-grid article:last-child { border-bottom: 0; }
}

/* ===========================
   NFN V5.4 ADVERTISE / PR MEDIA KIT
   Moves the media-kit content from Contact to Advertise / PR and adds
   calendar advertising placement details.
=========================== */

.nfn-contact-clean-page .nfn-contact-hero,
.nfn-advertise-page .nfn-advertise-hero {
  padding: 46px 0 40px;
}
.nfn-contact-clean-page .nfn-contact-hero h1,
.nfn-advertise-page .nfn-advertise-hero h1 {
  font-size: clamp(38px, 4.2vw, 58px);
  max-width: 800px;
}
.nfn-contact-clean-page .nfn-contact-hero p,
.nfn-advertise-page .nfn-advertise-hero p {
  max-width: 790px;
}
.nfn-contact-clean-section,
.nfn-advertise-kit-section {
  padding: 40px 0 72px;
  background: #f6f3ee;
}
.nfn-contact-clean-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(310px, .45fr);
  gap: 28px;
  align-items: start;
}
.nfn-contact-clean-side,
.nfn-advertise-side {
  display: grid;
  gap: 18px;
  position: sticky;
  top: 120px;
}
.nfn-contact-clean-side .nfn-contact-side-card,
.nfn-advertise-side-card {
  background: #080809;
  color: #fff;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 4px;
  padding: 26px;
  box-shadow: 0 14px 34px rgba(0,0,0,.07);
}
.nfn-advertise-side-card h2 {
  margin: 0 0 16px;
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 32px;
  font-weight: 900;
  line-height: .95;
  text-transform: uppercase;
}
.nfn-advertise-side-card a {
  display: block;
  padding: 15px 0;
  border-top: 1px solid rgba(255,255,255,.12);
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.nfn-advertise-side-card a:first-of-type { border-top: 0; }
.nfn-advertise-side-card a span {
  display: block;
  margin-bottom: 4px;
  color: var(--nfn-purple-soft);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 1.1px;
  text-transform: uppercase;
}
.nfn-advertise-side-card p,
.nfn-advertise-side-card li {
  color: rgba(255,255,255,.72);
  font-size: 14px;
  line-height: 1.55;
}
.nfn-advertise-side-card ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.nfn-advertise-side-card li {
  position: relative;
  padding: 9px 0 9px 18px;
  border-top: 1px solid rgba(255,255,255,.1);
}
.nfn-advertise-side-card li:first-child { border-top: 0; }
.nfn-advertise-side-card li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 16px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--nfn-purple);
}
.nfn-advertise-side-dark {
  border-left: 5px solid var(--nfn-purple);
}

.nfn-advertise-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 28px;
  border: 1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(circle at 78% 18%, rgba(126,34,206,.38), transparent 36%),
    linear-gradient(135deg, #050505 0%, #101012 65%, #1b0929 100%);
  color: #fff;
  box-shadow: 0 18px 38px rgba(0,0,0,.14);
}
.nfn-advertise-stat {
  padding: 26px 24px;
  border-right: 1px solid rgba(255,255,255,.14);
}
.nfn-advertise-stat:last-child { border-right: 0; }
.nfn-advertise-stat strong {
  display: block;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(42px, 5.4vw, 68px);
  font-weight: 900;
  line-height: .88;
}
.nfn-advertise-stat span {
  display: block;
  margin-top: 10px;
  color: rgba(255,255,255,.72);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .85px;
  text-transform: uppercase;
}
.nfn-advertise-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: 28px;
  align-items: start;
}
.nfn-advertise-main {
  display: grid;
  gap: 24px;
}
.nfn-advertise-panel {
  position: relative;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e2ddd4;
  border-radius: 4px;
  padding: clamp(26px, 3.6vw, 42px);
  box-shadow: 0 14px 34px rgba(0,0,0,.07);
}
.nfn-advertise-intro::after {
  content: 'NFN';
  position: absolute;
  right: 22px;
  bottom: -34px;
  color: rgba(126,34,206,.05);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(95px, 13vw, 180px);
  font-weight: 900;
  line-height: .75;
  pointer-events: none;
}
.nfn-advertise-panel-head {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 16px;
  margin-bottom: 20px;
  border-bottom: 1px solid #e5dfd5;
}
.nfn-advertise-panel-head h2 {
  margin: 0;
  color: #111;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(30px, 3vw, 42px);
  font-weight: 900;
  line-height: .95;
  text-transform: uppercase;
}
.nfn-advertise-panel-head span {
  color: var(--nfn-purple);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  white-space: nowrap;
}
.nfn-advertise-lede,
.nfn-advertise-panel > p {
  position: relative;
  z-index: 2;
  color: #333;
  font-size: 16px;
  line-height: 1.66;
}
.nfn-advertise-offer-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin-top: 24px;
  border: 1px solid #ddd6cc;
}
.nfn-advertise-offer-grid article {
  min-height: 150px;
  padding: 22px 20px;
  border-right: 1px solid #ddd6cc;
  border-bottom: 1px solid #ddd6cc;
  background: linear-gradient(180deg, #fff 0%, #faf7f2 100%);
}
.nfn-advertise-offer-grid article:nth-child(2n) { border-right: 0; }
.nfn-advertise-offer-grid article:nth-last-child(-n+2) { border-bottom: 0; }
.nfn-advertise-offer-grid h3 {
  margin: 0 0 12px;
  color: #111;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 27px;
  font-weight: 900;
  line-height: .98;
  text-transform: uppercase;
}
.nfn-advertise-offer-grid h3::after {
  content: '';
  display: block;
  width: 34px;
  height: 4px;
  margin-top: 9px;
  background: var(--nfn-purple);
}
.nfn-advertise-offer-grid p {
  margin: 0;
  color: #5c5c5c;
  font-size: 13px;
  line-height: 1.5;
}
.nfn-calendar-ad-panel {
  background:
    radial-gradient(circle at 92% 0%, rgba(126,34,206,.2), transparent 35%),
    #0a0a0b;
  color: #fff;
  border-color: rgba(255,255,255,.12);
}
.nfn-calendar-ad-panel .nfn-advertise-panel-head {
  border-bottom-color: rgba(255,255,255,.14);
}
.nfn-calendar-ad-panel .nfn-advertise-panel-head h2,
.nfn-calendar-ad-panel p {
  color: #fff;
}
.nfn-calendar-ad-panel p {
  color: rgba(255,255,255,.74);
}
.nfn-calendar-ad-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 22px;
  border: 1px solid rgba(255,255,255,.13);
}
.nfn-calendar-ad-list div {
  padding: 18px;
  border-right: 1px solid rgba(255,255,255,.13);
  background: rgba(255,255,255,.03);
}
.nfn-calendar-ad-list div:last-child { border-right: 0; }
.nfn-calendar-ad-list strong {
  display: block;
  margin-bottom: 8px;
  color: #fff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 22px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}
.nfn-calendar-ad-list span {
  color: rgba(255,255,255,.68);
  font-size: 13px;
  line-height: 1.5;
}
.nfn-advertise-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin-top: 24px;
  padding: 0 22px;
  background: var(--nfn-purple);
  color: #fff;
  border-radius: 2px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
}
.nfn-advertise-button:hover {
  background: #fff;
  color: #111;
}
.nfn-advertise-form-panel {
  background: #0a0a0b;
  border-color: rgba(255,255,255,.12);
  color: #fff;
}
.nfn-advertise-form-panel .nfn-advertise-panel-head {
  border-bottom-color: rgba(255,255,255,.14);
}
.nfn-advertise-form-panel .nfn-advertise-panel-head h2 {
  color: #fff;
}
.nfn-advertise-form-panel .nfn-advertise-panel-head span {
  color: var(--nfn-purple-soft);
}

@media (max-width: 1180px) {
  .nfn-advertise-layout,
  .nfn-contact-clean-grid { grid-template-columns: 1fr; }
  .nfn-advertise-side,
  .nfn-contact-clean-side { position: static; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 920px) {
  .nfn-advertise-stats,
  .nfn-advertise-side,
  .nfn-contact-clean-side { grid-template-columns: 1fr; }
  .nfn-advertise-stat { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.14); }
  .nfn-advertise-stat:last-child { border-bottom: 0; }
  .nfn-calendar-ad-list { grid-template-columns: 1fr; }
  .nfn-calendar-ad-list div { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.13); }
  .nfn-calendar-ad-list div:last-child { border-bottom: 0; }
}
@media (max-width: 680px) {
  .nfn-advertise-kit-section,
  .nfn-contact-clean-section { padding: 28px 0 54px; }
  .nfn-advertise-panel-head { align-items: start; flex-direction: column; }
  .nfn-advertise-offer-grid { grid-template-columns: 1fr; }
  .nfn-advertise-offer-grid article,
  .nfn-advertise-offer-grid article:nth-child(2n),
  .nfn-advertise-offer-grid article:nth-last-child(-n+2) {
    border-right: 0;
    border-bottom: 1px solid #ddd6cc;
  }
  .nfn-advertise-offer-grid article:last-child { border-bottom: 0; }
}


/* ===========================
   NFN V5.6 ABOUT RESET FROM AMP BONES
   Uses the AMP About layout, swapped to NFN branding and purple accents.
=========================== */
.about-page.nfn-about-amp-page {
  background: #050505;
  color: #fff;
}
.about-page.nfn-about-amp-page .about-hero {
  background:
    radial-gradient(circle at 12% 0%, rgba(147, 39, 230, .24), transparent 34%),
    linear-gradient(180deg, #070707 0%, #050505 100%);
  border-bottom: 1px solid #202020;
  padding: 54px 0 38px;
}
.about-page.nfn-about-amp-page .about-hero h1 {
  max-width: 760px;
  font-family: 'Barlow Condensed', 'Oswald', sans-serif;
  font-size: clamp(40px, 4.2vw, 60px);
  line-height: .96;
  text-transform: uppercase;
  margin: 0 0 14px;
  letter-spacing: .3px;
}
.about-page.nfn-about-amp-page .about-hero p {
  max-width: 760px;
  color: #c7c4cc;
  font-size: 16px;
  line-height: 1.65;
  margin: 0;
}
.about-page.nfn-about-amp-page .about-content-section,
.about-page.nfn-about-amp-page .contributors-section,
.about-page.nfn-about-amp-page .about-submit-section {
  padding: 34px 0;
}
.about-page.nfn-about-amp-page .about-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(310px, .8fr);
  gap: 22px;
  align-items: stretch;
}
.about-page.nfn-about-amp-page .about-main-card,
.about-page.nfn-about-amp-page .about-contact-card,
.about-page.nfn-about-amp-page .contributor-card,
.about-page.nfn-about-amp-page .about-submit-box {
  border: 1px solid rgba(0,0,0,.12);
  box-shadow: 0 20px 40px rgba(0,0,0,.08);
}
.about-page.nfn-about-amp-page .about-main-card {
  background: linear-gradient(180deg, #ffffff 0%, #fbfaf7 100%);
  color: #121212;
  padding: 28px;
  display: flex;
  flex-direction: column;
}
.about-page.nfn-about-amp-page .about-contact-card {
  background: linear-gradient(180deg, #111 0%, #080808 100%);
  color: #fff;
  padding: 28px;
  display: flex;
  flex-direction: column;
}
.about-page.nfn-about-amp-page .about-main-card h2,
.about-page.nfn-about-amp-page .about-contact-card h2,
.about-page.nfn-about-amp-page .about-section-header h2,
.about-page.nfn-about-amp-page .about-submit-box h2 {
  font-family: 'Barlow Condensed', 'Oswald', sans-serif;
  font-size: clamp(28px, 2.4vw, 36px);
  line-height: .95;
  letter-spacing: .3px;
  text-transform: uppercase;
  margin: 0 0 18px;
}
.about-page.nfn-about-amp-page .about-main-card > p,
.about-page.nfn-about-amp-page .about-main-card .about-main-card > p,
.about-page.nfn-about-amp-page .about-main-card p {
  color: #393939;
  font-size: 16px;
  line-height: 1.7;
}
.about-page.nfn-about-amp-page .about-main-card p + p {
  margin-top: 14px;
}
.about-page.nfn-about-amp-page .about-contact-card p,
.about-page.nfn-about-amp-page .contributor-card p,
.about-page.nfn-about-amp-page .about-submit-box p {
  color: #b9b9b9;
  line-height: 1.65;
}
.about-page.nfn-about-amp-page .about-amp-difference {
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid rgba(0,0,0,.13);
}
.about-page.nfn-about-amp-page .about-amp-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}
.about-page.nfn-about-amp-page .about-amp-heading span {
  display: block;
  color: #8a22dc;
  font-family: 'Barlow Condensed', 'Oswald', sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.about-page.nfn-about-amp-page .about-amp-heading strong {
  color: #111;
  font-family: 'Barlow Condensed', 'Oswald', sans-serif;
  font-size: clamp(20px, 2vw, 30px);
  line-height: 1;
  letter-spacing: .5px;
  text-transform: uppercase;
  white-space: nowrap;
}
.about-page.nfn-about-amp-page .about-amp-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid rgba(0,0,0,.13);
}
.about-page.nfn-about-amp-page .about-amp-card {
  position: relative;
  overflow: hidden;
  min-height: 150px;
  padding: 18px;
  background: linear-gradient(135deg, #fbfaf7 0%, #f4eff9 100%);
  border-right: 1px solid rgba(0,0,0,.1);
}
.about-page.nfn-about-amp-page .about-amp-card:last-child {
  border-right: 0;
}
.about-page.nfn-about-amp-page .about-amp-card b {
  position: absolute;
  right: 12px;
  bottom: -16px;
  color: rgba(138,34,220,.10);
  font-family: 'Barlow Condensed', 'Oswald', sans-serif;
  font-size: 96px;
  line-height: 1;
  font-weight: 900;
  pointer-events: none;
}
.about-page.nfn-about-amp-page .about-amp-card h3 {
  position: relative;
  color: #111;
  font-family: 'Barlow Condensed', 'Oswald', sans-serif;
  font-size: 27px;
  line-height: 1;
  text-transform: uppercase;
  margin: 0 0 10px;
}
.about-page.nfn-about-amp-page .about-amp-card h3::before {
  content: '';
  display: block;
  width: 42px;
  height: 4px;
  background: #8a22dc;
  margin-bottom: 12px;
}
.about-page.nfn-about-amp-page .about-amp-card p {
  position: relative;
  color: #555;
  font-size: 13.5px;
  line-height: 1.5;
  margin: 0;
}
.about-page.nfn-about-amp-page .about-contact-list {
  display: grid;
  gap: 10px;
  margin-bottom: 18px;
}
.about-page.nfn-about-amp-page .about-contact-list a {
  display: block;
  border: 1px solid #2d2d2d;
  background: #0b0b0b;
  padding: 15px;
  text-decoration: none;
}
.about-page.nfn-about-amp-page .about-contact-list a:hover {
  border-color: #8a22dc;
}
.about-page.nfn-about-amp-page .about-contact-list span {
  display: block;
  color: #b56cff;
  font-family: 'Barlow Condensed', 'Oswald', sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 5px;
}
.about-page.nfn-about-amp-page .about-contact-list strong {
  display: block;
  color: #fff;
  font-size: 14.5px;
  line-height: 1.35;
}
.about-page.nfn-about-amp-page .about-contact-cta {
  margin-top: auto;
  padding: 18px;
  background: linear-gradient(180deg, #141414 0%, #0b0b0b 100%);
  border-left: 4px solid #8a22dc;
}
.about-page.nfn-about-amp-page .about-contact-cta span {
  display: block;
  color: #fff;
  font-family: 'Barlow Condensed', 'Oswald', sans-serif;
  font-size: 22px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .4px;
  text-transform: uppercase;
  margin-bottom: 9px;
}
.about-page.nfn-about-amp-page .about-contact-cta p {
  margin: 0 0 14px;
  font-size: 13.5px;
  line-height: 1.55;
}
.about-page.nfn-about-amp-page .about-contact-cta .amp-button,
.about-page.nfn-about-amp-page .about-submit-box a,
.about-page.nfn-about-amp-page .contributor-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #8a22dc;
  color: #fff;
  font-family: 'Barlow Condensed', 'Oswald', sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .9px;
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
  padding: 11px 14px;
}
.about-page.nfn-about-amp-page .about-contact-cta .amp-button:hover,
.about-page.nfn-about-amp-page .about-submit-box a:hover,
.about-page.nfn-about-amp-page .contributor-links a:hover {
  background: #fff;
  color: #111;
}
.about-page.nfn-about-amp-page .about-section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
  border-bottom: 3px solid #222;
  padding-bottom: 14px;
  margin-bottom: 18px;
}
.about-page.nfn-about-amp-page .contributors-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.about-page.nfn-about-amp-page .contributor-card {
  display: block;
  background: #fff;
  color: #111;
  padding: 18px;
  min-height: 100%;
  border-left: 4px solid #8a22dc;
}
.about-page.nfn-about-amp-page .contributor-avatar {
  width: 58px;
  height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #080808;
  color: #fff;
  font-family: 'Barlow Condensed', 'Oswald', sans-serif;
  font-size: 24px;
  font-weight: 800;
  letter-spacing: 1px;
  margin-bottom: 14px;
}
.about-page.nfn-about-amp-page .contributor-card h3 {
  font-family: 'Barlow Condensed', 'Oswald', sans-serif;
  font-size: 24px;
  line-height: 1.02;
  text-transform: uppercase;
  margin: 0 0 5px;
}
.about-page.nfn-about-amp-page .contributor-card span {
  display: block;
  color: #8a22dc;
  font-family: 'Barlow Condensed', 'Oswald', sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 9px;
}
.about-page.nfn-about-amp-page .contributor-card p {
  color: #555;
  font-size: 13.5px;
  line-height: 1.55;
  margin: 0 0 10px;
}
.about-page.nfn-about-amp-page .contributor-links {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.about-page.nfn-about-amp-page .about-submit-section {
  padding-bottom: 72px;
}
.about-page.nfn-about-amp-page .about-submit-box {
  text-align: center;
  padding: 28px;
  background: linear-gradient(120deg, #080808 0%, #12051f 100%);
  border: 1px solid #242424;
}
.about-page.nfn-about-amp-page .about-submit-box p {
  max-width: 760px;
  margin: 0 auto 18px;
}

@media (max-width: 1100px) {
  .about-page.nfn-about-amp-page .contributors-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 980px) {
  .about-page.nfn-about-amp-page .about-content-grid,
  .about-page.nfn-about-amp-page .about-amp-grid {
    grid-template-columns: 1fr;
  }
  .about-page.nfn-about-amp-page .about-amp-card {
    border-right: 0;
    border-bottom: 1px solid rgba(0,0,0,.1);
  }
  .about-page.nfn-about-amp-page .about-amp-card:last-child {
    border-bottom: 0;
  }
}
@media (max-width: 640px) {
  .about-page.nfn-about-amp-page .about-hero {
    padding: 42px 0 30px;
  }
  .about-page.nfn-about-amp-page .about-main-card,
  .about-page.nfn-about-amp-page .about-contact-card {
    padding: 22px;
  }
  .about-page.nfn-about-amp-page .about-amp-heading {
    display: block;
  }
  .about-page.nfn-about-amp-page .about-amp-heading strong {
    display: block;
    margin-top: 10px;
    white-space: normal;
  }
  .about-page.nfn-about-amp-page .contributors-grid {
    grid-template-columns: 1fr;
  }
}


/* ===========================
   NFN V5.7 ABOUT AMP MATCH PASS
   Cream page background, AMP-inspired box sizing/spacing, and clean
   No Flash Needed branding without the old Focus/Room/Lens wording.
=========================== */
.about-page.nfn-about-amp-page {
  background: #f4f0e8;
  color: #111;
}
.about-page.nfn-about-amp-page .about-content-section,
.about-page.nfn-about-amp-page .contributors-section,
.about-page.nfn-about-amp-page .about-submit-section {
  background: #f4f0e8;
}
.about-page.nfn-about-amp-page .about-content-section {
  padding: 38px 0 34px;
}
.about-page.nfn-about-amp-page .about-content-grid {
  grid-template-columns: minmax(0, 1.62fr) minmax(300px, .78fr);
  gap: 24px;
  align-items: stretch;
}
.about-page.nfn-about-amp-page .about-main-card,
.about-page.nfn-about-amp-page .about-contact-card {
  box-shadow: none;
  border-radius: 0;
}
.about-page.nfn-about-amp-page .about-main-card {
  background: #fffefa;
  border: 1px solid rgba(0,0,0,.14);
  color: #111;
  padding: 38px 38px 32px;
  min-height: 0;
}
.about-page.nfn-about-amp-page .about-contact-card {
  background: linear-gradient(180deg, #101010 0%, #080808 100%);
  border: 1px solid rgba(255,255,255,.13);
  padding: 34px 28px;
  min-height: 0;
}
.about-page.nfn-about-amp-page .about-main-card h2,
.about-page.nfn-about-amp-page .about-contact-card h2 {
  font-size: clamp(30px, 2.7vw, 42px);
  line-height: .95;
  letter-spacing: .2px;
  margin-bottom: 20px;
}
.about-page.nfn-about-amp-page .about-main-card h2 {
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(0,0,0,.12);
}
.about-page.nfn-about-amp-page .about-main-card > p,
.about-page.nfn-about-amp-page .about-main-card p {
  color: #3f3f3f;
  font-size: 16px;
  line-height: 1.64;
  max-width: 940px;
}
.about-page.nfn-about-amp-page .about-main-card p + p {
  margin-top: 15px;
}
.about-page.nfn-about-amp-page .about-amp-difference {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid rgba(0,0,0,.12);
}
.about-page.nfn-about-amp-page .about-amp-heading {
  margin-bottom: 18px;
  align-items: end;
}
.about-page.nfn-about-amp-page .about-amp-heading span {
  color: #8a22dc;
  font-size: 12px;
  letter-spacing: 1.2px;
}
.about-page.nfn-about-amp-page .about-amp-heading strong {
  color: #111;
  font-size: clamp(24px, 2.35vw, 34px);
  letter-spacing: .3px;
}
.about-page.nfn-about-amp-page .about-amp-grid {
  border: 1px solid rgba(0,0,0,.14);
}
.about-page.nfn-about-amp-page .about-amp-card {
  min-height: 148px;
  padding: 22px 22px 20px;
  background: linear-gradient(135deg, #fffdf9 0%, #f8f3fb 100%);
  border-right: 1px solid rgba(0,0,0,.11);
}
.about-page.nfn-about-amp-page .about-amp-card b {
  right: 12px;
  bottom: -14px;
  color: rgba(138,34,220,.075);
  font-size: 86px;
}
.about-page.nfn-about-amp-page .about-amp-card h3 {
  font-size: 30px;
  margin-bottom: 8px;
}
.about-page.nfn-about-amp-page .about-amp-card h3::before {
  width: 46px;
  height: 4px;
  background: #8a22dc;
  margin-bottom: 14px;
}
.about-page.nfn-about-amp-page .about-amp-card p {
  color: #535353;
  font-size: 13.5px;
  line-height: 1.5;
}
.about-page.nfn-about-amp-page .about-contact-card h2 {
  border-bottom: 1px solid rgba(255,255,255,.14);
  padding-bottom: 17px;
}
.about-page.nfn-about-amp-page .about-contact-list {
  gap: 10px;
  margin-bottom: 16px;
}
.about-page.nfn-about-amp-page .about-contact-list a {
  padding: 13px 14px;
  min-height: 0;
}
.about-page.nfn-about-amp-page .about-contact-list span {
  font-size: 11px;
  letter-spacing: 1px;
  margin-bottom: 5px;
}
.about-page.nfn-about-amp-page .about-contact-list strong {
  font-size: 14.5px;
  line-height: 1.32;
}
.about-page.nfn-about-amp-page .about-contact-cta {
  margin-top: 16px;
  padding: 17px 18px;
}
.about-page.nfn-about-amp-page .about-contact-cta span {
  font-size: 23px;
  margin-bottom: 8px;
}
.about-page.nfn-about-amp-page .about-contact-cta p {
  font-size: 13.5px;
  line-height: 1.5;
  margin-bottom: 13px;
}
.about-page.nfn-about-amp-page .contributors-section {
  padding-top: 28px;
}
@media (max-width: 980px) {
  .about-page.nfn-about-amp-page .about-content-grid {
    grid-template-columns: 1fr;
  }
  .about-page.nfn-about-amp-page .about-main-card,
  .about-page.nfn-about-amp-page .about-contact-card {
    padding: 28px;
  }
}


/* ===========================
   NFN V5.8 ABOUT PRO REWORD
   Clean up About page language and keep the section professional.
=========================== */
.about-page.nfn-about-amp-page {
  background: #f4f0e8 !important;
}
.about-page.nfn-about-amp-page .about-content-section,
.about-page.nfn-about-amp-page .contributors-section,
.about-page.nfn-about-amp-page .about-submit-section {
  background: #f4f0e8 !important;
}
.about-page.nfn-about-amp-page .about-content-grid {
  align-items: start;
  grid-template-columns: minmax(0, 1.62fr) minmax(300px, .78fr);
}
.about-page.nfn-about-amp-page .about-contact-card {
  align-self: start;
}
.about-page.nfn-about-amp-page .about-amp-heading strong {
  color: #111;
  font-size: clamp(23px, 2.25vw, 32px);
  letter-spacing: .4px;
}
.about-page.nfn-about-amp-page .about-amp-card {
  min-height: 136px;
}
.about-page.nfn-about-amp-page .about-amp-card h3 {
  font-size: clamp(24px, 2vw, 29px);
}
.about-page.nfn-about-amp-page .about-amp-card p {
  font-size: 13.25px;
  line-height: 1.48;
}
.about-page.nfn-about-amp-page .about-amp-card b {
  color: rgba(138,34,220,.055);
  font-size: 78px;
  bottom: -12px;
}
.about-page.nfn-about-amp-page .about-contact-list {
  gap: 11px;
  margin-bottom: 18px;
}
.about-page.nfn-about-amp-page .about-contact-list a {
  padding: 16px 15px;
}
.about-page.nfn-about-amp-page .about-contact-cta {
  margin-top: 18px;
}
@media (max-width: 980px) {
  .about-page.nfn-about-amp-page .about-content-grid {
    grid-template-columns: 1fr;
  }
}


/* ===========================
   NFN V5.9 ABOUT BOX BALANCE
   Keep the current professional copy, but make the Who We Are and
   What We Cover panels share the same height and cleaner AMP-like spacing.
=========================== */
.about-page.nfn-about-amp-page .about-content-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.62fr) minmax(320px, .78fr) !important;
  gap: 24px !important;
  align-items: stretch !important;
}
.about-page.nfn-about-amp-page .about-main-card,
.about-page.nfn-about-amp-page .about-contact-card {
  height: 100% !important;
  min-height: 0 !important;
  box-sizing: border-box !important;
}
.about-page.nfn-about-amp-page .about-main-card {
  padding: 34px 34px 30px !important;
}
.about-page.nfn-about-amp-page .about-contact-card {
  align-self: stretch !important;
  padding: 34px 28px 30px !important;
  display: flex !important;
  flex-direction: column !important;
}
.about-page.nfn-about-amp-page .about-main-card h2,
.about-page.nfn-about-amp-page .about-contact-card h2 {
  margin: 0 0 18px !important;
  padding-bottom: 17px !important;
}
.about-page.nfn-about-amp-page .about-main-card > p,
.about-page.nfn-about-amp-page .about-main-card p {
  font-size: 15.75px !important;
  line-height: 1.62 !important;
}
.about-page.nfn-about-amp-page .about-main-card p + p {
  margin-top: 14px !important;
}
.about-page.nfn-about-amp-page .about-amp-difference {
  margin-top: 26px !important;
  padding-top: 22px !important;
}
.about-page.nfn-about-amp-page .about-amp-heading {
  margin-bottom: 16px !important;
}
.about-page.nfn-about-amp-page .about-amp-grid {
  min-height: 0 !important;
}
.about-page.nfn-about-amp-page .about-amp-card {
  min-height: 132px !important;
  padding: 20px 20px 18px !important;
}
.about-page.nfn-about-amp-page .about-contact-list {
  gap: 11px !important;
  margin-bottom: 18px !important;
}
.about-page.nfn-about-amp-page .about-contact-list a {
  padding: 16px 16px !important;
}
.about-page.nfn-about-amp-page .about-contact-cta {
  margin-top: auto !important;
  padding: 20px 20px 21px !important;
}
@media (max-width: 980px) {
  .about-page.nfn-about-amp-page .about-content-grid {
    grid-template-columns: 1fr !important;
  }
  .about-page.nfn-about-amp-page .about-main-card,
  .about-page.nfn-about-amp-page .about-contact-card {
    height: auto !important;
    padding: 28px !important;
  }
  .about-page.nfn-about-amp-page .about-contact-cta {
    margin-top: 18px !important;
  }
}


/* ===========================
   NFN V6.0 ABOUT FINAL POLISH
   Do not resize the matched About boxes. Tighten wording, restore title
   visibility, fix the Work With Us strip, and make the Editorial Desk card
   stand apart as the house desk.
=========================== */
.about-page.nfn-about-amp-page .about-hero h1 {
  color: #fff !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
.about-page.nfn-about-amp-page .about-hero p {
  color: #d8d3df !important;
}
.about-page.nfn-about-amp-page .about-submit-box {
  background: linear-gradient(120deg, #070707 0%, #160624 100%) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  color: #fff !important;
}
.about-page.nfn-about-amp-page .about-submit-box h2 {
  color: #fff !important;
  opacity: 1 !important;
}
.about-page.nfn-about-amp-page .about-submit-box p {
  color: #d0cbd4 !important;
}
.about-page.nfn-about-amp-page .contributor-card.contributor-card-desk {
  background: linear-gradient(180deg, #0b0b0c 0%, #050505 100%) !important;
  color: #fff !important;
  border-left-color: #8a22dc !important;
  border-color: rgba(255,255,255,.16) !important;
  box-shadow: 0 20px 36px rgba(0,0,0,.16) !important;
}
.about-page.nfn-about-amp-page .contributor-card.contributor-card-desk .contributor-avatar {
  background: #fff !important;
  color: #090909 !important;
}
.about-page.nfn-about-amp-page .contributor-card.contributor-card-desk h3 {
  color: #fff !important;
}
.about-page.nfn-about-amp-page .contributor-card.contributor-card-desk span {
  color: #bd81ff !important;
}
.about-page.nfn-about-amp-page .contributor-card.contributor-card-desk p {
  color: #d2ccd8 !important;
}
.about-page.nfn-about-amp-page .contributor-card.contributor-card-desk .contributor-links a:hover {
  background: #fff !important;
  color: #111 !important;
}

/* ===========================
   NFN V6.1 ABOUT HEADER MATCH
   Match the About hero to the shared inner page header used on Festivals.
   Do not touch the About content box sizing.
=========================== */
.about-page.nfn-about-amp-page .about-hero {
  position: relative !important;
  overflow: hidden !important;
  padding: 32px 0 32px !important;
  background:
    radial-gradient(circle at 78% 28%, rgba(126,34,206,.24), transparent 36%),
    linear-gradient(90deg, #050505 0%, #050505 58%, rgba(126,34,206,.16) 100%),
    #050505 !important;
  border-bottom: 0 !important;
  color: #fff !important;
}
.about-page.nfn-about-amp-page .about-hero .container {
  width: min(92%, 1280px) !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
}
.about-page.nfn-about-amp-page .about-hero h1 {
  max-width: 680px !important;
  margin: 6px 0 8px !important;
  color: #fff !important;
  font-family: 'Barlow Condensed', 'Oswald', sans-serif !important;
  font-size: clamp(30px, 3.6vw, 42px) !important;
  line-height: .98 !important;
  letter-spacing: -.25px !important;
  text-transform: uppercase !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
.about-page.nfn-about-amp-page .about-hero p {
  max-width: 620px !important;
  margin: 0 !important;
  color: rgba(255,255,255,.74) !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
}
@media (max-width: 680px) {
  .about-page.nfn-about-amp-page .about-hero {
    padding: 30px 0 28px !important;
  }
  .about-page.nfn-about-amp-page .about-hero h1 {
    font-size: clamp(30px, 10vw, 40px) !important;
  }
}

/* ===========================
   NFN V6.2 CONTRIBUTOR BUTTON ALIGNMENT
   Keep contributor action buttons pinned to the same height in each card.
=========================== */
.about-page.nfn-about-amp-page .contributor-card {
  display: flex !important;
  flex-direction: column;
  height: 100%;
}
.about-page.nfn-about-amp-page .contributor-card > div:last-child {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}
.about-page.nfn-about-amp-page .contributor-description {
  margin-bottom: 14px;
}
.about-page.nfn-about-amp-page .contributor-links {
  margin-top: auto !important;
  padding-top: 12px;
  align-items: center;
}
.about-page.nfn-about-amp-page .contributor-links a {
  min-height: 36px;
}


/* ===========================
   NFN V6.3 CONTACT SIDEBAR CLEANUP
   Remove coverage-request card spacing and let Advertising / PR sit directly
   under Direct Contacts with an even sidebar rhythm.
=========================== */
.nfn-contact-clean-page .nfn-contact-clean-side {
  gap: 18px;
  align-content: start;
}
.nfn-contact-clean-page .nfn-contact-clean-side .nfn-contact-side-card {
  margin: 0;
  padding: 26px;
}
.nfn-contact-clean-page .nfn-contact-fit-card {
  border-left: 5px solid var(--nfn-purple);
}
.nfn-contact-clean-page .nfn-contact-route-card a:last-child {
  padding-bottom: 0;
}
.nfn-contact-clean-page .nfn-contact-fit-card h2,
.nfn-contact-clean-page .nfn-contact-route-card h2 {
  margin-bottom: 18px;
}
.nfn-contact-clean-page .nfn-contact-fit-card p {
  margin-bottom: 18px;
}
@media (max-width: 1180px) {
  .nfn-contact-clean-page .nfn-contact-clean-side {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .nfn-contact-clean-page .nfn-contact-clean-side {
    grid-template-columns: 1fr;
  }
}


/* ===========================
   NFN V6.4 CONTACT COLUMN BALANCE
   Stop sidebar cards from sticking on scroll and make the full right column
   visually balance with the main form card, with cleaner spacing.
=========================== */
.nfn-contact-clean-page .nfn-contact-clean-grid {
  align-items: stretch;
}
.nfn-contact-clean-page .nfn-contact-form-panel {
  height: 100%;
}
.nfn-contact-clean-page .nfn-contact-clean-side {
  position: static;
  top: auto;
  align-self: stretch;
  height: 100%;
  grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
  gap: 20px;
}
.nfn-contact-clean-page .nfn-contact-clean-side .nfn-contact-side-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 26px 26px 24px;
}
.nfn-contact-clean-page .nfn-contact-route-card {
  justify-content: space-between;
}
.nfn-contact-clean-page .nfn-contact-route-card a {
  display: block;
  padding: 14px 0;
}
.nfn-contact-clean-page .nfn-contact-fit-card {
  justify-content: space-between;
}
.nfn-contact-clean-page .nfn-contact-fit-card .nfn-contact-side-link {
  margin-top: auto;
}
@media (max-width: 1180px) {
  .nfn-contact-clean-page .nfn-contact-clean-grid {
    align-items: start;
  }
  .nfn-contact-clean-page .nfn-contact-clean-side {
    height: auto;
    grid-template-rows: none;
  }
  .nfn-contact-clean-page .nfn-contact-clean-side .nfn-contact-side-card {
    height: auto;
  }
}


/* ===========================
   NFN V6.7 CONTACT RED LINE BOTTOM
   Bring the card bottoms up to the natural content height shown in the red-line note.
=========================== */
.nfn-contact-clean-page .nfn-contact-clean-grid {
  align-items: start !important;
}
.nfn-contact-clean-page .nfn-contact-form-panel {
  height: auto !important;
  align-self: start !important;
}
.nfn-contact-clean-page .nfn-contact-clean-side {
  position: static !important;
  top: auto !important;
  align-self: start !important;
  height: auto !important;
  min-height: 0 !important;
  grid-template-rows: none !important;
  gap: 20px !important;
}
.nfn-contact-clean-page .nfn-contact-clean-side .nfn-contact-side-card {
  height: auto !important;
  min-height: 0 !important;
  display: block !important;
  padding: 26px !important;
}
.nfn-contact-clean-page .nfn-contact-route-card {
  justify-content: initial !important;
}
.nfn-contact-clean-page .nfn-contact-fit-card {
  justify-content: initial !important;
}
.nfn-contact-clean-page .nfn-contact-fit-card .nfn-contact-side-link {
  margin-top: 12px !important;
  display: inline-flex;
}
.nfn-contact-clean-page .nfn-contact-form-panel .nfn-contact-form {
  margin-bottom: 0 !important;
}
.nfn-contact-clean-page .nfn-contact-form-media button {
  margin-bottom: 0 !important;
}

/* ===========================
   NFN V6.8 CONTACT SIDEBAR EVEN + NO PURPLE LINE
   Keep the right column bottom aligned with the form card
   and remove the purple accent line from Advertising / PR.
=========================== */
.nfn-contact-clean-page .nfn-contact-clean-grid {
  align-items: stretch !important;
}
.nfn-contact-clean-page .nfn-contact-form-panel {
  align-self: stretch !important;
}
.nfn-contact-clean-page .nfn-contact-clean-side {
  display: flex !important;
  flex-direction: column !important;
  position: static !important;
  top: auto !important;
  align-self: stretch !important;
  height: auto !important;
  min-height: 100% !important;
  gap: 20px !important;
}
.nfn-contact-clean-page .nfn-contact-clean-side .nfn-contact-side-card {
  height: auto !important;
  min-height: 0 !important;
}
.nfn-contact-clean-page .nfn-contact-route-card {
  flex: 0 0 auto !important;
}
.nfn-contact-clean-page .nfn-contact-fit-card {
  flex: 1 1 auto !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  border-left: 0 !important;
}
.nfn-contact-clean-page .nfn-contact-fit-card p {
  margin-bottom: 18px !important;
}
.nfn-contact-clean-page .nfn-contact-fit-card .nfn-contact-side-link {
  margin-top: auto !important;
  display: inline-flex !important;
}
@media (max-width: 1180px) {
  .nfn-contact-clean-page .nfn-contact-clean-grid {
    align-items: start !important;
  }
  .nfn-contact-clean-page .nfn-contact-clean-side {
    min-height: 0 !important;
    align-self: start !important;
  }
  .nfn-contact-clean-page .nfn-contact-fit-card {
    flex: 0 0 auto !important;
  }
}

/* ===========================
   NFN V6.9 CONTACT INTERNAL SPACING
   Keep the card sizes/positions from v6.8, but clean up the internal rhythm
   so content does not feel pushed around inside the boxes.
=========================== */
.nfn-contact-clean-page .nfn-contact-form-panel {
  display: flex !important;
  flex-direction: column !important;
  padding: clamp(28px, 3vw, 38px) !important;
}
.nfn-contact-clean-page .nfn-contact-panel-head {
  align-items: flex-end !important;
  padding-bottom: 18px !important;
  margin-bottom: 22px !important;
}
.nfn-contact-clean-page .nfn-contact-panel-head h2 {
  font-size: clamp(34px, 3.3vw, 46px) !important;
  line-height: .9 !important;
}
.nfn-contact-clean-page .nfn-contact-form-media {
  display: grid !important;
  gap: 17px !important;
  margin: 0 !important;
}
.nfn-contact-clean-page .nfn-form-grid {
  gap: 16px !important;
}
.nfn-contact-clean-page .nfn-contact-form-media label {
  margin: 0 !important;
}
.nfn-contact-clean-page .nfn-contact-form-media input,
.nfn-contact-clean-page .nfn-contact-form-media select {
  min-height: 48px !important;
}
.nfn-contact-clean-page .nfn-contact-form-media textarea {
  min-height: 156px !important;
  height: 156px !important;
}
.nfn-contact-clean-page .nfn-contact-form-media button {
  width: fit-content !important;
  margin-top: 2px !important;
}
.nfn-contact-clean-page .nfn-contact-clean-side .nfn-contact-side-card {
  padding: 28px 28px 26px !important;
}
.nfn-contact-clean-page .nfn-contact-clean-side .nfn-contact-side-card h2 {
  font-size: 34px !important;
  line-height: .9 !important;
  margin: 0 0 22px !important;
}
.nfn-contact-clean-page .nfn-contact-route-card a {
  padding: 15px 0 !important;
}
.nfn-contact-clean-page .nfn-contact-route-card a span,
.nfn-contact-clean-page .nfn-contact-side-link {
  line-height: 1.15 !important;
}
.nfn-contact-clean-page .nfn-contact-fit-card {
  justify-content: flex-start !important;
}
.nfn-contact-clean-page .nfn-contact-fit-card p {
  max-width: 92% !important;
  margin: 0 0 22px !important;
  line-height: 1.55 !important;
}
.nfn-contact-clean-page .nfn-contact-fit-card .nfn-contact-side-link {
  margin-top: 0 !important;
  align-self: flex-start !important;
}
@media (min-width: 1181px) {
  .nfn-contact-clean-page .nfn-contact-fit-card::after {
    content: '';
    display: block;
    flex: 1 1 auto;
  }
}
@media (max-width: 720px) {
  .nfn-contact-clean-page .nfn-contact-form-panel,
  .nfn-contact-clean-page .nfn-contact-clean-side .nfn-contact-side-card {
    padding: 24px !important;
  }
  .nfn-contact-clean-page .nfn-form-grid {
    grid-template-columns: 1fr !important;
  }
  .nfn-contact-clean-page .nfn-contact-panel-head {
    align-items: flex-start !important;
  }
}


/* ===========================
   NFN V7.1 WRITE FOR US BALANCE
   Equalize the left application panel and right opportunity cards,
   add cleaner internal spacing, and move approved-login link down.
=========================== */
.nfn-write-layout {
  align-items: stretch;
}
.nfn-write-layout .nfn-info-main,
.nfn-write-layout .nfn-write-side {
  min-height: 100%;
}
.nfn-write-layout .nfn-write-side {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.nfn-write-layout .nfn-info-card {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 0;
  padding: clamp(22px, 2.2vw, 30px);
}
.nfn-write-layout .nfn-info-card strong {
  line-height: .95;
}
.nfn-write-layout .nfn-info-card span {
  margin-top: 12px;
}
.nfn-write-apply-link {
  color: var(--nfn-purple);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.nfn-approved-login {
  margin-top: 30px;
  padding-top: 18px;
  border-top: 1px solid #e4e0d8;
}
.nfn-approved-login a {
  color: var(--nfn-purple);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 1080px) {
  .nfn-write-layout {
    align-items: start;
  }
  .nfn-write-layout .nfn-write-side {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .nfn-write-layout .nfn-info-card {
    min-height: 132px;
    justify-content: flex-start;
  }
}
@media (max-width: 760px) {
  .nfn-write-layout .nfn-write-side {
    grid-template-columns: 1fr;
  }
  .nfn-write-layout .nfn-info-card {
    min-height: 0;
  }
}

/* ===========================
   NFN V7.3 CONTRIBUTOR ACCESS RESTORE
   Keep the contributor plugin working at its natural scale. Remove the heavy
   white nested card around the hub, use a full-width shell, and only nudge
   color accents from AMP red to NFN purple.
=========================== */
.nfn-contributor-body {
  background: #f6f3ee;
  padding: 34px 0 56px;
}
.nfn-contributor-shell {
  max-width: 1180px;
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
}
.nfn-contributor-sessionbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 22px;
  padding: 14px 18px;
  background: #fff;
  border: 1px solid #e4e0d8;
  box-shadow: 0 8px 22px rgba(0,0,0,.045);
}
.nfn-contributor-sessionbar p {
  margin: 0;
  color: #252525;
  font-size: 15px;
  line-height: 1.4;
}
.nfn-contributor-sessionbar .nfn-login-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  margin: 0;
}
.nfn-contributor-sessionbar .nfn-pill-button {
  padding: 11px 22px;
  min-width: 145px;
  text-align: center;
}
.nfn-contributor-hub-frame {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.nfn-contributor-hub-frame > * {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.nfn-contributor-hub-frame table {
  width: 100% !important;
  max-width: 100% !important;
}
.nfn-contributor-hub-frame img,
.nfn-contributor-hub-frame iframe {
  max-width: 100% !important;
}
/* NFN color pass for the AMP contributor plugin. Scoped so it will not affect the rest of the site. */
.nfn-contributor-hub-frame [style*="#e00"],
.nfn-contributor-hub-frame [style*="#ee0000"],
.nfn-contributor-hub-frame [style*="#f00"],
.nfn-contributor-hub-frame [style*="#ff0000"],
.nfn-contributor-hub-frame [style*="red"] {
  background-color: var(--nfn-purple) !important;
  border-color: var(--nfn-purple) !important;
}
.nfn-contributor-hub-frame [style*="border-left"] {
  border-left-color: var(--nfn-purple) !important;
}
.nfn-contributor-hub-frame .active,
.nfn-contributor-hub-frame .current,
.nfn-contributor-hub-frame [aria-current="page"],
.nfn-contributor-hub-frame [aria-selected="true"] {
  background-color: var(--nfn-purple) !important;
  border-color: var(--nfn-purple) !important;
  color: #fff !important;
}
.nfn-contributor-hub-frame a:hover,
.nfn-contributor-hub-frame button:hover,
.nfn-contributor-hub-frame input[type="submit"]:hover,
.nfn-contributor-hub-frame input[type="button"]:hover {
  border-color: var(--nfn-purple) !important;
}
@media (max-width: 900px) {
  .nfn-contributor-shell {
    width: min(100%, calc(100% - 28px));
  }
  .nfn-contributor-sessionbar {
    align-items: flex-start;
    flex-direction: column;
  }
  .nfn-contributor-sessionbar .nfn-login-actions {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

/* ===========================
   NFN V7.4 CONTRIBUTOR HUB REALIGN
   Keep plugin functions intact, but make every contributor shortcode page fit
   the NFN site instead of sitting inside a tiny generic page card.
=========================== */
.nfn-contributor-generic-page .nfn-inner-body,
.nfn-login-page .nfn-contributor-body {
  background: #f6f3ee !important;
}
.nfn-contributor-generic-page .nfn-inner-body {
  padding: 34px 0 58px !important;
}
.nfn-contributor-generic-page .nfn-inner-hero,
.nfn-login-page .nfn-inner-hero {
  min-height: 0;
}
.nfn-contributor-generic-page .nfn-inner-hero h1,
.nfn-login-page .nfn-inner-hero h1 {
  font-size: clamp(34px, 3.1vw, 48px) !important;
  line-height: .94 !important;
}
.nfn-contributor-shell,
.nfn-contributor-generic-page .nfn-contributor-shell,
.nfn-login-page .nfn-contributor-shell {
  width: min(1180px, calc(100% - 48px)) !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.nfn-contributor-hub-frame,
.nfn-contributor-native-frame {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
  background: transparent !important;
  color-scheme: dark;
}
.nfn-contributor-hub-frame > *,
.nfn-contributor-native-frame > *,
.nfn-contributor-hub-frame .wp-block-shortcode,
.nfn-contributor-native-frame .wp-block-shortcode {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.nfn-contributor-hub-frame .wp-block-shortcode:empty,
.nfn-contributor-native-frame .wp-block-shortcode:empty {
  display: none !important;
}

/* Lose the accidental white card/rounded shell from generic pages. */
.nfn-contributor-generic-page .nfn-page-content,
.nfn-contributor-generic-page .nfn-single-content,
.nfn-contributor-hub-frame .nfn-page-content,
.nfn-contributor-native-frame .nfn-page-content {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Broad NFN skin for the AMP contributor plugin output. Scoped to contributor frames. */
.nfn-contributor-hub-frame,
.nfn-contributor-hub-frame *,
.nfn-contributor-native-frame,
.nfn-contributor-native-frame * {
  box-sizing: border-box;
}
.nfn-contributor-hub-frame [class*="amp"],
.nfn-contributor-native-frame [class*="amp"],
.nfn-contributor-hub-frame [class*="contributor"],
.nfn-contributor-native-frame [class*="contributor"] {
  max-width: 100%;
}
.nfn-contributor-hub-frame [style*="max-width"],
.nfn-contributor-native-frame [style*="max-width"] {
  max-width: 100% !important;
}
.nfn-contributor-hub-frame [style*="#e00"],
.nfn-contributor-hub-frame [style*="#ee0000"],
.nfn-contributor-hub-frame [style*="#f00"],
.nfn-contributor-hub-frame [style*="#ff0000"],
.nfn-contributor-hub-frame [style*="rgb(238, 0, 0)"],
.nfn-contributor-hub-frame [style*="rgb(255, 0, 0)"],
.nfn-contributor-hub-frame [style*="red"],
.nfn-contributor-native-frame [style*="#e00"],
.nfn-contributor-native-frame [style*="#ee0000"],
.nfn-contributor-native-frame [style*="#f00"],
.nfn-contributor-native-frame [style*="#ff0000"],
.nfn-contributor-native-frame [style*="rgb(238, 0, 0)"],
.nfn-contributor-native-frame [style*="rgb(255, 0, 0)"],
.nfn-contributor-native-frame [style*="red"] {
  background-color: var(--nfn-purple) !important;
  border-color: var(--nfn-purple) !important;
  color: #fff !important;
}
.nfn-contributor-hub-frame [style*="border-left"],
.nfn-contributor-native-frame [style*="border-left"] {
  border-left-color: var(--nfn-purple) !important;
}
.nfn-contributor-hub-frame a,
.nfn-contributor-native-frame a {
  color: inherit;
}
.nfn-contributor-hub-frame a:not(.button):not(.btn):not([class*="button"]):not([class*="btn"]),
.nfn-contributor-native-frame a:not(.button):not(.btn):not([class*="button"]):not([class*="btn"]) {
  text-underline-offset: 3px;
}
.nfn-contributor-hub-frame button,
.nfn-contributor-hub-frame input[type="submit"],
.nfn-contributor-hub-frame input[type="button"],
.nfn-contributor-hub-frame .button,
.nfn-contributor-hub-frame .btn,
.nfn-contributor-hub-frame [class*="button"],
.nfn-contributor-hub-frame [class*="btn"],
.nfn-contributor-native-frame button,
.nfn-contributor-native-frame input[type="submit"],
.nfn-contributor-native-frame input[type="button"],
.nfn-contributor-native-frame .button,
.nfn-contributor-native-frame .btn,
.nfn-contributor-native-frame [class*="button"],
.nfn-contributor-native-frame [class*="btn"] {
  border-radius: 3px !important;
}
.nfn-contributor-hub-frame .active,
.nfn-contributor-hub-frame .current,
.nfn-contributor-hub-frame [aria-current="page"],
.nfn-contributor-hub-frame [aria-selected="true"],
.nfn-contributor-native-frame .active,
.nfn-contributor-native-frame .current,
.nfn-contributor-native-frame [aria-current="page"],
.nfn-contributor-native-frame [aria-selected="true"] {
  background-color: var(--nfn-purple) !important;
  border-color: var(--nfn-purple) !important;
  color: #fff !important;
}
.nfn-contributor-hub-frame :is(.status-approved, .approved),
.nfn-contributor-native-frame :is(.status-approved, .approved) {
  background: #168447 !important;
  color: #fff !important;
}
.nfn-contributor-hub-frame :is(.status-hold, .on-hold, .hold),
.nfn-contributor-native-frame :is(.status-hold, .on-hold, .hold) {
  background: #9a680d !important;
  color: #fff !important;
}
.nfn-contributor-hub-frame :is(.status-ln, .ln-portal),
.nfn-contributor-native-frame :is(.status-ln, .ln-portal) {
  background: #285cff !important;
  color: #fff !important;
}
.nfn-contributor-hub-frame [class*="watermark"],
.nfn-contributor-native-frame [class*="watermark"] {
  color: rgba(139, 35, 220, .05) !important;
}
.nfn-contributor-hub-frame [class*="amp"]::before,
.nfn-contributor-hub-frame [class*="amp"]::after,
.nfn-contributor-native-frame [class*="amp"]::before,
.nfn-contributor-native-frame [class*="amp"]::after {
  border-color: rgba(139, 35, 220, .24) !important;
}

/* Session bar cleanup: no blank giant purple pill. */
.nfn-contributor-sessionbar .nfn-pill-button {
  background: transparent !important;
  color: var(--nfn-purple) !important;
  border: 1px solid rgba(139, 35, 220, .35) !important;
  min-width: 0 !important;
  box-shadow: none !important;
}
.nfn-contributor-sessionbar .nfn-pill-button:hover {
  background: var(--nfn-purple) !important;
  color: #fff !important;
}

@media (max-width: 900px) {
  .nfn-contributor-shell,
  .nfn-contributor-generic-page .nfn-contributor-shell,
  .nfn-login-page .nfn-contributor-shell {
    width: min(100%, calc(100% - 28px)) !important;
  }
}
@media (max-width: 720px) {
  .nfn-contributor-hub-frame table,
  .nfn-contributor-native-frame table {
    min-width: 720px;
  }
}

/* Extra primary action color pass for contributor plugin controls. */
.nfn-contributor-hub-frame input[type="submit"],
.nfn-contributor-hub-frame input[type="button"],
.nfn-contributor-hub-frame button[type="submit"],
.nfn-contributor-hub-frame [class*="primary"],
.nfn-contributor-hub-frame [class*="submit"],
.nfn-contributor-hub-frame [class*="save"],
.nfn-contributor-hub-frame [class*="new-request"],
.nfn-contributor-hub-frame [class*="cta"],
.nfn-contributor-native-frame input[type="submit"],
.nfn-contributor-native-frame input[type="button"],
.nfn-contributor-native-frame button[type="submit"],
.nfn-contributor-native-frame [class*="primary"],
.nfn-contributor-native-frame [class*="submit"],
.nfn-contributor-native-frame [class*="save"],
.nfn-contributor-native-frame [class*="new-request"],
.nfn-contributor-native-frame [class*="cta"] {
  background-color: var(--nfn-purple) !important;
  border-color: var(--nfn-purple) !important;
  color: #fff !important;
  border-radius: 3px !important;
}
.nfn-contributor-hub-frame [class*="danger"],
.nfn-contributor-hub-frame [class*="delete"],
.nfn-contributor-native-frame [class*="danger"],
.nfn-contributor-native-frame [class*="delete"] {
  background-color: transparent !important;
  border-color: rgba(255,255,255,.18) !important;
  color: #ffb4b4 !important;
}
.nfn-contributor-hub-frame [class*="watermark"]::before,
.nfn-contributor-hub-frame [class*="watermark"]::after,
.nfn-contributor-native-frame [class*="watermark"]::before,
.nfn-contributor-native-frame [class*="watermark"]::after {
  content: "NFN" !important;
  color: rgba(139, 35, 220, .06) !important;
}


/* ===========================
   NFN V7.5 CONTRIBUTOR PLUGIN FINAL SKIN
   Hide duplicate site page headers on contributor pages and force the AMP-built
   contributor plugin to display as NFN: purple accents, no red bars, no AMP marks.
=========================== */
.nfn-contributor-generic-page > .nfn-inner-hero,
.nfn-login-page.nfn-contributor-logged-in > .nfn-inner-hero {
  display: none !important;
}
.nfn-contributor-generic-page .nfn-inner-body,
.nfn-login-page.nfn-contributor-logged-in .nfn-contributor-body {
  padding-top: 30px !important;
  padding-bottom: 58px !important;
}
.nfn-contributor-shell,
.nfn-contributor-generic-page .nfn-contributor-shell,
.nfn-login-page .nfn-contributor-shell {
  width: min(1180px, calc(100% - 48px)) !important;
  max-width: 1180px !important;
}
.nfn-contributor-hub-frame,
.nfn-contributor-native-frame {
  --amp-red: var(--nfn-purple) !important;
  --amp-accent: var(--nfn-purple) !important;
  --amp-primary: var(--nfn-purple) !important;
  --brand-red: var(--nfn-purple) !important;
  --brand-accent: var(--nfn-purple) !important;
  --contributor-accent: var(--nfn-purple) !important;
  --contributor-red: var(--nfn-purple) !important;
}
.nfn-contributor-hub-frame [style*="border-left"],
.nfn-contributor-hub-frame [style*="border-top"],
.nfn-contributor-hub-frame [style*="border-right"],
.nfn-contributor-hub-frame [style*="border-bottom"],
.nfn-contributor-native-frame [style*="border-left"],
.nfn-contributor-native-frame [style*="border-top"],
.nfn-contributor-native-frame [style*="border-right"],
.nfn-contributor-native-frame [style*="border-bottom"] {
  border-color: rgba(126, 34, 206, .86) !important;
}
.nfn-contributor-hub-frame [style*="#e00"],
.nfn-contributor-hub-frame [style*="#E00"],
.nfn-contributor-hub-frame [style*="#ee0000"],
.nfn-contributor-hub-frame [style*="#EE0000"],
.nfn-contributor-hub-frame [style*="#f00"],
.nfn-contributor-hub-frame [style*="#F00"],
.nfn-contributor-hub-frame [style*="#ff0000"],
.nfn-contributor-hub-frame [style*="#FF0000"],
.nfn-contributor-hub-frame [style*="rgb(238, 0, 0)"],
.nfn-contributor-hub-frame [style*="rgb(255, 0, 0)"],
.nfn-contributor-native-frame [style*="#e00"],
.nfn-contributor-native-frame [style*="#E00"],
.nfn-contributor-native-frame [style*="#ee0000"],
.nfn-contributor-native-frame [style*="#EE0000"],
.nfn-contributor-native-frame [style*="#f00"],
.nfn-contributor-native-frame [style*="#F00"],
.nfn-contributor-native-frame [style*="#ff0000"],
.nfn-contributor-native-frame [style*="#FF0000"],
.nfn-contributor-native-frame [style*="rgb(238, 0, 0)"],
.nfn-contributor-native-frame [style*="rgb(255, 0, 0)"] {
  background-color: var(--nfn-purple) !important;
  border-color: var(--nfn-purple) !important;
  color: #fff !important;
}
.nfn-contributor-hub-frame a,
.nfn-contributor-native-frame a {
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.nfn-contributor-hub-frame button,
.nfn-contributor-hub-frame input[type="submit"],
.nfn-contributor-hub-frame input[type="button"],
.nfn-contributor-hub-frame .button,
.nfn-contributor-hub-frame .btn,
.nfn-contributor-hub-frame [role="button"],
.nfn-contributor-native-frame button,
.nfn-contributor-native-frame input[type="submit"],
.nfn-contributor-native-frame input[type="button"],
.nfn-contributor-native-frame .button,
.nfn-contributor-native-frame .btn,
.nfn-contributor-native-frame [role="button"] {
  border-radius: 2px !important;
}
.nfn-contributor-hub-frame .nfn-pseudo-before-nfn::before,
.nfn-contributor-native-frame .nfn-pseudo-before-nfn::before,
.nfn-contributor-hub-frame .nfn-pseudo-after-nfn::after,
.nfn-contributor-native-frame .nfn-pseudo-after-nfn::after {
  content: "NFN" !important;
  color: rgba(126, 34, 206, .08) !important;
}
.nfn-contributor-hub-frame [class*="watermark"],
.nfn-contributor-native-frame [class*="watermark"] {
  color: rgba(126, 34, 206, .08) !important;
}
.nfn-contributor-hub-frame [class*="watermark"]::before,
.nfn-contributor-hub-frame [class*="watermark"]::after,
.nfn-contributor-native-frame [class*="watermark"]::before,
.nfn-contributor-native-frame [class*="watermark"]::after {
  content: "NFN" !important;
  color: rgba(126, 34, 206, .08) !important;
}
@media (max-width: 900px) {
  .nfn-contributor-shell,
  .nfn-contributor-generic-page .nfn-contributor-shell,
  .nfn-login-page .nfn-contributor-shell {
    width: min(100%, calc(100% - 28px)) !important;
  }
  .nfn-contributor-generic-page .nfn-inner-body,
  .nfn-login-page.nfn-contributor-logged-in .nfn-contributor-body {
    padding-top: 22px !important;
  }
}


/* ===========================
   NFN V7.6 CONTRIBUTOR CLICK + PURPLE FIX
   Keep the hub clickable while removing remaining AMP/red visuals.
=========================== */
.nfn-contributor-hub-frame,
.nfn-contributor-native-frame {
  --amp-red: var(--nfn-purple) !important;
  --amp-accent: var(--nfn-purple) !important;
  --amp-primary: var(--nfn-purple) !important;
  --brand-red: var(--nfn-purple) !important;
  --brand-accent: var(--nfn-purple) !important;
  --contributor-red: var(--nfn-purple) !important;
  --contributor-accent: var(--nfn-purple) !important;
}
.nfn-contributor-hub-frame a,
.nfn-contributor-hub-frame button,
.nfn-contributor-hub-frame input,
.nfn-contributor-hub-frame select,
.nfn-contributor-hub-frame textarea,
.nfn-contributor-native-frame a,
.nfn-contributor-native-frame button,
.nfn-contributor-native-frame input,
.nfn-contributor-native-frame select,
.nfn-contributor-native-frame textarea {
  pointer-events: auto !important;
  position: relative;
  z-index: 5;
}
.nfn-contributor-hub-frame *::before,
.nfn-contributor-hub-frame *::after,
.nfn-contributor-native-frame *::before,
.nfn-contributor-native-frame *::after {
  pointer-events: none !important;
}
.nfn-contributor-hub-frame [style*="linear-gradient"],
.nfn-contributor-hub-frame [style*="radial-gradient"],
.nfn-contributor-native-frame [style*="linear-gradient"],
.nfn-contributor-native-frame [style*="radial-gradient"] {
  background-image: linear-gradient(110deg, #050505 0%, #08070a 58%, rgba(126, 34, 206, .28) 100%) !important;
}
.nfn-contributor-hub-frame [style*="#e00"],
.nfn-contributor-hub-frame [style*="#E00"],
.nfn-contributor-hub-frame [style*="#f00"],
.nfn-contributor-hub-frame [style*="#F00"],
.nfn-contributor-hub-frame [style*="#ff0000"],
.nfn-contributor-hub-frame [style*="#FF0000"],
.nfn-contributor-hub-frame [style*="#ee0000"],
.nfn-contributor-hub-frame [style*="#EE0000"],
.nfn-contributor-native-frame [style*="#e00"],
.nfn-contributor-native-frame [style*="#E00"],
.nfn-contributor-native-frame [style*="#f00"],
.nfn-contributor-native-frame [style*="#F00"],
.nfn-contributor-native-frame [style*="#ff0000"],
.nfn-contributor-native-frame [style*="#FF0000"],
.nfn-contributor-native-frame [style*="#ee0000"],
.nfn-contributor-native-frame [style*="#EE0000"] {
  background-color: var(--nfn-purple) !important;
  border-color: var(--nfn-purple) !important;
}
.nfn-contributor-hub-frame button,
.nfn-contributor-hub-frame input[type="submit"],
.nfn-contributor-hub-frame input[type="button"],
.nfn-contributor-hub-frame .button,
.nfn-contributor-hub-frame .btn,
.nfn-contributor-hub-frame [role="button"],
.nfn-contributor-native-frame button,
.nfn-contributor-native-frame input[type="submit"],
.nfn-contributor-native-frame input[type="button"],
.nfn-contributor-native-frame .button,
.nfn-contributor-native-frame .btn,
.nfn-contributor-native-frame [role="button"] {
  background-color: var(--nfn-purple) !important;
  border-color: var(--nfn-purple) !important;
  color: #fff !important;
  border-radius: 2px !important;
  cursor: pointer !important;
}
.nfn-contributor-hub-frame a:hover,
.nfn-contributor-hub-frame button:hover,
.nfn-contributor-hub-frame input[type="submit"]:hover,
.nfn-contributor-native-frame a:hover,
.nfn-contributor-native-frame button:hover,
.nfn-contributor-native-frame input[type="submit"]:hover {
  filter: brightness(1.08);
}
.nfn-contributor-hub-frame [class*="watermark"],
.nfn-contributor-native-frame [class*="watermark"] {
  color: rgba(126, 34, 206, .08) !important;
}
.nfn-contributor-hub-frame .nfn-pseudo-before-nfn::before,
.nfn-contributor-native-frame .nfn-pseudo-before-nfn::before,
.nfn-contributor-hub-frame .nfn-pseudo-after-nfn::after,
.nfn-contributor-native-frame .nfn-pseudo-after-nfn::after,
.nfn-contributor-hub-frame [class*="watermark"]::before,
.nfn-contributor-hub-frame [class*="watermark"]::after,
.nfn-contributor-native-frame [class*="watermark"]::before,
.nfn-contributor-native-frame [class*="watermark"]::after {
  content: "NFN" !important;
  color: rgba(126, 34, 206, .08) !important;
}


/* ===========================
   NFN V7.7 CONTRIBUTOR TRUE NFN SKIN
   Final contributor cleanup: no AMP watermark, no red gradient, and normal
   editor toolbar buttons on the Write Review page.
=========================== */
.nfn-contributor-hub-frame,
.nfn-contributor-native-frame {
  --amp-red: var(--nfn-purple) !important;
  --amp-primary: var(--nfn-purple) !important;
  --amp-accent: var(--nfn-purple) !important;
  --brand-red: var(--nfn-purple) !important;
  --brand-primary: var(--nfn-purple) !important;
  --brand-accent: var(--nfn-purple) !important;
  --contributor-red: var(--nfn-purple) !important;
  --contributor-accent: var(--nfn-purple) !important;
  --contributor-primary: var(--nfn-purple) !important;
}

/* Remove any remaining red-tinted AMP panel backgrounds. */
.nfn-contributor-hub-frame [style*="linear-gradient"],
.nfn-contributor-hub-frame [style*="radial-gradient"],
.nfn-contributor-native-frame [style*="linear-gradient"],
.nfn-contributor-native-frame [style*="radial-gradient"],
.nfn-contributor-hub-frame [class*="hero"],
.nfn-contributor-hub-frame [class*="banner"],
.nfn-contributor-hub-frame [class*="panel"],
.nfn-contributor-hub-frame [class*="card"],
.nfn-contributor-native-frame [class*="hero"],
.nfn-contributor-native-frame [class*="banner"],
.nfn-contributor-native-frame [class*="panel"],
.nfn-contributor-native-frame [class*="card"] {
  --amp-red: var(--nfn-purple) !important;
  --brand-red: var(--nfn-purple) !important;
}
.nfn-contributor-hub-frame [class*="hero"],
.nfn-contributor-hub-frame [class*="banner"],
.nfn-contributor-native-frame [class*="hero"],
.nfn-contributor-native-frame [class*="banner"] {
  background-image: linear-gradient(110deg, #050505 0%, #07070a 58%, rgba(126,34,206,.30) 100%) !important;
  background-color: #050505 !important;
}

/* Force common red values to NFN purple. */
.nfn-contributor-hub-frame [style*="238, 0, 0"],
.nfn-contributor-hub-frame [style*="255, 0, 0"],
.nfn-contributor-hub-frame [style*="220, 38, 38"],
.nfn-contributor-hub-frame [style*="#ef4444"],
.nfn-contributor-hub-frame [style*="#dc2626"],
.nfn-contributor-hub-frame [style*="#b91c1c"],
.nfn-contributor-native-frame [style*="238, 0, 0"],
.nfn-contributor-native-frame [style*="255, 0, 0"],
.nfn-contributor-native-frame [style*="220, 38, 38"],
.nfn-contributor-native-frame [style*="#ef4444"],
.nfn-contributor-native-frame [style*="#dc2626"],
.nfn-contributor-native-frame [style*="#b91c1c"] {
  background-color: var(--nfn-purple) !important;
  border-color: var(--nfn-purple) !important;
}

/* Pseudo watermark override. The script adds these classes only when it sees AMP pseudo content. */
.nfn-contributor-hub-frame .nfn-pseudo-before-nfn::before,
.nfn-contributor-native-frame .nfn-pseudo-before-nfn::before,
.nfn-contributor-hub-frame .nfn-pseudo-after-nfn::after,
.nfn-contributor-native-frame .nfn-pseudo-after-nfn::after {
  content: "NFN" !important;
  color: rgba(126,34,206,.075) !important;
}
.nfn-contributor-hub-frame [class*="watermark"],
.nfn-contributor-native-frame [class*="watermark"] {
  color: rgba(126,34,206,.075) !important;
}
.nfn-contributor-hub-frame [class*="watermark"]::before,
.nfn-contributor-hub-frame [class*="watermark"]::after,
.nfn-contributor-native-frame [class*="watermark"]::before,
.nfn-contributor-native-frame [class*="watermark"]::after {
  content: "NFN" !important;
  color: rgba(126,34,206,.075) !important;
}

/* Keep real contributor action buttons purple, but do NOT turn the WordPress editor toolbar into purple blocks. */
.nfn-contributor-hub-frame .wp-editor-wrap,
.nfn-contributor-native-frame .wp-editor-wrap {
  color-scheme: light !important;
}
.nfn-contributor-hub-frame .wp-editor-wrap button,
.nfn-contributor-hub-frame .wp-editor-wrap input[type="button"],
.nfn-contributor-hub-frame .wp-editor-wrap .button,
.nfn-contributor-hub-frame .quicktags-toolbar input.ed_button,
.nfn-contributor-hub-frame .mce-toolbar .mce-btn button,
.nfn-contributor-hub-frame .mce-toolbar .mce-btn,
.nfn-contributor-hub-frame .mce-container button,
.nfn-contributor-hub-frame .mce-btn button,
.nfn-contributor-native-frame .wp-editor-wrap button,
.nfn-contributor-native-frame .wp-editor-wrap input[type="button"],
.nfn-contributor-native-frame .wp-editor-wrap .button,
.nfn-contributor-native-frame .quicktags-toolbar input.ed_button,
.nfn-contributor-native-frame .mce-toolbar .mce-btn button,
.nfn-contributor-native-frame .mce-toolbar .mce-btn,
.nfn-contributor-native-frame .mce-container button,
.nfn-contributor-native-frame .mce-btn button {
  background: #f4f1eb !important;
  background-image: none !important;
  border-color: #d7d0c6 !important;
  color: #151515 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  border-radius: 0 !important;
  filter: none !important;
}
.nfn-contributor-hub-frame .wp-editor-wrap .wp-switch-editor,
.nfn-contributor-native-frame .wp-editor-wrap .wp-switch-editor {
  background: #141217 !important;
  background-image: none !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.18) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.nfn-contributor-hub-frame .wp-editor-wrap.tmce-active .switch-tmce,
.nfn-contributor-hub-frame .wp-editor-wrap.html-active .switch-html,
.nfn-contributor-native-frame .wp-editor-wrap.tmce-active .switch-tmce,
.nfn-contributor-native-frame .wp-editor-wrap.html-active .switch-html {
  background: var(--nfn-purple) !important;
  color: #fff !important;
  border-color: var(--nfn-purple) !important;
}
.nfn-contributor-hub-frame .quicktags-toolbar,
.nfn-contributor-native-frame .quicktags-toolbar,
.nfn-contributor-hub-frame .mce-toolbar,
.nfn-contributor-native-frame .mce-toolbar {
  background: #f4f1eb !important;
  background-image: none !important;
  border-color: #d7d0c6 !important;
}
.nfn-contributor-hub-frame .wp-editor-container,
.nfn-contributor-native-frame .wp-editor-container {
  border-color: rgba(255,255,255,.20) !important;
}

/* Contributor hub buttons stay square and NFN purple where they should. */
.nfn-contributor-hub-frame :is(.active,.current,[aria-current="page"],[aria-selected="true"]):not(.mce-btn):not(.wp-switch-editor),
.nfn-contributor-native-frame :is(.active,.current,[aria-current="page"],[aria-selected="true"]):not(.mce-btn):not(.wp-switch-editor) {
  background: var(--nfn-purple) !important;
  border-color: var(--nfn-purple) !important;
  color: #fff !important;
}

/* Keep the contributor pages wide and avoid nested white-card scaling. */
.nfn-contributor-generic-page .nfn-contributor-shell,
.nfn-login-page .nfn-contributor-shell {
  width: min(1180px, calc(100% - 48px)) !important;
  max-width: 1180px !important;
}
@media (max-width: 900px) {
  .nfn-contributor-generic-page .nfn-contributor-shell,
  .nfn-login-page .nfn-contributor-shell {
    width: min(100%, calc(100% - 28px)) !important;
  }
}


/* ===========================
   NFN V7.8 HOME PAGE POLISH
   Screenshot notes: ticker label, latest heading/link alignment, and cleaner hero arrows.
=========================== */

/* Top ticker is news-driven, so label it that way. */
.nfn-ticker-label {
  white-space: nowrap;
}

/* Keep section headers clean and make the right-side links feel intentional, not floating. */
.nfn-section-label {
  align-items: center;
  margin-bottom: 18px;
  padding-bottom: 10px;
}
.nfn-section-label > span {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.nfn-section-label > span::before {
  flex: 0 0 auto;
  margin-right: 0;
  transform: none;
}
.view-all,
.nfn-section-label .view-all {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid rgba(126, 34, 206, .18);
  border-radius: 3px;
  background: #fff;
  color: var(--nfn-purple);
  line-height: 1;
  white-space: nowrap;
  transform: translateY(1px);
}
.view-all:hover,
.nfn-section-label .view-all:hover {
  background: var(--nfn-purple);
  border-color: var(--nfn-purple);
  color: #fff;
  text-decoration: none;
}

/* Hero arrows: centered glyphs, equal hit areas, and pulled off the edge. */
.nfn-hero-main {
  position: relative;
  overflow: hidden;
}
.nfn-hero-arrow {
  top: auto !important;
  bottom: 26px !important;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  font-size: 0;
  line-height: 1;
  background: rgba(0, 0, 0, .42);
  border: 1px solid rgba(255, 255, 255, .24);
  color: #fff;
  box-shadow: none;
}
.nfn-hero-arrow::before {
  display: block;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  transform: translateY(-1px);
}
.nfn-hero-prev { right: 82px !important; }
.nfn-hero-next { right: 34px !important; }
.nfn-hero-prev::before { content: '←'; }
.nfn-hero-next::before { content: '→'; }
.nfn-hero-arrow:hover,
.nfn-hero-arrow:focus-visible {
  background: var(--nfn-purple);
  border-color: var(--nfn-purple);
  color: #fff;
  outline: none;
}

@media (max-width: 980px) {
  .nfn-hero-arrow {
    bottom: auto !important;
    top: 248px !important;
  }
  .nfn-hero-prev { right: 70px !important; }
  .nfn-hero-next { right: 24px !important; }
}

@media (max-width: 680px) {
  .nfn-section-label {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
  .nfn-section-label .view-all,
  .view-all {
    transform: none;
  }
  .nfn-hero-arrow {
    top: 205px !important;
    width: 34px;
    height: 34px;
  }
  .nfn-hero-prev { right: 62px !important; }
  .nfn-hero-next { right: 20px !important; }
}

/* ===========================
   NFN V7.9 HOME TWEAKS
   Hero controls: just two clean arrows. Latest Posts: all post categories.
=========================== */

/* Kill the slide dots on the homepage hero so the right side only has two arrows. */
.nfn-hero-dots {
  display: none !important;
}

/* Reset any older decorative slider styles and leave only two clean circular arrow buttons. */
.nfn-hero-arrow,
.nfn-hero-arrow:hover,
.nfn-hero-arrow:focus-visible {
  appearance: none;
  -webkit-appearance: none;
  position: absolute;
  top: auto !important;
  bottom: 24px !important;
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  min-height: 38px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  background: rgba(0,0,0,.48) !important;
  color: #fff !important;
  box-shadow: none !important;
  outline: none;
  font-size: 0 !important;
  line-height: 0 !important;
  text-indent: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.nfn-hero-arrow:hover,
.nfn-hero-arrow:focus-visible {
  background: var(--nfn-purple) !important;
  border-color: var(--nfn-purple) !important;
}
.nfn-hero-prev { right: 78px !important; left: auto !important; }
.nfn-hero-next { right: 30px !important; left: auto !important; }
.nfn-hero-arrow::before {
  position: static !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: currentColor !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  transform: none !important;
}
.nfn-hero-arrow::after {
  content: none !important;
  display: none !important;
}
.nfn-hero-prev::before { content: '‹' !important; }
.nfn-hero-next::before { content: '›' !important; }

@media (max-width: 980px) {
  .nfn-hero-arrow {
    bottom: 22px !important;
    top: auto !important;
  }
  .nfn-hero-prev { right: 72px !important; }
  .nfn-hero-next { right: 26px !important; }
}
@media (max-width: 680px) {
  .nfn-hero-arrow {
    bottom: 18px !important;
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
  }
  .nfn-hero-prev { right: 62px !important; }
  .nfn-hero-next { right: 20px !important; }
}


/* ===========================
   NFN V7.10 HOME TWEAKS
   Restore hero page markers while keeping only two clean arrows.
=========================== */
.nfn-hero-dots {
  display: flex !important;
  position: absolute !important;
  top: 26px !important;
  right: 32px !important;
  left: auto !important;
  bottom: auto !important;
  gap: 10px !important;
  align-items: center !important;
  justify-content: flex-end !important;
  z-index: 30 !important;
  pointer-events: auto !important;
}
.nfn-hero-dot {
  display: block !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 34px !important;
  height: 4px !important;
  min-width: 34px !important;
  min-height: 4px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: rgba(255,255,255,.35) !important;
  box-shadow: none !important;
  opacity: 1 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  cursor: pointer !important;
}
.nfn-hero-dot.is-active,
.nfn-hero-dot:hover,
.nfn-hero-dot:focus-visible {
  background: var(--nfn-purple) !important;
}

@media (max-width: 680px) {
  .nfn-hero-dots {
    top: 16px !important;
    right: 18px !important;
    gap: 7px !important;
  }
  .nfn-hero-dot {
    width: 22px !important;
    min-width: 22px !important;
    height: 4px !important;
    min-height: 4px !important;
  }
}


/* ===========================
   NFN V7.11 HOME/FOOTER TWEAKS
   Lower stay-connected socials, add footer heading underlines, and make footer Connect link to contact page.
=========================== */
.nfn-connect-right {
  display: flex !important;
  flex-direction: column !important;
}
.nfn-connect-right .nfn-connect-form,
.nfn-connect-right .mc4wp-form-fields {
  margin-bottom: 0 !important;
}
.nfn-connect-right .nfn-connect-social {
  margin-top: 26px !important;
}

.nfn-footer-col h4 {
  position: relative;
  display: inline-block;
  padding-bottom: 7px;
  margin-bottom: 10px !important;
}
.nfn-footer-col h4::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 34px;
  height: 2px;
  background: var(--nfn-purple);
  border-radius: 99px;
}
.nfn-footer-email-btn.nfn-footer-contact-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 680px) {
  .nfn-connect-right .nfn-connect-social {
    margin-top: 20px !important;
  }
}


/* ===========================
   NFN V7.12 HOME/FOOTER TWEAKS
   Add Follow Us label beside home socials and make footer Contact Page link feel like a button.
=========================== */
.nfn-connect-social-row {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  margin-top: 26px !important;
  flex-wrap: wrap !important;
}
.nfn-connect-right .nfn-connect-social-row .nfn-connect-social {
  margin-top: 0 !important;
}
.nfn-connect-follow-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 15px;
  border: 1px solid rgba(157, 36, 224, .48);
  border-radius: 4px;
  color: rgba(255,255,255,.88);
  background: rgba(157, 36, 224, .08);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
.nfn-footer-email-btn.nfn-footer-contact-btn {
  margin-top: 10px;
  min-height: 34px;
  padding: 0 15px;
  border: 1px solid rgba(157, 36, 224, .52);
  border-radius: 4px;
  background: rgba(157, 36, 224, .08);
  color: rgba(255,255,255,.92) !important;
  text-decoration: none !important;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 1.3px;
  text-transform: uppercase;
}
.nfn-footer-email-btn.nfn-footer-contact-btn:hover {
  background: var(--nfn-purple);
  border-color: var(--nfn-purple);
  color: #fff !important;
}

@media (max-width: 680px) {
  .nfn-connect-social-row {
    margin-top: 20px !important;
    gap: 10px !important;
  }
  .nfn-connect-follow-label {
    min-height: 32px;
    padding: 0 12px;
  }
}


/* ===========================
   NFN V7.13 HOME/FOOTER TWEAKS
   Swap Follow Us label before social icons, align the row with the player bottom, and make footer Connect paragraph the contact link.
=========================== */
.nfn-connect-right {
  justify-content: flex-start !important;
}
.nfn-connect-social-row {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-top: 43px !important;
  flex-wrap: wrap !important;
}
.nfn-connect-follow-label {
  order: 0 !important;
  min-height: 34px;
}
.nfn-connect-social-row .nfn-connect-social {
  order: 1 !important;
}
.nfn-connect-right .nfn-connect-social-row .nfn-connect-social {
  margin-top: 0 !important;
}
.nfn-footer-connect .nfn-footer-email-btn.nfn-footer-contact-btn {
  display: none !important;
}
.nfn-footer-connect-text-link {
  display: block;
  max-width: 320px;
  color: rgba(255,255,255,.66) !important;
  text-decoration: none !important;
  line-height: 1.45;
}
.nfn-footer-connect-text-link:hover {
  color: #fff !important;
  text-decoration: underline !important;
  text-decoration-color: var(--nfn-purple) !important;
  text-underline-offset: 3px;
}
@media (max-width: 980px) {
  .nfn-connect-social-row {
    margin-top: 20px !important;
  }
}
@media (max-width: 680px) {
  .nfn-connect-social-row {
    gap: 10px !important;
  }
}


/* ===========================
   NFN V7.14 FOOTER SPACING
   Equalize the four desktop footer sections.
=========================== */
@media (min-width: 981px) {
  .nfn-footer-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    column-gap: 54px !important;
    row-gap: 18px !important;
    align-items: start !important;
  }
  .nfn-footer-brand,
  .nfn-footer-col,
  .nfn-footer-connect {
    min-width: 0 !important;
  }
  .nfn-footer-brand p {
    max-width: 250px !important;
  }
  .nfn-footer-info-links {
    display: grid !important;
    grid-template-columns: repeat(2, max-content) !important;
    gap: 6px 24px !important;
  }
  .nfn-footer-connect-text-link {
    max-width: 285px !important;
  }
}


/* ===========================
   NFN V7.15 FOOTER SPACING FIX
   Tighten the desktop footer so the visual gaps between Brand, Explore, Info, and Connect are even.
=========================== */
@media (min-width: 981px) {
  .nfn-footer-grid {
    display: grid !important;
    grid-template-columns: minmax(230px, 270px) max-content max-content minmax(250px, 310px) !important;
    column-gap: 0 !important;
    row-gap: 18px !important;
    justify-content: space-between !important;
    align-items: start !important;
  }
  .nfn-footer-brand,
  .nfn-footer-col,
  .nfn-footer-connect {
    width: auto !important;
    min-width: 0 !important;
  }
  .nfn-footer-brand p {
    max-width: 255px !important;
  }
  .nfn-footer-info-links {
    display: grid !important;
    grid-template-columns: max-content max-content !important;
    gap: 6px 28px !important;
  }
  .nfn-footer-connect-text-link {
    max-width: 310px !important;
  }
}

/* v7.18: Removed the home Latest Posts view-all button because NFN does not have an all-posts page. */

/* ===========================
   NFN V7.20 HOME IMAGE CROP / COLOR POLISH
   Keeps the hero in color and gives post thumbnails more height so images
   do not feel chopped on the home page and archive cards.
=========================== */
body.home .nfn-hero-main,
body.front-page .nfn-hero-main {
  min-height: 430px !important;
}
body.home .nfn-hero-img,
body.front-page .nfn-hero-img {
  min-height: 430px !important;
  height: 430px !important;
  object-fit: cover !important;
  object-position: center 40% !important;
  filter: saturate(1.05) contrast(1.02) !important;
}
body.home .nfn-hero-slide.is-portrait-hero .nfn-hero-img,
body.front-page .nfn-hero-slide.is-portrait-hero .nfn-hero-img {
  object-position: center 22% !important;
}

body.home .nfn-coverage-thumb,
body.home .nfn-coverage-thumb-placeholder,
body.home .nfn-news-card-thumb,
body.front-page .nfn-coverage-thumb,
body.front-page .nfn-coverage-thumb-placeholder,
body.front-page .nfn-news-card-thumb,
.nfn-page-card .nfn-coverage-thumb,
.nfn-page-card .nfn-coverage-thumb-placeholder {
  aspect-ratio: 16 / 10.4 !important;
  object-fit: cover !important;
  object-position: center 38% !important;
  filter: none !important;
}

@media (max-width: 980px) {
  body.home .nfn-hero-main,
  body.front-page .nfn-hero-main {
    min-height: auto !important;
  }
  body.home .nfn-hero-img,
  body.front-page .nfn-hero-img {
    min-height: 360px !important;
    height: 360px !important;
    object-fit: cover !important;
    object-position: center 32% !important;
  }
}

@media (max-width: 680px) {
  body.home .nfn-hero-img,
  body.front-page .nfn-hero-img {
    min-height: 300px !important;
    height: 300px !important;
    object-fit: cover !important;
  }
  body.home .nfn-coverage-thumb,
  body.home .nfn-coverage-thumb-placeholder,
  body.home .nfn-news-card-thumb,
  body.front-page .nfn-coverage-thumb,
  body.front-page .nfn-coverage-thumb-placeholder,
  body.front-page .nfn-news-card-thumb,
  .nfn-page-card .nfn-coverage-thumb,
  .nfn-page-card .nfn-coverage-thumb-placeholder {
    aspect-ratio: 16 / 10.8 !important;
  }
}


/* ===========================
   NFN V7.28 — HERO = AMP HERO, FLIPPED + NFN COLORS
   Exact port of AMP's hero (500px, cover, color), mirrored so the
   image sits LEFT and the black text panel sits RIGHT. Plum accent.
=========================== */
body.home .nfn-hero,
body.front-page .nfn-hero {
  padding: 0 !important;
  background: #000 !important;
}
body.home .nfn-hero-shell,
body.front-page .nfn-hero-shell {
  display: block !important;
  max-width: 100% !important;
  padding: 0 !important;
  gap: 0 !important;
}
body.home .nfn-hero-main,
body.front-page .nfn-hero-main {
  position: relative !important;
  width: 100% !important;
  height: 560px !important;
  min-height: 560px !important;
  overflow: hidden !important;
  background: #000 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.home .nfn-hero-slide,
body.front-page .nfn-hero-slide {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  grid-template-columns: none !important;
  background: #000 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .5s ease !important;
}
body.home .nfn-hero-slide.is-active,
body.front-page .nfn-hero-slide.is-active {
  opacity: 1 !important;
  pointer-events: auto !important;
}
/* IMAGE ON THE LEFT (AMP has it right; mirrored) */
body.home .nfn-hero-img,
body.front-page .nfn-hero-img {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 31% !important;
  width: 69% !important;
  height: 100% !important;
  min-height: 560px !important;
  object-fit: cover !important;
  object-position: center center !important;
  opacity: 1 !important;
  filter: none !important;
  grid-column: auto !important;
  grid-row: auto !important;
}
/* Gradient: solid black on the RIGHT behind text, clear over the photo on the LEFT (AMP flipped) */
body.home .nfn-hero-overlay,
body.front-page .nfn-hero-overlay {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background:
    linear-gradient(to left,
      #000 0%,
      #000 28%,
      rgba(0,0,0,0.86) 36%,
      rgba(0,0,0,0.45) 50%,
      rgba(0,0,0,0.16) 68%,
      rgba(0,0,0,0.04) 100%),
    linear-gradient(to bottom,
      rgba(0,0,0,0.06) 0%,
      rgba(0,0,0,0) 52%,
      rgba(0,0,0,0.20) 100%) !important;
}
/* TEXT PANEL ON THE RIGHT (AMP's left:0/width:34%, mirrored to right) */
body.home .nfn-hero-content,
body.front-page .nfn-hero-content {
  position: absolute !important;
  z-index: 3 !important;
  right: 0 !important;
  left: auto !important;
  top: 50% !important;
  bottom: auto !important;
  transform: translateY(-50%) !important;
  width: 40% !important;
  max-width: 520px !important;
  padding: 26px 54px 26px 0 !important;
  background: transparent !important;
  display: flex !important;
  flex-direction: column !important;
}
body.home .nfn-hero-content::before,
body.front-page .nfn-hero-content::before { display: none !important; }
body.home .nfn-hero-eyebrow,
body.front-page .nfn-hero-eyebrow { color: #7e22ce !important; }
body.home .nfn-hero-eyebrow::before,
body.front-page .nfn-hero-eyebrow::before { background: #7e22ce !important; }
body.home .nfn-hero-title,
body.front-page .nfn-hero-title {
  max-width: 460px !important;
  margin: 14px 0 14px !important;
  font-size: clamp(30px, 3.1vw, 50px) !important;
  line-height: 1.03 !important;
  color: #fff !important;
}
body.home .nfn-hero-title a,
body.front-page .nfn-hero-title a { color: #fff !important; }
body.home .nfn-hero-title a:hover,
body.front-page .nfn-hero-title a:hover { color: #7e22ce !important; }
body.home .nfn-hero-excerpt,
body.front-page .nfn-hero-excerpt {
  max-width: 440px !important;
  color: rgba(255,255,255,.75) !important;
}
body.home .nfn-hero-btn,
body.front-page .nfn-hero-btn {
  background: #7e22ce !important;
  color: #fff !important;
  border: 1px solid #7e22ce !important;
}
body.home .nfn-hero-btn:hover,
body.front-page .nfn-hero-btn:hover {
  background: #fff !important;
  color: #000 !important;
  border-color: #fff !important;
}
body.home .nfn-hero-meta,
body.front-page .nfn-hero-meta { color: rgba(255,255,255,.5) !important; }
body.home .nfn-hero-dot.is-active,
body.front-page .nfn-hero-dot.is-active { background: #7e22ce !important; }
body.home .nfn-hero-rail,
body.front-page .nfn-hero-rail { display: none !important; }

/* Mobile: stack image on top, text below on black (mirror-safe) */
@media (max-width: 860px) {
  body.home .nfn-hero-main,
  body.front-page .nfn-hero-main { height: auto !important; min-height: 0 !important; }
  body.home .nfn-hero-slide,
  body.front-page .nfn-hero-slide { position: relative !important; }
  body.home .nfn-hero-slide:not(.is-active),
  body.front-page .nfn-hero-slide:not(.is-active) { position: absolute !important; }
  body.home .nfn-hero-img,
  body.front-page .nfn-hero-img {
    position: relative !important;
    left: 0 !important; right: 0 !important; width: 100% !important;
    height: 300px !important; min-height: 300px !important;
  }
  body.home .nfn-hero-overlay,
  body.front-page .nfn-hero-overlay {
    background: linear-gradient(0deg, #000 0%, #000 30%, rgba(0,0,0,.4) 55%, rgba(0,0,0,0) 100%) !important;
  }
  body.home .nfn-hero-content,
  body.front-page .nfn-hero-content {
    position: relative !important; right: auto !important; top: auto !important;
    transform: none !important; width: 100% !important; max-width: none !important;
    padding: 0 22px 34px !important; margin-top: -70px !important;
  }
}


/* ===========================
   NFN V7.29 — CLEANER HERO ARROWS
   Sleeker square-ish arrows tucked into the bottom-right of the hero.
=========================== */
body.home .nfn-hero-arrow,
body.front-page .nfn-hero-arrow {
  position: absolute !important;
  top: auto !important;
  bottom: 22px !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  border-radius: 0 !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  background: rgba(255,255,255,.06) !important;
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
  color: #fff !important;
  transition: background .2s ease, border-color .2s ease !important;
  z-index: 6 !important;
}
body.home .nfn-hero-arrow:hover,
body.front-page .nfn-hero-arrow:hover,
body.home .nfn-hero-arrow:focus-visible,
body.front-page .nfn-hero-arrow:focus-visible {
  background: #7e22ce !important;
  border-color: #7e22ce !important;
}
/* Sit them flush together in the corner */
body.home .nfn-hero-prev,
body.front-page .nfn-hero-prev { right: 64px !important; left: auto !important; border-right: 0 !important; }
body.home .nfn-hero-next,
body.front-page .nfn-hero-next { right: 22px !important; left: auto !important; }
body.home .nfn-hero-arrow::before,
body.front-page .nfn-hero-arrow::before {
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}

@media (max-width: 860px) {
  body.home .nfn-hero-arrow,
  body.front-page .nfn-hero-arrow {
    width: 38px !important; height: 38px !important;
    min-width: 38px !important; min-height: 38px !important;
    top: 14px !important; bottom: auto !important;
  }
  body.home .nfn-hero-prev,
  body.front-page .nfn-hero-prev { right: 60px !important; }
  body.home .nfn-hero-next,
  body.front-page .nfn-hero-next { right: 18px !important; }
}


/* ===========================
   NFN V7.30 — NAKED HERO ARROWS (no box)
   Just the chevrons, no border/background. Plum on hover.
=========================== */
body.home .nfn-hero-arrow,
body.front-page .nfn-hero-arrow,
body.home .nfn-hero-arrow:hover,
body.front-page .nfn-hero-arrow:hover,
body.home .nfn-hero-arrow:focus-visible,
body.front-page .nfn-hero-arrow:focus-visible {
  position: absolute !important;
  top: auto !important;
  bottom: 24px !important;
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  min-height: 34px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
  color: rgba(255,255,255,.7) !important;
  transition: color .2s ease !important;
  z-index: 6 !important;
}
body.home .nfn-hero-arrow:hover,
body.front-page .nfn-hero-arrow:hover,
body.home .nfn-hero-arrow:focus-visible,
body.front-page .nfn-hero-arrow:focus-visible {
  color: #7e22ce !important;
  background: transparent !important;
}
body.home .nfn-hero-prev,
body.front-page .nfn-hero-prev { right: 58px !important; left: auto !important; }
body.home .nfn-hero-next,
body.front-page .nfn-hero-next { right: 22px !important; left: auto !important; }
body.home .nfn-hero-arrow::before,
body.front-page .nfn-hero-arrow::before {
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 30px !important;
  font-weight: 300 !important;
  line-height: 1 !important;
}

@media (max-width: 860px) {
  body.home .nfn-hero-arrow,
  body.front-page .nfn-hero-arrow {
    top: 12px !important; bottom: auto !important;
  }
  body.home .nfn-hero-prev,
  body.front-page .nfn-hero-prev { right: 56px !important; }
  body.home .nfn-hero-next,
  body.front-page .nfn-hero-next { right: 20px !important; }
}


/* ===========================
   NFN V7.31 — CIRCULAR SHARE ICONS
=========================== */
.nfn-share-buttons {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  flex-wrap: wrap;
}
.nfn-share-label {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #888;
  margin-right: 4px;
}
.nfn-share-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid #d8d8d8;
  background: #fff;
  color: #333;
  cursor: pointer;
  padding: 0;
  transition: all .2s ease;
}
.nfn-share-icon svg { width: 17px; height: 17px; display: block; }
.nfn-share-icon:hover {
  background: #7e22ce;
  border-color: #7e22ce;
  color: #fff;
  transform: translateY(-1px);
}
.nfn-share-copy.is-copied {
  background: #7e22ce;
  border-color: #7e22ce;
  color: #fff;
}
/* Archive inner-hero is dark, keep icons readable there */
.nfn-inner-hero .nfn-share-icon {
  border-color: rgba(255,255,255,.28);
  background: rgba(255,255,255,.06);
  color: #fff;
}
.nfn-inner-hero .nfn-share-icon:hover {
  background: #7e22ce;
  border-color: #7e22ce;
}
.nfn-inner-hero .nfn-share-label { color: rgba(255,255,255,.7); }


/* ===========================
   NFN V7.32 — SINGLE HEADER LIGHT + VISIBLE SHARE ICONS
   The post title header is light; share icons render dark so they're visible.
=========================== */
.single .nfn-single-hero,
body.single-post .nfn-single-hero {
  background: #f4f1ea !important;
  border-bottom: 1px solid #e4e0d6 !important;
}
.single .nfn-single-hero h1,
body.single-post .nfn-single-hero h1 {
  color: #111 !important;
}
.single .nfn-single-hero .nfn-single-kicker,
body.single-post .nfn-single-hero .nfn-single-kicker { color: #7e22ce !important; }
.single .nfn-single-hero .nfn-single-meta,
body.single-post .nfn-single-hero .nfn-single-meta,
.single .nfn-single-hero .nfn-single-meta span,
body.single-post .nfn-single-hero .nfn-single-meta span { color: #666 !important; }

/* Share icons: dark on the light header so they're always visible */
.single .nfn-single-hero .nfn-share-label,
body.single-post .nfn-single-hero .nfn-share-label { color: #888 !important; }
.single .nfn-single-hero .nfn-share-icon,
body.single-post .nfn-single-hero .nfn-share-icon {
  border: 1px solid #d2cdc0 !important;
  background: #fff !important;
  color: #333 !important;
}
.single .nfn-single-hero .nfn-share-icon:hover,
body.single-post .nfn-single-hero .nfn-share-icon:hover {
  background: #7e22ce !important;
  border-color: #7e22ce !important;
  color: #fff !important;
}


/* ===========================
   NFN V7.33 — SINGLE SHARE ICONS ALWAYS DARK ON LIGHT HEADER
=========================== */
.nfn-single-hero .nfn-share-label { color: #888 !important; }
.nfn-single-hero .nfn-share-icon {
  border: 1px solid #d2cdc0 !important;
  background: #fff !important;
  color: #333 !important;
}
.nfn-single-hero .nfn-share-icon svg { color: #333 !important; }
.nfn-single-hero .nfn-share-icon:hover,
.nfn-single-hero .nfn-share-icon:hover svg {
  background: #7e22ce !important;
  border-color: #7e22ce !important;
  color: #fff !important;
}


/* ===========================
   NFN V7.34 — TIGHTEN SINGLE HEADER→CONTENT GAP
=========================== */
.single .nfn-single-hero,
body.single-post .nfn-single-hero {
  padding-bottom: 22px !important;
}
.single .nfn-single-wrap,
body.single-post .nfn-single-wrap {
  padding-top: 28px !important;
}

/* NFN v7.39: prevent the custom lightbox from hijacking header/logo/footer links. */


/* ===========================
   NFN V7.40 HOME UPCOMING SHOWS MOCKUP MATCH
   Make the home Upcoming Shows block a compact black card on the page,
   and keep theme-side show pulls aligned to the calendar add-on 30-mile radius.
=========================== */
body.home .nfn-shows,
body.front-page .nfn-shows {
  background: #fff !important;
  color: #fff !important;
  padding: 22px 0 24px !important;
  border-block: 0 !important;
}

body.home .nfn-shows-inner,
body.front-page .nfn-shows-inner {
  display: grid !important;
  grid-template-columns: 118px minmax(0, 1fr) 150px !important;
  align-items: stretch !important;
  gap: 0 !important;
  background: #050505 !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  border-radius: 3px !important;
  box-shadow: 0 12px 28px rgba(8,8,10,.18) !important;
  padding: 13px 16px 14px !important;
  min-height: 112px !important;
}

body.home .nfn-shows-label,
body.front-page .nfn-shows-label {
  align-items: flex-start !important;
  justify-content: flex-start !important;
  padding-top: 2px !important;
  color: #fff !important;
  font-size: 13px !important;
  line-height: 1.05 !important;
  letter-spacing: .9px !important;
}

body.home .nfn-shows-list,
body.front-page .nfn-shows-list {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  grid-auto-flow: row !important;
  grid-auto-columns: unset !important;
  gap: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  scrollbar-width: none !important;
}

body.home .nfn-shows-list::-webkit-scrollbar,
body.front-page .nfn-shows-list::-webkit-scrollbar { display: none !important; }

body.home .nfn-show-item,
body.front-page .nfn-show-item {
  min-width: 0 !important;
  background: transparent !important;
  border-right: 1px solid rgba(255,255,255,.16) !important;
  padding: 2px 18px 0 18px !important;
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr) !important;
  grid-template-rows: auto auto auto auto !important;
  column-gap: 12px !important;
  align-content: start !important;
}

body.home .nfn-show-item:last-child,
body.front-page .nfn-show-item:last-child {
  border-right: 0 !important;
}

body.home .nfn-show-date-row,
body.front-page .nfn-show-date-row {
  grid-column: 1 !important;
  grid-row: 1 / span 4 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0 !important;
  padding-top: 1px !important;
}

body.home .nfn-show-month,
body.front-page .nfn-show-month {
  color: var(--nfn-purple-soft) !important;
  font-size: 14px !important;
  line-height: 1 !important;
  letter-spacing: 1px !important;
}

body.home .nfn-show-day,
body.front-page .nfn-show-day {
  color: #fff !important;
  font-size: 36px !important;
  line-height: .92 !important;
}

body.home .nfn-show-artist,
body.front-page .nfn-show-artist {
  grid-column: 2 !important;
  margin-top: 0 !important;
  color: #fff !important;
  font-size: 15px !important;
  line-height: 1.02 !important;
  letter-spacing: .35px !important;
  max-width: 100% !important;
}

body.home .nfn-show-venue,
body.home .nfn-show-city,
body.front-page .nfn-show-venue,
body.front-page .nfn-show-city {
  grid-column: 2 !important;
  color: rgba(255,255,255,.66) !important;
  font-size: 11px !important;
  line-height: 1.18 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.home .nfn-show-tickets,
body.front-page .nfn-show-tickets {
  grid-column: 2 !important;
  margin-top: 7px !important;
  color: var(--nfn-purple-soft) !important;
  font-size: 11px !important;
  line-height: 1 !important;
}

body.home .nfn-shows-view-all,
body.front-page .nfn-shows-view-all {
  justify-self: end !important;
  align-self: start !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 2px 0 0 18px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--nfn-purple-soft) !important;
  font-size: 11px !important;
  white-space: nowrap !important;
}

body.home .nfn-shows-view-all:hover,
body.front-page .nfn-shows-view-all:hover {
  color: #fff !important;
  background: transparent !important;
  text-decoration: none !important;
}

@media (max-width: 1180px) {
  body.home .nfn-shows-inner,
  body.front-page .nfn-shows-inner {
    grid-template-columns: 1fr auto !important;
    gap: 10px 16px !important;
  }
  body.home .nfn-shows-label,
  body.front-page .nfn-shows-label {
    grid-column: 1 !important;
  }
  body.home .nfn-shows-view-all,
  body.front-page .nfn-shows-view-all {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }
  body.home .nfn-shows-list,
  body.front-page .nfn-shows-list {
    grid-column: 1 / -1 !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    row-gap: 14px !important;
  }
}

@media (max-width: 720px) {
  body.home .nfn-shows-inner,
  body.front-page .nfn-shows-inner {
    grid-template-columns: 1fr !important;
    padding: 16px !important;
  }
  body.home .nfn-shows-view-all,
  body.front-page .nfn-shows-view-all {
    grid-column: 1 !important;
    grid-row: auto !important;
    justify-self: start !important;
    padding-left: 0 !important;
  }
  body.home .nfn-shows-list,
  body.front-page .nfn-shows-list {
    grid-template-columns: 1fr !important;
    row-gap: 0 !important;
  }
  body.home .nfn-show-item,
  body.front-page .nfn-show-item {
    border-right: 0 !important;
    border-top: 1px solid rgba(255,255,255,.14) !important;
    padding: 14px 0 !important;
  }
}


/* ===========================
   NFN V7.41 — UPCOMING SHOWS ROW POLISH
   Put label/view link in their own header row, let listings flow full width,
   and make the black card a little taller like the mockup.
=========================== */
body.home .nfn-shows-inner,
body.front-page .nfn-shows-inner {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  grid-template-rows: auto auto !important;
  align-items: start !important;
  gap: 13px 22px !important;
  padding: 18px 20px 20px !important;
  min-height: 134px !important;
}

body.home .nfn-shows-label,
body.front-page .nfn-shows-label {
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-self: start !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.home .nfn-shows-view-all,
body.front-page .nfn-shows-view-all {
  grid-column: 2 !important;
  grid-row: 1 !important;
  justify-self: end !important;
  align-self: start !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.home .nfn-shows-list,
body.front-page .nfn-shows-list {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  width: 100% !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  align-items: stretch !important;
}

body.home .nfn-show-item,
body.front-page .nfn-show-item {
  min-height: 72px !important;
  padding: 0 22px !important;
  align-content: start !important;
}

body.home .nfn-show-item:first-child,
body.front-page .nfn-show-item:first-child {
  padding-left: 0 !important;
}

body.home .nfn-show-item:last-child,
body.front-page .nfn-show-item:last-child {
  padding-right: 0 !important;
}

@media (max-width: 1180px) {
  body.home .nfn-shows-inner,
  body.front-page .nfn-shows-inner {
    grid-template-columns: 1fr auto !important;
    gap: 13px 18px !important;
  }
  body.home .nfn-shows-list,
  body.front-page .nfn-shows-list {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  body.home .nfn-show-item,
  body.front-page .nfn-show-item {
    padding: 0 18px !important;
  }
}

@media (max-width: 720px) {
  body.home .nfn-shows-inner,
  body.front-page .nfn-shows-inner {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto auto !important;
  }
  body.home .nfn-shows-view-all,
  body.front-page .nfn-shows-view-all {
    grid-column: 1 !important;
    grid-row: 2 !important;
    justify-self: start !important;
  }
  body.home .nfn-shows-list,
  body.front-page .nfn-shows-list {
    grid-column: 1 !important;
    grid-row: 3 !important;
    grid-template-columns: 1fr !important;
  }
  body.home .nfn-show-item,
  body.front-page .nfn-show-item {
    padding: 14px 0 !important;
  }
}

/* ===========================
   NFN V7.42 — UPCOMING SHOWS TRUE MOCKUP ROW
   Make the home Upcoming Shows module one clean horizontal bar:
   label column | five event columns | calendar link column.
=========================== */
body.home .nfn-shows,
body.front-page .nfn-shows {
  background: #fff !important;
  padding: 22px 0 28px !important;
  border: 0 !important;
}

body.home .nfn-shows-inner,
body.front-page .nfn-shows-inner {
  display: grid !important;
  grid-template-columns: 128px minmax(0, 1fr) 158px !important;
  grid-template-rows: 1fr !important;
  align-items: stretch !important;
  gap: 0 !important;
  min-height: 118px !important;
  padding: 0 !important;
  background: #050505 !important;
  border: 1px solid rgba(255,255,255,.13) !important;
  border-radius: 3px !important;
  box-shadow: 0 10px 20px rgba(8,8,10,.13) !important;
  overflow: hidden !important;
}

body.home .nfn-shows-label,
body.front-page .nfn-shows-label {
  grid-column: 1 !important;
  grid-row: 1 !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  padding: 20px 0 0 22px !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: 13px !important;
  line-height: 1 !important;
  letter-spacing: 1px !important;
  white-space: nowrap !important;
}

body.home .nfn-shows-list,
body.front-page .nfn-shows-list {
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
  padding: 0 !important;
  gap: 0 !important;
  background: transparent !important;
  border: 0 !important;
  scrollbar-width: none !important;
}

body.home .nfn-shows-list::-webkit-scrollbar,
body.front-page .nfn-shows-list::-webkit-scrollbar { display: none !important; }

body.home .nfn-show-item,
body.front-page .nfn-show-item {
  min-width: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  display: grid !important;
  grid-template-columns: 44px minmax(0, 1fr) !important;
  column-gap: 12px !important;
  align-content: center !important;
  padding: 20px 20px 18px !important;
  background: transparent !important;
  border-top: 0 !important;
  border-right: 1px solid rgba(255,255,255,.16) !important;
}

body.home .nfn-show-item:first-child,
body.front-page .nfn-show-item:first-child {
  padding-left: 18px !important;
}

body.home .nfn-show-item:last-child,
body.front-page .nfn-show-item:last-child {
  border-right: 0 !important;
  padding-right: 18px !important;
}

body.home .nfn-show-date-row,
body.front-page .nfn-show-date-row {
  grid-column: 1 !important;
  grid-row: 1 / span 4 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  padding: 0 !important;
}

body.home .nfn-show-month,
body.front-page .nfn-show-month {
  color: var(--nfn-purple-soft) !important;
  font-size: 15px !important;
  line-height: 1 !important;
  letter-spacing: 1.1px !important;
}

body.home .nfn-show-day,
body.front-page .nfn-show-day {
  color: #fff !important;
  font-size: 39px !important;
  line-height: .9 !important;
}

body.home .nfn-show-artist,
body.front-page .nfn-show-artist {
  grid-column: 2 !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: 15px !important;
  line-height: 1.05 !important;
  letter-spacing: .35px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.home .nfn-show-venue,
body.home .nfn-show-city,
body.front-page .nfn-show-venue,
body.front-page .nfn-show-city {
  grid-column: 2 !important;
  color: rgba(255,255,255,.65) !important;
  font-size: 11px !important;
  line-height: 1.18 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.home .nfn-show-tickets,
body.front-page .nfn-show-tickets {
  grid-column: 2 !important;
  margin-top: 8px !important;
  color: var(--nfn-purple-soft) !important;
  font-size: 11px !important;
  line-height: 1 !important;
}

body.home .nfn-shows-view-all,
body.front-page .nfn-shows-view-all {
  grid-column: 3 !important;
  grid-row: 1 !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  align-self: stretch !important;
  justify-self: stretch !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 20px 22px 0 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--nfn-purple-soft) !important;
  font-size: 11px !important;
  line-height: 1 !important;
  letter-spacing: .9px !important;
  white-space: nowrap !important;
}

body.home .nfn-shows-view-all:hover,
body.front-page .nfn-shows-view-all:hover {
  color: #fff !important;
  background: transparent !important;
  text-decoration: none !important;
}

@media (max-width: 1180px) {
  body.home .nfn-shows-inner,
  body.front-page .nfn-shows-inner {
    grid-template-columns: 1fr auto !important;
    grid-template-rows: auto auto !important;
    padding: 18px 20px 20px !important;
    min-height: 0 !important;
    gap: 14px 20px !important;
  }

  body.home .nfn-shows-label,
  body.front-page .nfn-shows-label {
    grid-column: 1 !important;
    grid-row: 1 !important;
    padding: 0 !important;
  }

  body.home .nfn-shows-view-all,
  body.front-page .nfn-shows-view-all {
    grid-column: 2 !important;
    grid-row: 1 !important;
    padding: 0 !important;
  }

  body.home .nfn-shows-list,
  body.front-page .nfn-shows-list {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    row-gap: 14px !important;
  }

  body.home .nfn-show-item,
  body.front-page .nfn-show-item {
    height: auto !important;
    min-height: 78px !important;
    padding: 0 18px !important;
    align-content: start !important;
  }
}

@media (max-width: 720px) {
  body.home .nfn-shows-inner,
  body.front-page .nfn-shows-inner {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto auto !important;
    padding: 16px !important;
  }

  body.home .nfn-shows-view-all,
  body.front-page .nfn-shows-view-all {
    grid-column: 1 !important;
    grid-row: 2 !important;
    justify-content: flex-start !important;
  }

  body.home .nfn-shows-list,
  body.front-page .nfn-shows-list {
    grid-column: 1 !important;
    grid-row: 3 !important;
    grid-template-columns: 1fr !important;
    row-gap: 0 !important;
  }

  body.home .nfn-show-item,
  body.front-page .nfn-show-item {
    border-right: 0 !important;
    border-top: 1px solid rgba(255,255,255,.14) !important;
    padding: 14px 0 !important;
    min-height: 0 !important;
  }
}

/* v7.44: Latest Posts now pins WordPress sticky posts first, then fills with newest posts. */


/* ===========================
   NFN V7.45 — HOMEPAGE FINAL READABILITY POLISH
   Small touch-ups only: card title readability, calmer upcoming-show spacing,
   and a tighter On Repeat / newsletter band. Hero photo selection still controls
   the strongest result, so the gradient stays conservative.
=========================== */

/* Cards: add just enough breathing room so stacked headlines read cleaner. */
.nfn-coverage-title,
.nfn-tour-artist,
.nfn-news-card h3,
.nfn-related-title,
.nfn-archive-title {
  line-height: 1.08 !important;
}
.nfn-coverage-body {
  padding-top: 18px !important;
}
.nfn-badge {
  margin-bottom: 10px !important;
}
.nfn-coverage-meta,
.nfn-news-card time {
  line-height: 1.35 !important;
}

/* Upcoming Shows: keep the mockup row, but give it cleaner breathing space. */
body.home .nfn-shows,
body.front-page .nfn-shows {
  padding: 24px 0 34px !important;
}
body.home .nfn-shows-inner,
body.front-page .nfn-shows-inner {
  min-height: 122px !important;
  box-shadow: 0 8px 18px rgba(8,8,10,.11) !important;
}
body.home .nfn-show-artist,
body.front-page .nfn-show-artist {
  line-height: 1.08 !important;
}
body.home .nfn-show-venue,
body.home .nfn-show-city,
body.front-page .nfn-show-venue,
body.front-page .nfn-show-city {
  line-height: 1.22 !important;
}

/* On Repeat + newsletter: slightly tighter and more connected without redesigning it. */
body.home .nfn-connect-band,
body.front-page .nfn-connect-band {
  padding: 28px 0 34px !important;
}
body.home .nfn-connect-row,
body.front-page .nfn-connect-row {
  min-height: 220px !important;
  border-color: rgba(185,122,232,.22) !important;
  background: linear-gradient(90deg, rgba(126,34,206,.24) 0%, rgba(15,14,20,.96) 42%, rgba(10,10,14,.98) 100%) !important;
}
body.home .nfn-connect-left,
body.home .nfn-connect-right,
body.front-page .nfn-connect-left,
body.front-page .nfn-connect-right {
  padding-top: 26px !important;
  padding-bottom: 26px !important;
}
body.home .nfn-connect-left iframe,
body.front-page .nfn-connect-left iframe {
  max-height: 148px !important;
}
body.home .nfn-connect-social,
body.front-page .nfn-connect-social {
  margin-top: 16px !important;
}

@media (max-width: 780px) {
  body.home .nfn-connect-row,
  body.front-page .nfn-connect-row {
    min-height: 0 !important;
  }
}

/* v7.48: Hero styling reverted to v7.44. Kept homepage readability polish only. */

/* ===========================
   NFN v7.55 responsive header cleanup
   Keep tablet/phone header compact and stop logo/nav from stacking awkwardly.
=========================== */
@media (max-width: 980px) {
  .nfn-nav {
    overflow: hidden;
  }
  .nfn-nav > .container {
    width: min(100% - 28px, 1360px) !important;
  }
  .nfn-nav-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas:
      "brand actions"
      "menu menu" !important;
    align-items: center !important;
    gap: 10px 16px !important;
    min-height: 0 !important;
    padding: 14px 0 0 !important;
  }
  .nfn-logo {
    grid-area: brand !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .nfn-logo > span {
    gap: 9px !important;
    min-width: 0 !important;
  }
  .nfn-logo img {
    max-height: 34px !important;
    width: auto !important;
    flex: 0 0 auto !important;
  }
  .nfn-logo > span > span {
    min-width: 0 !important;
  }
  .nfn-logo > span > span > span:first-child {
    font-size: 13px !important;
    letter-spacing: 1.7px !important;
    white-space: nowrap !important;
  }
  .nfn-logo > span > span > span:last-child {
    font-size: 7px !important;
    letter-spacing: 2px !important;
    white-space: nowrap !important;
  }
  .nfn-nav-actions {
    grid-area: actions !important;
    align-self: center !important;
    gap: 8px !important;
  }
  .nfn-nav-social {
    display: none !important;
  }
  #nfnSearchBtn {
    width: 32px !important;
    height: 32px !important;
  }
  .nfn-nav-links {
    grid-area: menu !important;
    grid-column: 1 / -1 !important;
    width: 100% !important;
    justify-self: stretch !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    border-top: 1px solid rgba(255,255,255,.10) !important;
    scrollbar-width: none !important;
  }
  .nfn-nav-links::-webkit-scrollbar {
    display: none !important;
  }
  .nfn-nav-links ul,
  .nfn-nav-ul {
    justify-content: flex-start !important;
    gap: 20px !important;
    min-width: max-content !important;
  }
  .nfn-nav-links a,
  .nfn-nav-ul a {
    font-size: 13px !important;
    letter-spacing: .9px !important;
    padding: 13px 0 12px !important;
    border-bottom-width: 2px !important;
  }
  .nfn-ticker .container {
    width: min(100% - 28px, 1360px) !important;
  }
}

@media (max-width: 560px) {
  .nfn-nav > .container {
    width: min(100% - 22px, 1360px) !important;
  }
  .nfn-nav-inner {
    padding-top: 11px !important;
    gap: 9px 12px !important;
  }
  .nfn-logo img {
    max-height: 30px !important;
  }
  .nfn-logo > span {
    gap: 7px !important;
  }
  .nfn-logo > span > span > span:first-child {
    font-size: 12px !important;
    letter-spacing: 1.4px !important;
  }
  .nfn-logo > span > span > span:last-child {
    font-size: 6.5px !important;
    letter-spacing: 1.7px !important;
  }
  .nfn-nav-links ul,
  .nfn-nav-ul {
    gap: 16px !important;
  }
  .nfn-nav-links a,
  .nfn-nav-ul a {
    font-size: 12.5px !important;
    padding: 12px 0 11px !important;
  }
}

@media (max-width: 390px) {
  .nfn-logo > span > span > span:last-child {
    display: none !important;
  }
  .nfn-logo > span > span > span:first-child {
    font-size: 12px !important;
  }
}


/* ===========================
   NFN v7.56 responsive header social restore
   Keep social links visible on tablet/phone while keeping the compact header.
=========================== */
@media (max-width: 980px) {
  .nfn-nav-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    min-width: max-content !important;
  }
  .nfn-nav-social {
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
  }
  .nfn-nav-social a {
    width: 28px !important;
    height: 28px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    background: rgba(255,255,255,.045) !important;
  }
  .nfn-nav-social svg {
    width: 14px !important;
    height: 14px !important;
  }
  #nfnSearchBtn {
    flex: 0 0 32px !important;
  }
}

@media (max-width: 560px) {
  .nfn-nav-actions {
    gap: 6px !important;
  }
  .nfn-nav-social {
    gap: 5px !important;
  }
  .nfn-nav-social a {
    width: 25px !important;
    height: 25px !important;
  }
  .nfn-nav-social svg {
    width: 12px !important;
    height: 12px !important;
  }
  #nfnSearchBtn {
    width: 28px !important;
    height: 28px !important;
    flex-basis: 28px !important;
  }
}

@media (max-width: 390px) {
  .nfn-nav-actions {
    gap: 5px !important;
  }
  .nfn-nav-social a {
    width: 24px !important;
    height: 24px !important;
  }
  .nfn-nav-social svg {
    width: 11px !important;
    height: 11px !important;
  }
}


/* ===========================
   NFN v7.57 responsive header tuning
   Keep socials visible, but stop the tablet header from becoming a tall black block.
=========================== */
@media (min-width: 760px) and (max-width: 980px) {
  .nfn-nav-inner {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    grid-template-areas: "brand menu actions" !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 12px 0 !important;
    min-height: 0 !important;
  }
  .nfn-logo { grid-area: brand !important; }
  .nfn-logo img { max-height: 34px !important; }
  .nfn-logo > span { gap: 8px !important; }
  .nfn-logo > span > span > span:first-child {
    font-size: 12px !important;
    letter-spacing: 1.35px !important;
  }
  .nfn-logo > span > span > span:last-child {
    font-size: 6.5px !important;
    letter-spacing: 1.55px !important;
  }
  .nfn-nav-links {
    grid-area: menu !important;
    width: auto !important;
    justify-self: center !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border-top: 0 !important;
    scrollbar-width: none !important;
  }
  .nfn-nav-links::-webkit-scrollbar { display: none !important; }
  .nfn-nav-links ul,
  .nfn-nav-ul {
    justify-content: center !important;
    gap: 15px !important;
    min-width: max-content !important;
  }
  .nfn-nav-links a,
  .nfn-nav-ul a {
    font-size: 12px !important;
    letter-spacing: .75px !important;
    padding: 18px 0 15px !important;
  }
  .nfn-nav-actions {
    grid-area: actions !important;
    align-self: center !important;
    gap: 7px !important;
  }
  .nfn-nav-social { display: flex !important; gap: 6px !important; }
  .nfn-nav-social a { width: 27px !important; height: 27px !important; }
  .nfn-nav-social svg { width: 12px !important; height: 12px !important; }
  #nfnSearchBtn { width: 29px !important; height: 29px !important; flex-basis: 29px !important; }
}

@media (max-width: 759px) {
  .nfn-nav-inner {
    padding-top: 10px !important;
    gap: 7px 10px !important;
  }
  .nfn-nav-links {
    border-top-color: rgba(255,255,255,.08) !important;
  }
  .nfn-nav-links a,
  .nfn-nav-ul a {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }
  .nfn-nav-actions {
    align-self: center !important;
  }
}

@media (max-width: 460px) {
  .nfn-logo > span > span > span:first-child {
    font-size: 11px !important;
    letter-spacing: 1px !important;
  }
  .nfn-logo > span > span > span:last-child {
    display: none !important;
  }
  .nfn-nav-social { gap: 4px !important; }
  .nfn-nav-social a { width: 23px !important; height: 23px !important; }
  .nfn-nav-social svg { width: 10.5px !important; height: 10.5px !important; }
  #nfnSearchBtn { width: 25px !important; height: 25px !important; flex-basis: 25px !important; }
}


/* ===========================
   NFN v7.58 responsive header breakpoint fix
   Keep the header compact at the exact tablet widths where the bar was going tall.
=========================== */
@media (min-width: 721px) and (max-width: 1180px) {
  .nfn-nav > .container {
    width: min(100% - 32px, 1440px) !important;
  }
  .nfn-nav-inner {
    display: grid !important;
    grid-template-columns: minmax(210px, auto) minmax(0, 1fr) auto !important;
    grid-template-areas: "brand menu actions" !important;
    align-items: center !important;
    gap: 16px !important;
    min-height: 66px !important;
    padding: 0 !important;
  }
  .nfn-logo {
    grid-area: brand !important;
    min-width: 0 !important;
  }
  .nfn-logo img {
    max-height: 34px !important;
  }
  .nfn-logo > span {
    gap: 8px !important;
  }
  .nfn-logo > span > span > span:first-child {
    font-size: 12px !important;
    letter-spacing: 1.25px !important;
  }
  .nfn-logo > span > span > span:last-child {
    font-size: 6px !important;
    letter-spacing: 1.55px !important;
  }
  .nfn-nav-links {
    grid-area: menu !important;
    width: 100% !important;
    justify-self: center !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border-top: 0 !important;
    scrollbar-width: none !important;
  }
  .nfn-nav-links::-webkit-scrollbar { display: none !important; }
  .nfn-nav-links ul,
  .nfn-nav-ul {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: clamp(11px, 1.4vw, 18px) !important;
    min-width: max-content !important;
  }
  .nfn-nav-links a,
  .nfn-nav-ul a {
    font-size: 12px !important;
    letter-spacing: .75px !important;
    padding: 23px 0 20px !important;
    border-bottom-width: 2px !important;
  }
  .nfn-nav-actions {
    grid-area: actions !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 7px !important;
    min-width: max-content !important;
  }
  .nfn-nav-social {
    display: flex !important;
    gap: 6px !important;
  }
  .nfn-nav-social a {
    width: 27px !important;
    height: 27px !important;
  }
  .nfn-nav-social svg { width: 12px !important; height: 12px !important; }
  #nfnSearchBtn { width: 29px !important; height: 29px !important; flex-basis: 29px !important; }
}

@media (min-width: 721px) and (max-width: 900px) {
  .nfn-nav-inner {
    grid-template-columns: 1fr auto !important;
    grid-template-areas:
      "brand actions"
      "menu menu" !important;
    gap: 8px 12px !important;
    padding: 10px 0 0 !important;
    min-height: 0 !important;
  }
  .nfn-nav-links {
    border-top: 1px solid rgba(255,255,255,.08) !important;
  }
  .nfn-nav-links ul,
  .nfn-nav-ul {
    justify-content: flex-start !important;
    gap: 20px !important;
  }
  .nfn-nav-links a,
  .nfn-nav-ul a {
    padding: 12px 0 11px !important;
    font-size: 12.5px !important;
  }
}

@media (max-width: 720px) {
  .nfn-nav > .container {
    width: min(100% - 24px, 1440px) !important;
  }
  .nfn-nav-inner {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    grid-template-areas:
      "brand actions"
      "menu menu" !important;
    align-items: center !important;
    gap: 8px 10px !important;
    padding: 10px 0 0 !important;
    min-height: 0 !important;
  }
  .nfn-logo { grid-area: brand !important; min-width: 0 !important; }
  .nfn-logo img { max-height: 31px !important; }
  .nfn-logo > span { gap: 7px !important; }
  .nfn-logo > span > span > span:first-child {
    font-size: 11.5px !important;
    letter-spacing: 1.1px !important;
  }
  .nfn-logo > span > span > span:last-child {
    font-size: 6px !important;
    letter-spacing: 1.4px !important;
  }
  .nfn-nav-actions { grid-area: actions !important; display: flex !important; gap: 6px !important; }
  .nfn-nav-social { display: flex !important; gap: 5px !important; }
  .nfn-nav-social a { width: 25px !important; height: 25px !important; }
  .nfn-nav-social svg { width: 11px !important; height: 11px !important; }
  #nfnSearchBtn { width: 27px !important; height: 27px !important; flex-basis: 27px !important; }
  .nfn-nav-links {
    grid-area: menu !important;
    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border-top: 1px solid rgba(255,255,255,.08) !important;
    scrollbar-width: none !important;
  }
  .nfn-nav-links::-webkit-scrollbar { display: none !important; }
  .nfn-nav-links ul,
  .nfn-nav-ul {
    justify-content: flex-start !important;
    gap: 17px !important;
    min-width: max-content !important;
  }
  .nfn-nav-links a,
  .nfn-nav-ul a {
    font-size: 12px !important;
    letter-spacing: .75px !important;
    padding: 11px 0 10px !important;
  }
}

@media (max-width: 420px) {
  .nfn-logo > span > span > span:last-child { display: none !important; }
  .nfn-logo img { max-height: 29px !important; }
  .nfn-nav-social a { width: 23px !important; height: 23px !important; }
  .nfn-nav-social svg { width: 10px !important; height: 10px !important; }
  #nfnSearchBtn { width: 25px !important; height: 25px !important; flex-basis: 25px !important; }
}

/* ===========================
   NFN V7.63 ABOUT POLISH
   Light finishing pass for the About page: stronger section label,
   cleaner coverage CTA spacing, consistent contributor button floor,
   and matching Work With Us button wording.
=========================== */
.about-page.nfn-about-amp-page .about-amp-heading span {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: #7b1fd0 !important;
  font-size: 12.5px !important;
  letter-spacing: 1.25px !important;
}
.about-page.nfn-about-amp-page .about-amp-heading span::before {
  content: '' !important;
  display: inline-block !important;
  width: 28px !important;
  height: 3px !important;
  background: #8a22dc !important;
}
.about-page.nfn-about-amp-page .about-contact-cta {
  padding: 22px 22px 23px !important;
}
.about-page.nfn-about-amp-page .about-contact-cta p {
  margin-bottom: 16px !important;
}
.about-page.nfn-about-amp-page .contributor-links,
.about-page.nfn-about-amp-page .contributor-links-empty {
  min-height: 48px !important;
}
.about-page.nfn-about-amp-page .contributor-links-empty {
  visibility: hidden !important;
}
.about-page.nfn-about-amp-page .about-submit-box a {
  min-width: 126px !important;
}


/* ===========================
   v7.64 Contact page polish
=========================== */
.nfn-contact-clean-page .nfn-contact-hero p {
  max-width: 720px;
}

.nfn-contact-clean-section {
  padding-top: 42px;
}

.nfn-contact-clean-grid {
  gap: 30px;
}

.nfn-contact-clean-page .nfn-contact-form-panel {
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  background:
    radial-gradient(circle at 88% 8%, rgba(147, 51, 234, .11), transparent 34%),
    linear-gradient(135deg, #070708 0%, #101014 62%, #0a0710 100%);
  border: 1px solid rgba(255, 255, 255, .13);
  box-shadow: 0 18px 42px rgba(8, 8, 10, .13);
}

.nfn-contact-clean-page .nfn-contact-form-panel::after {
  content: 'NFN';
  position: absolute;
  right: 22px;
  bottom: -28px;
  color: rgba(255, 255, 255, .035);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(86px, 11vw, 160px);
  font-weight: 900;
  line-height: .78;
  pointer-events: none;
}

.nfn-contact-clean-page .nfn-contact-form,
.nfn-contact-clean-page .nfn-contact-panel-head {
  position: relative;
  z-index: 2;
}

.nfn-contact-clean-page .nfn-contact-panel-head {
  margin-bottom: 22px;
}

.nfn-contact-clean-page .nfn-contact-panel-head span {
  color: var(--nfn-purple-soft);
}

.nfn-contact-clean-page .nfn-contact-form-media input,
.nfn-contact-clean-page .nfn-contact-form-media select {
  min-height: 52px;
}

.nfn-contact-clean-page .nfn-contact-form-media textarea {
  min-height: 168px;
}

.nfn-contact-clean-page .nfn-contact-form-media input,
.nfn-contact-clean-page .nfn-contact-form-media select,
.nfn-contact-clean-page .nfn-contact-form-media textarea {
  border-radius: 2px;
  background: rgba(255, 255, 255, .035);
}

.nfn-contact-clean-page .nfn-contact-form-media button {
  min-height: 46px;
  padding-inline: 24px;
  box-shadow: 0 10px 22px rgba(147, 51, 234, .16);
}

.nfn-contact-clean-side {
  gap: 20px;
}

.nfn-contact-clean-side .nfn-contact-side-card {
  border-radius: 6px;
  padding: 28px;
}

.nfn-contact-clean-side .nfn-contact-route-card {
  background:
    linear-gradient(135deg, #070708 0%, #101014 100%);
}

.nfn-contact-clean-side .nfn-contact-fit-card {
  border-left: 5px solid var(--nfn-purple);
  background:
    radial-gradient(circle at 95% 4%, rgba(147, 51, 234, .20), transparent 38%),
    #09090b;
}

.nfn-contact-clean-side .nfn-contact-side-card h2 {
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, .13);
}

.nfn-contact-clean-side .nfn-contact-route-card a {
  transition: color .18s ease, padding-left .18s ease;
}

.nfn-contact-clean-side .nfn-contact-route-card a:hover,
.nfn-contact-clean-side .nfn-contact-side-link:hover {
  color: var(--nfn-purple-soft);
}

.nfn-contact-clean-side .nfn-contact-route-card a:hover {
  padding-left: 4px;
}

@media (max-width: 1180px) {
  .nfn-contact-clean-side .nfn-contact-side-card {
    min-height: 100%;
  }
}

@media (max-width: 680px) {
  .nfn-contact-clean-page .nfn-contact-panel-head span {
    white-space: normal;
  }
  .nfn-contact-clean-page .nfn-contact-form-panel,
  .nfn-contact-clean-side .nfn-contact-side-card {
    border-radius: 4px;
  }
}


/* v7.65 Contact form glow softening */


/* ===========================
   v7.66 Contact Select Field Match
   Make the Message Type dropdown match the other contact fields.
=========================== */
.nfn-contact-clean-page .nfn-contact-form-media select {
  height: 50px !important;
  min-height: 50px !important;
  padding: 0 44px 0 16px !important;
  line-height: 50px !important;
  font-size: 15px !important;
  border-width: 1px !important;
  border-color: rgba(255,255,255,.20) !important;
  border-radius: 3px !important;
  background-color: rgba(12,12,15,.88) !important;
  color: rgba(255,255,255,.92) !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(255,255,255,.78) 50%),
    linear-gradient(135deg, rgba(255,255,255,.78) 50%, transparent 50%);
  background-position:
    calc(100% - 19px) 50%,
    calc(100% - 13px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}
.nfn-contact-clean-page .nfn-contact-form-media select:focus {
  border-color: var(--nfn-purple) !important;
  box-shadow: 0 0 0 1px rgba(147,51,234,.5) !important;
}

/* ===========================
   NFN V7.67 ADVERTISE PAGE PROOF POLISH
=========================== */
.nfn-advertise-stats {
  margin-bottom: 24px;
}
.nfn-advertise-stat {
  padding: 22px 24px;
}
.nfn-advertise-offer-grid p,
.nfn-calendar-ad-list span {
  font-size: 14px;
  line-height: 1.58;
}
.nfn-advertise-form-panel {
  padding-bottom: clamp(30px, 4vw, 48px);
}
.nfn-advertise-form-panel .nfn-contact-form label {
  margin-bottom: 15px;
}
.nfn-advertise-proof-panel {
  background:
    linear-gradient(180deg, #fff 0%, #fbf8f2 100%);
}
.nfn-advertise-proof-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}
.nfn-advertise-proof-card {
  display: grid;
  grid-template-rows: 145px 1fr;
  min-height: 100%;
  background: #fff;
  border: 1px solid #ddd6cc;
  color: #111;
  text-decoration: none;
  box-shadow: 0 10px 22px rgba(0,0,0,.055);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.nfn-advertise-proof-card:hover {
  transform: translateY(-2px);
  border-color: rgba(126,34,206,.45);
  box-shadow: 0 16px 28px rgba(0,0,0,.09);
}
.nfn-advertise-proof-card img {
  width: 100%;
  height: 145px;
  object-fit: cover;
  display: block;
}
.nfn-advertise-proof-body {
  padding: 16px 16px 18px;
}
.nfn-advertise-proof-body span {
  display: block;
  margin-bottom: 8px;
  color: var(--nfn-purple);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 1.1px;
  text-transform: uppercase;
}
.nfn-advertise-proof-body strong {
  display: block;
  min-height: 58px;
  color: #111;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 25px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}
.nfn-advertise-proof-body em {
  display: inline-block;
  margin-top: 14px;
  color: var(--nfn-purple);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.nfn-advertise-proof-empty {
  grid-template-rows: 1fr;
  background: #0a0a0b;
  color: #fff;
  border-color: rgba(255,255,255,.12);
}
.nfn-advertise-proof-empty .nfn-advertise-proof-body strong {
  color: #fff;
}
.nfn-advertise-proof-empty .nfn-advertise-proof-body em {
  color: rgba(255,255,255,.7);
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.45;
  text-transform: none;
}
@media (max-width: 920px) {
  .nfn-advertise-proof-grid {
    grid-template-columns: 1fr;
  }
  .nfn-advertise-proof-card {
    grid-template-columns: 180px 1fr;
    grid-template-rows: auto;
  }
  .nfn-advertise-proof-card img {
    height: 100%;
    min-height: 145px;
  }
  .nfn-advertise-proof-body strong {
    min-height: 0;
  }
}
@media (max-width: 560px) {
  .nfn-advertise-proof-card {
    grid-template-columns: 1fr;
    grid-template-rows: 160px 1fr;
  }
  .nfn-advertise-proof-card img {
    height: 160px;
    min-height: 0;
  }
}

/* NFN v7.68 Advertise sidebar length polish */
.nfn-advertise-what-send-inline {
  margin: 0 0 22px;
  padding: 16px 18px;
  border-left: 4px solid var(--nfn-purple);
  background: rgba(255,255,255,.04);
  border-radius: 4px;
}
.nfn-advertise-what-send-inline strong {
  display: block;
  margin-bottom: 6px;
  color: var(--nfn-purple-soft);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: 1.15px;
  text-transform: uppercase;
}
.nfn-advertise-what-send-inline p {
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: 14px;
  line-height: 1.55;
}


/* ===========================
   NFN V7.69 ADVERTISE SECTION SPACING
=========================== */
.nfn-advertise-main .nfn-calendar-ad-panel {
  margin-bottom: 8px;
}
.nfn-advertise-main .nfn-advertise-proof-panel {
  margin-top: 10px;
}
@media (max-width: 900px) {
  .nfn-advertise-main .nfn-calendar-ad-panel {
    margin-bottom: 4px;
  }
  .nfn-advertise-main .nfn-advertise-proof-panel {
    margin-top: 6px;
  }
}


/* ===========================
   NFN v7.71 Single Post Polish
   No comments/ratings. Cleaner editorial body + follow callout.
=========================== */
.nfn-single-wrap {
  padding-top: 54px;
}
.nfn-single-container {
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 36px;
}
.nfn-single-content {
  border-radius: 18px;
  border: 1px solid rgba(8,8,10,.10);
  box-shadow: 0 10px 28px rgba(8,8,10,.055);
  padding: clamp(28px, 4vw, 50px);
}
.nfn-single-content > h2:first-child,
.nfn-single-content > h3:first-child {
  margin-top: 0;
}
.nfn-single-content img {
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
}
.nfn-post-tags {
  align-items: center;
  margin-top: 24px;
}
.nfn-post-tags > span {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900;
}
.nfn-post-tags a {
  background: #fff;
  border-color: rgba(8,8,10,.14);
  color: #4d4843;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  letter-spacing: .5px;
  text-transform: uppercase;
}
.nfn-post-follow-callout {
  margin-top: 28px;
  padding: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  background:
    radial-gradient(circle at right center, rgba(139,33,226,.24), transparent 52%),
    linear-gradient(135deg, #08080a, #141018 78%);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 18px;
  color: #fff;
  box-shadow: 0 16px 34px rgba(0,0,0,.12);
}
.nfn-post-follow-kicker {
  display: inline-flex;
  color: #b56cff;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}
.nfn-post-follow-callout h2 {
  margin: 7px 0 8px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(26px, 3vw, 38px);
  line-height: .95;
  text-transform: uppercase;
  color: #fff;
}
.nfn-post-follow-callout p {
  max-width: 620px;
  margin: 0;
  color: rgba(255,255,255,.72);
  line-height: 1.55;
}
.nfn-post-follow-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}
.nfn-post-follow-actions a {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  color: #fff;
}
.nfn-post-follow-actions a:hover {
  background: var(--nfn-purple);
  border-color: var(--nfn-purple);
  color: #fff;
}
.nfn-post-follow-actions svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
}
.nfn-sidebar-card {
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(8,8,10,.055);
}
.nfn-sidebar-heading {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: .4px;
  line-height: 1;
  text-transform: uppercase;
}
.nfn-related {
  margin-top: 38px;
}
.nfn-related-grid {
  gap: 14px;
}
.nfn-related-card {
  min-height: 100px;
  border-radius: 16px;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.nfn-related-card:hover {
  transform: translateY(-2px);
  border-color: rgba(139,33,226,.28);
  box-shadow: 0 12px 26px rgba(8,8,10,.08);
  text-decoration: none;
}

@media (max-width: 900px) {
  .nfn-post-follow-callout {
    grid-template-columns: 1fr;
  }
  .nfn-post-follow-actions {
    justify-content: flex-start;
  }
}
@media (max-width: 680px) {
  .nfn-single-content {
    padding: 24px;
  }
  .nfn-post-follow-callout {
    padding: 22px;
  }
}


/* ===========================
   NFN v7.72 Single Post Template Polish
   Template-only cleanup: sharper article card, cleaner shares/tags,
   tighter follow callout, stronger related cards.
=========================== */
body.single-post .nfn-single-wrap {
  padding-top: 50px;
}
body.single-post .nfn-single-container {
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 40px;
}
body.single-post .nfn-single-content {
  border-radius: 14px;
  border: 1px solid rgba(8,8,10,.12);
  box-shadow: 0 8px 22px rgba(8,8,10,.045);
  padding: clamp(30px, 4.6vw, 54px);
}
body.single-post .nfn-single-content img {
  border-radius: 12px;
  box-shadow: 0 8px 18px rgba(0,0,0,.07);
}
body.single-post .nfn-single-content p {
  margin-bottom: 1.05em;
}
body.single-post .nfn-single-article > .nfn-share-buttons {
  margin-top: 18px;
  padding-top: 4px;
}
body.single-post .nfn-share-buttons {
  gap: 8px;
}
body.single-post .nfn-share-label {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900;
  letter-spacing: 1.3px;
}
body.single-post .nfn-post-tags {
  margin-top: 18px;
  padding-top: 2px;
  gap: 7px;
}
body.single-post .nfn-post-tags > span {
  color: #3d3833 !important;
}
body.single-post .nfn-post-tags a {
  padding: 7px 11px;
  border-color: rgba(8,8,10,.16);
  background: rgba(255,255,255,.86);
  color: #3f3a35;
}
body.single-post .nfn-post-follow-callout {
  margin-top: 24px;
  padding: 20px 22px;
  border-radius: 14px;
  gap: 18px;
  box-shadow: 0 12px 26px rgba(0,0,0,.10);
}
body.single-post .nfn-post-follow-callout h2 {
  margin: 5px 0 6px;
  font-size: clamp(24px, 2.7vw, 34px);
  letter-spacing: -.15px;
}
body.single-post .nfn-post-follow-callout p {
  font-size: 14px;
  line-height: 1.45;
}
body.single-post .nfn-post-follow-actions a {
  width: 38px;
  height: 38px;
}
body.single-post .nfn-related {
  margin-top: 34px;
}
body.single-post .nfn-related .nfn-section-label {
  margin-bottom: 14px !important;
}
body.single-post .nfn-related-grid {
  gap: 16px;
}
body.single-post .nfn-related-card {
  min-height: 112px;
  grid-template-columns: 104px 1fr;
  padding: 13px;
  border-radius: 14px;
  border-color: rgba(8,8,10,.11);
}
body.single-post .nfn-related-thumb {
  width: 104px;
  height: 82px;
  border-radius: 10px;
}
body.single-post .nfn-related-title {
  font-size: 20px;
  line-height: .98;
}
body.single-post .nfn-related-date {
  margin-top: 7px;
}
body.single-post .nfn-sidebar-card {
  border-radius: 16px;
  border-color: rgba(8,8,10,.10);
  box-shadow: 0 8px 20px rgba(8,8,10,.05);
}
body.single-post .nfn-sidebar-heading {
  padding-bottom: 11px;
}
body.single-post .nfn-sidebar-post-item,
body.single-post .nfn-sidebar-show {
  border-bottom-color: rgba(8,8,10,.10);
}
body.single-post .nfn-sidebar-show-date {
  border-radius: 10px;
}
@media (max-width: 1180px) {
  body.single-post .nfn-single-container {
    grid-template-columns: minmax(0, 1fr) 295px;
    gap: 30px;
  }
}
@media (max-width: 900px) {
  body.single-post .nfn-single-container {
    grid-template-columns: 1fr;
  }
  body.single-post .nfn-related-card {
    grid-template-columns: 96px 1fr;
  }
  body.single-post .nfn-related-thumb {
    width: 96px;
    height: 78px;
  }
}
@media (max-width: 680px) {
  body.single-post .nfn-single-content {
    border-radius: 12px;
    padding: 24px;
  }
  body.single-post .nfn-post-follow-callout {
    padding: 20px;
  }
  body.single-post .nfn-related-grid {
    grid-template-columns: 1fr;
  }
}


/* ===========================
   NFN v7.73 Single Post Structure Polish
   Structure-only: stronger related area, cleaner post footer grouping,
   flexible in-post image handling. No content-specific styling.
=========================== */
body.single-post .nfn-single-content {
  max-width: 100%;
}
body.single-post .nfn-single-content figure,
body.single-post .nfn-single-content .wp-block-image {
  margin: 1.65em 0;
}
body.single-post .nfn-single-content figure img,
body.single-post .nfn-single-content .wp-block-image img,
body.single-post .nfn-single-content > img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}
body.single-post .nfn-single-content .alignwide,
body.single-post .nfn-single-content .alignfull {
  margin-left: 0;
  margin-right: 0;
  max-width: 100%;
}
body.single-post .nfn-single-content .aligncenter {
  display: table;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 100%;
}
body.single-post .nfn-single-article > .nfn-share-buttons {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(8,8,10,.10);
}
body.single-post .nfn-post-tags {
  margin-top: 12px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(8,8,10,.10);
}
body.single-post .nfn-post-tags a {
  font-size: 12px;
  padding: 8px 12px;
  line-height: 1;
}
body.single-post .nfn-post-tags a:hover {
  transform: translateY(-1px);
}
body.single-post .nfn-post-follow-callout {
  margin-top: 26px;
}
body.single-post .nfn-related {
  margin-top: 36px;
}
body.single-post .nfn-related .nfn-section-label {
  margin-bottom: 16px !important;
}
body.single-post .nfn-related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
body.single-post .nfn-related-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border-radius: 14px;
  background: #fff;
}
body.single-post .nfn-related-card > div {
  padding: 12px 13px 14px;
}
body.single-post .nfn-related-thumb {
  width: 100%;
  height: 112px;
  object-fit: cover;
  border-radius: 0;
}
body.single-post .nfn-related-badge {
  display: inline-flex;
  margin-bottom: 7px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1.2px;
  line-height: 1;
  text-transform: uppercase;
  color: var(--nfn-purple);
}
body.single-post .nfn-related-title {
  font-size: clamp(19px, 1.7vw, 24px);
  line-height: .98;
}
body.single-post .nfn-related-date {
  display: inline-flex;
  margin-top: 9px;
  font-size: 12px;
  color: #777;
}
@media (max-width: 1180px) {
  body.single-post .nfn-related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 680px) {
  body.single-post .nfn-related-grid {
    grid-template-columns: 1fr;
  }
  body.single-post .nfn-related-thumb {
    height: 160px;
  }
  body.single-post .nfn-single-article > .nfn-share-buttons {
    padding-top: 16px;
  }
}


/* ===========================
   NFN v7.74 Related Post Placeholder Polish
   Adds a branded visual fallback for related cards without featured images.
=========================== */
body.single-post .nfn-related-thumb--fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(circle at 82% 20%, rgba(151, 35, 226, .42), transparent 34%),
    linear-gradient(135deg, #09090b 0%, #151018 58%, #2a0f3a 100%);
  color: #fff;
  border-bottom: 1px solid rgba(151, 35, 226, .38);
}
body.single-post .nfn-related-thumb--fallback span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 34px;
  border: 2px solid rgba(255,255,255,.92);
  box-shadow: inset 0 0 0 2px rgba(151,35,226,.35);
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 20px;
  font-weight: 900;
  letter-spacing: 1px;
  line-height: 1;
}
body.single-post .nfn-related-card--no-image {
  background: #fff;
}
body.single-post .nfn-related-card--no-image .nfn-related-title {
  min-height: 2.1em;
}


/* ===========================
   NFN v7.75 Related Thumbnail Crop Fix
   Shows more of related-post images so More From NFN does not feel chopped.
=========================== */
body.single-post .nfn-related-thumb {
  height: 146px;
  object-fit: contain;
  object-position: center center;
  background: #08080a;
}
body.single-post .nfn-related-thumb--fallback {
  height: 146px;
}
@media (max-width: 1180px) {
  body.single-post .nfn-related-thumb,
  body.single-post .nfn-related-thumb--fallback {
    height: 154px;
  }
}
@media (max-width: 680px) {
  body.single-post .nfn-related-thumb,
  body.single-post .nfn-related-thumb--fallback {
    height: 190px;
  }
}


/* ===========================
   NFN v7.76 Related Image Presentation Fix
   Restores a clean cover crop for More From NFN so portraits do not create black side boxes.
=========================== */
body.single-post .nfn-related-thumb {
  width: 100%;
  height: 136px;
  object-fit: cover;
  object-position: center 38%;
  background: #08080a;
  border-radius: 0;
}
body.single-post .nfn-related-thumb--fallback {
  height: 136px;
}
body.single-post .nfn-related-card {
  border-radius: 16px;
}
@media (max-width: 1180px) {
  body.single-post .nfn-related-thumb,
  body.single-post .nfn-related-thumb--fallback {
    height: 144px;
  }
}
@media (max-width: 680px) {
  body.single-post .nfn-related-thumb,
  body.single-post .nfn-related-thumb--fallback {
    height: 176px;
  }
}


/* ===========================
   NFN v7.77 Related Grid Proportion Fix
   Four-across related cards on desktop with taller image windows so More From NFN crops cleaner.
=========================== */
body.single-post .nfn-related-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
body.single-post .nfn-related-thumb {
  height: 168px;
  object-fit: cover;
  object-position: center 42%;
}
body.single-post .nfn-related-thumb--fallback {
  height: 168px;
}
body.single-post .nfn-related-card > div {
  padding: 11px 12px 14px;
}
body.single-post .nfn-related-title {
  font-size: clamp(17px, 1.35vw, 21px);
  line-height: 1.02;
}
body.single-post .nfn-related-badge {
  font-size: 10px;
  letter-spacing: 1.05px;
}
@media (max-width: 1180px) {
  body.single-post .nfn-related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
  body.single-post .nfn-related-thumb,
  body.single-post .nfn-related-thumb--fallback {
    height: 164px;
  }
}
@media (max-width: 680px) {
  body.single-post .nfn-related-grid {
    grid-template-columns: 1fr;
  }
  body.single-post .nfn-related-thumb,
  body.single-post .nfn-related-thumb--fallback {
    height: 190px;
  }
}

/* ===========================
   NFN v7.78 Related Date Alignment
   Keeps dates pinned to the same baseline across More From NFN cards.
=========================== */
body.single-post .nfn-related-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}
body.single-post .nfn-related-card > div {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}
body.single-post .nfn-related-title {
  margin-bottom: 12px;
}
body.single-post .nfn-related-date {
  margin-top: auto;
  padding-top: 8px;
}

/* ===========================
   NFN v7.79 Single Post Hero Watermark
   Adds a subtle oversized NFN mark to the open right side of single post title bars.
=========================== */
body.single-post .nfn-single-hero {
  position: relative;
  overflow: hidden;
}
body.single-post .nfn-single-hero::after {
  content: "NFN";
  position: absolute;
  right: clamp(-42px, -2vw, -18px);
  top: 50%;
  transform: translateY(-46%);
  z-index: 0;
  pointer-events: none;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900;
  font-size: clamp(130px, 18vw, 275px);
  line-height: .78;
  letter-spacing: -.08em;
  color: #7e22ce;
  opacity: .055;
  white-space: nowrap;
}
body.single-post .nfn-single-hero .container {
  position: relative;
  z-index: 1;
}
@media (max-width: 900px) {
  body.single-post .nfn-single-hero::after {
    font-size: clamp(95px, 27vw, 170px);
    right: -36px;
    opacity: .04;
  }
}
@media (max-width: 560px) {
  body.single-post .nfn-single-hero::after {
    display: none;
  }
}


/* ===========================
   NFN v7.81 Single Hero Watermark Nudge
   Gives the oversized NFN mark better spacing and moves it farther into the background.
=========================== */
body.single-post .nfn-single-hero::after {
  right: clamp(-64px, -3.6vw, -28px);
  transform: translateY(-46%);
  letter-spacing: .025em;
  opacity: .042;
  font-size: clamp(132px, 18.5vw, 282px);
  color: #7e22ce;
}
@media (max-width: 900px) {
  body.single-post .nfn-single-hero::after {
    right: -48px;
    letter-spacing: .02em;
    opacity: .032;
  }
}

/* ===========================
   NFN v7.82 Mobile Cleanup Pass
   Thins repeated mobile post/footer content, fixes home mobile CTAs,
   and cleans front-page upcoming-show rhythm.
=========================== */

.nfn-mobile-section-cta {
  display: none;
}

@media (max-width: 680px) {
  /* Home: move View All buttons after the cards instead of between heading and list */
  .home .nfn-tours .nfn-section-label .view-all,
  .home .nfn-bottom-section .nfn-section-label .view-all,
  body.home .nfn-tours .nfn-section-label .view-all,
  body.home .nfn-bottom-section .nfn-section-label .view-all,
  .nfn-tours .nfn-section-label .view-all,
  .nfn-bottom-section .nfn-section-label .view-all {
    display: none !important;
  }
  .nfn-mobile-section-cta {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 44px;
    margin-top: 18px;
    padding: 0 18px;
    border: 1px solid rgba(126,34,206,.22);
    border-radius: 4px;
    background: #fff;
    color: var(--nfn-purple) !important;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 16px;
    font-weight: 900;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-decoration: none !important;
  }

  /* Home: front-page upcoming shows becomes label-left / list-right on phones */
  .nfn-shows {
    padding: 22px 0 30px !important;
  }
  .nfn-shows .container {
    width: min(94%, 1280px) !important;
  }
  .nfn-shows-inner {
    display: grid !important;
    grid-template-columns: 112px minmax(0, 1fr) !important;
    gap: 18px !important;
    align-items: center !important;
    padding: 22px 18px !important;
    border-radius: 5px !important;
  }
  .nfn-shows-label {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: center !important;
    justify-self: start !important;
    margin: 0 !important;
    max-width: 95px !important;
    color: #fff !important;
    font-size: 18px !important;
    line-height: 1.08 !important;
    white-space: normal !important;
  }
  .nfn-shows-view-all {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: center !important;
    justify-self: start !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 72px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--nfn-purple-soft) !important;
    font-size: 13px !important;
    letter-spacing: 1px !important;
    line-height: 1.2 !important;
    text-align: left !important;
    white-space: normal !important;
  }
  .nfn-shows-list {
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    padding: 0 !important;
  }
  .nfn-show-item {
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr) !important;
    gap: 2px 12px !important;
    padding: 15px 0 !important;
    border-left: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.15) !important;
  }
  .nfn-show-item:last-child {
    border-bottom: 0 !important;
  }
  .nfn-show-date-row {
    grid-column: 1 !important;
    grid-row: 1 / 5 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    min-height: 74px !important;
  }
  .nfn-show-month {
    font-size: 15px !important;
    line-height: 1 !important;
  }
  .nfn-show-day {
    font-size: 42px !important;
    line-height: .88 !important;
  }
  .nfn-show-artist,
  .nfn-show-venue,
  .nfn-show-city,
  .nfn-show-tickets {
    grid-column: 2 !important;
  }
  .nfn-show-artist {
    font-size: 20px !important;
    line-height: 1 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }
  .nfn-show-venue,
  .nfn-show-city {
    font-size: 15px !important;
    line-height: 1.22 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }
  .nfn-show-tickets {
    margin-top: 8px !important;
    font-size: 15px !important;
  }

  /* Mobile footer: remove duplicate clutter while keeping navigation usable */
  .nfn-footer {
    padding: 34px 0 22px !important;
  }
  .nfn-footer-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 26px 30px !important;
    align-items: start !important;
  }
  .nfn-footer-brand,
  .nfn-footer-col {
    text-align: left !important;
    align-items: flex-start !important;
  }
  .nfn-footer-brand p {
    display: none !important;
  }
  .nfn-footer-social {
    margin-top: 16px !important;
    gap: 16px !important;
  }
  .nfn-footer-social a {
    width: auto !important;
    height: auto !important;
    border: 0 !important;
    background: transparent !important;
    color: #fff !important;
  }
  .nfn-footer-social svg {
    width: 19px !important;
    height: 19px !important;
  }
  .nfn-footer-info-links {
    grid-template-columns: 1fr !important;
    grid-auto-flow: row !important;
    gap: 7px !important;
  }
  .nfn-footer-col a,
  .nfn-footer-connect-text-link {
    font-size: 14px !important;
    line-height: 1.28 !important;
  }
  .nfn-footer-connect-text-link {
    display: block !important;
    max-width: 230px !important;
    color: rgba(255,255,255,.68) !important;
  }
  .nfn-footer-bottom {
    margin-top: 22px !important;
    padding-top: 14px !important;
  }
  .nfn-footer-bottom-links {
    display: none !important;
  }
  .nfn-footer-bottom span {
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  /* Single posts: thin repeated mobile footer modules */
  body.single-post .nfn-single-article > .nfn-share-buttons {
    display: none !important;
  }
  body.single-post .nfn-post-tags {
    margin-top: 15px !important;
    padding-bottom: 0 !important;
    border-bottom: 0 !important;
  }
  body.single-post .nfn-post-follow-callout {
    display: block !important;
    margin-top: 18px !important;
    padding: 20px 18px !important;
    border-radius: 18px !important;
    background:
      radial-gradient(circle at 90% 20%, rgba(139,33,226,.24), transparent 42%),
      linear-gradient(135deg, #08080a 0%, #130d18 68%, #240736 100%) !important;
    box-shadow: 0 12px 26px rgba(0,0,0,.12) !important;
  }
  body.single-post .nfn-post-follow-callout h2 {
    max-width: 340px !important;
    margin: 8px 0 8px !important;
    font-size: clamp(25px, 8vw, 32px) !important;
    line-height: .98 !important;
  }
  body.single-post .nfn-post-follow-callout p {
    font-size: 15px !important;
    line-height: 1.45 !important;
  }
  body.single-post .nfn-post-follow-actions {
    justify-content: flex-start !important;
    gap: 12px !important;
    margin-top: 18px !important;
  }
  body.single-post .nfn-post-follow-actions a {
    width: 42px !important;
    height: 42px !important;
  }
  body.single-post .nfn-single-sidebar .nfn-sidebar-card:first-child,
  body.single-post .nfn-single-sidebar .nfn-follow-card {
    display: none !important;
  }
  body.single-post .nfn-single-sidebar {
    margin-top: 30px !important;
  }
}

@media (max-width: 390px) {
  .nfn-shows-inner {
    grid-template-columns: 1fr !important;
  }
  .nfn-shows-label,
  .nfn-shows-view-all,
  .nfn-shows-list {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
  .nfn-shows-view-all {
    margin: 8px 0 10px !important;
  }
}


/* ===========================
   NFN v7.83 Mobile Structure Overhaul
   Fixes mobile card breathing room, front-page show strip,
   post footer repetition, nav scroll hints, hero word limits,
   and a cleaner mobile/general footer.
=========================== */

/* Global card text rhythm: stop titles/meta from feeling smashed */
.nfn-coverage-body,
.nfn-news-card-body,
.nfn-tour-body,
.nfn-related-card-body,
.nfn-page-card .nfn-coverage-body {
  row-gap: 8px;
}
.nfn-coverage-title,
.nfn-news-title,
.nfn-tour-artist,
.nfn-related-title {
  line-height: 1.08;
  letter-spacing: .01em;
}
.nfn-coverage-excerpt,
.nfn-news-age,
.nfn-tour-name,
.nfn-tour-dates,
.nfn-related-date {
  line-height: 1.36;
}

/* Better general footer before the mobile collapse */
.nfn-footer {
  background:
    radial-gradient(circle at 14% 0%, rgba(139,33,226,.10), transparent 34%),
    #050505;
}
.nfn-footer-grid {
  align-items: start;
}
.nfn-footer-col h4::after {
  content: '';
  display: block;
  width: 34px;
  height: 3px;
  margin-top: 7px;
  background: var(--nfn-purple);
}
.nfn-footer-col a,
.nfn-footer-connect-text-link {
  text-decoration: none !important;
}

@media (max-width: 760px) {
  /* Header/nav: show there is more menu to swipe without looking broken */
  .nfn-nav {
    overflow: hidden;
  }
  .nfn-nav > .container {
    width: 100% !important;
    padding-inline: 22px !important;
  }
  .nfn-nav-inner {
    position: relative;
  }
  .nfn-nav-links {
    position: relative;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-right: 38px;
    width: 100%;
  }
  .nfn-nav-links::-webkit-scrollbar { display: none; }
  .nfn-nav-inner::after {
    content: '';
    position: absolute;
    right: -1px;
    bottom: 0;
    width: 54px;
    height: 58px;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(5,5,5,0), #050505 72%);
  }
  .nfn-nav-inner::before {
    content: '→';
    position: absolute;
    right: 7px;
    bottom: 14px;
    z-index: 3;
    color: rgba(185,122,232,.7);
    font-size: 15px;
    font-weight: 900;
    pointer-events: none;
  }

  /* Mobile card spacing and readable titles */
  .nfn-coverage-card,
  .nfn-news-card,
  .nfn-tour-card,
  .nfn-related-card {
    border-radius: 4px !important;
  }
  .nfn-coverage-body,
  .nfn-news-card-body,
  .nfn-tour-body,
  .nfn-related-card-body {
    padding: 18px 20px 20px !important;
  }
  .nfn-coverage-title,
  .nfn-news-title,
  .nfn-tour-artist,
  .nfn-related-title {
    font-size: clamp(23px, 7.2vw, 32px) !important;
    line-height: 1.05 !important;
    margin-bottom: 8px !important;
  }
  .nfn-badge,
  .nfn-related-badge {
    margin-bottom: 8px !important;
  }
  .nfn-coverage-excerpt {
    font-size: 15px !important;
    line-height: 1.45 !important;
    margin-top: 8px !important;
  }
  .nfn-coverage-meta,
  .nfn-news-age,
  .nfn-tour-name,
  .nfn-tour-dates,
  .nfn-related-date {
    font-size: 15px !important;
    line-height: 1.35 !important;
  }

  /* Home hero: keep height stable and clamp copy instead of growing the card */
  body.home .nfn-hero-main,
  body.home .nfn-hero-slide {
    min-height: 690px !important;
    height: 690px !important;
    max-height: 690px !important;
    overflow: hidden !important;
  }
  body.home .nfn-hero-img {
    min-height: 335px !important;
    height: 335px !important;
    max-height: 335px !important;
  }
  body.home .nfn-hero-content {
    min-height: 355px !important;
    height: 355px !important;
    max-height: 355px !important;
    padding: 28px 22px 34px !important;
    overflow: hidden !important;
  }
  body.home .nfn-hero-title {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 4 !important;
    overflow: hidden !important;
    font-size: clamp(35px, 10.6vw, 48px) !important;
    line-height: .98 !important;
  }
  body.home .nfn-hero-excerpt {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    overflow: hidden !important;
    max-height: 4.4em !important;
  }

  /* Home upcoming shows: top label, striped/list items, calendar link at bottom */
  body.home .nfn-shows {
    padding: 28px 0 36px !important;
  }
  body.home .nfn-shows-inner {
    display: block !important;
    padding: 26px 24px !important;
    border-radius: 5px !important;
    background: #050505 !important;
  }
  body.home .nfn-shows-label {
    display: block !important;
    max-width: none !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
    font-size: 22px !important;
    line-height: 1 !important;
    white-space: normal !important;
  }
  body.home .nfn-shows-list {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }
  body.home .nfn-show-item {
    display: grid !important;
    grid-template-columns: 82px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 0 24px !important;
    padding: 22px 0 !important;
    border-left: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.16) !important;
    background: linear-gradient(90deg, rgba(255,255,255,.025), transparent) !important;
  }
  body.home .nfn-show-item:nth-child(even) {
    background: linear-gradient(90deg, rgba(139,33,226,.055), transparent) !important;
  }
  body.home .nfn-show-date-row {
    grid-column: 1 !important;
    grid-row: 1 / 5 !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 92px !important;
  }
  body.home .nfn-show-month { font-size: 20px !important; }
  body.home .nfn-show-day { font-size: 58px !important; }
  body.home .nfn-show-artist,
  body.home .nfn-show-venue,
  body.home .nfn-show-city,
  body.home .nfn-show-tickets { grid-column: 2 !important; }
  body.home .nfn-show-artist {
    font-size: 26px !important;
    line-height: .96 !important;
  }
  body.home .nfn-show-venue,
  body.home .nfn-show-city {
    font-size: 18px !important;
    line-height: 1.22 !important;
  }
  body.home .nfn-show-tickets {
    margin-top: 12px !important;
    font-size: 18px !important;
  }
  body.home .nfn-shows-view-all {
    display: inline-flex !important;
    margin: 22px 0 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--nfn-purple-soft) !important;
    font-size: 18px !important;
    letter-spacing: 1.4px !important;
  }

  /* Section CTA really stays after mobile list */
  body.home .nfn-mobile-section-cta {
    margin-top: 22px !important;
  }

  /* Single post: thin the repeated end-of-post clutter */
  body.single-post .nfn-single-sidebar {
    display: none !important;
  }
  body.single-post .nfn-post-follow-callout {
    margin-top: 20px !important;
    padding: 20px 20px 22px !important;
    border-radius: 16px !important;
  }
  body.single-post .nfn-post-follow-callout h2 {
    font-size: clamp(23px, 7.4vw, 30px) !important;
    line-height: 1.02 !important;
    max-width: 100% !important;
  }
  body.single-post .nfn-post-follow-callout p {
    font-size: 14px !important;
    line-height: 1.38 !important;
    max-width: 100% !important;
  }
  body.single-post .nfn-post-follow-actions a {
    width: 38px !important;
    height: 38px !important;
  }
  body.single-post .nfn-related {
    margin-top: 28px !important;
  }
  body.single-post .nfn-related-grid {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }
  body.single-post .nfn-related-thumb,
  body.single-post .nfn-related-placeholder {
    min-height: 220px !important;
    height: 220px !important;
  }

  /* Mobile footer overhaul: simple brand + useful columns + no huge legal clutter */
  .nfn-footer {
    padding: 34px 0 26px !important;
  }
  .nfn-footer > .container {
    width: min(100% - 44px, 1280px) !important;
  }
  .nfn-footer-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 30px 34px !important;
  }
  .nfn-footer-brand {
    grid-column: 1 / -1 !important;
    padding-bottom: 22px !important;
    border-bottom: 1px solid rgba(255,255,255,.1) !important;
  }
  .nfn-footer-brand .nfn-logo img {
    max-height: 36px !important;
  }
  .nfn-footer-brand p {
    display: block !important;
    max-width: 290px !important;
    margin-top: 12px !important;
    font-size: 14px !important;
    line-height: 1.38 !important;
  }
  .nfn-footer-social {
    margin-top: 18px !important;
    gap: 18px !important;
  }
  .nfn-footer-col h4 {
    font-size: 18px !important;
    margin-bottom: 14px !important;
  }
  .nfn-footer-col a,
  .nfn-footer-connect-text-link {
    display: block !important;
    font-size: 17px !important;
    line-height: 1.25 !important;
    margin-bottom: 10px !important;
  }
  .nfn-footer-connect {
    grid-column: 1 / -1 !important;
    padding-top: 4px !important;
  }
  .nfn-footer-connect-text-link {
    max-width: 370px !important;
    font-size: 16px !important;
    line-height: 1.35 !important;
  }
  .nfn-footer-bottom {
    margin-top: 28px !important;
    padding-top: 16px !important;
    border-top: 1px solid rgba(255,255,255,.12) !important;
  }
  .nfn-footer-bottom span {
    display: block !important;
    max-width: 320px !important;
  }
}

@media (max-width: 430px) {
  body.home .nfn-show-item {
    grid-template-columns: 74px minmax(0, 1fr) !important;
    gap: 0 18px !important;
  }
  body.home .nfn-show-day { font-size: 52px !important; }
  body.home .nfn-show-artist { font-size: 23px !important; }
  .nfn-footer-grid {
    gap: 26px 24px !important;
  }
  .nfn-footer-col a,
  .nfn-footer-connect-text-link {
    font-size: 16px !important;
  }
}

/* ===========================
   NFN v7.84 Mobile + Card Structure Cleanup
   Card breathing room, mobile hero clamp/gradient, home show alignment,
   subtle nav scroll hint, tighter 3-row mobile footer, and centered lightbox support.
=========================== */

/* 1. Cards: more air between labels, titles, dates and bylines on desktop and mobile */
.nfn-coverage-body,
.nfn-news-card-body,
.nfn-tour-body,
.nfn-related-card-body,
.nfn-page-card .nfn-coverage-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 18px;
  padding-bottom: 20px;
}
.nfn-badge,
.nfn-related-badge {
  margin-bottom: 2px !important;
  line-height: 1.1 !important;
}
.nfn-coverage-title,
.nfn-news-title,
.nfn-tour-artist,
.nfn-related-title {
  line-height: 1.13 !important;
  letter-spacing: .008em !important;
  margin: 0 !important;
}
.nfn-coverage-meta,
.nfn-coverage-author,
.nfn-news-age,
.nfn-tour-name,
.nfn-tour-dates,
.nfn-related-date {
  line-height: 1.42 !important;
  margin-top: 3px !important;
}

@media (min-width: 761px) {
  .nfn-coverage-body,
  .nfn-news-card-body,
  .nfn-tour-body,
  .nfn-related-card-body {
    padding: 18px 20px 22px !important;
  }
  .nfn-coverage-title,
  .nfn-news-title,
  .nfn-tour-artist,
  .nfn-related-title {
    line-height: 1.14 !important;
  }
}

@media (max-width: 760px) {
  /* Replace the goofy nav arrow with a cleaner swipe fade */
  .nfn-nav-inner::before {
    content: none !important;
    display: none !important;
  }
  .nfn-nav-inner::after {
    width: 34px !important;
    height: 54px !important;
    right: 0 !important;
    bottom: 0 !important;
    background: linear-gradient(90deg, rgba(5,5,5,0), rgba(5,5,5,.92) 82%) !important;
  }
  .nfn-nav-links {
    padding-right: 28px !important;
  }

  /* More breathing room on all mobile cards without making them feel bloated */
  .nfn-coverage-body,
  .nfn-news-card-body,
  .nfn-tour-body,
  .nfn-related-card-body {
    padding: 21px 24px 24px !important;
    gap: 11px !important;
  }
  .nfn-coverage-title,
  .nfn-news-title,
  .nfn-tour-artist,
  .nfn-related-title {
    line-height: 1.12 !important;
    margin-bottom: 2px !important;
    overflow-wrap: anywhere;
  }
  .nfn-coverage-meta,
  .nfn-coverage-author,
  .nfn-news-age,
  .nfn-tour-name,
  .nfn-tour-dates,
  .nfn-related-date {
    line-height: 1.45 !important;
  }

  /* 3. Mobile home hero: restore the black gradient, clamp title/excerpt, and stop half-cut lines */
  body.home .nfn-hero-main,
  body.home .nfn-hero-slide {
    min-height: 650px !important;
    height: 650px !important;
    max-height: 650px !important;
    overflow: hidden !important;
    background: #050505 !important;
  }
  body.home .nfn-hero-img {
    min-height: 310px !important;
    height: 310px !important;
    max-height: 310px !important;
    object-fit: cover !important;
  }
  body.home .nfn-hero-overlay {
    opacity: 1 !important;
    background:
      linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.12) 34%, rgba(0,0,0,.84) 78%, #050505 100%) !important;
  }
  body.home .nfn-hero-content {
    min-height: 340px !important;
    height: 340px !important;
    max-height: 340px !important;
    padding: 34px 22px 32px !important;
    background:
      linear-gradient(180deg, rgba(0,0,0,.82) 0%, #050505 42%, #050505 100%) !important;
    overflow: hidden !important;
  }
  body.home .nfn-hero-title {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    overflow: hidden !important;
    font-size: clamp(35px, 10.2vw, 46px) !important;
    line-height: 1.02 !important;
    max-height: calc(3 * 1.02em) !important;
    margin-bottom: 14px !important;
  }
  body.home .nfn-hero-excerpt {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    overflow: hidden !important;
    line-height: 1.42 !important;
    max-height: calc(3 * 1.42em) !important;
    margin-bottom: 18px !important;
  }
  body.home .nfn-hero-actions {
    gap: 14px !important;
  }
  body.home .nfn-hero-arrow {
    top: auto !important;
    bottom: 28px !important;
    transform: none !important;
    width: 40px !important;
    height: 40px !important;
    z-index: 20 !important;
    background: rgba(8,7,12,.58) !important;
    border-color: rgba(255,255,255,.28) !important;
  }
  body.home .nfn-hero-prev {
    left: auto !important;
    right: 76px !important;
  }
  body.home .nfn-hero-next {
    right: 26px !important;
  }
  body.home .nfn-hero-dots {
    top: auto !important;
    bottom: 78px !important;
    right: 26px !important;
    z-index: 20 !important;
  }

  /* 2 + 4. Home upcoming shows: clean block, aligned date rail, striped rows, calendar link at bottom */
  body.home .nfn-shows-inner {
    display: block !important;
    padding: 27px 24px 29px !important;
    border-radius: 5px !important;
  }
  body.home .nfn-shows-label {
    margin: 0 0 20px !important;
    font-size: 22px !important;
    line-height: 1 !important;
  }
  body.home .nfn-shows-list {
    display: block !important;
  }
  body.home .nfn-show-item {
    display: grid !important;
    grid-template-columns: 92px minmax(0, 1fr) !important;
    align-items: center !important;
    column-gap: 24px !important;
    min-height: 124px !important;
    padding: 22px 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.17) !important;
    background: linear-gradient(90deg, rgba(255,255,255,.026), rgba(255,255,255,.006)) !important;
  }
  body.home .nfn-show-item:nth-child(even) {
    background: linear-gradient(90deg, rgba(139,33,226,.07), rgba(255,255,255,.004)) !important;
  }
  body.home .nfn-show-date-row {
    grid-column: 1 !important;
    grid-row: 1 / span 4 !important;
    width: 82px !important;
    min-height: 86px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    text-align: center !important;
  }
  body.home .nfn-show-month {
    display: block !important;
    width: 100% !important;
    font-size: 19px !important;
    line-height: 1 !important;
    margin-bottom: 4px !important;
  }
  body.home .nfn-show-day {
    display: block !important;
    width: 100% !important;
    font-size: 58px !important;
    line-height: .86 !important;
    letter-spacing: -.02em !important;
  }
  body.home .nfn-show-artist {
    grid-column: 2 !important;
    font-size: clamp(23px, 6.4vw, 30px) !important;
    line-height: 1.02 !important;
    max-width: 100% !important;
  }
  body.home .nfn-show-venue,
  body.home .nfn-show-city {
    grid-column: 2 !important;
    font-size: 18px !important;
    line-height: 1.25 !important;
  }
  body.home .nfn-show-tickets {
    grid-column: 2 !important;
    margin-top: 12px !important;
    font-size: 17px !important;
    line-height: 1 !important;
  }
  body.home .nfn-shows-view-all {
    display: inline-flex !important;
    margin: 24px 0 0 !important;
    padding-top: 2px !important;
  }

  /* 5. Mobile footer: three cleaner rows with smaller, even text */
  .nfn-footer {
    padding: 32px 0 24px !important;
  }
  .nfn-footer > .container {
    width: min(100% - 44px, 1280px) !important;
  }
  .nfn-footer-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "brand brand"
      "explore info"
      "connect connect" !important;
    gap: 24px 30px !important;
    align-items: start !important;
  }
  .nfn-footer-brand {
    grid-area: brand !important;
    grid-column: auto !important;
    padding-bottom: 20px !important;
    border-bottom: 1px solid rgba(255,255,255,.11) !important;
  }
  .nfn-footer-grid > .nfn-footer-col:not(.nfn-footer-info):not(.nfn-footer-connect) {
    grid-area: explore !important;
  }
  .nfn-footer-info {
    grid-area: info !important;
  }
  .nfn-footer-connect {
    grid-area: connect !important;
    grid-column: auto !important;
    padding-top: 16px !important;
    border-top: 1px solid rgba(255,255,255,.11) !important;
  }
  .nfn-footer-brand .nfn-logo img {
    max-height: 34px !important;
  }
  .nfn-footer-brand p {
    max-width: 310px !important;
    margin-top: 11px !important;
    font-size: 13px !important;
    line-height: 1.36 !important;
  }
  .nfn-footer-social {
    margin-top: 14px !important;
    gap: 16px !important;
  }
  .nfn-footer-social a {
    width: 20px !important;
    height: 20px !important;
  }
  .nfn-footer-social svg {
    width: 17px !important;
    height: 17px !important;
  }
  .nfn-footer-col h4 {
    font-size: 16px !important;
    line-height: 1 !important;
    margin: 0 0 13px !important;
  }
  .nfn-footer-col h4::after {
    width: 30px !important;
    height: 3px !important;
    margin-top: 7px !important;
  }
  .nfn-footer-col a,
  .nfn-footer-connect-text-link {
    font-size: 14px !important;
    line-height: 1.27 !important;
    margin-bottom: 8px !important;
  }
  .nfn-footer-connect-text-link {
    max-width: 100% !important;
    font-size: 14px !important;
    line-height: 1.38 !important;
  }
  .nfn-footer-bottom {
    margin-top: 22px !important;
    padding-top: 14px !important;
  }
  .nfn-footer-bottom span,
  .nfn-footer-bottom-links a {
    font-size: 12px !important;
    line-height: 1.35 !important;
  }
  .nfn-footer-bottom-links {
    gap: 18px !important;
    margin-top: 12px !important;
  }
}

@media (max-width: 430px) {
  body.home .nfn-hero-main,
  body.home .nfn-hero-slide {
    min-height: 630px !important;
    height: 630px !important;
    max-height: 630px !important;
  }
  body.home .nfn-hero-img {
    min-height: 300px !important;
    height: 300px !important;
    max-height: 300px !important;
  }
  body.home .nfn-hero-content {
    min-height: 330px !important;
    height: 330px !important;
    max-height: 330px !important;
  }
  body.home .nfn-hero-title {
    font-size: clamp(32px, 9.7vw, 42px) !important;
  }
  body.home .nfn-show-item {
    grid-template-columns: 78px minmax(0, 1fr) !important;
    column-gap: 18px !important;
  }
  body.home .nfn-show-date-row {
    width: 72px !important;
  }
  body.home .nfn-show-day {
    font-size: 52px !important;
  }
  body.home .nfn-show-artist {
    font-size: clamp(21px, 6vw, 26px) !important;
  }
}


/* ===========================
   NFN v7.85 Real Mobile/Desktop Fix Pass
   Fixes the items from the mobile QA pass: smaller mobile card type,
   actual card breathing room on desktop, aligned home show date rail,
   real mobile hero gradient, no purple nav arrow, and compact 3-row footer.
=========================== */

/* Card text: give desktop cards actual space without making type huge */
.nfn-coverage-body,
.nfn-news-card-body,
.nfn-tour-body,
.nfn-related-card-body,
.nfn-page-card .nfn-coverage-body {
  padding: 18px 20px 22px !important;
  gap: 9px !important;
}
.nfn-coverage-title,
.nfn-news-title,
.nfn-tour-artist,
.nfn-related-title,
.nfn-archive-title {
  line-height: 1.15 !important;
  letter-spacing: .003em !important;
  margin: 0 !important;
}
.nfn-badge,
.nfn-related-badge {
  margin: 0 0 4px !important;
  line-height: 1.15 !important;
}
.nfn-coverage-meta,
.nfn-coverage-author,
.nfn-news-age,
.nfn-tour-name,
.nfn-tour-dates,
.nfn-related-date {
  line-height: 1.42 !important;
  margin-top: 4px !important;
}

/* Home upcoming shows: lock the date rail so every date sits on the same vertical line */
body.home .nfn-show-item,
body.front-page .nfn-show-item {
  grid-template-columns: 84px minmax(0, 1fr) !important;
  align-items: center !important;
  column-gap: 22px !important;
}
body.home .nfn-show-date-row,
body.front-page .nfn-show-date-row {
  grid-column: 1 !important;
  width: 84px !important;
  min-width: 84px !important;
  max-width: 84px !important;
  align-self: center !important;
  justify-self: center !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.home .nfn-show-month,
body.front-page .nfn-show-month,
body.home .nfn-show-day,
body.front-page .nfn-show-day {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
}

@media (max-width: 760px) {
  /* Kill the purple mobile nav arrow completely. The fade is enough. */
  .nfn-nav-inner::before {
    content: none !important;
    display: none !important;
  }
  .nfn-nav-inner::after {
    content: '' !important;
    display: block !important;
    width: 36px !important;
    height: 48px !important;
    right: 0 !important;
    bottom: 0 !important;
    background: linear-gradient(90deg, rgba(5,5,5,0), rgba(5,5,5,.94) 78%, #050505 100%) !important;
    pointer-events: none !important;
  }
  .nfn-nav-links {
    padding-right: 24px !important;
  }

  /* Mobile cards: undo the oversized type and keep readable spacing. */
  .nfn-coverage-body,
  .nfn-news-card-body,
  .nfn-tour-body,
  .nfn-related-card-body,
  .nfn-page-card .nfn-coverage-body {
    padding: 18px 20px 21px !important;
    gap: 8px !important;
  }
  .nfn-coverage-title,
  .nfn-news-title,
  .nfn-tour-artist,
  .nfn-related-title,
  .nfn-archive-title {
    font-size: clamp(19px, 5.4vw, 25px) !important;
    line-height: 1.15 !important;
    letter-spacing: .002em !important;
    margin: 0 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
  .nfn-coverage-card:first-child .nfn-coverage-title,
  .nfn-news-card:first-child .nfn-news-title {
    font-size: clamp(20px, 5.8vw, 27px) !important;
    line-height: 1.13 !important;
  }
  .nfn-coverage-excerpt,
  .nfn-news-age,
  .nfn-tour-name,
  .nfn-tour-dates,
  .nfn-related-date,
  .nfn-coverage-meta,
  .nfn-coverage-author {
    font-size: 14px !important;
    line-height: 1.42 !important;
  }
  .nfn-badge,
  .nfn-related-badge {
    margin-bottom: 5px !important;
    font-size: 12px !important;
  }

  /* Home hero: make it one image card with a real bottom gradient, not a black seam. */
  body.home .nfn-hero-main,
  body.front-page .nfn-hero-main,
  body.home .nfn-hero-slide,
  body.front-page .nfn-hero-slide {
    position: relative !important;
    min-height: 610px !important;
    height: 610px !important;
    max-height: 610px !important;
    overflow: hidden !important;
    background: #050505 !important;
  }
  body.home .nfn-hero-img,
  body.front-page .nfn-hero-img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center top !important;
  }
  body.home .nfn-hero-overlay,
  body.front-page .nfn-hero-overlay {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    opacity: 1 !important;
    background:
      linear-gradient(180deg,
        rgba(5,5,5,.04) 0%,
        rgba(5,5,5,.10) 32%,
        rgba(5,5,5,.42) 48%,
        rgba(5,5,5,.84) 62%,
        #050505 82%,
        #050505 100%) !important;
  }
  body.home .nfn-hero-content,
  body.front-page .nfn-hero-content {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 4 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 22px 102px !important;
    background: transparent !important;
    overflow: visible !important;
  }
  body.home .nfn-hero-title,
  body.front-page .nfn-hero-title {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
    max-height: none !important;
    margin: 10px 0 12px !important;
    font-size: clamp(31px, 8.4vw, 39px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.015em !important;
  }
  body.home .nfn-hero-excerpt,
  body.front-page .nfn-hero-excerpt {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
    max-height: none !important;
    margin: 0 0 18px !important;
    font-size: 15px !important;
    line-height: 1.42 !important;
  }
  body.home .nfn-hero-actions,
  body.front-page .nfn-hero-actions {
    margin-top: 0 !important;
  }
  body.home .nfn-hero-btn,
  body.front-page .nfn-hero-btn {
    min-height: 48px !important;
    padding: 0 22px !important;
  }
  body.home .nfn-hero-meta,
  body.front-page .nfn-hero-meta {
    display: block !important;
    margin-top: 16px !important;
    font-size: 14px !important;
  }
  body.home .nfn-hero-arrow,
  body.front-page .nfn-hero-arrow {
    top: auto !important;
    bottom: 22px !important;
    transform: none !important;
    width: 42px !important;
    height: 42px !important;
    background: rgba(8,7,12,.72) !important;
    border-color: rgba(255,255,255,.20) !important;
  }
  body.home .nfn-hero-prev,
  body.front-page .nfn-hero-prev {
    left: auto !important;
    right: 78px !important;
  }
  body.home .nfn-hero-next,
  body.front-page .nfn-hero-next {
    right: 24px !important;
  }
  body.home .nfn-hero-dots,
  body.front-page .nfn-hero-dots {
    top: auto !important;
    bottom: 78px !important;
    right: 24px !important;
  }

  /* Home upcoming shows: fixed date column, tighter titles, view calendar at bottom. */
  body.home .nfn-shows-inner,
  body.front-page .nfn-shows-inner {
    display: block !important;
    padding: 24px 22px 26px !important;
  }
  body.home .nfn-shows-label,
  body.front-page .nfn-shows-label {
    display: block !important;
    margin: 0 0 18px !important;
    font-size: 20px !important;
  }
  body.home .nfn-show-item,
  body.front-page .nfn-show-item {
    grid-template-columns: 74px minmax(0, 1fr) !important;
    column-gap: 18px !important;
    min-height: 104px !important;
    padding: 18px 0 !important;
    align-items: center !important;
  }
  body.home .nfn-show-date-row,
  body.front-page .nfn-show-date-row {
    width: 74px !important;
    min-width: 74px !important;
    max-width: 74px !important;
    min-height: 78px !important;
    grid-row: 1 / span 4 !important;
  }
  body.home .nfn-show-month,
  body.front-page .nfn-show-month {
    font-size: 16px !important;
    line-height: 1 !important;
    margin: 0 0 3px !important;
  }
  body.home .nfn-show-day,
  body.front-page .nfn-show-day {
    font-size: 50px !important;
    line-height: .86 !important;
    letter-spacing: -.02em !important;
  }
  body.home .nfn-show-artist,
  body.front-page .nfn-show-artist {
    font-size: clamp(19px, 5.3vw, 24px) !important;
    line-height: 1.04 !important;
    max-width: 100% !important;
  }
  body.home .nfn-show-venue,
  body.home .nfn-show-city,
  body.front-page .nfn-show-venue,
  body.front-page .nfn-show-city {
    font-size: 15px !important;
    line-height: 1.24 !important;
  }
  body.home .nfn-show-tickets,
  body.front-page .nfn-show-tickets {
    font-size: 15px !important;
    margin-top: 8px !important;
  }
  body.home .nfn-shows-view-all,
  body.front-page .nfn-shows-view-all {
    display: inline-flex !important;
    margin: 18px 0 0 !important;
    font-size: 14px !important;
  }

  /* Footer: actual compact 3-row mobile structure. */
  .nfn-footer {
    padding: 28px 0 22px !important;
  }
  .nfn-footer > .container {
    width: min(100% - 40px, 1280px) !important;
  }
  .nfn-footer-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "brand brand"
      "explore info"
      "connect connect" !important;
    gap: 20px 28px !important;
  }
  .nfn-footer-brand { grid-area: brand !important; padding-bottom: 16px !important; border-bottom: 1px solid rgba(255,255,255,.10) !important; }
  .nfn-footer-grid > .nfn-footer-col:not(.nfn-footer-info):not(.nfn-footer-connect) { grid-area: explore !important; }
  .nfn-footer-info { grid-area: info !important; }
  .nfn-footer-connect { grid-area: connect !important; padding-top: 16px !important; border-top: 1px solid rgba(255,255,255,.10) !important; }
  .nfn-footer-brand .nfn-logo img { max-height: 32px !important; }
  .nfn-footer-brand p {
    display: block !important;
    max-width: 280px !important;
    margin: 10px 0 0 !important;
    font-size: 12px !important;
    line-height: 1.38 !important;
  }
  .nfn-footer-social { margin-top: 12px !important; gap: 14px !important; }
  .nfn-footer-social a { width: 18px !important; height: 18px !important; }
  .nfn-footer-social svg { width: 16px !important; height: 16px !important; }
  .nfn-footer-col h4 {
    font-size: 14px !important;
    line-height: 1 !important;
    margin: 0 0 10px !important;
    letter-spacing: 1px !important;
  }
  .nfn-footer-col h4::after { width: 28px !important; height: 3px !important; margin-top: 6px !important; }
  .nfn-footer-info-links {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-auto-flow: row !important;
    gap: 5px !important;
  }
  .nfn-footer-col a,
  .nfn-footer-connect-text-link {
    font-size: 12px !important;
    line-height: 1.28 !important;
    margin: 0 0 6px !important;
  }
  .nfn-footer-connect-text-link {
    display: block !important;
    max-width: 320px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
  }
  .nfn-footer-bottom {
    margin-top: 18px !important;
    padding-top: 12px !important;
  }
  .nfn-footer-bottom span,
  .nfn-footer-bottom-links a {
    font-size: 11px !important;
    line-height: 1.35 !important;
  }
}

@media (max-width: 390px) {
  body.home .nfn-hero-title,
  body.front-page .nfn-hero-title {
    font-size: clamp(29px, 8vw, 36px) !important;
  }
  body.home .nfn-show-item,
  body.front-page .nfn-show-item {
    grid-template-columns: 66px minmax(0, 1fr) !important;
    column-gap: 15px !important;
  }
  body.home .nfn-show-date-row,
  body.front-page .nfn-show-date-row {
    width: 66px !important;
    min-width: 66px !important;
    max-width: 66px !important;
  }
  body.home .nfn-show-day,
  body.front-page .nfn-show-day {
    font-size: 44px !important;
  }
}


/* ===========================
   NFN v7.86 Mobile Hero + Shows Alignment Fix
   Final mobile correction pass: smaller hero image crop, dots-only hero controls,
   fully rebuilt home upcoming-show rows, and tighter mobile footer/card type.
=========================== */

/* Real card breathing room on desktop and mobile. */
.nfn-coverage-card .nfn-coverage-body,
.nfn-news-card .nfn-news-card-body,
.nfn-tour-card .nfn-tour-body,
body.single-post .nfn-related-card-body {
  display: grid !important;
  gap: 10px !important;
  padding: 18px 20px 22px !important;
}
.nfn-coverage-card .nfn-coverage-title,
.nfn-news-card .nfn-news-title,
.nfn-tour-card .nfn-tour-artist,
body.single-post .nfn-related-title {
  line-height: 1.18 !important;
  margin: 0 !important;
}
.nfn-coverage-card .nfn-badge,
.nfn-news-card .nfn-badge,
.nfn-tour-card .nfn-tour-name,
.nfn-tour-card .nfn-tour-dates,
.nfn-coverage-card .nfn-coverage-author,
body.single-post .nfn-related-date {
  line-height: 1.45 !important;
  margin-top: 0 !important;
}

@media (max-width: 760px) {
  /* Keep mobile card type readable instead of huge. */
  .nfn-page-card .nfn-coverage-title,
  .nfn-coverage-card .nfn-coverage-title,
  .nfn-news-card .nfn-news-title,
  .nfn-tour-card .nfn-tour-artist,
  body.single-post .nfn-related-title {
    font-size: clamp(21px, 6vw, 28px) !important;
    line-height: 1.16 !important;
    letter-spacing: -.01em !important;
  }
  .nfn-page-card .nfn-coverage-body,
  .nfn-coverage-card .nfn-coverage-body,
  .nfn-news-card .nfn-news-card-body,
  .nfn-tour-card .nfn-tour-body,
  body.single-post .nfn-related-card-body {
    padding: 20px 22px 24px !important;
    gap: 11px !important;
  }

  /* Mobile nav: no goofy arrow, just a fade showing it scrolls. */
  .nfn-nav-inner::before,
  .nfn-nav-links::before,
  .nfn-nav-links::after {
    content: none !important;
    display: none !important;
  }
  .nfn-nav-inner::after {
    content: '' !important;
    position: absolute !important;
    display: block !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 42px !important;
    height: 50px !important;
    background: linear-gradient(90deg, rgba(5,5,5,0), #050505 78%) !important;
    pointer-events: none !important;
  }

  /* Home hero: reduce over-zoom, keep the nice black blend, and use dots only. */
  body.home .nfn-hero-main,
  body.front-page .nfn-hero-main,
  body.home .nfn-hero-slide,
  body.front-page .nfn-hero-slide {
    min-height: 540px !important;
    height: 540px !important;
    max-height: 540px !important;
    background: #050505 !important;
    overflow: hidden !important;
  }
  body.home .nfn-hero-img,
  body.front-page .nfn-hero-img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
    object-position: center 26% !important;
  }
  body.home .nfn-hero-overlay,
  body.front-page .nfn-hero-overlay {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    background:
      linear-gradient(180deg,
        rgba(5,5,5,0) 0%,
        rgba(5,5,5,.06) 26%,
        rgba(5,5,5,.22) 44%,
        rgba(5,5,5,.72) 62%,
        rgba(5,5,5,.96) 79%,
        #050505 100%) !important;
  }
  body.home .nfn-hero-content,
  body.front-page .nfn-hero-content {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 4 !important;
    padding: 0 22px 54px !important;
    background: transparent !important;
  }
  body.home .nfn-hero-title,
  body.front-page .nfn-hero-title {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
    font-size: clamp(32px, 9vw, 40px) !important;
    line-height: 1.02 !important;
    margin: 10px 0 12px !important;
  }
  body.home .nfn-hero-excerpt,
  body.front-page .nfn-hero-excerpt {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
    font-size: 15px !important;
    line-height: 1.42 !important;
    margin-bottom: 18px !important;
  }
  body.home .nfn-hero-arrow,
  body.front-page .nfn-hero-arrow {
    display: none !important;
  }
  body.home .nfn-hero-dots,
  body.front-page .nfn-hero-dots {
    top: 22px !important;
    right: 24px !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 8 !important;
  }
  body.home .nfn-hero-dot,
  body.front-page .nfn-hero-dot {
    width: 34px !important;
    height: 4px !important;
  }

  /* Home upcoming shows: rebuilt as a rigid two-column list so every date lines up. */
  body.home .nfn-shows,
  body.front-page .nfn-shows {
    padding: 24px 0 30px !important;
    background: #fff !important;
  }
  body.home .nfn-shows .container,
  body.front-page .nfn-shows .container {
    width: min(100% - 26px, 1280px) !important;
  }
  body.home .nfn-shows-inner,
  body.front-page .nfn-shows-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    padding: 24px 22px 24px !important;
    border-radius: 5px !important;
    background: #050505 !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    box-shadow: 0 18px 34px rgba(0,0,0,.14) !important;
  }
  body.home .nfn-shows-label,
  body.front-page .nfn-shows-label {
    margin: 0 0 12px !important;
    font-size: 19px !important;
    line-height: 1 !important;
    color: #fff !important;
  }
  body.home .nfn-shows-list,
  body.front-page .nfn-shows-list {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
  }
  body.home .nfn-show-item,
  body.front-page .nfn-show-item {
    display: grid !important;
    grid-template-columns: 82px minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto auto !important;
    column-gap: 20px !important;
    row-gap: 2px !important;
    min-height: 118px !important;
    padding: 21px 0 !important;
    align-items: center !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.16) !important;
    background: transparent !important;
  }
  body.home .nfn-show-item:nth-child(even),
  body.front-page .nfn-show-item:nth-child(even) {
    background: linear-gradient(90deg, rgba(126,34,206,.10), rgba(126,34,206,0) 55%) !important;
  }
  body.home .nfn-show-item:last-child,
  body.front-page .nfn-show-item:last-child {
    border-bottom: 0 !important;
  }
  body.home .nfn-show-date-row,
  body.front-page .nfn-show-date-row {
    grid-column: 1 !important;
    grid-row: 1 / 5 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 82px !important;
    min-width: 82px !important;
    max-width: 82px !important;
    min-height: 82px !important;
    align-self: center !important;
    justify-self: start !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
  }
  body.home .nfn-show-month,
  body.front-page .nfn-show-month {
    display: block !important;
    width: 100% !important;
    margin: 0 0 4px !important;
    font-size: 16px !important;
    line-height: 1 !important;
    text-align: center !important;
  }
  body.home .nfn-show-day,
  body.front-page .nfn-show-day {
    display: block !important;
    width: 100% !important;
    font-size: 50px !important;
    line-height: .86 !important;
    letter-spacing: -.02em !important;
    text-align: center !important;
  }
  body.home .nfn-show-artist,
  body.front-page .nfn-show-artist,
  body.home .nfn-show-venue,
  body.front-page .nfn-show-venue,
  body.home .nfn-show-city,
  body.front-page .nfn-show-city,
  body.home .nfn-show-tickets,
  body.front-page .nfn-show-tickets {
    grid-column: 2 !important;
    margin: 0 !important;
    justify-self: start !important;
    text-align: left !important;
    min-width: 0 !important;
  }
  body.home .nfn-show-artist,
  body.front-page .nfn-show-artist {
    font-size: clamp(21px, 6.2vw, 27px) !important;
    line-height: 1.02 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
  }
  body.home .nfn-show-venue,
  body.front-page .nfn-show-venue,
  body.home .nfn-show-city,
  body.front-page .nfn-show-city {
    font-size: 16px !important;
    line-height: 1.22 !important;
  }
  body.home .nfn-show-tickets,
  body.front-page .nfn-show-tickets {
    margin-top: 9px !important;
    font-size: 16px !important;
    line-height: 1 !important;
  }
  body.home .nfn-shows-view-all,
  body.front-page .nfn-shows-view-all {
    display: inline-flex !important;
    justify-self: start !important;
    margin: 14px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--nfn-purple-soft) !important;
    font-size: 14px !important;
    letter-spacing: 1px !important;
  }

  /* Footer: smaller, more even mobile layout. */
  .nfn-footer {
    padding: 26px 0 18px !important;
  }
  .nfn-footer > .container {
    width: min(100% - 36px, 1280px) !important;
  }
  .nfn-footer-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "brand brand"
      "explore info"
      "connect connect" !important;
    gap: 18px 24px !important;
  }
  .nfn-footer-brand { grid-area: brand !important; }
  .nfn-footer-grid > .nfn-footer-col:not(.nfn-footer-info):not(.nfn-footer-connect) { grid-area: explore !important; }
  .nfn-footer-info { grid-area: info !important; }
  .nfn-footer-connect { grid-area: connect !important; }
  .nfn-footer-brand p,
  .nfn-footer-connect-text-link {
    font-size: 12px !important;
    line-height: 1.38 !important;
    max-width: 270px !important;
  }
  .nfn-footer-col h4 {
    font-size: 14px !important;
    margin-bottom: 10px !important;
  }
  .nfn-footer-col a,
  .nfn-footer-info-links a {
    font-size: 12px !important;
    line-height: 1.25 !important;
    margin-bottom: 7px !important;
  }
  .nfn-footer-info-links {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }
  .nfn-footer-bottom {
    display: grid !important;
    gap: 8px !important;
    margin-top: 16px !important;
  }
}

@media (max-width: 390px) {
  body.home .nfn-hero-main,
  body.front-page .nfn-hero-main,
  body.home .nfn-hero-slide,
  body.front-page .nfn-hero-slide {
    min-height: 520px !important;
    height: 520px !important;
    max-height: 520px !important;
  }
  body.home .nfn-show-item,
  body.front-page .nfn-show-item {
    grid-template-columns: 76px minmax(0, 1fr) !important;
    column-gap: 18px !important;
  }
  body.home .nfn-show-date-row,
  body.front-page .nfn-show-date-row {
    width: 76px !important;
    min-width: 76px !important;
    max-width: 76px !important;
  }
  body.home .nfn-show-day,
  body.front-page .nfn-show-day {
    font-size: 46px !important;
  }
}


/* ==========================================================================
   NFN V7.87 — UNIFIED MOBILE FIX
   One authoritative mobile layer appended last so it wins over the ~140
   scattered legacy media queries. Fixes runaway clamp() font sizes and
   forces every major component to a clean single-column mobile layout.
   Does NOT touch: the home hero image/gradient, or the nav scroll-fade.
   ========================================================================== */
@media (max-width: 768px) {

  /* ---- Global type scale: kill vw-based blow-ups ---- */
  .nfn-section-label > span,
  .nfn-section-label span { font-size: 20px !important; letter-spacing: 1.2px !important; }

  /* Home hero text (image/gradient handled elsewhere, left alone) */
  body.home .nfn-hero-title,
  body.front-page .nfn-hero-title { font-size: 30px !important; line-height: 1.04 !important; }
  body.home .nfn-hero-excerpt,
  body.front-page .nfn-hero-excerpt { font-size: 14px !important; }
  body.home .nfn-hero-content,
  body.front-page .nfn-hero-content { padding: 0 20px 26px !important; }

  /* Inner page + single hero titles */
  .nfn-inner-hero h1,
  .nfn-single-hero h1,
  .nfn-archive-header h1,
  .nfn-page-wrap h1,
  .nfn-about-hero h1 { font-size: 30px !important; line-height: 1.05 !important; }
  .nfn-inner-hero p,
  .nfn-about-hero p { font-size: 14px !important; }

  /* In-article headings */
  .nfn-single-content h2 { font-size: 24px !important; }
  .nfn-single-content h3 { font-size: 20px !important; }
  .nfn-single-content { font-size: 16px !important; line-height: 1.75 !important; }

  /* ---- Containers: consistent gutter ---- */
  .container { padding-left: 18px !important; padding-right: 18px !important; }

  /* ---- LATEST POSTS / coverage: horizontal scroll, one-and-a-bit per view ---- */
  body.home .nfn-coverage-scroll,
  body.front-page .nfn-coverage-scroll {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: 82% !important;
    gap: 14px !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    padding-bottom: 6px !important;
  }
  body.home .nfn-coverage-scroll .nfn-coverage-card,
  body.front-page .nfn-coverage-scroll .nfn-coverage-card {
    scroll-snap-align: start !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  .nfn-coverage-thumb { aspect-ratio: 16/10 !important; height: auto !important; }
  .nfn-coverage-title { font-size: 17px !important; line-height: 1.25 !important; }
  .nfn-coverage-excerpt { font-size: 13px !important; }

  /* ---- UPCOMING SHOWS: stack the strip, horizontal scroll the items ---- */
  body.home .nfn-shows-inner,
  body.front-page .nfn-shows-inner {
    display: block !important;
    padding: 16px 0 !important;
  }
  body.home .nfn-shows-label,
  body.front-page .nfn-shows-label {
    display: block !important;
    padding: 0 18px 12px !important;
    border: 0 !important;
    font-size: 15px !important;
  }
  body.home .nfn-shows-list,
  body.front-page .nfn-shows-list {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: 76% !important;
    gap: 12px !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    padding: 0 18px !important;
  }
  body.home .nfn-show-item,
  body.front-page .nfn-show-item {
    scroll-snap-align: start !important;
    min-width: 0 !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 12px !important;
    padding: 14px !important;
  }
  .nfn-show-day { font-size: 26px !important; }
  .nfn-show-artist { font-size: 15px !important; white-space: normal !important; }
  body.home .nfn-shows-view-all,
  body.front-page .nfn-shows-view-all {
    display: block !important;
    padding: 14px 18px 0 !important;
  }

  /* ---- TOUR ANNOUNCEMENTS: 2-up grid ---- */
  body.home .nfn-tours-grid,
  body.front-page .nfn-tours-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px !important;
  }
  .nfn-tour-poster { aspect-ratio: 3/4 !important; height: auto !important; }
  .nfn-tour-artist { font-size: 13px !important; }
  .nfn-tour-name { font-size: 11px !important; }

  /* ---- ON REPEAT + SUBSCRIBE: stack ---- */
  body.home .nfn-connect-row,
  body.front-page .nfn-connect-row {
    display: block !important;
  }
  body.home .nfn-connect-left,
  body.front-page .nfn-connect-left { margin-bottom: 28px !important; }
  .nfn-connect-left iframe { height: 152px !important; }
  .nfn-connect-form { flex-direction: column !important; gap: 10px !important; }
  .nfn-connect-form input[type="email"] { width: 100% !important; }
  .nfn-connect-form button { width: 100% !important; }
  .nfn-connect-left h3,
  .nfn-connect-right h3 { font-size: 22px !important; }

  /* ---- LATEST NEWS: single column list ---- */
  .nfn-news-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .nfn-news-card { display: grid !important; grid-template-columns: 116px 1fr !important; gap: 12px !important; align-items: center !important; }
  .nfn-news-card-thumb { aspect-ratio: 1/1 !important; height: 100% !important; }
  .nfn-news-title { font-size: 14px !important; }

  /* ---- SINGLE POST: drop the sidebar below, full-width content ---- */
  .nfn-single-container { display: block !important; }
  .nfn-single-content { padding: 22px 20px 26px !important; border-radius: 16px !important; }
  .nfn-single-sidebar { margin-top: 28px !important; width: 100% !important; }
  .nfn-single-hero { padding: 26px 0 18px !important; }
  .nfn-single-wrap { padding-top: 22px !important; }

  /* ---- ABOUT page: stack the two columns, contributors single column ---- */
  .nfn-about-grid { display: block !important; }
  .nfn-about-who { margin-bottom: 22px !important; padding: 24px !important; }
  .nfn-about-cover { padding: 24px !important; }
  .nfn-contrib-grid,
  .nfn-about-contrib-grid { grid-template-columns: 1fr !important; gap: 14px !important; }
  .nfn-about-workwithus-inner { display: block !important; text-align: left !important; }
  .nfn-about-workwithus a { margin-top: 18px !important; }

  /* ---- Footer: single column ---- */
  .nfn-footer-grid { grid-template-columns: 1fr !important; gap: 26px !important; }
  .nfn-footer-links-2col { grid-template-columns: 1fr 1fr !important; }
  .nfn-footer-bottom { flex-direction: column !important; gap: 10px !important; text-align: center !important; }

  /* ---- Share icons: wrap neatly ---- */
  .nfn-share-buttons { gap: 8px !important; }
  .nfn-share-icon { width: 38px !important; height: 38px !important; }
}

/* Extra squeeze for very small phones */
@media (max-width: 400px) {
  body.home .nfn-hero-title,
  body.front-page .nfn-hero-title { font-size: 26px !important; }
  body.home .nfn-tours-grid,
  body.front-page .nfn-tours-grid { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
  .nfn-news-card { grid-template-columns: 92px 1fr !important; }
  .nfn-inner-hero h1,
  .nfn-single-hero h1,
  .nfn-about-hero h1 { font-size: 26px !important; }
}


/* ==========================================================================
   NFN V7.88 — MOBILE FIX ROUND 2
   Fixes: shows scramble, latest-news layout, footer balance, oversized card
   text, single-post box constraint, gallery 3-across on mobile.
   ========================================================================== */
@media (max-width: 768px) {

  /* ---- 1. UPCOMING SHOWS: fully reset item internals (stop the overlap) ---- */
  body.home .nfn-show-item,
  body.front-page .nfn-show-item {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 6px !important;
    transform: none !important;
    inset: auto !important;
    left: auto !important; right: auto !important; top: auto !important; bottom: auto !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    background: rgba(255,255,255,.03) !important;
  }
  body.home .nfn-show-item > *,
  body.front-page .nfn-show-item > * {
    position: static !important;
    transform: none !important;
    inset: auto !important;
    left: auto !important; right: auto !important; top: auto !important; bottom: auto !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
  }
  body.home .nfn-show-date-row,
  body.front-page .nfn-show-date-row {
    display: flex !important;
    flex-direction: row !important;
    align-items: baseline !important;
    gap: 5px !important;
  }
  body.home .nfn-show-day,
  body.front-page .nfn-show-day { font-size: 24px !important; }
  body.home .nfn-show-month,
  body.front-page .nfn-show-month { font-size: 12px !important; }
  body.home .nfn-show-artist,
  body.front-page .nfn-show-artist {
    font-size: 15px !important;
    line-height: 1.15 !important;
    white-space: normal !important;
    overflow: visible !important;
  }
  body.home .nfn-show-venue,
  body.front-page .nfn-show-venue,
  body.home .nfn-show-city,
  body.front-page .nfn-show-city {
    font-size: 12px !important;
    white-space: normal !important;
    overflow: visible !important;
  }
  body.home .nfn-show-tickets,
  body.front-page .nfn-show-tickets {
    position: static !important;
    margin-top: 4px !important;
  }

  /* ---- 2. LATEST NEWS: clean side-by-side thumb + text rows ---- */
  .nfn-news-grid { display: block !important; }
  .nfn-news-card {
    display: grid !important;
    grid-template-columns: 120px 1fr !important;
    gap: 14px !important;
    align-items: stretch !important;
    margin-bottom: 16px !important;
    border: 1px solid rgba(8,8,10,.08) !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    background: #fff !important;
  }
  .nfn-news-card-thumb {
    width: 120px !important;
    height: 100% !important;
    min-height: 120px !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
  }
  .nfn-news-card-body { padding: 14px 14px 14px 0 !important; }
  .nfn-news-title {
    font-size: 15px !important;
    line-height: 1.25 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }
  .nfn-news-age { font-size: 11px !important; }

  /* ---- 3. FOOTER: brand full, Explore + Info side-by-side, Connect full ---- */
  .nfn-footer-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 26px 20px !important;
  }
  .nfn-footer-brand { grid-column: 1 / -1 !important; }
  /* First .nfn-footer-col is Explore (left), the .nfn-footer-info is Info (right) */
  .nfn-footer-col { grid-column: auto !important; }
  .nfn-footer-connect { grid-column: 1 / -1 !important; }
  /* Info list: single clean column on mobile */
  .nfn-footer-info-links { grid-template-columns: 1fr !important; display: grid !important; gap: 2px !important; }

  /* ---- 4. CARD TITLES: tame oversized headings on home cards ---- */
  body.home .nfn-coverage-title,
  body.front-page .nfn-coverage-title {
    font-size: 17px !important;
    line-height: 1.22 !important;
  }
  body.home .nfn-coverage-excerpt,
  body.front-page .nfn-coverage-excerpt { font-size: 13px !important; }

  /* ---- 5. SINGLE POST: let it breathe — remove the tight box feel ---- */
  body.single-post .nfn-single-content,
  body.single .nfn-single-content {
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 18px 4px 26px !important;
    font-size: 17px !important;
    line-height: 1.75 !important;
  }
  body.single-post .nfn-single-wrap,
  body.single .nfn-single-wrap {
    background: #fff !important;
    padding: 20px 16px 40px !important;
  }

  /* ---- 5b. IN-POST GALLERIES: keep 3 across on mobile (don't collapse to 1) ---- */
  body.single-post .nfn-single-content .wp-block-gallery,
  body.single .nfn-single-content .wp-block-gallery,
  body.single-post .nfn-single-content .blocks-gallery-grid,
  body.single .nfn-single-content .blocks-gallery-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 6px !important;
    margin: 1.2em 0 !important;
  }
  body.single-post .nfn-single-content .wp-block-gallery .wp-block-image,
  body.single .nfn-single-content .wp-block-gallery .wp-block-image,
  body.single-post .nfn-single-content .blocks-gallery-item,
  body.single .nfn-single-content .blocks-gallery-item {
    width: 100% !important;
    margin: 0 !important;
  }
  body.single-post .nfn-single-content .wp-block-gallery img,
  body.single .nfn-single-content .wp-block-gallery img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 6px !important;
    aspect-ratio: 1 / 1 !important;
  }
  /* Also handle galleries that use columns count classes */
  body.single-post .nfn-single-content .wp-block-gallery.columns-3,
  body.single .nfn-single-content .wp-block-gallery.columns-3 {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}


/* ==========================================================================
   NFN V7.89 — REBUILT SHOWS CAROUSEL + FOOTER (fresh nfnx- namespace)
   Written clean so no legacy rules can interfere. Scales desktop → mobile.
   ========================================================================== */

/* ---------- UPCOMING SHOWS ---------- */
.nfnx-shows {
  background: linear-gradient(160deg, #16091f 0%, #0d0712 100%);
  padding: 34px 0;
}
.nfnx-shows-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}
.nfnx-shows-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 24px;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #fff;
  border-left: 4px solid #7e22ce;
  padding-left: 12px;
  line-height: 1;
}
.nfnx-shows-viewall {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #b97ae8;
  white-space: nowrap;
  flex-shrink: 0;
}
.nfnx-shows-viewall:hover { color: #fff; }

.nfnx-shows-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(220px, 1fr);
  gap: 12px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 4px;
}
.nfnx-shows-track::-webkit-scrollbar { display: none; }

.nfnx-show {
  scroll-snap-align: start;
  display: flex;
  align-items: stretch;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
  background: rgba(255,255,255,.03);
  min-width: 0;
}
.nfnx-show-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: flex-start;
  line-height: 1;
  flex-shrink: 0;
  min-width: 40px;
}
.nfnx-show-mon {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #b97ae8;
  margin-bottom: 2px;
}
.nfnx-show-day {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 30px;
  font-weight: 900;
  color: #fff;
  line-height: .9;
}
.nfnx-show-info {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.nfnx-show-artist {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 16px;
  font-weight: 800;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.15;
  margin-bottom: 4px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nfnx-show-venue {
  font-size: 12px;
  color: #a891ba;
  line-height: 1.3;
  margin-bottom: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nfnx-show-tickets {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #b97ae8;
  border: 1px solid rgba(126,34,206,.6);
  border-radius: 6px;
  padding: 5px 10px;
  display: inline-block;
  align-self: flex-start;
  margin-top: auto;
  transition: all .2s ease;
}
.nfnx-show-tickets:hover { background: #7e22ce; border-color: #7e22ce; color: #fff; }

@media (max-width: 768px) {
  .nfnx-shows { padding: 26px 0; }
  .nfnx-shows-track { grid-auto-columns: 84%; }
  .nfnx-show-day { font-size: 26px; }
  .nfnx-show-artist { font-size: 15px; }
}

/* ---------- FOOTER ---------- */
.nfnx-footer {
  background: linear-gradient(180deg, #16091f 0%, #08040c 100%);
  padding: 48px 0 26px;
  border-top: 1px solid rgba(126,34,206,.2);
}
.nfnx-footer-top {
  display: grid;
  grid-template-columns: 1.4fr 2fr;
  gap: 48px;
  padding-bottom: 32px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.nfnx-footer-brand .nfn-logo-mark { color: #fff; }
.nfnx-footer-tagline {
  font-size: 13px;
  color: #9a86ab;
  line-height: 1.65;
  margin: 14px 0 16px;
  max-width: 340px;
}
.nfnx-footer-social { display: flex; gap: 12px; }
.nfnx-footer-social a {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.16);
  color: #cbb8d9;
  transition: all .2s ease;
}
.nfnx-footer-social a:hover { background: #7e22ce; border-color: #7e22ce; color: #fff; }
.nfnx-footer-social svg { width: 15px; height: 15px; fill: currentColor; }

.nfnx-footer-nav {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.nfnx-footer-col h4 {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 14px;
  padding-bottom: 8px;
  border-bottom: 2px solid #7e22ce;
  display: inline-block;
}
.nfnx-footer-col ul { list-style: none; margin: 0; padding: 0; }
.nfnx-footer-col li { margin-bottom: 9px; }
.nfnx-footer-col a {
  font-size: 14px;
  color: #b3a3c0;
  transition: color .2s ease;
}
.nfnx-footer-col a:hover { color: #fff; }

.nfnx-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 22px;
  flex-wrap: wrap;
}
.nfnx-footer-bottom span { font-size: 12px; color: #6f6080; }
.nfnx-footer-pitch {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: #b97ae8;
}
.nfnx-footer-pitch:hover { color: #fff; }

@media (max-width: 900px) {
  .nfnx-footer-top { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width: 768px) {
  .nfnx-footer { padding: 38px 0 22px; }
  .nfnx-footer-nav { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .nfnx-footer-col h4 { font-size: 12px; margin-bottom: 10px; }
  .nfnx-footer-col a { font-size: 13px; }
  .nfnx-footer-col li { margin-bottom: 8px; }
  .nfnx-footer-bottom { flex-direction: column; align-items: flex-start; gap: 10px; }
}
@media (max-width: 460px) {
  .nfnx-footer-nav { grid-template-columns: 1fr 1fr; gap: 20px 16px; }
  .nfnx-footer-col:last-child { grid-column: 1 / -1; }
}

/* ---------- LATEST NEWS card text (final size cap) ---------- */
@media (max-width: 768px) {
  .nfn-news-title {
    font-size: 15px !important;
    line-height: 1.25 !important;
    -webkit-line-clamp: 2 !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }
}


/* ==========================================================================
   NFN V7.90 — FOOTER COMPRESS + MOBILE NEWS CARDS + MOBILE HERO NAV
   ========================================================================== */

/* ---------- 1a. FOOTER: compress on desktop ---------- */
.nfnx-footer { padding: 34px 0 20px !important; }
.nfnx-footer-top { padding-bottom: 24px !important; gap: 40px !important; }
.nfnx-footer-tagline { margin: 12px 0 14px !important; }
.nfnx-footer-col li { margin-bottom: 7px !important; }
.nfnx-footer-bottom { padding-top: 18px !important; }

/* ---------- 1b. FOOTER: mobile — Explore/About/Connect side by side ---------- */
@media (max-width: 768px) {
  .nfnx-footer { padding: 30px 0 18px !important; }
  .nfnx-footer-top {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
    padding-bottom: 20px !important;
  }
  .nfnx-footer-tagline { max-width: none !important; font-size: 12px !important; }
  .nfnx-footer-nav {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 14px !important;
  }
  .nfnx-footer-col:last-child { grid-column: auto !important; }
  .nfnx-footer-col h4 {
    font-size: 12px !important;
    margin-bottom: 10px !important;
    padding-bottom: 6px !important;
  }
  .nfnx-footer-col a { font-size: 12.5px !important; }
  .nfnx-footer-col li { margin-bottom: 8px !important; }
  .nfnx-footer-bottom { flex-direction: column !important; align-items: flex-start !important; gap: 8px !important; }
  .nfnx-footer-bottom span { font-size: 11px !important; }
}
@media (max-width: 380px) {
  .nfnx-footer-nav { gap: 8px !important; }
  .nfnx-footer-col a { font-size: 11.5px !important; }
}

/* ---------- 2. MOBILE LATEST NEWS CARDS — restyle ---------- */
@media (max-width: 768px) {
  .nfn-news-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
  }
  .nfn-news-card {
    display: grid !important;
    grid-template-columns: 118px 1fr !important;
    gap: 0 !important;
    align-items: stretch !important;
    background: #fff !important;
    border: 1px solid rgba(8,8,10,.09) !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    box-shadow: 0 4px 16px rgba(8,8,10,.05) !important;
    min-height: 118px !important;
  }
  .nfn-news-card-thumb {
    width: 118px !important;
    height: 100% !important;
    min-height: 118px !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    border-radius: 0 !important;
  }
  .nfn-news-card-body {
    padding: 14px 16px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    min-width: 0 !important;
  }
  .nfn-news-title {
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.28 !important;
    color: #14121a !important;
    margin: 0 0 6px !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }
  .nfn-news-age {
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: .3px !important;
    text-transform: uppercase !important;
    color: #8a8594 !important;
  }
}

/* ---------- 3. MOBILE HERO NAV — show prev/next arrows ---------- */
@media (max-width: 768px) {
  body.home .nfn-hero-arrow,
  body.front-page .nfn-hero-arrow {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: absolute !important;
    top: 50% !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    width: 42px !important;
    height: 42px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(0,0,0,.45) !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
    color: #fff !important;
    z-index: 8 !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
  body.home .nfn-hero-prev,
  body.front-page .nfn-hero-prev { left: 12px !important; right: auto !important; }
  body.home .nfn-hero-next,
  body.front-page .nfn-hero-next { right: 12px !important; left: auto !important; }
  body.home .nfn-hero-arrow::before,
  body.front-page .nfn-hero-arrow::before {
    font-family: Arial, sans-serif !important;
    font-size: 26px !important;
    font-weight: 300 !important;
    line-height: 1 !important;
  }
  body.home .nfn-hero-prev::before,
  body.front-page .nfn-hero-prev::before { content: '‹' !important; }
  body.home .nfn-hero-next::before,
  body.front-page .nfn-hero-next::before { content: '›' !important; }
  /* keep dots visible too */
  body.home .nfn-hero-dots,
  body.front-page .nfn-hero-dots {
    display: flex !important;
    justify-content: center !important;
    gap: 7px !important;
    position: absolute !important;
    bottom: 12px !important;
    left: 0 !important; right: 0 !important;
    top: auto !important;
    z-index: 8 !important;
  }
}


/* ==========================================================================
   NFN V7.91 — NEWS TEXT SMALLER + REMOVE HERO ARROWS + TIGHTER FOOTER
   ========================================================================== */

/* ---------- 1. Latest News mobile card text smaller ---------- */
@media (max-width: 768px) {
  .nfn-news-title {
    font-size: 13px !important;
    line-height: 1.22 !important;
    -webkit-line-clamp: 3 !important;
  }
  .nfn-news-age { font-size: 10px !important; }
  .nfn-news-card { min-height: 104px !important; }
  .nfn-news-card-thumb { width: 108px !important; min-height: 104px !important; }
  .nfn-news-card-body { padding: 12px 14px !important; }
}

/* ---------- 2. Remove hero prev/next arrows (desktop + mobile) ---------- */
.nfn-hero-arrow,
.nfn-hero-prev,
.nfn-hero-next,
body.home .nfn-hero-arrow,
body.front-page .nfn-hero-arrow,
body.home .nfn-hero-prev,
body.front-page .nfn-hero-prev,
body.home .nfn-hero-next,
body.front-page .nfn-hero-next {
  display: none !important;
}

/* ---------- 3. Footer: tighten link spacing (kill the double gap) ---------- */
.nfnx-footer-col li { margin-bottom: 4px !important; }
.nfnx-footer-col a { line-height: 1.5 !important; }
.nfnx-footer-top { padding-bottom: 20px !important; }
@media (max-width: 768px) {
  .nfnx-footer-col li { margin-bottom: 5px !important; }
}


/* ============================================================================
   NFN V7.92 — MOBILE NEWS CARDS + FOOTER HEIGHT CLEANUP
   Fixes the Latest News mobile card layout and tightens footer word/list spacing.
   ============================================================================ */

/* Latest News cards: keep the mobile cards compact and readable, not oversized. */
@media (max-width: 768px) {
  body.home .nfn-news,
  body.front-page .nfn-news {
    padding-top: 36px !important;
    padding-bottom: 44px !important;
  }

  body.home .nfn-news-grid,
  body.front-page .nfn-news-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  body.home .nfn-news-card,
  body.front-page .nfn-news-card {
    display: grid !important;
    grid-template-columns: 118px minmax(0, 1fr) !important;
    align-items: stretch !important;
    min-height: 124px !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    box-shadow: 0 8px 22px rgba(8,8,10,.08) !important;
    border: 1px solid rgba(8,8,10,.10) !important;
    background: #fff !important;
  }

  body.home .nfn-news-card-thumb,
  body.front-page .nfn-news-card-thumb {
    width: 118px !important;
    height: 100% !important;
    min-height: 124px !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: 0 !important;
  }

  body.home .nfn-news-card-body,
  body.front-page .nfn-news-card-body {
    min-width: 0 !important;
    padding: 15px 17px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 8px !important;
  }

  body.home .nfn-news-card .nfn-news-title,
  body.front-page .nfn-news-card .nfn-news-title {
    font-size: clamp(16px, 4.45vw, 18px) !important;
    line-height: 1.15 !important;
    letter-spacing: 0 !important;
    font-weight: 800 !important;
    color: #121016 !important;
    margin: 0 !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.home .nfn-news-card .nfn-news-age,
  body.front-page .nfn-news-card .nfn-news-age {
    font-size: 10.5px !important;
    line-height: 1.15 !important;
    letter-spacing: .55px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    color: #8a8493 !important;
    margin: 0 !important;
  }

  body.home .nfn-news .nfn-mobile-section-cta,
  body.front-page .nfn-news .nfn-mobile-section-cta {
    margin-top: 18px !important;
  }
}

@media (max-width: 390px) {
  body.home .nfn-news-card,
  body.front-page .nfn-news-card {
    grid-template-columns: 104px minmax(0, 1fr) !important;
    min-height: 116px !important;
  }
  body.home .nfn-news-card-thumb,
  body.front-page .nfn-news-card-thumb {
    width: 104px !important;
    min-height: 116px !important;
  }
  body.home .nfn-news-card-body,
  body.front-page .nfn-news-card-body {
    padding: 13px 14px !important;
  }
  body.home .nfn-news-card .nfn-news-title,
  body.front-page .nfn-news-card .nfn-news-title {
    font-size: 15.5px !important;
  }
}

/* Footer: reduce vertical bloat and remove loose word/list spacing across breakpoints. */
.nfnx-footer {
  padding: 30px 0 18px !important;
}
.nfnx-footer-top {
  gap: 32px !important;
  padding-bottom: 18px !important;
}
.nfnx-footer-tagline {
  margin: 10px 0 12px !important;
  font-size: 12.5px !important;
  line-height: 1.38 !important;
  letter-spacing: 0 !important;
}
.nfnx-footer-social {
  gap: 9px !important;
}
.nfnx-footer-social a {
  width: 31px !important;
  height: 31px !important;
}
.nfnx-footer-nav {
  gap: 20px !important;
}
.nfnx-footer-col h4 {
  margin-bottom: 8px !important;
  padding-bottom: 6px !important;
  font-size: 12.5px !important;
  letter-spacing: 1.15px !important;
  line-height: 1 !important;
}
.nfnx-footer-col li {
  margin-bottom: 2px !important;
}
.nfnx-footer-col a {
  font-size: 12.5px !important;
  line-height: 1.18 !important;
  letter-spacing: 0 !important;
}
.nfnx-footer-bottom {
  padding-top: 14px !important;
  gap: 8px !important;
}
.nfnx-footer-bottom span,
.nfnx-footer-pitch {
  font-size: 11.5px !important;
  line-height: 1.25 !important;
  letter-spacing: .15px !important;
}

@media (max-width: 768px) {
  .nfnx-footer {
    padding: 26px 0 18px !important;
  }
  .nfnx-footer-top {
    gap: 16px !important;
    padding-bottom: 16px !important;
  }
  .nfnx-footer-brand .nfn-logo img {
    max-height: 32px !important;
  }
  .nfnx-footer-tagline {
    max-width: 560px !important;
    margin: 10px 0 11px !important;
    font-size: 12px !important;
    line-height: 1.32 !important;
  }
  .nfnx-footer-social {
    gap: 9px !important;
    margin-top: 8px !important;
  }
  .nfnx-footer-social a {
    width: 30px !important;
    height: 30px !important;
  }
  .nfnx-footer-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  .nfnx-footer-col h4 {
    font-size: 11.5px !important;
    letter-spacing: 1px !important;
    margin-bottom: 7px !important;
    padding-bottom: 5px !important;
  }
  .nfnx-footer-col li {
    margin-bottom: 1px !important;
  }
  .nfnx-footer-col a {
    font-size: 11.5px !important;
    line-height: 1.14 !important;
  }
  .nfnx-footer-bottom {
    padding-top: 12px !important;
    margin-top: 0 !important;
    gap: 6px !important;
  }
  .nfnx-footer-bottom span,
  .nfnx-footer-pitch {
    font-size: 10.75px !important;
    line-height: 1.18 !important;
  }
}

@media (max-width: 430px) {
  .nfnx-footer > .container {
    width: min(100% - 36px, 1280px) !important;
  }
  .nfnx-footer-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  .nfnx-footer-col h4 {
    font-size: 10.75px !important;
    letter-spacing: .85px !important;
  }
  .nfnx-footer-col a {
    font-size: 10.6px !important;
    line-height: 1.12 !important;
  }
  .nfnx-footer-col li {
    margin-bottom: 0 !important;
  }
}


/* ======================================================================
   NFN v7.93 — Mobile news cards, On Repeat spacing, and footer tightening
   ====================================================================== */

/* Give reusable homepage cards a little more breathing room without making them huge. */
body.home .nfn-coverage-card .nfn-coverage-body,
body.front-page .nfn-coverage-card .nfn-coverage-body,
body.home .nfn-tour-card .nfn-tour-body,
body.front-page .nfn-tour-card .nfn-tour-body,
body.home .nfn-news-card .nfn-news-card-body,
body.front-page .nfn-news-card .nfn-news-card-body {
  padding-top: 17px !important;
  padding-bottom: 18px !important;
}
body.home .nfn-coverage-title,
body.front-page .nfn-coverage-title,
body.home .nfn-tour-artist,
body.front-page .nfn-tour-artist,
body.home .nfn-news-title,
body.front-page .nfn-news-title {
  line-height: 1.2 !important;
}

/* Latest News: square the cards off and keep the list consistent. */
body.home .nfn-news-card,
body.front-page .nfn-news-card {
  border-radius: 0 !important;
  overflow: hidden !important;
}
body.home .nfn-news-card-thumb,
body.front-page .nfn-news-card-thumb {
  border-radius: 0 !important;
}
body.home .nfn-news-card-body,
body.front-page .nfn-news-card-body {
  gap: 9px !important;
}

/* On Repeat / newsletter band: tighter mobile spacing. */
@media (max-width: 768px) {
  body.home .nfn-connect-band,
  body.front-page .nfn-connect-band {
    padding: 34px 0 !important;
  }
  body.home .nfn-connect-row,
  body.front-page .nfn-connect-row {
    border-radius: 10px !important;
  }
  body.home .nfn-connect-left,
  body.home .nfn-connect-right,
  body.front-page .nfn-connect-left,
  body.front-page .nfn-connect-right {
    padding: 22px !important;
  }
  body.home .nfn-connect-left,
  body.front-page .nfn-connect-left {
    margin-bottom: 0 !important;
  }
  body.home .nfn-connect-left h3,
  body.home .nfn-connect-right h3,
  body.front-page .nfn-connect-left h3,
  body.front-page .nfn-connect-right h3 {
    font-size: 20px !important;
    line-height: 1.04 !important;
    margin-bottom: 6px !important;
  }
  body.home .nfn-connect-left p,
  body.home .nfn-connect-right p,
  body.front-page .nfn-connect-left p,
  body.front-page .nfn-connect-right p {
    font-size: 13px !important;
    line-height: 1.35 !important;
    margin-bottom: 14px !important;
  }
  body.home .nfn-connect-left iframe,
  body.front-page .nfn-connect-left iframe {
    height: 140px !important;
  }
  body.home .nfn-connect-form,
  body.home .mc4wp-form-fields,
  body.front-page .nfn-connect-form,
  body.front-page .mc4wp-form-fields {
    gap: 9px !important;
    margin-top: 14px !important;
  }
  body.home .nfn-connect-social-row,
  body.front-page .nfn-connect-social-row {
    margin-top: 14px !important;
    gap: 10px !important;
  }
}

/* Mobile Latest News: cleaner, flatter list. Same height, smaller text, no pill corners. */
@media (max-width: 768px) {
  body.home .nfn-news,
  body.front-page .nfn-news,
  body.home .nfn-bottom-section,
  body.front-page .nfn-bottom-section {
    padding-top: 40px !important;
    padding-bottom: 46px !important;
  }
  body.home .nfn-news-grid,
  body.front-page .nfn-news-grid {
    gap: 14px !important;
  }
  body.home .nfn-news-card,
  body.front-page .nfn-news-card {
    display: grid !important;
    grid-template-columns: 112px minmax(0, 1fr) !important;
    gap: 0 !important;
    align-items: stretch !important;
    height: 118px !important;
    min-height: 118px !important;
    max-height: 118px !important;
    border-radius: 0 !important;
    background: #fff !important;
    border: 1px solid rgba(8,8,10,.13) !important;
    box-shadow: 0 8px 18px rgba(8,8,10,.06) !important;
  }
  body.home .nfn-news-card-thumb,
  body.front-page .nfn-news-card-thumb {
    width: 112px !important;
    height: 118px !important;
    min-height: 118px !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: 0 !important;
  }
  body.home .nfn-news-card-body,
  body.front-page .nfn-news-card-body {
    min-width: 0 !important;
    padding: 13px 15px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 8px !important;
  }
  body.home .nfn-news-card .nfn-news-title,
  body.front-page .nfn-news-card .nfn-news-title {
    font-size: 16px !important;
    line-height: 1.14 !important;
    letter-spacing: 0 !important;
    font-weight: 800 !important;
    color: #121016 !important;
    text-transform: none !important;
    margin: 0 !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  body.home .nfn-news-card .nfn-news-age,
  body.front-page .nfn-news-card .nfn-news-age {
    font-size: 10px !important;
    line-height: 1 !important;
    letter-spacing: .55px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    color: #8a8493 !important;
    margin: 0 !important;
  }
}

@media (max-width: 390px) {
  body.home .nfn-news-card,
  body.front-page .nfn-news-card {
    grid-template-columns: 98px minmax(0, 1fr) !important;
    height: 110px !important;
    min-height: 110px !important;
    max-height: 110px !important;
  }
  body.home .nfn-news-card-thumb,
  body.front-page .nfn-news-card-thumb {
    width: 98px !important;
    height: 110px !important;
    min-height: 110px !important;
  }
  body.home .nfn-news-card-body,
  body.front-page .nfn-news-card-body {
    padding: 11px 12px !important;
  }
  body.home .nfn-news-card .nfn-news-title,
  body.front-page .nfn-news-card .nfn-news-title {
    font-size: 14.8px !important;
    line-height: 1.12 !important;
  }
}

/* Footer: shorter, centered mobile columns, no mobile CTA pitch. */
.nfnx-footer {
  padding: 28px 0 16px !important;
}
.nfnx-footer-top {
  gap: 28px !important;
  padding-bottom: 16px !important;
}
.nfnx-footer-tagline {
  margin: 9px 0 11px !important;
  font-size: 12px !important;
  line-height: 1.28 !important;
}
.nfnx-footer-social {
  gap: 8px !important;
}
.nfnx-footer-social a {
  width: 29px !important;
  height: 29px !important;
}
.nfnx-footer-nav {
  gap: 18px !important;
}
.nfnx-footer-col h4 {
  font-size: 11.5px !important;
  letter-spacing: 1px !important;
  margin-bottom: 7px !important;
  padding-bottom: 5px !important;
  line-height: 1 !important;
}
.nfnx-footer-col li {
  margin-bottom: 2px !important;
}
.nfnx-footer-col a {
  font-size: 12px !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
}
.nfnx-footer-bottom {
  padding-top: 12px !important;
  gap: 6px !important;
}
.nfnx-footer-bottom span,
.nfnx-footer-pitch {
  font-size: 10.75px !important;
  line-height: 1.16 !important;
}

@media (max-width: 768px) {
  .nfnx-footer {
    padding: 28px 0 16px !important;
  }
  .nfnx-footer > .container {
    width: min(100% - 36px, 1280px) !important;
  }
  .nfnx-footer-top {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    padding-bottom: 14px !important;
  }
  .nfnx-footer-brand {
    text-align: left !important;
  }
  .nfnx-footer-brand .nfn-logo img {
    max-height: 31px !important;
  }
  .nfnx-footer-tagline {
    max-width: 520px !important;
    margin: 9px 0 10px !important;
    font-size: 11.5px !important;
    line-height: 1.28 !important;
  }
  .nfnx-footer-social {
    justify-content: flex-start !important;
    gap: 8px !important;
    margin-top: 6px !important;
  }
  .nfnx-footer-nav {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    align-items: start !important;
  }
  .nfnx-footer-col {
    text-align: center !important;
  }
  .nfnx-footer-col h4 {
    display: inline-block !important;
    font-size: 10.7px !important;
    letter-spacing: .75px !important;
    margin: 0 auto 7px !important;
    padding-bottom: 5px !important;
  }
  .nfnx-footer-col ul {
    display: grid !important;
    gap: 4px !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .nfnx-footer-col li {
    margin: 0 !important;
  }
  .nfnx-footer-col a {
    font-size: 10.85px !important;
    line-height: 1.12 !important;
  }
  .nfnx-footer-bottom {
    display: block !important;
    padding-top: 12px !important;
    text-align: left !important;
  }
  .nfnx-footer-bottom span {
    display: block !important;
    font-size: 10.5px !important;
    line-height: 1.18 !important;
  }
  .nfnx-footer-pitch {
    display: none !important;
  }
}

@media (max-width: 390px) {
  .nfnx-footer > .container {
    width: min(100% - 30px, 1280px) !important;
  }
  .nfnx-footer-nav {
    gap: 6px !important;
  }
  .nfnx-footer-col h4 {
    font-size: 10px !important;
    letter-spacing: .65px !important;
  }
  .nfnx-footer-col a {
    font-size: 10.15px !important;
  }
}


/* ======================================================================
   NFN v7.94 — Global card type + footer spacing tighten
   ====================================================================== */

/* Cards: calmer titles and better rhythm across every post/card section. */
.nfn-coverage-card .nfn-coverage-body,
.nfn-page-card .nfn-coverage-body,
.nfn-news-card .nfn-news-card-body,
.nfn-tour-card .nfn-tour-body,
.nfn-related-card-body {
  gap: 8px !important;
  padding-top: 16px !important;
  padding-bottom: 18px !important;
}

.nfn-coverage-card .nfn-coverage-title,
.nfn-page-card .nfn-coverage-title,
.nfn-news-card .nfn-news-title,
.nfn-news-card h3,
.nfn-tour-card .nfn-tour-artist,
.nfn-related-title {
  font-size: 14px !important;
  line-height: 1.22 !important;
  letter-spacing: -.01em !important;
  font-weight: 800 !important;
  margin: 0 !important;
}

.nfn-page-grid .nfn-coverage-title,
.nfn-archive-grid .nfn-coverage-title {
  font-size: 15px !important;
  line-height: 1.2 !important;
}

.nfn-coverage-card .nfn-badge,
.nfn-news-card .nfn-badge,
.nfn-related-badge {
  margin-bottom: 4px !important;
}

.nfn-coverage-meta,
.nfn-coverage-author,
.nfn-news-card time,
.nfn-news-age,
.nfn-tour-dates,
.nfn-related-date {
  font-size: 10.5px !important;
  line-height: 1.2 !important;
}

/* Homepage latest news keeps the compact side-card style, just less loud. */
body.home .nfn-news-card .nfn-news-title,
body.front-page .nfn-news-card .nfn-news-title {
  font-size: 14px !important;
  line-height: 1.2 !important;
}

/* Footer: remove the double-spaced feel and shorten the whole block. */
.nfnx-footer {
  padding: 24px 0 12px !important;
}
.nfnx-footer-top {
  gap: 22px !important;
  padding-bottom: 12px !important;
}
.nfnx-footer-brand .nfn-logo img {
  max-height: 34px !important;
}
.nfnx-footer-tagline {
  margin: 8px 0 10px !important;
  font-size: 11.4px !important;
  line-height: 1.22 !important;
}
.nfnx-footer-social {
  gap: 7px !important;
  margin-top: 7px !important;
}
.nfnx-footer-social a {
  width: 28px !important;
  height: 28px !important;
}
.nfnx-footer-nav {
  gap: 16px !important;
}
.nfnx-footer-col h4 {
  margin-bottom: 6px !important;
  padding-bottom: 4px !important;
  font-size: 10.9px !important;
  line-height: 1 !important;
}
.nfnx-footer-col ul {
  display: grid !important;
  gap: 2px !important;
  margin: 0 !important;
  padding: 0 !important;
}
.nfnx-footer-col li {
  margin: 0 !important;
  padding: 0 !important;
}
.nfnx-footer-col a {
  display: inline-block !important;
  font-size: 11.2px !important;
  line-height: 1.08 !important;
}
.nfnx-footer-bottom {
  margin-top: 10px !important;
  padding-top: 10px !important;
  gap: 6px !important;
}
.nfnx-footer-bottom span,
.nfnx-footer-pitch {
  font-size: 10px !important;
  line-height: 1.12 !important;
}

@media (max-width: 760px) {
  .nfn-coverage-card .nfn-coverage-body,
  .nfn-page-card .nfn-coverage-body,
  .nfn-news-card .nfn-news-card-body,
  .nfn-tour-card .nfn-tour-body,
  .nfn-related-card-body {
    padding: 14px 16px 16px !important;
    gap: 7px !important;
  }

  .nfn-page-card .nfn-coverage-title,
  .nfn-coverage-card .nfn-coverage-title,
  .nfn-news-card .nfn-news-title,
  .nfn-news-card h3,
  .nfn-tour-card .nfn-tour-artist,
  .nfn-related-title {
    font-size: clamp(17px, 4.8vw, 21px) !important;
    line-height: 1.14 !important;
    letter-spacing: -.012em !important;
  }

  body.home .nfn-news-card .nfn-news-title,
  body.front-page .nfn-news-card .nfn-news-title {
    font-size: 15.2px !important;
    line-height: 1.14 !important;
    -webkit-line-clamp: 3 !important;
  }

  .nfn-coverage-meta,
  .nfn-coverage-author,
  .nfn-news-age,
  .nfn-tour-dates,
  .nfn-related-date {
    font-size: 10px !important;
    line-height: 1.15 !important;
  }

  .nfnx-footer {
    padding: 24px 0 12px !important;
  }
  .nfnx-footer > .container {
    width: min(100% - 36px, 1280px) !important;
  }
  .nfnx-footer-top {
    gap: 15px !important;
    padding-bottom: 12px !important;
  }
  .nfnx-footer-brand .nfn-logo img {
    max-height: 30px !important;
  }
  .nfnx-footer-tagline {
    margin: 8px 0 9px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
  }
  .nfnx-footer-social {
    gap: 7px !important;
    margin-top: 5px !important;
  }
  .nfnx-footer-social a {
    width: 27px !important;
    height: 27px !important;
  }
  .nfnx-footer-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }
  .nfnx-footer-col h4 {
    font-size: 10px !important;
    letter-spacing: .72px !important;
    margin-bottom: 5px !important;
    padding-bottom: 4px !important;
  }
  .nfnx-footer-col ul {
    gap: 2px !important;
  }
  .nfnx-footer-col a {
    font-size: 10.2px !important;
    line-height: 1.04 !important;
  }
  .nfnx-footer-bottom {
    margin-top: 9px !important;
    padding-top: 9px !important;
  }
  .nfnx-footer-bottom span {
    font-size: 9.8px !important;
    line-height: 1.08 !important;
  }
}

@media (max-width: 390px) {
  .nfn-page-card .nfn-coverage-title,
  .nfn-coverage-card .nfn-coverage-title,
  .nfn-news-card .nfn-news-title,
  .nfn-news-card h3,
  .nfn-tour-card .nfn-tour-artist,
  .nfn-related-title {
    font-size: 16.2px !important;
    line-height: 1.13 !important;
  }
  body.home .nfn-news-card .nfn-news-title,
  body.front-page .nfn-news-card .nfn-news-title {
    font-size: 14px !important;
    line-height: 1.12 !important;
  }
  .nfnx-footer > .container {
    width: min(100% - 30px, 1280px) !important;
  }
  .nfnx-footer-nav {
    gap: 4px !important;
  }
  .nfnx-footer-col a {
    font-size: 9.7px !important;
  }
}


/* ======================================================================
   NFN v7.95 — Consistent homepage/card hover shadow
   ====================================================================== */

/* Make Latest Posts, Tour cards, News cards, archive cards, and related cards
   use the same subtle purple NFN hover treatment instead of mixing purple and gray. */
.nfn-coverage-card:hover,
.nfn-page-card:hover,
.nfn-tour-card:hover,
.nfn-news-card:hover,
.nfn-related-card:hover {
  transform: translateY(-3px) !important;
  border-color: rgba(147, 51, 234, .36) !important;
  box-shadow:
    0 14px 30px rgba(147, 51, 234, .13),
    0 10px 24px rgba(8, 8, 10, .08) !important;
  text-decoration: none !important;
}

.nfn-tour-card:hover,
.nfn-news-card:hover {
  color: var(--nfn-ink) !important;
}

.nfn-coverage-card:hover .nfn-coverage-title,
.nfn-page-card:hover .nfn-coverage-title,
.nfn-tour-card:hover .nfn-tour-artist,
.nfn-news-card:hover .nfn-news-title,
.nfn-related-card:hover .nfn-related-title {
  color: var(--nfn-ink) !important;
}

.nfn-news-card:hover .nfn-news-title,
.nfn-tour-card:hover .nfn-tour-artist {
  text-decoration: none !important;
}


/* ======================================================================
   NFN v7.96 — Match section cards + subtle footer watermark
   ====================================================================== */

/* One card system for Live Coverage, News, Tours, Festivals, archives, and related cards. */
.nfn-coverage-card,
.nfn-page-card,
.nfn-tour-card,
.nfn-news-card,
.nfn-related-card {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
  overflow: hidden !important;
  background: #fff !important;
  color: var(--nfn-ink) !important;
  border: 1px solid rgba(8, 8, 10, .13) !important;
  border-radius: 4px !important;
  box-shadow: 0 2px 8px rgba(8, 8, 10, .055) !important;
}

.nfn-coverage-thumb,
.nfn-coverage-thumb-placeholder,
.nfn-tour-poster,
.nfn-news-card-thumb,
.nfn-related-thumb,
.nfn-related-placeholder {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 16 / 9.5 !important;
  height: auto !important;
  object-fit: cover !important;
  border-radius: 0 !important;
}

.nfn-coverage-body,
.nfn-page-card .nfn-coverage-body,
.nfn-tour-body,
.nfn-news-card-body,
.nfn-related-card-body {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 112px !important;
  padding: 14px 15px 15px !important;
  gap: 6px !important;
}

.nfn-coverage-title,
.nfn-page-card .nfn-coverage-title,
.nfn-tour-artist,
.nfn-news-title,
.nfn-news-card h3,
.nfn-related-title {
  font-family: 'Barlow Condensed', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.18 !important;
  font-weight: 900 !important;
  letter-spacing: .01em !important;
  text-transform: uppercase !important;
  color: var(--nfn-ink) !important;
  margin: 0 !important;
}

.nfn-badge,
.nfn-news-card .nfn-badge,
.nfn-related-badge {
  margin: 0 0 3px !important;
  font-size: 9.8px !important;
  line-height: 1 !important;
  letter-spacing: 1.35px !important;
  color: var(--nfn-purple) !important;
}

.nfn-coverage-excerpt {
  margin: 4px 0 0 !important;
  font-size: 11.3px !important;
  line-height: 1.34 !important;
  color: var(--nfn-muted) !important;
}

.nfn-coverage-meta,
.nfn-coverage-author,
.nfn-news-age,
.nfn-news-card time,
.nfn-tour-name,
.nfn-tour-dates,
.nfn-related-date {
  margin-top: auto !important;
  padding-top: 7px !important;
  font-size: 10.5px !important;
  line-height: 1.18 !important;
  color: #817b86 !important;
}

.nfn-tour-link {
  margin-top: auto !important;
  padding-top: 8px !important;
  font-size: 10px !important;
  line-height: 1 !important;
  color: var(--nfn-purple) !important;
}

/* Keep all desktop grids feeling like the same family. */
.nfn-coverage-scroll,
.nfn-tours-grid,
.nfn-news-grid,
.nfn-archive-grid,
.nfn-page-grid,
.nfn-related-grid {
  gap: 14px !important;
}

/* Footer watermark: subtle, cropped, and behind the content. */
.nfnx-footer {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
}

.nfnx-footer::before {
  content: 'NFN';
  position: absolute;
  right: -7vw;
  bottom: -70px;
  z-index: 0;
  pointer-events: none;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(150px, 19vw, 340px);
  line-height: .75;
  font-weight: 900;
  letter-spacing: .045em;
  color: rgba(255, 255, 255, .045);
  text-transform: uppercase;
  white-space: nowrap;
}

.nfnx-footer > .container {
  position: relative !important;
  z-index: 1 !important;
}

/* Footer stays compact. */
.nfnx-footer-top {
  align-items: start !important;
}
.nfnx-footer-col ul {
  gap: 3px !important;
}
.nfnx-footer-col a {
  line-height: 1.12 !important;
}

@media (max-width: 760px) {
  /* Same mobile card structure everywhere: image rail left, text right. */
  .nfn-coverage-card,
  .nfn-page-card,
  .nfn-tour-card,
  .nfn-news-card,
  .nfn-related-card {
    display: grid !important;
    grid-template-columns: 108px minmax(0, 1fr) !important;
    align-items: stretch !important;
    min-height: 112px !important;
    border-radius: 4px !important;
  }

  .nfn-coverage-thumb,
  .nfn-coverage-thumb-placeholder,
  .nfn-tour-poster,
  .nfn-news-card-thumb,
  .nfn-related-thumb,
  .nfn-related-placeholder {
    width: 108px !important;
    height: 100% !important;
    min-height: 112px !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
  }

  .nfn-coverage-body,
  .nfn-page-card .nfn-coverage-body,
  .nfn-tour-body,
  .nfn-news-card-body,
  .nfn-related-card-body {
    min-height: 112px !important;
    padding: 12px 13px !important;
    gap: 5px !important;
  }

  .nfn-coverage-title,
  .nfn-page-card .nfn-coverage-title,
  .nfn-tour-artist,
  .nfn-news-title,
  .nfn-news-card h3,
  .nfn-related-title {
    font-size: 15px !important;
    line-height: 1.12 !important;
    letter-spacing: 0 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }

  .nfn-coverage-excerpt,
  .nfn-tour-name {
    display: none !important;
  }

  .nfn-coverage-meta,
  .nfn-coverage-author,
  .nfn-news-age,
  .nfn-news-card time,
  .nfn-tour-dates,
  .nfn-related-date,
  .nfn-tour-link {
    font-size: 10px !important;
    line-height: 1.1 !important;
    padding-top: 5px !important;
  }

  body.home .nfn-news-card .nfn-news-title,
  body.front-page .nfn-news-card .nfn-news-title,
  body.home .nfn-tour-card .nfn-tour-artist,
  body.front-page .nfn-tour-card .nfn-tour-artist {
    font-size: 15px !important;
    line-height: 1.12 !important;
  }

  .nfnx-footer::before {
    right: -34vw;
    bottom: -34px;
    font-size: 190px;
    opacity: .85;
  }
}

@media (max-width: 390px) {
  .nfn-coverage-card,
  .nfn-page-card,
  .nfn-tour-card,
  .nfn-news-card,
  .nfn-related-card {
    grid-template-columns: 96px minmax(0, 1fr) !important;
    min-height: 104px !important;
  }

  .nfn-coverage-thumb,
  .nfn-coverage-thumb-placeholder,
  .nfn-tour-poster,
  .nfn-news-card-thumb,
  .nfn-related-thumb,
  .nfn-related-placeholder {
    width: 96px !important;
    min-height: 104px !important;
  }

  .nfn-coverage-body,
  .nfn-page-card .nfn-coverage-body,
  .nfn-tour-body,
  .nfn-news-card-body,
  .nfn-related-card-body {
    min-height: 104px !important;
    padding: 11px 12px !important;
  }

  .nfn-coverage-title,
  .nfn-page-card .nfn-coverage-title,
  .nfn-tour-artist,
  .nfn-news-title,
  .nfn-news-card h3,
  .nfn-related-title {
    font-size: 14px !important;
  }
}

/* v7.97: Footer watermark clarity + desktop card title balance.
   Keeps the matched card system, nudges desktop card titles back up a touch,
   and makes the cropped NFN footer mark read like intentional branding on desktop and mobile. */
@media (min-width: 761px) {
  .nfn-coverage-title,
  .nfn-page-card .nfn-coverage-title,
  .nfn-tour-artist,
  .nfn-news-title,
  .nfn-news-card h3,
  .nfn-related-title {
    font-size: 15.5px !important;
    line-height: 1.17 !important;
    letter-spacing: .005em !important;
  }
}

.nfnx-footer::before {
  content: 'NFN' !important;
  right: -3.5vw !important;
  bottom: -58px !important;
  font-size: clamp(170px, 18vw, 330px) !important;
  line-height: .78 !important;
  letter-spacing: .055em !important;
  color: rgba(255, 255, 255, .075) !important;
  opacity: 1 !important;
}

@media (max-width: 760px) {
  .nfnx-footer::before {
    display: block !important;
    right: -24vw !important;
    bottom: -28px !important;
    font-size: 180px !important;
    line-height: .78 !important;
    letter-spacing: .055em !important;
    color: rgba(255, 255, 255, .055) !important;
    opacity: 1 !important;
  }
}

@media (max-width: 390px) {
  .nfnx-footer::before {
    right: -30vw !important;
    bottom: -24px !important;
    font-size: 158px !important;
    color: rgba(255, 255, 255, .05) !important;
  }
}


/* ======================================================================
   NFN v7.98 — Mobile Footer Watermark Nudge
   Moves the mobile cropped NFN footer mark left so the full NFN shape reads better.
   ====================================================================== */
@media (max-width: 760px) {
  .nfnx-footer::before {
    right: -8vw !important;
    bottom: -28px !important;
    font-size: 180px !important;
    letter-spacing: .055em !important;
    color: rgba(255, 255, 255, .055) !important;
  }
}

@media (max-width: 390px) {
  .nfnx-footer::before {
    right: -12vw !important;
    bottom: -24px !important;
    font-size: 158px !important;
    color: rgba(255, 255, 255, .05) !important;
  }
}


/* ======================================================================
   v7.99 — ONE canonical card component, used on every single page.
   Replaces .nfn-coverage-card / .nfn-news-card / .nfn-tour-card /
   .nfn-related-card / .nfn-page-card everywhere. Those old classes are
   no longer referenced in any template as of this version — safe to
   strip in a future cleanup pass. Fresh classes only below, so nothing
   here can be shadowed by the legacy rules earlier in this file.
   ====================================================================== */

.nfnx-card {
  display: flex;
  flex-direction: column;
  background: var(--nfn-card);
  border: 1px solid var(--nfn-line);
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.nfnx-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--nfn-shadow);
  border-color: rgba(126, 34, 206, .25);
}

.nfnx-card-thumb {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: var(--nfn-charcoal-2);
}
.nfnx-card-thumb--fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3;
  background: linear-gradient(135deg, var(--nfn-purple), var(--nfn-purple-dark));
}
.nfnx-card-thumb--fallback span {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900;
  font-size: 28px;
  letter-spacing: .04em;
  color: #fff;
  opacity: .85;
}

.nfnx-card-body {
  padding: 16px 18px 18px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.nfnx-card-badge {
  display: inline-block;
  align-self: flex-start;
  background: var(--nfn-purple);
  color: #fff;
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 4px 10px;
  border-radius: 2px;
  margin-bottom: 10px;
}

.nfnx-card-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900;
  font-size: 21px;
  line-height: 1.14;
  letter-spacing: .002em;
  color: var(--nfn-ink);
  margin: 0 0 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nfnx-card:hover .nfnx-card-title { color: var(--nfn-purple-dark); }

.nfnx-card-excerpt {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.45;
  color: var(--nfn-muted);
  margin: 0 0 12px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.nfnx-card-date {
  margin-top: auto;
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--nfn-muted);
  opacity: .8;
}

/* Grid container — paginated archives (News, Live Coverage, Tours) + related posts */
.nfnx-card-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

/* Horizontal scroll container — homepage strips (Latest Posts, Latest News, Tour Announcements) */
.nfnx-card-scroll {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 6px;
  -webkit-overflow-scrolling: touch;
}
.nfnx-card-scroll .nfnx-card {
  flex: 0 0 300px;
  scroll-snap-align: start;
}

@media (max-width: 900px) {
  .nfnx-card-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .nfnx-card-grid { grid-template-columns: 1fr; gap: 20px; }
  .nfnx-card-thumb,
  .nfnx-card-thumb--fallback { aspect-ratio: 2 / 1; }
  .nfnx-card-title { font-size: 24px; line-height: 1.15; }
  .nfnx-card-excerpt { font-size: 15px; -webkit-line-clamp: 3; }
  .nfnx-card-scroll .nfnx-card { flex-basis: 78vw; }
}

/* v7.99: footer link spacing — one clean rule, no leading-based padding fights. */
.nfnx-footer-col a {
  display: block !important;
  line-height: 1 !important;
  padding: 2px 0 !important;
}
.nfnx-footer-col ul {
  gap: 0 !important;
}


/* "Remember Me" checkbox on the contributor login form was inheriting the
   general field-label grid layout, which stacked the checkbox above its
   own text instead of side-by-side. Scoped fix, doesn't touch other labels. */
.nfn-login-card .login-remember label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 2px 0 18px;
  color: #333;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
.nfn-login-card .login-remember input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--nfn-purple);
}

/* ===========================
   NFN Migration Fix: Cap Portrait Image Height in Post Content
   The existing rule forces every content image to width:100% of the
   column. That's correct for landscape concert photos, but tall/portrait
   images (tour flyers, posters) stretch to huge heights when forced to
   fill the full column width. This caps the height and centers narrower
   images instead of always force-stretching to 100% width.
=========================== */
body.single-post .nfn-single-content figure img,
body.single-post .nfn-single-content .wp-block-image img,
body.single-post .nfn-single-content > img {
  width: auto;
  max-width: 100%;
  max-height: 640px;
  height: auto;
  display: block;
  margin-left: auto !important;
  margin-right: auto !important;
  object-fit: contain;
}

/* ============================================================
   FIX: "More From NFN" related section renders 3 cards, but
   .nfnx-card-grid is a 4-column grid (used 4-up elsewhere),
   leaving an empty 4th cell. Scope the related grid to 3-up.
   ============================================================ */
.nfn-related .nfnx-card-grid { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .nfn-related .nfnx-card-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 760px) { .nfn-related .nfnx-card-grid { grid-template-columns: 1fr; } }
