/*
Theme Name: FinXJournal
Theme URI: https://example.com/finxjournal
Author: FinXJournal
Description: A newspaper-style theme for India's fintech newsroom. Custom classic theme with dedicated post types for the business directory and events datebook.
Version: 1.9.2
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: finxjournal
*/

/* ==========================================================================
   Design tokens
   ========================================================================== */
:root {
  --finx-bg: #f3eddf;
  --finx-bg-raised: #fffdf8;
  --finx-text: #1a1613;
  --finx-text-muted: #6b6255;
  --finx-text-faint: #948b7c;
  --finx-nav-muted: #464239;
  --finx-accent: #6b2632;
  --finx-accent-dark: #501c26;
  --finx-accent-soft: #e9d3c4;
  --finx-rule: #ddd4c2;
  --finx-rule-strong: #d2ccbe;
  --finx-border-heavy: #363229;
  --finx-up: #3f7355;
  --finx-down: #b5502f;
  --finx-gold: #c9a227;
  --finx-sponsored: #501c26;

  --finx-icon-1: #d7c9a8; /* bank illustration bg */
  --finx-icon-2: #9bbcb8; /* globe */
  --finx-icon-3: #7e6fa0; /* card tokenisation */
  --finx-icon-4: #e3b981; /* insurance/bimastack */
  --finx-icon-5: #cdbf8e; /* bonds */
  --finx-icon-6: #8fb0ae; /* bnpl */

  --finx-font-display: Georgia, "Iowan Old Style", "Times New Roman", serif;
  --finx-font-body:
    -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;

  --finx-tracking: 0.09em;
  --finx-container: 1180px;
}

/* ==========================================================================
   Reset / base
   ========================================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  -webkit-text-size-adjust: 100%;
  overflow-x: clip;
  overflow-y: visible;
}
body {
  margin: 0;
  background: var(--finx-bg);
  color: var(--finx-text);
  font-family: var(--finx-font-body);
  font-size: 16px;
  line-height: 1.5;
  overflow-x: clip;
  overflow-y: visible;
}
h1,
h2,
h3,
h4 {
  overflow-wrap: break-word;
  word-break: break-word;
}
/* Grid/flex tracks don't shrink below their content's intrinsic width by
   default; without this, long headlines/titles force the whole page wider
   than the viewport instead of wrapping. */
.finx-layout > *,
.finx-card-grid > *,
.finx-list-row > *,
.finx-datebook-row > *,
.finx-directory-tiles > *,
.finx-spotlight-grid > *,
.finx-spotlight-featured > *,
.finx-footer__top > *,
.finx-most-read li > *,
.finx-spotlight-card > * {
  min-width: 0;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}
/* Print-only branding blocks (masthead/footer in single.php) — see
   assets/css/print.css, which flips this back on for the print stylesheet. */
.finx-print-only {
  display: none;
}
a {
  color: inherit;
  text-decoration: none;
}
ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
h1,
h2,
h3,
h4,
p {
  margin: 0;
}
.finx-container {
  max-width: var(--finx-container);
  margin: 0 auto;
  padding: 0 24px;
}
@media (max-width: 480px) {
  .finx-container {
    padding: 0 16px;
  }
}
.finx-hr {
  border: none;
  border-top: 1px solid var(--finx-rule);
  margin: 0;
}
.finx-eyebrow {
  font-family: var(--finx-font-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: var(--finx-tracking);
  text-transform: uppercase;
  color: var(--finx-accent);
}
.finx-section-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  border-bottom: 2px solid var(--finx-text);
  padding-bottom: 10px;
  margin-bottom: 28px;
}
.finx-section-heading h2 {
  font-family: var(--finx-font-body);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: var(--finx-tracking);
  text-transform: uppercase;
}
.finx-section-heading a,
.finx-link-more {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--finx-text-muted);
  white-space: nowrap;
}
.finx-section-heading a:hover,
.finx-link-more:hover {
  color: var(--finx-accent);
}
.finx-link-more {
  margin-left: 10px;
}
.finx-section {
  padding: 48px 0;
}
.finx-meta-time {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--finx-text-faint);
}

/* ==========================================================================
   Header
   ========================================================================== */
.finx-utility-bar {
  background: var(--finx-bg);
  color: var(--finx-text-faint);
  font-size: 11px;
  letter-spacing: 0.04em;
  border-bottom: 1px solid var(--finx-rule);
}
.finx-utility-bar .finx-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 8px;
  padding-bottom: 8px;
  flex-wrap: wrap;
}
@media (max-width: 640px) {
  .finx-utility-bar {
    font-size: 10px;
  }
  .finx-utility-bar .finx-container {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding-top: 10px;
    padding-bottom: 10px;
  }
}
.finx-edition {
  text-transform: uppercase;
  font-weight: 600;
}
.finx-ticker {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  text-transform: uppercase;
  font-weight: 600;
}
.finx-ticker span {
  white-space: nowrap;
}
.finx-ticker .finx-sep {
  color: var(--finx-rule-strong);
}
.finx-ticker .finx-up,
.finx-ticker .finx-down {
  color: inherit;
}

.finx-masthead {
  padding: 28px 0 18px;
  text-align: center;
  background: var(--finx-bg);
}
.finx-masthead-brand {
  flex: 1;
}
.finx-masthead .finx-sitename {
  font-family: var(--finx-font-display);
  font-size: clamp(26px, 7vw, 46px);
  letter-spacing: 0.01em;
  font-weight: 400;
}
.finx-masthead .finx-sitename a {
  color: var(--finx-text);
}
.finx-masthead .finx-sitename .finx-x {
  font-style: italic;
  color: var(--finx-accent);
}
.finx-masthead .finx-tagline {
  margin-top: 6px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--finx-tracking);
  text-transform: uppercase;
  color: var(--finx-text-muted);
}

.finx-primary-nav {
  position: relative;
  border-top: 1px solid var(--finx-rule-strong);
  border-bottom: 1px solid var(--finx-rule-strong);
  background: var(--finx-bg);
}
@media (min-width: 1025px) {
  .finx-primary-nav {
    position: sticky;
    top: 0;
    z-index: 40;
  }
  body.admin-bar .finx-primary-nav {
    top: 32px;
  }
}
.finx-primary-nav::before {
  content: "";
  position: absolute;
  top: -7px;
  left: 0;
  right: 0;
  height: 2px;
}
.finx-primary-nav ul {
  display: flex;
  justify-content: center;
  gap: 28px;
  flex-wrap: wrap;
}
.finx-primary-nav a {
  display: inline-block;
  padding: 13px 0;
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--finx-nav-muted);
}
.finx-primary-nav a:hover {
  color: var(--finx-accent);
}
.finx-primary-nav .current-menu-item a {
  font-weight: 700;
  color: var(--finx-text);
}
.finx-primary-nav li:last-child a {
  font-weight: 700;
  color: var(--finx-accent);
}
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}
.finx-nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
}
.finx-nav-toggle-bar {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--finx-text);
  transition: transform 0.15s ease, opacity 0.15s ease;
}
.finx-nav-toggle[aria-expanded="true"] .finx-nav-toggle-bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.finx-nav-toggle[aria-expanded="true"] .finx-nav-toggle-bar:nth-child(2) {
  opacity: 0;
}
.finx-nav-toggle[aria-expanded="true"] .finx-nav-toggle-bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Below "laptop" width, the horizontal nav bar disappears entirely — its
   toggle button lives in the masthead instead (to the left of the logo),
   and the nav element itself just becomes an invisible anchor for the
   dropdown menu that appears when the toggle is activated. */
@media (max-width: 1024px) {
  .finx-masthead-row {
    display: flex;
    align-items: center;
    gap: 14px;
  }
  .finx-nav-toggle {
    display: flex;
  }
  .finx-primary-nav {
    border-top: none;
    border-bottom: none;
    background: transparent;
  }
  .finx-primary-nav::before {
    display: none;
  }
  .finx-primary-nav .finx-container {
    padding: 0;
  }
  .finx-primary-nav ul {
    display: none;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    gap: 0;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--finx-bg);
    border-bottom: 1px solid var(--finx-rule-strong);
    padding: 4px 24px 12px;
    box-shadow: 0 8px 16px -8px rgb(0 0 0 / 0.15);
  }
  .finx-primary-nav ul.is-open {
    display: flex;
  }
  .finx-primary-nav li {
    width: 100%;
  }
  .finx-primary-nav a {
    display: block;
    width: 100%;
    padding: 12px 0;
    border-bottom: 1px solid var(--finx-rule);
  }
  .finx-primary-nav li:last-child a {
    border-bottom: none;
  }
}
@media (max-width: 480px) {
  .finx-primary-nav ul {
    padding: 4px 16px 12px;
  }
}

/* ==========================================================================
   Layout helpers
   ========================================================================== */
.finx-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 48px;
  align-items: start;
  padding-top: 40px;
  padding-bottom: 40px;
}
@media (max-width: 900px) {
  .finx-layout {
    grid-template-columns: 1fr;
    gap: 32px;
    padding-top: 24px;
    padding-bottom: 24px;
  }
}

/* ==========================================================================
   Lead story
   ========================================================================== */
.finx-lead h1,
.finx-lead h2 {
  font-family: var(--finx-font-display);
  font-size: clamp(24px, 5.2vw, 40px);
  line-height: 1.15;
  margin: 10px 0 14px;
}
.finx-lead .finx-deck {
  font-family: var(--finx-font-display);
  font-style: italic;
  font-size: clamp(15px, 2.4vw, 18px);
  line-height: 1.5;
  color: var(--finx-text-muted);
  margin-bottom: 22px;
}
.finx-lead figure {
  margin: 0 0 8px;
}
.finx-lead figcaption {
  font-size: 12px;
  color: var(--finx-text-faint);
  padding: 8px 0 24px;
  border-bottom: 1px solid var(--finx-rule);
  margin-bottom: 24px;
}
.finx-byline {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--finx-text-muted);
  margin-bottom: 22px;
}
.finx-article-body {
  font-size: 17px;
  line-height: 1.75;
}
.finx-article-body::after {
  content: "";
  display: block;
  clear: both;
}
.finx-article-body p {
  margin: 0 0 20px;
}
.finx-article-body ul,
.finx-article-body ol {
  list-style: revert;
  margin: 0 0 20px;
  padding-left: 24px;
}
.finx-article-body li {
  margin-bottom: 8px;
}
.finx-article-body p:first-of-type::first-letter {
  float: left;
  font-family: var(--finx-font-display);
  font-size: clamp(38px, 8vw, 64px);
  line-height: 0.8;
  padding: 6px 8px 0 0;
  color: var(--finx-accent);
}

/* ==========================================================================
   Sidebar / Most read
   ========================================================================== */
.finx-sidebar-box {
  background: var(--finx-bg-raised);
  border: 1px solid var(--finx-rule);
  padding: 22px;
}
.finx-most-read h2 {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: var(--finx-tracking);
  text-transform: uppercase;
  border-bottom: 2px solid var(--finx-text);
  padding-bottom: 10px;
  margin-bottom: 6px;
}
.finx-most-read li {
  display: flex;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid var(--finx-rule);
}
.finx-most-read li:last-child {
  border-bottom: none;
}
.finx-most-read .finx-rank {
  font-family: var(--finx-font-display);
  font-size: 22px;
  color: var(--finx-rule-strong);
  line-height: 1;
}
.finx-most-read .finx-rank-title {
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.35;
  margin-bottom: 4px;
}
.finx-most-read .finx-rank-title a:hover {
  color: var(--finx-accent);
}
.finx-most-read .finx-rank-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--finx-accent);
}
.finx-ad-slot {
  margin-top: 24px;
  border: 1px dashed var(--finx-rule-strong);
  background: var(--finx-bg-raised);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--finx-text-faint);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 16px;
}
.finx-ad-slot span {
  display: block;
  margin-top: 4px;
}
.finx-ad-slot--rail {
  height: 600px;
}
@media (max-width: 900px) {
  .finx-ad-slot--rail {
    height: 250px;
  }
}
.finx-ad-slot--banner {
  height: 90px;
  margin: 8px 0;
}

/* ==========================================================================
   Card grid section (Digital Payments / Startups)
   ========================================================================== */
.finx-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
@media (max-width: 900px) {
  .finx-card-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
  }
}
@media (max-width: 560px) {
  .finx-card-grid {
    grid-template-columns: 1fr;
  }
}
.finx-card figure {
  aspect-ratio: 16/10;
  margin: 0 0 16px;
  overflow: hidden;
  background: var(--finx-icon-1);
}
.finx-card figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.finx-card h3 {
  font-family: var(--finx-font-display);
  font-size: 19px;
  line-height: 1.3;
  margin-bottom: 8px;
}
.finx-card h3 a:hover {
  color: var(--finx-accent);
}
.finx-card p.finx-dek {
  font-size: 14px;
  color: var(--finx-text-muted);
  line-height: 1.5;
  margin-bottom: 10px;
}

/* ==========================================================================
   List section (Regulation & Policy)
   ========================================================================== */
.finx-list-row {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 20px;
  padding: 22px 0;
  border-bottom: 1px solid var(--finx-rule);
}
@media (max-width: 420px) {
  .finx-list-row {
    grid-template-columns: 64px 1fr;
    gap: 14px;
  }
  .finx-list-row figure {
    width: 64px;
    height: 64px;
  }
}
.finx-list-row:first-child {
  padding-top: 0;
}
.finx-list-row:last-child {
  border-bottom: none;
}
.finx-list-row figure {
  width: 88px;
  height: 88px;
  margin: 0;
  background: var(--finx-icon-1);
  overflow: hidden;
}
.finx-list-row figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.finx-list-row .finx-eyebrow {
  display: block;
  margin-bottom: 4px;
}
.finx-list-row h3 {
  font-family: var(--finx-font-display);
  font-size: 19px;
  line-height: 1.3;
  margin-bottom: 6px;
}
.finx-list-row h3 a:hover {
  color: var(--finx-accent);
}
.finx-list-row p.finx-dek {
  font-size: 14px;
  color: var(--finx-text-muted);
  line-height: 1.5;
}

/* ==========================================================================
   Spotlight
   ========================================================================== */
.finx-spotlight-featured {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 24px;
  align-items: flex-start;
  background: var(--finx-bg-raised);
  border: 1px solid var(--finx-rule);
  padding: 32px;
  margin-bottom: 28px;
}
@media (max-width: 640px) {
  .finx-spotlight-featured {
    grid-template-columns: 1fr;
    padding: 20px;
  }
}
.finx-spotlight-featured .finx-avatar {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--finx-icon-3);
}
.finx-spotlight-featured .finx-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.finx-spotlight-featured blockquote {
  font-family: var(--finx-font-display);
  font-style: italic;
  font-size: clamp(19px, 3.6vw, 26px);
  line-height: 1.4;
  margin: 0 0 16px;
}
.finx-spotlight-featured .finx-person {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--finx-accent);
  margin-bottom: 14px;
}
.finx-spotlight-featured .finx-intro {
  font-size: 14px;
  color: var(--finx-text-muted);
  line-height: 1.6;
}
.finx-spotlight-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
@media (max-width: 900px) {
  .finx-spotlight-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 560px) {
  .finx-spotlight-grid {
    grid-template-columns: 1fr;
  }
}
.finx-spotlight-card {
  display: flex;
  gap: 14px;
}
.finx-spotlight-card .finx-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--finx-icon-4);
  flex-shrink: 0;
}
.finx-spotlight-card .finx-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.finx-spotlight-card blockquote {
  font-size: 14px;
  font-style: italic;
  line-height: 1.5;
  margin: 0 0 8px;
}
.finx-spotlight-card .finx-person {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--finx-text-muted);
}

/* ==========================================================================
   Directory promo
   ========================================================================== */
.finx-directory-promo {
  border: 1px solid var(--finx-text);
  padding: 36px;
}
@media (max-width: 640px) {
  .finx-directory-promo {
    padding: 20px;
  }
}
.finx-directory-promo__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--finx-rule);
  padding-bottom: 24px;
  margin-bottom: 28px;
}
.finx-directory-promo h2 {
  font-family: var(--finx-font-display);
  font-size: clamp(19px, 3.6vw, 24px);
  margin-bottom: 8px;
}
.finx-directory-promo p {
  font-size: 14px;
  color: var(--finx-text-muted);
  max-width: 60ch;
}
.finx-btn {
  display: inline-block;
  border: 1px solid var(--finx-text);
  padding: 12px 24px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.finx-btn:hover {
  background: var(--finx-text);
  color: var(--finx-bg);
}
.finx-directory-tiles {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
}
@media (max-width: 900px) {
  .finx-directory-tiles {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 480px) {
  .finx-directory-tiles {
    grid-template-columns: 1fr;
  }
}
.finx-directory-tile {
  background: var(--finx-bg-raised);
  border: 2px solid var(--finx-gold);
  padding: 20px 16px;
  position: relative;
}
.finx-directory-tile .finx-tile-index {
  font-size: 10px;
  font-weight: 700;
  color: var(--finx-text-faint);
  letter-spacing: 0.05em;
}
.finx-directory-tile h3 {
  font-size: 13.5px;
  font-weight: 700;
  margin: 10px 0 6px;
}
.finx-directory-tile h3 a:hover {
  color: var(--finx-accent);
}
.finx-directory-tile .finx-count {
  font-size: 12px;
  color: var(--finx-text-muted);
  margin-bottom: 8px;
}
.finx-directory-tile .finx-desc {
  font-size: 11.5px;
  color: var(--finx-text-faint);
  line-height: 1.5;
}
.finx-directory-tile .finx-sponsored-badge {
  display: inline-block;
  margin-top: 8px;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--finx-sponsored);
}

/* ==========================================================================
   Datebook
   ========================================================================== */
.finx-datebook-row {
  display: grid;
  grid-template-columns: 88px 56px 1fr auto;
  gap: 20px;
  align-items: center;
  padding: 20px 0;
  border-bottom: 1px solid var(--finx-rule);
}
.finx-datebook-row:last-child {
  border-bottom: none;
}
@media (max-width: 760px) {
  .finx-datebook-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 14px;
    row-gap: 8px;
  }
  .finx-datebook-row .finx-event-date {
    order: 1;
    flex: 0 0 auto;
  }
  .finx-datebook-row .finx-event-icon {
    order: 2;
    flex: 0 0 auto;
  }
  .finx-datebook-row .finx-event-meta {
    order: 3;
    flex: 1 1 auto;
    text-align: right;
    white-space: normal;
  }
  .finx-datebook-row .finx-event-content {
    order: 4;
    flex: 1 1 100%;
  }
}
@media (max-width: 420px) {
  .finx-datebook-row .finx-event-icon {
    width: 44px;
    height: 44px;
  }
  .finx-datebook-row .finx-event-meta {
    text-align: left;
    flex-basis: 100%;
  }
}
.finx-datebook-row .finx-event-date {
  font-family: var(--finx-font-display);
}
.finx-datebook-row .finx-event-date .finx-day {
  font-size: 26px;
  line-height: 1;
  display: block;
}
.finx-datebook-row .finx-event-date .finx-month-year {
  font-size: 11px;
  color: var(--finx-text-faint);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.finx-datebook-row .finx-event-icon {
  width: 56px;
  height: 56px;
  background: var(--finx-icon-5);
  overflow: hidden;
}
.finx-datebook-row .finx-event-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.finx-datebook-row h3 {
  font-family: var(--finx-font-display);
  font-size: 17px;
  margin-bottom: 4px;
}
.finx-datebook-row h3 a:hover {
  color: var(--finx-accent);
}
.finx-datebook-row .finx-event-desc {
  font-size: 13px;
  color: var(--finx-text-muted);
  margin-bottom: 6px;
}
.finx-datebook-row .finx-event-type {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--finx-accent);
}
.finx-datebook-row .finx-event-meta {
  text-align: right;
  font-size: 12px;
  color: var(--finx-text-muted);
  white-space: nowrap;
}
.finx-datebook-row .finx-event-format {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--finx-text-faint);
  margin-top: 4px;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.finx-footer {
  border-top: 1px solid var(--finx-rule-strong);
  padding: 48px 0 28px;
  margin-top: 40px;
  font-size: 13px;
}
.finx-footer__top {
  display: grid;
  grid-template-columns: 1.4fr repeat(4, 1fr);
  gap: 32px;
  margin-bottom: 32px;
}
@media (max-width: 760px) {
  .finx-footer__top {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 480px) {
  .finx-footer__top {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
.finx-footer .finx-sitename {
  font-family: var(--finx-font-display);
  font-size: 22px;
}
.finx-footer .finx-sitename .finx-x {
  font-style: italic;
  color: var(--finx-accent);
}
.finx-footer .finx-tagline {
  font-size: 12px;
  color: var(--finx-text-muted);
  margin-top: 6px;
}
.finx-footer h4 {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--finx-text-faint);
  margin-bottom: 12px;
}
.finx-footer ul li {
  margin-bottom: 9px;
}
.finx-footer a:hover {
  color: var(--finx-accent);
}
.finx-footer__bottom {
  border-top: 1px solid var(--finx-rule);
  padding-top: 20px;
  font-size: 12px;
  color: var(--finx-text-faint);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}

/* ==========================================================================
   Generic single / archive / page templates
   ========================================================================== */
.finx-page-header {
  padding: 40px 0 24px;
  border-bottom: 2px solid var(--finx-text);
  margin-bottom: 32px;
}
.finx-page-header h1 {
  font-family: var(--finx-font-display);
  font-size: clamp(22px, 5vw, 34px);
}
.finx-archive-list {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.finx-empty-state {
  color: var(--finx-text-muted);
  font-size: 14px;
  padding: 24px 0;
}
.finx-directory-single,
.finx-event-single {
  max-width: 740px;
  margin: 0 auto;
  padding: 8px 0 48px;
}

/* ==========================================================================
   Single post
   ========================================================================== */
.finx-breadcrumb-current {
  color: var(--finx-accent);
  font-weight: 700;
}
.finx-single .finx-deck {
  border-left: 3px solid var(--finx-accent);
  padding-left: 16px;
}
.finx-byline-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 22px;
}
.finx-byline-row .finx-byline {
  margin-bottom: 0;
}
.finx-share {
  display: flex;
  align-items: center;
  gap: 10px;
}
.finx-share-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--finx-text-faint);
  margin-right: 2px;
}
.finx-share a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--finx-rule-strong);
  border-radius: 50%;
  color: var(--finx-text-muted);
  flex-shrink: 0;
}
.finx-share a:hover {
  border-color: var(--finx-text);
  color: var(--finx-accent);
}
.finx-share svg {
  width: 14px;
  height: 14px;
}
.finx-single.finx-lead .finx-article-body {
  column-count: 2;
  column-gap: 48px;
}
@media (max-width: 780px) {
  .finx-single.finx-lead .finx-article-body {
    column-count: 1;
  }
}
.finx-article-body h2,
.finx-article-body h3 {
  font-family: var(--finx-font-display);
  font-size: clamp(18px, 3vw, 22px);
  line-height: 1.3;
  margin: 4px 0 14px;
  break-after: avoid-column;
  break-inside: avoid;
}
.finx-article-body blockquote {
  column-span: all;
  text-align: center;
  margin: 12px 0 32px;
  padding: 8px 0 20px;
  border-top: 1px solid var(--finx-rule);
  border-bottom: 1px solid var(--finx-rule);
}
.finx-article-body blockquote p {
  font-family: var(--finx-font-display);
  font-style: italic;
  font-size: clamp(19px, 3.2vw, 25px);
  line-height: 1.5;
  margin: 24px auto 4px;
  max-width: 56ch;
}
.finx-tags {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 8px 0 32px;
  padding-top: 24px;
  border-top: 1px solid var(--finx-rule);
}
.finx-tags a {
  display: inline-block;
  padding: 6px 14px;
  border: 1px solid var(--finx-rule-strong);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--finx-text-muted);
}
/* Deterministic pastel palette (finx_tag_color_class() in
   inc/template-tags.php) — a given tag always lands on the same class
   here, so its color is consistent across every page it appears on. */
.finx-tags a.finx-tag-c0 { background: #dbe7f0; border-color: #b8cfe0; color: #3a5a73; }
.finx-tags a.finx-tag-c1 { background: #dfead9; border-color: #bcd9b1; color: #3f6b3f; }
.finx-tags a.finx-tag-c2 { background: #e6dcef; border-color: #cdb9e2; color: #5b4a80; }
.finx-tags a.finx-tag-c3 { background: #f3e3c9; border-color: #e4c894; color: #8a5a1f; }
.finx-tags a.finx-tag-c4 { background: #f3dbe0; border-color: #e5b4c0; color: #8a3f52; }
.finx-tags a.finx-tag-c5 { background: #d8ece9; border-color: #a9d6cf; color: #2f6b64; }
.finx-tags a.finx-tag-c6 { background: #e3e0ec; border-color: #c3bcdb; color: #514a72; }
.finx-tags a.finx-tag-c7 { background: #f5e2d3; border-color: #e8bd98; color: #8a5433; }
.finx-tags a:hover {
  border-color: var(--finx-text);
  color: var(--finx-accent);
}
.finx-author-box {
  display: flex;
  gap: 20px;
  padding: 28px;
  border: 1px solid var(--finx-rule-strong);
  margin-bottom: 12px;
}
.finx-author-avatar img {
  display: block;
  border-radius: 50%;
  width: 64px;
  height: 64px;
}
.finx-author-name {
  font-weight: 700;
  font-size: 15px;
  margin-bottom: 4px;
}
.finx-author-role {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--finx-accent);
  margin-bottom: 10px;
}
.finx-author-bio {
  font-size: 13px;
  color: var(--finx-text-muted);
  line-height: 1.6;
  max-width: 62ch;
}
@media (max-width: 480px) {
  .finx-author-box {
    flex-direction: column;
    padding: 20px;
  }
}
.finx-meta-line {
  font-size: 13px;
  color: var(--finx-text-muted);
  margin-bottom: 20px;
}

/* ==========================================================================
   Category archive
   ========================================================================== */
.finx-breadcrumb {
  padding-top: 24px;
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--finx-text-faint);
  display: flex;
  gap: 8px;
}
.finx-breadcrumb a:hover {
  color: var(--finx-accent);
}
.finx-category-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  flex-wrap: wrap;
  padding: 14px 0 20px;
}
.finx-category-header h1 {
  font-family: var(--finx-font-display);
  font-size: clamp(28px, 6vw, 42px);
  margin: 8px 0 10px;
}
.finx-category-desc {
  font-size: 15px;
  color: var(--finx-text-muted);
  max-width: 62ch;
  line-height: 1.6;
}
.finx-category-meta {
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--finx-text-faint);
  white-space: nowrap;
}
.finx-category-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-bottom: 24px;
}
.finx-category-pills a {
  display: inline-block;
  padding: 8px 16px;
  border: 1px solid var(--finx-rule-strong);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--finx-nav-muted);
}
.finx-category-pills a:hover {
  border-color: var(--finx-text);
  color: var(--finx-text);
}
.finx-category-pills a.is-active {
  background: var(--finx-text);
  border-color: var(--finx-text);
  color: var(--finx-bg);
}
.finx-hr-heavy {
  border-top: 2px solid var(--finx-text);
}
.finx-category-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 48px;
  align-items: start;
  padding-top: 40px;
  padding-bottom: 40px;
}
@media (max-width: 900px) {
  .finx-category-layout {
    grid-template-columns: 1fr;
    gap: 32px;
    padding-top: 24px;
    padding-bottom: 24px;
  }
}
.finx-category-layout > * {
  min-width: 0;
}
.finx-card-grid--2col {
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 560px) {
  .finx-card-grid--2col {
    grid-template-columns: 1fr;
  }
}
.finx-cat-subheading {
  margin-top: 44px;
}
.finx-cat-pullquote {
  text-align: center;
  margin: 44px 0;
  padding: 8px 0;
  border-top: 1px solid var(--finx-rule);
  border-bottom: 1px solid var(--finx-rule);
}
.finx-cat-pullquote p {
  font-family: var(--finx-font-display);
  font-style: italic;
  font-size: clamp(19px, 3.2vw, 25px);
  line-height: 1.5;
  margin: 24px auto 12px;
  max-width: 44ch;
}
.finx-cat-pullquote cite {
  display: block;
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--finx-text-faint);
  margin-bottom: 24px;
}
.finx-cat-pagination {
  margin-top: 40px;
}
.finx-cat-pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.finx-cat-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  padding: 0 10px;
  border: 1px solid var(--finx-rule-strong);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}
.finx-cat-pagination .page-numbers.current {
  background: var(--finx-text);
  border-color: var(--finx-text);
  color: var(--finx-bg);
}
.finx-cat-pagination a.page-numbers:hover {
  border-color: var(--finx-text);
  color: var(--finx-accent);
}
.finx-newsletter-box {
  background: var(--finx-text);
  color: var(--finx-bg);
  padding: 22px;
  margin-top: 24px;
}
.finx-newsletter-box h2 {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 8px;
}
.finx-newsletter-box p {
  font-size: 12.5px;
  color: var(--finx-rule-strong);
  line-height: 1.5;
  margin-bottom: 16px;
}
.finx-newsletter-box form {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.finx-newsletter-box input[type="email"],
.finx-newsletter-box input[type="text"] {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--finx-text-muted);
  background: var(--finx-bg-raised);
  color: var(--finx-text);
  font-size: 13px;
  box-sizing: border-box;
}
.finx-newsletter-box button {
  width: 100%;
  padding: 10px 12px;
  border: none;
  background: var(--finx-accent);
  color: var(--finx-bg);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
}
.finx-newsletter-box button:hover {
  background: var(--finx-accent-dark);
}
.finx-newsletter-consent {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 11px;
  line-height: 1.5;
  color: var(--finx-rule-strong);
}
.finx-newsletter-consent input[type="checkbox"] {
  flex-shrink: 0;
  margin-top: 3px;
}
.finx-newsletter-consent a {
  color: var(--finx-bg);
  text-decoration: underline;
}
.finx-hp-field {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
}
.finx-newsletter-notice {
  font-size: 12.5px;
  line-height: 1.5;
  padding: 10px 12px;
  border-left: 3px solid;
}
.finx-newsletter-notice--success {
  background: rgba(63, 115, 85, 0.15);
  border-color: var(--finx-up);
  color: var(--finx-bg);
}
.finx-newsletter-notice--error {
  background: rgba(181, 80, 47, 0.15);
  border-color: var(--finx-down);
  color: var(--finx-bg);
}
.finx-subtopics {
  margin-top: 24px;
}
.finx-subtopics h2 {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: var(--finx-tracking);
  text-transform: uppercase;
  border-bottom: 2px solid var(--finx-text);
  padding-bottom: 10px;
  margin-bottom: 6px;
}
.finx-subtopics li {
  border-bottom: 1px solid var(--finx-rule);
}
.finx-subtopics li:last-child {
  border-bottom: none;
}
.finx-subtopics a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  font-size: 13.5px;
  font-weight: 600;
}
.finx-subtopics a:hover {
  color: var(--finx-accent);
}
.finx-count-tag {
  font-size: 11px;
  font-weight: 600;
  color: var(--finx-text-faint);
  white-space: nowrap;
}

/* ==========================================================================
   Solutions Directory
   ========================================================================== */
.finx-btn--solid {
  background: var(--finx-text);
  color: var(--finx-bg);
  border-color: var(--finx-text);
}
.finx-btn--solid:hover {
  background: var(--finx-accent);
  border-color: var(--finx-accent);
  color: var(--finx-bg);
}
.finx-directory-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  padding: 20px 0 24px;
}
.finx-directory-hero h1 {
  font-family: var(--finx-font-display);
  font-size: clamp(28px, 6vw, 42px);
  margin: 8px 0 12px;
}
.finx-directory-dek {
  font-family: var(--finx-font-display);
  font-style: italic;
  font-size: clamp(14px, 2.2vw, 16px);
  color: var(--finx-text-muted);
  max-width: 62ch;
  line-height: 1.6;
}
.finx-directory-hero > a.finx-btn {
  flex-shrink: 0;
  white-space: nowrap;
}
.finx-directory-stats {
  display: grid;
  grid-template-columns: repeat(4, auto);
  justify-content: start;
  gap: 48px;
  padding: 20px 0 28px;
  border-top: 1px solid var(--finx-rule);
}
@media (max-width: 700px) {
  .finx-directory-stats {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 32px;
  }
}
.finx-directory-stats div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.finx-directory-stats strong {
  font-family: var(--finx-font-display);
  font-size: clamp(22px, 3.4vw, 28px);
}
.finx-directory-stats span {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--finx-text-faint);
}
.finx-directory-search {
  display: flex;
  gap: 0;
  margin-bottom: 20px;
}
.finx-directory-search input[type="search"] {
  flex: 1;
  min-width: 0;
  padding: 14px 16px;
  border: 1px solid var(--finx-rule-strong);
  border-right: none;
  background: var(--finx-bg-raised);
  color: var(--finx-text);
  font-size: 14px;
}
.finx-directory-search button {
  padding: 0 24px;
  border: 1px solid var(--finx-text);
  background: var(--finx-text);
  color: var(--finx-bg);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
}
.finx-directory-search button:hover {
  background: var(--finx-accent);
  border-color: var(--finx-accent);
}
.finx-count-tag {
  font-size: 12px;
  font-weight: 600;
  color: var(--finx-text-faint);
  white-space: nowrap;
}
.finx-cat-subheading .finx-count-tag {
  align-self: flex-end;
  padding-bottom: 10px;
}

/* Verified badge */
.finx-verified-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--finx-up);
  border: 1px solid var(--finx-up);
  border-radius: 999px;
  padding: 3px 9px;
  vertical-align: middle;
}

/* Company badge (logo or initials) */
.finx-company-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #fff;
  font-family: var(--finx-font-display);
  font-weight: 700;
}

/* Sponsored spotlight */
.finx-sponsored-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 44px;
}
@media (max-width: 900px) {
  .finx-sponsored-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 560px) {
  .finx-sponsored-grid {
    grid-template-columns: 1fr;
  }
}
.finx-sponsored-card {
  position: relative;
  border: 2px solid var(--finx-gold);
  background: var(--finx-bg-raised);
  padding: 20px;
}
.finx-sponsored-badge--pill {
  display: inline-flex;
  align-items: center;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--finx-sponsored);
  border: 1px solid var(--finx-sponsored);
  border-radius: 999px;
  padding: 3px 8px;
  vertical-align: middle;
}
.finx-sponsored-card .finx-sponsored-badge--pill {
  position: absolute;
  top: 14px;
  right: 14px;
}
.finx-sponsored-card .finx-directory-card__badge {
  width: 48px;
  height: 48px;
  margin-bottom: 14px;
  font-size: 15px;
  overflow: hidden;
}
.finx-sponsored-card h3 {
  font-family: var(--finx-font-display);
  font-size: 18px;
  margin-bottom: 4px;
}
.finx-sponsored-card .finx-eyebrow {
  display: block;
  margin-bottom: 8px;
}
.finx-sponsored-card .finx-dek {
  font-size: 13.5px;
  color: var(--finx-text-muted);
  line-height: 1.5;
  margin-bottom: 10px;
}
.finx-view-link a {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--finx-text-muted);
}
.finx-view-link a:hover {
  color: var(--finx-accent);
}
.finx-view-link--section {
  margin: -8px 0 44px;
}

/* Directory grid + card */
.finx-directory-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--finx-rule-strong);
  border: 1px solid var(--finx-rule-strong);
  margin-bottom: 12px;
}
@media (max-width: 560px) {
  .finx-directory-grid {
    grid-template-columns: 1fr;
  }
}
.finx-directory-card {
  display: flex;
  gap: 14px;
  padding: 20px;
  background: var(--finx-bg);
  border: 2px solid transparent;
}
.finx-directory-card.is-sponsored {
  border-color: var(--finx-gold);
}
.finx-directory-card__badge {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  overflow: hidden;
  background: var(--finx-icon-1);
}
.finx-directory-card__badge img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.finx-directory-card__body {
  min-width: 0;
}
.finx-directory-card__name {
  font-family: var(--finx-font-display);
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.finx-directory-card__name a:hover {
  color: var(--finx-accent);
}
.finx-directory-card .finx-dek {
  font-size: 13px;
  color: var(--finx-text-muted);
  line-height: 1.5;
  margin-bottom: 8px;
}

/* Sidebar: Get Listed CTA */
.finx-directory-cta {
  border: 1px solid var(--finx-text);
  padding: 24px;
  text-align: center;
}
.finx-directory-cta h2 {
  font-family: var(--finx-font-display);
  font-size: 19px;
  margin-bottom: 10px;
}
.finx-directory-cta p {
  font-size: 13px;
  color: var(--finx-text-muted);
  line-height: 1.6;
  margin-bottom: 16px;
}
.finx-directory-cta .finx-btn {
  display: block;
}
.finx-directory-cta__price {
  margin: 12px 0 0;
  font-size: 11px;
  color: var(--finx-text-faint) !important;
}

/* Sidebar: Why List With Us */
.finx-why-list ol {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.finx-why-list li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.finx-why-list li span:last-child {
  font-size: 13px;
  line-height: 1.5;
  color: var(--finx-text-muted);
}

/* ==========================================================================
   Company profile
   ========================================================================== */
.finx-company-hero {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: flex-start;
  padding: 20px 0 24px;
}
@media (max-width: 780px) {
  .finx-company-hero {
    grid-template-columns: auto 1fr;
  }
}
@media (max-width: 560px) {
  .finx-company-hero {
    grid-template-columns: 1fr;
  }
}
.finx-company-hero__badge {
  width: 88px;
  height: 88px;
  overflow: hidden;
  background: var(--finx-badge-color, var(--finx-icon-1));
}
.finx-company-hero__badge img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.finx-company-hero__badge .finx-company-badge {
  font-size: 26px;
}
.finx-company-hero__body {
  min-width: 0;
}
.finx-company-hero__body h1 {
  font-family: var(--finx-font-display);
  font-size: clamp(24px, 4.5vw, 34px);
  margin: 6px 0 10px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.finx-company-hero__body .finx-deck {
  font-size: 14px;
  color: var(--finx-text-muted);
  line-height: 1.6;
  max-width: 58ch;
}
.finx-company-hero__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  text-align: right;
}
@media (max-width: 780px) {
  .finx-company-hero__actions {
    grid-column: 1 / -1;
    align-items: flex-start;
    text-align: left;
    flex-direction: row;
    flex-wrap: wrap;
  }
}
.finx-company-hero__actions .finx-btn {
  white-space: nowrap;
}
.finx-claim-link {
  font-size: 11.5px;
}
.finx-claim-link a {
  color: var(--finx-text-faint);
}
.finx-claim-link a:hover {
  color: var(--finx-accent);
}

.finx-company-body h2 {
  font-family: var(--finx-font-display);
  font-size: clamp(18px, 3vw, 22px);
  border-bottom: 1px solid var(--finx-rule);
  padding-bottom: 10px;
  margin: 40px 0 20px;
}
.finx-company-body > h2:first-child,
.finx-company-stats + h2 {
  margin-top: 0;
}
.finx-company-about p {
  margin: 0 0 16px;
}
.finx-company-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--finx-rule-strong);
  margin-bottom: 12px;
}
@media (max-width: 640px) {
  .finx-company-stats {
    grid-template-columns: repeat(2, 1fr);
  }
}
.finx-company-stats > div {
  padding: 16px 20px;
  border-right: 1px solid var(--finx-rule-strong);
  border-bottom: 1px solid var(--finx-rule-strong);
}
.finx-company-stats > div:last-child {
  border-right: none;
}
@media (max-width: 640px) {
  .finx-company-stats > div:nth-child(2n) {
    border-right: none;
  }
}
.finx-company-stats__label {
  display: block;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--finx-text-faint);
  margin-bottom: 6px;
}
.finx-company-stats__value {
  display: block;
  font-family: var(--finx-font-display);
  font-size: 19px;
  font-weight: 700;
}
.finx-features-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--finx-rule-strong);
  border: 1px solid var(--finx-rule-strong);
}
@media (max-width: 640px) {
  .finx-features-grid {
    grid-template-columns: 1fr;
  }
}
.finx-feature {
  display: flex;
  gap: 12px;
  padding: 18px 20px;
  background: var(--finx-bg);
}
.finx-feature__check {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--finx-up);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}
.finx-feature__title {
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 3px;
}
.finx-feature__desc {
  font-size: 13px;
  color: var(--finx-text-muted);
  line-height: 1.5;
}
.finx-industry-pills {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.finx-industry-pills li {
  padding: 8px 16px;
  border: 1px solid var(--finx-rule-strong);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--finx-nav-muted);
}

.finx-company-info dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px 16px;
  font-size: 13px;
}
.finx-company-info dt {
  color: var(--finx-text-faint);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.finx-company-info dd {
  margin: 0;
  font-weight: 600;
  text-align: right;
}
.finx-claim-box {
  text-align: center;
}
.finx-claim-box p {
  font-size: 12.5px;
  color: var(--finx-text-muted);
  line-height: 1.5;
  margin-bottom: 14px;
}
.finx-claim-box .finx-btn {
  display: block;
}
.finx-similar-companies ul {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.finx-similar-companies li {
  border-bottom: 1px solid var(--finx-rule);
}
.finx-similar-companies li:last-child {
  border-bottom: none;
}
.finx-similar-companies a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
}
.finx-similar-companies .finx-directory-card__badge {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}
.finx-similar-companies__name {
  display: block;
  font-size: 13.5px;
  font-weight: 700;
}
.finx-similar-companies a:hover .finx-similar-companies__name {
  color: var(--finx-accent);
}
.finx-similar-companies__cat {
  display: block;
  font-size: 11px;
  color: var(--finx-text-faint);
}

/* ==========================================================================
   Directory submission form
   ========================================================================== */
.finx-directory-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 24px;
}
.finx-directory-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--finx-text-muted);
}
.finx-directory-form input,
.finx-directory-form select,
.finx-directory-form textarea {
  padding: 12px 14px;
  border: 1px solid var(--finx-rule-strong);
  background: var(--finx-bg-raised);
  color: var(--finx-text);
  font-size: 14px;
  font-family: inherit;
  font-weight: 400;
  text-transform: none;
  letter-spacing: normal;
  resize: vertical;
}
.finx-form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
@media (max-width: 560px) {
  .finx-form-grid {
    grid-template-columns: 1fr;
  }
}
.finx-form-help {
  font-size: 12px;
  color: var(--finx-text-faint);
  margin-top: -10px;
}
.finx-hp-field {
  position: absolute;
  left: -9999px;
}
.finx-directory-form button[type="submit"] {
  align-self: flex-start;
  padding: 14px 32px;
  border: none;
  cursor: pointer;
}
.finx-form-notice {
  padding: 24px 28px;
  margin: 28px 0;
  font-size: 14px;
}
.finx-form-notice--success {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  border: 1px solid var(--finx-up);
  background: var(--finx-bg-raised);
  color: var(--finx-text);
}
.finx-form-notice__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--finx-up);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
}
.finx-form-notice--success h3 {
  font-family: var(--finx-font-display);
  font-size: 19px;
  margin: 2px 0 6px;
}
.finx-form-notice--success p {
  margin: 0;
  color: var(--finx-text-muted);
  line-height: 1.6;
  max-width: 56ch;
}
.finx-form-notice--error {
  border: 1px solid var(--finx-down);
  background: var(--finx-bg-raised);
}
.finx-form-notice--error ul {
  margin: 0;
  padding-left: 18px;
  color: var(--finx-down);
}

/* ==========================================================================
   Engagement: reading progress, back-to-top, NEW badge, Up Next
   ========================================================================== */
.finx-reading-progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: transparent;
  z-index: 60;
}
.finx-reading-progress__bar {
  height: 100%;
  width: 0%;
  background: var(--finx-accent);
  transition: width 0.1s linear;
}

.finx-back-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--finx-border-heavy);
  background: var(--finx-text);
  color: var(--finx-bg);
  border-radius: 50%;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
  z-index: 45;
}
.finx-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.finx-back-to-top:hover {
  background: var(--finx-accent);
}
.finx-back-to-top svg {
  width: 16px;
  height: 16px;
}
@media (max-width: 640px) {
  .finx-back-to-top {
    right: 16px;
    bottom: 16px;
    width: 40px;
    height: 40px;
  }
}

.finx-new-badge {
  display: inline-block;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  background: var(--finx-accent);
  border-radius: 3px;
  padding: 2px 6px;
  vertical-align: middle;
  margin-left: 6px;
}

.finx-up-next {
  display: flex;
  align-items: center;
  gap: 20px;
  border: 1px solid var(--finx-text);
  padding: 24px;
  margin: 40px 0;
}
.finx-up-next__figure {
  width: 88px;
  height: 88px;
  flex-shrink: 0;
  overflow: hidden;
  background: var(--finx-icon-1);
}
.finx-up-next__figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.finx-up-next__body {
  min-width: 0;
}
.finx-up-next__label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--finx-accent);
  margin-bottom: 6px;
}
.finx-up-next h3 {
  font-family: var(--finx-font-display);
  font-size: clamp(17px, 2.6vw, 21px);
  line-height: 1.3;
}
.finx-up-next h3 a:hover {
  color: var(--finx-accent);
}
@media (max-width: 480px) {
  .finx-up-next {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }
}

/* ==========================================================================
   Static pages: About / Editorial Policy / Advertise / Contact
   ========================================================================== */
.finx-page-hero {
  padding: 28px 0 32px;
  border-bottom: 2px solid var(--finx-text);
  margin-bottom: 40px;
  max-width: 780px;
}
.finx-page-hero h1 {
  font-family: var(--finx-font-display);
  font-size: clamp(28px, 6vw, 42px);
  margin: 10px 0 14px;
}
.finx-page-hero .finx-directory-dek {
  margin: 0;
}

.finx-static-page {
  max-width: 780px;
  margin: 0 auto;
  padding-bottom: 56px;
}
.finx-static-page .finx-page-hero {
  margin-left: auto;
  margin-right: auto;
}

.finx-beat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--finx-rule-strong);
  border: 1px solid var(--finx-rule-strong);
  margin: 8px 0 44px;
}
@media (max-width: 700px) {
  .finx-beat-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.finx-beat-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding: 20px;
  background: var(--finx-bg);
}
.finx-beat-tile:hover {
  background: var(--finx-bg-raised);
}
.finx-beat-tile__icon {
  width: 40px;
  height: 40px;
  overflow: hidden;
  flex-shrink: 0;
}
.finx-beat-tile h3 {
  font-family: var(--finx-font-display);
  font-size: 16px;
}
.finx-beat-tile:hover h3 {
  color: var(--finx-accent);
}
.finx-beat-tile span {
  font-size: 11px;
  font-weight: 600;
  color: var(--finx-text-faint);
}

.finx-glance-box {
  border: 1px solid var(--finx-border-heavy);
  padding: 24px 28px;
  margin: 8px 0 40px;
}
.finx-glance-box h2 {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: var(--finx-tracking);
  text-transform: uppercase;
  margin-bottom: 16px;
}
.finx-glance-box ul {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px 24px;
}
@media (max-width: 560px) {
  .finx-glance-box ul {
    grid-template-columns: 1fr;
  }
}
.finx-glance-box li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13.5px;
  line-height: 1.5;
}
.finx-glance-box li .finx-feature__check {
  margin-top: 1px;
}

.finx-ad-format-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin: 8px 0 44px;
}
@media (max-width: 700px) {
  .finx-ad-format-grid {
    grid-template-columns: 1fr;
  }
}
.finx-ad-format-card {
  border: 1px solid var(--finx-rule-strong);
  padding: 16px;
  text-align: center;
}
.finx-ad-format-card .finx-ad-slot {
  margin: 0 0 14px;
  height: 90px;
}
.finx-ad-format-card h3 {
  font-family: var(--finx-font-display);
  font-size: 15px;
  margin-bottom: 4px;
}
.finx-ad-format-card p {
  font-size: 12.5px;
  color: var(--finx-text-muted);
  line-height: 1.5;
}

.finx-price-box {
  border: 2px solid var(--finx-gold);
  padding: 32px;
  text-align: center;
  margin: 8px 0 44px;
}
.finx-price-box .finx-eyebrow {
  display: block;
  margin-bottom: 10px;
}
.finx-price-box strong {
  display: block;
  font-family: var(--finx-font-display);
  font-size: clamp(26px, 5vw, 34px);
  margin-bottom: 10px;
}
.finx-price-box p {
  font-size: 13.5px;
  color: var(--finx-text-muted);
  max-width: 48ch;
  margin: 0 auto 20px;
  line-height: 1.6;
}

.finx-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--finx-rule-strong);
  border: 1px solid var(--finx-rule-strong);
  margin: 8px 0 40px;
}
@media (max-width: 640px) {
  .finx-contact-grid {
    grid-template-columns: 1fr;
  }
}
.finx-contact-card {
  display: flex;
  gap: 16px;
  padding: 24px;
  background: var(--finx-bg);
}
.finx-contact-card__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--finx-accent);
  color: #fff;
}
.finx-contact-card__icon svg {
  width: 18px;
  height: 18px;
}
.finx-contact-card h3 {
  font-family: var(--finx-font-display);
  font-size: 16px;
  margin-bottom: 4px;
}
.finx-contact-card p {
  font-size: 12.5px;
  color: var(--finx-text-muted);
  margin-bottom: 8px;
  line-height: 1.5;
}
.finx-contact-card a.finx-contact-card__email {
  font-size: 13px;
  font-weight: 700;
  color: var(--finx-accent);
}
.finx-contact-card a.finx-contact-card__email:hover {
  text-decoration: underline;
}

.finx-office-box {
  display: flex;
  align-items: center;
  gap: 16px;
  border: 1px solid var(--finx-rule-strong);
  padding: 20px 24px;
  margin-bottom: 40px;
}
.finx-office-box svg {
  width: 28px;
  height: 28px;
  color: var(--finx-accent);
  flex-shrink: 0;
}
.finx-office-box h3 {
  font-family: var(--finx-font-display);
  font-size: 15px;
  margin-bottom: 2px;
}
.finx-office-box p {
  font-size: 13px;
  color: var(--finx-text-muted);
}
