/*
 * Future Review — public theme.
 * Deep-navy + gold prop-firm review design, plain CSS port of the approved
 * lucid_review.html (Tailwind classes compiled by hand per breakpoint).
 * Scoped under .frv-root so multiple embeds never collide.
 */

/* ── Tokens ──────────────────────────────────────────────────────── */
.frv-root {
  --frv-brand: #0a192f;
  --frv-navy: #112240;
  --frv-navy-2: #172a45;
  --frv-line: #233554;
  --frv-slate: #8892b0;
  --frv-slate-light: #a8b2d1;
  --frv-gold: #d4af37;
  --frv-gold-dark: #b8962e;
  --frv-live: #3fb950;
  --frv-text: #ccd6f6;

  width: 100%;
  /* The review must fill the viewport edge-to-edge and use a full 1350px
     inner content column, not the theme's boxed width. We hard-override the
     Blocksy + WP block wrappers (max-width + side padding) so the deep-navy
     page reads as a full-width Elementor-style layout.
     WP core global styles apply `.is-layout-constrained > * { width:
     var(--theme-block-width); max-width: var(--wp--style--global--content-size);
     margin-inline:auto }` which beats an untyped rulesheet; !important keeps
     the review from being boxed to the theme's narrow content column. */
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0;
  background: var(--frv-brand);
  color: var(--frv-text);
  font-family: 'Inter', ui-sans-serif, system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  line-height: 1.5;
}
.frv-root * { box-sizing: border-box; }
/* Content column: section shells are full-bleed; this constrains the inner
   box to 1350px, centered, with responsive gutters. Applied via the shells'
   padding so backgrounds can still stretch edge-to-edge. */
.frv-root {
  --frv-content: 1350px;
  --frv-gutter: clamp(1.25rem, 3vw, 3rem);
}
.frv-root ::selection { background: rgba(212, 175, 55, 0.3); color: #fff; }
.frv-root .frv-gold { color: var(--frv-gold); }
.frv-root .frv-live { color: var(--frv-live); }
.frv-root i[data-lucide] { display: inline-flex; width: 1em; height: 1em; flex: none; }
.frv-root i[data-lucide] svg { width: 100%; height: 100%; }

.frv-root h1, .frv-root h2, .frv-root h3, .frv-root h4 {
  margin: 0;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: #fff;
}
.frv-root p { margin: 0; }
.frv-root img { max-width: 100%; height: auto; }
.frv-root a { text-decoration: none; }
.frv-root ul, .frv-root ol { margin: 0; padding: 0; list-style: none; }

/* Gold gradient headline accent */
.frv-root .frv-gold-grad {
  background: linear-gradient(120deg, #e9cf6e, var(--frv-gold) 40%, #f2e394 60%, var(--frv-gold) 90%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ── Buttons ─────────────────────────────────────────────────────── */
.frv-root .frv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 1.75rem;
  border-radius: 0.75rem;
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--frv-brand);
  background: linear-gradient(135deg, #e6c65c, var(--frv-gold) 55%, var(--frv-gold-dark));
  box-shadow: 0 8px 24px -8px rgba(212, 175, 55, 0.5);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  border: 0;
  cursor: pointer;
}
.frv-root .frv-btn:hover { transform: translateY(-1px); box-shadow: 0 12px 32px -8px rgba(212, 175, 55, 0.65); color: var(--frv-brand); }
.frv-root .frv-btn-ghost {
  background: transparent;
  color: var(--frv-slate-light);
  border: 1px solid var(--frv-line);
  box-shadow: none;
  font-weight: 600;
}
.frv-root .frv-btn-ghost:hover { border-color: rgba(212, 175, 55, 0.55); color: #fff; }

/* ── Hero ────────────────────────────────────────────────────────── */
.frv-root .frv-hero {
  position: relative; overflow: hidden;
  padding: 0.75rem var(--frv-gutter) 1.75rem;
  max-width: var(--frv-content);
  margin-inline: auto;
}
@media (min-width: 768px) { .frv-root .frv-hero { padding: 1rem var(--frv-gutter) 2.25rem; } }
.frv-root .frv-hero::before {
  content: "";
  position: absolute;
  top: -6rem; right: 0;
  width: 34rem; height: 34rem;
  border-radius: 50%;
  opacity: 0.2;
  filter: blur(100px);
  pointer-events: none;
  background: radial-gradient(circle, var(--frv-gold) 0%, transparent 70%);
}
.frv-root .frv-hero-grid {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  align-items: center;
}
@media (min-width: 1024px) {
  .frv-root .frv-hero-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 3rem; }
  .frv-root .frv-hero-grid.frv-hero-grid-full { grid-template-columns: 1fr; }
}
.frv-root .frv-hero-col { display: flex; flex-direction: column; gap: 1.5rem; min-width: 0; }

.frv-root .frv-title {
  display: flex; align-items: center; gap: 0.875rem;
  font-size: 2.6rem; font-weight: 900; line-height: 1; color: #fff;
}
@media (min-width: 640px) { .frv-root .frv-title { font-size: 3.75rem; } }
@media (min-width: 1024px) { .frv-root .frv-title { font-size: 4rem; } }
.frv-root .frv-logo-mark {
  position: relative; overflow: hidden; flex: none;
  display: flex; align-items: center; justify-content: center;
  width: 1.35em; height: 1.35em; border-radius: 0.22em;
  background: var(--frv-navy-2); border: 1px solid rgba(212, 175, 55, 0.4);
  box-shadow: 0 0 24px rgba(212, 175, 55, 0.35);
  color: var(--frv-gold);
  align-self: flex-start;
}
.frv-root .frv-logo-mark::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(rgba(212, 175, 55, 0.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(212, 175, 55, 0.12) 1px, transparent 1px);
  background-size: 8px 8px;
  pointer-events: none;
}
/* Initials fallback: show text instead of flame icon + grid */
.frv-root .frv-logo-mark.frv-initials::after { display: none; }
.frv-root .frv-logo-mark.frv-initials {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700; font-size: 0.55em; letter-spacing: 0.04em;
  color: var(--frv-gold);
}
/* Real brand logo (dark mark on transparent needs a light slot): white
   backing, no gold grid, the mark fitted inside the square. */
.frv-root .frv-logo-mark.frv-has-logo {
  background: transparent;
  border-color: rgba(212, 175, 55, 0.55);
  box-shadow: 0 0 24px rgba(212, 175, 55, 0.25);
}
.frv-root .frv-logo-mark.frv-has-logo::after { display: none; }
.frv-root .frv-logo-img {
  display: block; width: 100%; height: 100%;
  object-fit: contain; padding: 0; box-sizing: border-box;
  /* no white box behind the brand mark */
}

/* Trustpilot badge */
.frv-root .frv-tp {
  display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1rem;
  width: fit-content; max-width: 100%;
  background: var(--frv-navy); border: 1px solid var(--frv-line); border-radius: 1rem;
  padding: 0.875rem 1.25rem; box-shadow: 0 10px 30px -12px rgba(0, 0, 0, 0.6);
}
.frv-root .frv-tp-brand { display: flex; align-items: center; gap: 0.625rem; }
.frv-root .frv-tp-logo {
  display: flex; align-items: center; justify-content: center;
  width: 2.5rem; height: 2.5rem; border-radius: 0.75rem;
  background: rgba(0, 182, 122, 0.1); border: 1px solid rgba(0, 182, 122, 0.25);
}
.frv-root .frv-tp-logo svg { width: 1.25rem; height: 1.25rem; fill: #00b67a; }
.frv-root .frv-tp-meta { display: flex; flex-direction: column; line-height: 1.3; }
.frv-root .frv-tp-meta b { font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--frv-slate-light); }
.frv-root .frv-tp-meta span { font-size: 12px; color: var(--frv-slate); }
.frv-root .frv-tp-div { width: 1px; height: 2.25rem; background: var(--frv-line); }
.frv-root .frv-tp-stars { display: flex; flex-direction: column; gap: 0.25rem; }
.frv-root .frv-stars { display: inline-flex; gap: 0.125rem; }
.frv-root .frv-star { width: 1rem; height: 1rem; fill: var(--frv-gold); }
.frv-root .frv-tp-count { font-size: 12px; color: var(--frv-slate); }
.frv-root .frv-tp-count b { color: var(--frv-slate-light); font-weight: 600; }
.frv-root .frv-tp-score { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.3; }
.frv-root .frv-tp-score-v { font-size: 1.5rem; font-weight: 900; color: #fff; font-variant-numeric: tabular-nums; line-height: 1; }
.frv-root .frv-tp-verdict { display: inline-flex; align-items: center; gap: 0.25rem; margin-top: 0.25rem; font-size: 12px; font-weight: 700; color: var(--frv-live); }
.frv-root .frv-tp-verdict i { width: 6px; height: 6px; border-radius: 50%; background: var(--frv-live); }

.frv-root .frv-sub { color: var(--frv-slate); line-height: 1.7; max-width: 36rem; font-size: 1rem; }

/* Quick stat callouts */
.frv-root .frv-quick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; width: 100%; max-width: 36rem; }
.frv-root .frv-qstat {
  display: flex; flex-direction: column; gap: 0.125rem;
  background: var(--frv-navy); border: 1px solid var(--frv-line); border-radius: 0.75rem;
  padding: 0.75rem 1rem; min-width: 0;
}
.frv-root .frv-qstat > span { display: inline-flex; align-items: center; gap: 0.375rem; min-width: 0; }
.frv-root .frv-qicon { color: var(--frv-gold); flex: none; width: 0.875rem; height: 0.875rem; }
.frv-root .frv-qstat b { font-size: 12px; font-weight: 700; color: var(--frv-slate-light); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.frv-root .frv-qlabel { font-size: 11px; color: rgba(136, 146, 176, 0.7); line-height: 1.3; }

/* Offer banner */
.frv-root .frv-deal {
  position: relative; overflow: hidden;
  height: 100%; min-width: 0;
  border: 1px solid rgba(212, 175, 55, 0.35);
  border-radius: 1.25rem;
  background:
    radial-gradient(60rem 12rem at 12% -40%, rgba(212, 175, 55, 0.14) 0%, transparent 60%),
    radial-gradient(40rem 10rem at 95% 130%, rgba(212, 175, 55, 0.09) 0%, transparent 55%),
    linear-gradient(115deg, #13284a 0%, #0d1d3a 55%, #12263f 100%);
}
.frv-root .frv-deal::after {
  content: ""; position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(212, 175, 55, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(212, 175, 55, 0.055) 1px, transparent 1px);
  background-size: 28px 28px;
  opacity: 0.7; pointer-events: none;
}
.frv-root .frv-ribbon {
  position: absolute; top: 0; right: 0; z-index: 2;
  color: var(--frv-brand); font-weight: 800; font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase;
  background: linear-gradient(135deg, #e6c65c, var(--frv-gold) 55%, var(--frv-gold-dark));
  padding: 0.3rem 2.6rem 0.3rem 2rem;
  transform: translateX(24%) rotate(45deg) translateY(-1.1rem);
  transform-origin: 0 0;
  box-shadow: 0 6px 18px -6px rgba(212, 175, 55, 0.5);
}
.frv-root .frv-deal-body {
  position: relative; z-index: 1;
  display: flex; flex-direction: column; gap: 1.5rem;
  height: 100%; padding: 2rem 1.25rem 1.25rem;
}
.frv-root .frv-deal-tag {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: rgba(136, 146, 176, 0.8);
}
.frv-root .frv-deal-tag i { width: 6px; height: 6px; border-radius: 50%; background: var(--frv-live); }
.frv-root .frv-deal-title { font-size: 1.25rem; font-weight: 900; color: #fff; line-height: 1.25; }
@media (min-width: 640px) { .frv-root .frv-deal-title { font-size: 1.5rem; } }
.frv-root .frv-deal-sub { font-size: 0.875rem; color: var(--frv-slate); line-height: 1.6; }

.frv-root .frv-copy {
  display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
  width: 100%;
  background: rgba(15, 35, 67, 0.8);
  border: 1px dashed rgba(212, 175, 55, 0.5);
  border-radius: 0.75rem;
  padding: 0.875rem 1rem;
  cursor: pointer;
  text-align: left;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.frv-root .frv-copy:hover { border-color: rgba(212, 175, 55, 0.85); box-shadow: 0 0 0 4px rgba(212, 175, 55, 0.1); }
.frv-root .frv-copy-l { display: flex; align-items: baseline; gap: 0.75rem; }
.frv-root .frv-copy-lbl { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.16em; color: var(--frv-slate); }
.frv-root .frv-copy-val { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1.125rem; font-weight: 900; letter-spacing: 0.22em; color: var(--frv-gold); }
.frv-root .frv-copy-r { display: inline-flex; align-items: center; gap: 0.375rem; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--frv-slate-light); }
.frv-root .frv-copy-ic { color: var(--frv-gold); width: 0.875rem; height: 0.875rem; display: inline-flex; align-items: center; gap: 0.25rem; }
.frv-root .frv-copy-ic [data-lucide] { width: 0.875rem; height: 0.875rem; }
.frv-root .frv-copy-ic [data-lucide="check"] { display: none; }
.frv-root .frv-copy.frv-copied { background: #0f3a26; border-color: var(--frv-live); border-style: solid; }
.frv-root .frv-copy.frv-copied [data-lucide="copy"] { display: none; }
.frv-root .frv-copy.frv-copied [data-lucide="check"] { display: inline-flex; color: var(--frv-live); }
.frv-root .frv-copy-hint { text-align: center; font-size: 11px; color: rgba(136, 146, 176, 0.7); }

.frv-root .frv-deal-shine {
  position: absolute; inset: 0; pointer-events: none; opacity: 0;
}
.frv-root .frv-deal .frv-btn { margin-top: auto; width: 100%; }

/* ── Stats strip ─────────────────────────────────────────────────── */
.frv-root .frv-stats {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem 1.5rem;
  border-top: 1px solid var(--frv-line); border-bottom: 1px solid var(--frv-line);
  background: #0d1d3a;
  padding: 2.5rem var(--frv-gutter);
  max-width: var(--frv-content);
  margin-inline: auto;
}
@media (min-width: 768px) { .frv-root .frv-stats { padding: 2.5rem var(--frv-gutter); } }
@media (min-width: 1024px) { .frv-root .frv-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.frv-root .frv-stat-v { font-size: 1.875rem; font-weight: 900; color: #fff; font-variant-numeric: tabular-nums; }
.frv-root .frv-stat-l { margin-top: 0.25rem; font-size: 0.875rem; color: var(--frv-slate); }

/* ── Sections ────────────────────────────────────────────────────── */
.frv-root .frv-block {
  padding: 4.5rem var(--frv-gutter);
  max-width: var(--frv-content);
  margin-inline: auto;
}
@media (min-width: 768px) { .frv-root .frv-block { padding: 5rem var(--frv-gutter); } }

.frv-root .frv-head { display: flex; flex-direction: column; gap: 0.75rem; align-items: flex-start; margin-bottom: 2.5rem; }
.frv-root .frv-head h2 { font-size: 1.875rem; font-weight: 900; }
@media (min-width: 768px) { .frv-root .frv-head h2 { font-size: 2.25rem; } }
.frv-root .frv-head p { color: var(--frv-slate); max-width: 42rem; line-height: 1.7; }
.frv-root .frv-head-sm { margin-bottom: 1.5rem; }
.frv-root .frv-head-sm h3 { font-size: 1.25rem; font-weight: 700; }
.frv-root .frv-eyebrow {
  display: inline-block;
  font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em;
  color: var(--frv-gold);
}

/* ── Firm overview ───────────────────────────────────────────────── */
.frv-root .frv-ov-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 768px) { .frv-root .frv-ov-grid { grid-template-columns: repeat(2, 1fr); } }
.frv-root .frv-ov-card {
  background: var(--frv-navy); border: 1px solid var(--frv-line); border-radius: 1rem; padding: 1.5rem;
}
.frv-root .frv-ov-card h3 { display: flex; align-items: center; gap: 0.5rem; font-size: 1rem; font-weight: 700; margin-bottom: 1rem; color: #fff; padding-left: 0.75rem; }
.frv-root .frv-ov-card h3 i { color: var(--frv-gold); }
.frv-root .frv-chips { display: flex; flex-wrap: wrap; gap: 0.625rem; }
.frv-root .frv-ov-card .frv-chips,
.frv-root .frv-ov-card .frv-note { padding-left: 0.75rem; }
.frv-root .frv-chip {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.875rem; font-weight: 600; color: var(--frv-slate-light);
  background: #1a2f50; border: 1px solid #263e68; border-radius: 999px; padding: 0.5rem 1rem;
}
.frv-root .frv-chip i { color: var(--frv-gold); flex: none; }
/* Brand logo inside a chip: small white rounded slot so a dark mark reads
   on the navy chip background. */
.frv-root .frv-chip-logo {
  width: 1.25rem; height: 1.25rem; flex: none;
  background: #fff; border-radius: 999px; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center; padding: 0.14rem;
}
.frv-root .frv-chip-logo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.frv-root .frv-note { margin-top: 1rem; font-size: 12px; color: rgba(136, 146, 176, 0.7); line-height: 1.6; }
@media (min-width: 768px) { .frv-root .frv-ov-card.frv-wide { grid-column: 1 / -1; } }

/* ── Programs (side-by-side tables) ──────────────────────────────── */
/* minmax(0,1fr): a 1fr track's min is auto, so wide nowrap table cells
   force the track wider than its container and spill the page. minmax(0,1fr)
   clips each track to its share of the row so the card (and its inner
   overflow-x table) stay inside the grid. */
.frv-root .frv-programs { display: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 1.25rem; }
@media (min-width: 1024px) { .frv-root .frv-programs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1600px) { .frv-root .frv-programs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.frv-root .frv-program {
  background: var(--frv-navy); border: 1px solid var(--frv-line); border-radius: 1rem;
  padding: 1.25rem;
  /* Blocksy/WP global styles can zero the inline (left/right) padding on
     grid children; state the logical longhands so the card padding always
     holds regardless of which physical/logical rules the theme injects. */
  padding-inline: 1.5rem;
  padding-block: 1.25rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  width: 100%;
  min-width: 0; /* allow grid item to shrink below content (nowrap tables) */
}
@media (min-width: 768px) { .frv-root .frv-program { padding-inline: 1.5rem; padding-block: 1.4rem; } }
.frv-root .frv-program:hover { transform: translateY(-3px); box-shadow: 0 20px 48px -16px rgba(0, 0, 0, 0.55); border-color: rgba(212, 175, 55, 0.4); }
.frv-root .frv-program-head { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem; }
.frv-root .frv-ico {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 2.5rem; height: 2.5rem; border-radius: 0.75rem;
  background: var(--frv-navy-2); border: 1px solid var(--frv-line); color: var(--frv-gold);
}
.frv-root .frv-program-head h3 { font-size: 1rem; font-weight: 700; color: #fff; }
.frv-root .frv-program-head p { font-size: 12px; color: var(--frv-slate); margin-top: 1px; }

.frv-root .frv-table-scroll {
  overflow-x: auto;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
  scrollbar-width: thin;
  scrollbar-color: rgba(212, 175, 55, 0.5) rgba(10, 25, 47, 0.4);
}
.frv-root .frv-table-scroll::-webkit-scrollbar { height: 8px; }
.frv-root .frv-table-scroll::-webkit-scrollbar-track { background: rgba(10, 25, 47, 0.4); border-radius: 999px; }
.frv-root .frv-table-scroll::-webkit-scrollbar-thumb { background: rgba(212, 175, 55, 0.5); border-radius: 999px; }
.frv-root .frv-table-scroll::-webkit-scrollbar-thumb:hover { background: rgba(212, 175, 55, 0.75); }
/* Table cells mirror the reference design (lucid_review.html):
   header py-2.5 px-1 → 0.625rem 0.25rem, rows py-2.5 px-1. The first
   column gets the reference's pr-3 (0.75rem right) plus extra left
   padding (pl-1) so content never touches the table edge, value cells
   stay right-aligned. Consistent border-b border-line/50 between rows:
   rgba(35,53,84,.5). */
.frv-root .frv-table { width: 100%; min-width: 0; max-width: 100%; border-collapse: collapse; font-size: 12px; /* text-xs */ color: var(--frv-slate-light); font-variant-numeric: tabular-nums; }
.frv-root .frv-table th, .frv-root .frv-table td { padding: 0.75rem 0.25rem; text-align: right; vertical-align: middle; }
.frv-root .frv-table th:first-child, .frv-root .frv-table td:first-child { padding-left: 0.25rem; padding-right: 0.75rem; text-align: left; }
.frv-root .frv-table th:last-child, .frv-root .frv-table td:last-child { padding-right: 0.25rem; }
/* Row separator matches reference border-b border-line/50. */
.frv-root .frv-table tr { border-bottom: 1px solid rgba(35, 53, 84, 0.5); }
.frv-root .frv-table tr:last-child { border-bottom: 0; }
.frv-root .frv-th-label { font-weight: 500; color: var(--frv-slate); }
.frv-root .frv-th-num { font-weight: 600; color: var(--frv-slate-light); white-space: nowrap; }
.frv-root .frv-td { white-space: normal; overflow-wrap: anywhere; min-width: 3.5rem; }
/* Consistency row = same cell cadence as the other rows (12px, right-aligned,
   border-line/50), no special sub-size — matches the reference exactly. */
.frv-root .frv-td-cons { text-align: right; }

.frv-root .frv-program-note {
  margin-top: 1rem; border-top: 1px solid rgba(35, 53, 84, 0.5); padding-top: 0.75rem;
  font-size: 12px; color: rgba(136, 146, 176, 0.7); line-height: 1.4;
}
.frv-root .frv-program-note strong { color: var(--frv-slate-light); }

/* ── Payouts ─────────────────────────────────────────────────────── */
.frv-root .frv-pay-cards { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 768px) { .frv-root .frv-pay-cards { grid-template-columns: repeat(2, 1fr); } }
.frv-root .frv-pay-card { background: var(--frv-navy); border: 1px solid var(--frv-line); border-radius: 1rem; padding: 1.5rem; }
.frv-root .frv-pay-card h3 { font-size: 1rem; font-weight: 700; margin-bottom: 1rem; color: #fff; }
.frv-root .frv-facts { display: flex; flex-direction: column; gap: 0.75rem; }
.frv-root .frv-facts li { display: flex; align-items: flex-start; gap: 0.625rem; font-size: 0.875rem; color: var(--frv-slate); line-height: 1.6; }
.frv-root .frv-li-ic { color: var(--frv-gold); flex: none; width: 1rem; height: 1rem; margin-top: 2px; }
.frv-root .frv-li-txt { min-width: 0; }
.frv-root .frv-li-txt strong { color: var(--frv-slate-light); }
.frv-root .frv-steps { display: flex; flex-direction: column; gap: 0.875rem; }
.frv-root .frv-steps li { display: flex; align-items: flex-start; gap: 0.625rem; font-size: 0.875rem; color: var(--frv-slate); line-height: 1.6; }
.frv-root .frv-n { flex: none; font-weight: 900; font-variant-numeric: tabular-nums; color: var(--frv-gold); min-width: 1.25rem; }
.frv-root .frv-pay-note { margin-top: 1.25rem; font-size: 12px; color: rgba(136, 146, 176, 0.7); max-width: 42rem; line-height: 1.6; }

/* Policy tabs + panels */
.frv-root .frv-policy { margin-top: 3rem; }
.frv-root .frv-tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; }
.frv-root .frv-tabs button {
  border-radius: 999px; padding: 0.5rem 0.75rem; font-size: 0.875rem; font-weight: 600;
  background: #1a2f50; border: 1px solid #263e68; color: var(--frv-slate-light);
  cursor: pointer; transition: border-color 0.15s ease, color 0.15s ease;
}
.frv-root .frv-tabs button:hover { border-color: rgba(212, 175, 55, 0.45); color: #fff; }
.frv-root .frv-tabs button.frv-active {
  background: linear-gradient(135deg, #e6c65c, var(--frv-gold) 55%, var(--frv-gold-dark));
  border-color: var(--frv-gold); color: var(--frv-brand); font-weight: 700;
}
.frv-root .frv-panel { display: none; }
.frv-root .frv-panel.frv-active { display: block; }
.frv-root .frv-panel-card { background: var(--frv-navy); border: 1px solid var(--frv-line); border-radius: 1rem; padding: 1.5rem; }

/* Rich HTML inside policy panels */
.frv-root .frv-panel-card h4 { font-size: 0.875rem; font-weight: 700; margin: 1.25rem 0 0.625rem; color: #fff; }
.frv-root .frv-panel-card h4:first-child { margin-top: 0; }
.frv-root .frv-panel-card p { font-size: 12px; color: var(--frv-slate); line-height: 1.6; }
.frv-root .frv-panel-card .frv-pol-facts { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.25rem; font-size: 0.875rem; }
.frv-root .frv-panel-card .frv-pol-fact { display: inline-flex; align-items: center; gap: 0.375rem; color: var(--frv-slate); }
.frv-root .frv-panel-card .frv-pol-fact i { width: 8px; height: 8px; border-radius: 50%; background: var(--frv-gold); }
.frv-root .frv-panel-card .frv-pol-fact strong { color: var(--frv-slate-light); font-weight: 600; }
.frv-root .frv-panel-card .frv-pol-note { font-size: 12px; color: var(--frv-slate); margin-top: 1rem; }
.frv-root .frv-panel-card .frv-pol-rule { font-size: 12px; color: var(--frv-slate); line-height: 1.6; }
.frv-root .frv-panel-card .frv-pol-rule strong { color: var(--frv-slate-light); }
.frv-root .frv-panel-card .frv-pol-buffer {
  background: #0d1d3a; border: 1px solid rgba(35, 53, 84, 0.5); border-radius: 0.75rem;
  padding: 1rem; margin-bottom: 1.25rem;
}
.frv-root .frv-panel-card .frv-pol-buffer p { margin-bottom: 0; }
.frv-root .frv-panel-card .frv-pol-scroll { overflow-x: auto; margin-bottom: 1.25rem; }
.frv-root .frv-panel-card table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.frv-root .frv-panel-card thead tr { border-bottom: 1px solid var(--frv-line); text-align: left; }
.frv-root .frv-panel-card th { padding: 0.625rem 1rem 0.625rem 0.75rem; font-weight: 500; color: rgba(136, 146, 176, 0.7); white-space: nowrap; }
.frv-root .frv-panel-card td { padding: 0.625rem 1rem 0.625rem 0.75rem; }
.frv-root .frv-panel-card tbody tr { border-bottom: 1px solid rgba(35, 53, 84, 0.5); }
.frv-root .frv-panel-card tbody tr:last-child { border-bottom: 0; }
.frv-root .frv-panel-card td:first-child { color: var(--frv-slate-light); font-weight: 500; white-space: nowrap; }
.frv-root .frv-panel-card td { color: var(--frv-slate); }

/* ── Rules & house rules ─────────────────────────────────────────── */
.frv-root .frv-rules {
  border-top: 1px solid var(--frv-line); border-bottom: 1px solid var(--frv-line);
  background: #0d1d3a;
  padding-inline: var(--frv-gutter);
  max-width: var(--frv-content);
  margin-inline: auto;
}
.frv-root .frv-rules-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 768px) { .frv-root .frv-rules-grid { grid-template-columns: repeat(2, 1fr); } }
.frv-root .frv-rule {
  display: flex; flex-direction: column; gap: 0.875rem;
  width: auto; height: auto;
  background: var(--frv-navy); border: 1px solid var(--frv-line); border-radius: 1rem; padding: 1.5rem;
}
/* Defensive: only the grid siblings are cards; never inherit bar sizing in hero */
.frv-root .frv-rules-grid .frv-rule {
  width: auto; height: auto;
}
.frv-root .frv-rule-head { display: flex; align-items: center; gap: 0.75rem; padding-left: 0.75rem; /* inset the logo icon from the card's left edge */ }
.frv-root .frv-rule-head h3 { font-size: 1rem; font-weight: 700; color: #fff; }
.frv-root .frv-rule-body { font-size: 0.875rem; color: var(--frv-slate); line-height: 1.7; padding-left: 0.75rem; /* inset the info text from the card's left edge */ }
.frv-root .frv-rule-body ul { list-style: disc; list-style-position: inside; display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.375rem; }
.frv-root .frv-rule-body strong { color: var(--frv-slate-light); }
.frv-root .frv-rule-body p { line-height: 1.7; }
.frv-root .frv-rule-body p + p { margin-top: 0.5rem; }

.frv-root .frv-news {
  margin-top: 1.5rem;
  display: grid; grid-template-columns: 1fr; gap: 1rem;
  background: var(--frv-navy); border: 1px solid var(--frv-line); border-radius: 1rem; padding: 1.5rem;
}
@media (min-width: 1024px) { .frv-root .frv-news { grid-template-columns: auto 1fr; align-items: flex-start; gap: 1.5rem; } }
.frv-root .frv-news-head { display: flex; align-items: center; gap: 0.75rem; }
.frv-root .frv-news-head h3 { font-size: 1rem; font-weight: 700; color: #fff; white-space: nowrap; }
.frv-root .frv-news-body { font-size: 0.875rem; color: var(--frv-slate); line-height: 1.7; }
.frv-root .frv-news-body p + p { margin-top: 0.5rem; }
.frv-root .frv-news-body strong { color: var(--frv-slate-light); }

.frv-root .frv-house-head { margin-top: 3rem; }
.frv-root .frv-house { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 640px) { .frv-root .frv-house { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .frv-root .frv-house { grid-template-columns: repeat(3, 1fr); } }
.frv-root .frv-house-item {
  display: flex; flex-direction: column; gap: 0.625rem;
  background: var(--frv-navy); border: 1px solid var(--frv-line); border-radius: 1rem; padding: 1.5rem;
}
.frv-root .frv-house-item h4 { font-size: 0.9375rem; font-weight: 700; color: #fff; }
.frv-root .frv-house-desc { font-size: 0.875rem; color: var(--frv-slate); line-height: 1.7; }
.frv-root .frv-house-desc strong { color: var(--frv-slate-light); }

/* Extra left breathing room: every content card insets its start edge a
   little more (1.5rem → 1.875rem) so text/boxes never hug the left border.
   Same specificity, placed after the per-card rules so it wins. */
.frv-root .frv-ov-card,
.frv-root .frv-pay-card,
.frv-root .frv-panel-card,
.frv-root .frv-rule,
.frv-root .frv-house-item,
.frv-root .frv-news,
.frv-root .frv-program {
  padding-left: 1.875rem;
}

/* House-rule cards: their icon + label reads tighter than the other cards
   even after the grouped nudge, so give the start edge one more bump
   (1.875rem → 3.25rem). Scoped to the house item only. */
.frv-root .frv-house-item {
  padding-left: 3.25rem;
}

/* ── CTA band ────────────────────────────────────────────────────── */
.frv-root .frv-cta { padding-bottom: 5rem; }
.frv-root .frv-band { position: relative; overflow: hidden; border-radius: 1.5rem; border: 1px solid var(--frv-gold); background: var(--frv-navy); }
.frv-root .frv-band-glow {
  position: absolute; top: -5rem; right: -5rem; width: 20rem; height: 20rem; border-radius: 50%;
  opacity: 0.25; filter: blur(90px); pointer-events: none;
  background: radial-gradient(circle, var(--frv-gold) 0%, transparent 70%);
}
.frv-root .frv-band-inner {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 2rem;
  padding: 2.5rem;
}
@media (min-width: 768px) { .frv-root .frv-band-inner { flex-direction: row; align-items: center; padding: 3.5rem; } }
.frv-root .frv-band-copy { max-width: 36rem; }
.frv-root .frv-band-copy h2 { font-size: 1.875rem; font-weight: 900; color: #fff; }
@media (min-width: 768px) { .frv-root .frv-band-copy h2 { font-size: 2.25rem; } }
.frv-root .frv-band-copy p { margin-top: 0.75rem; color: var(--frv-slate); line-height: 1.7; }
.frv-root .frv-band-actions { display: flex; flex-direction: column; gap: 0.875rem; }
@media (min-width: 640px) { .frv-root .frv-band-actions { flex-direction: row; } }

/* ── Footer ──────────────────────────────────────────────────────── */
.frv-root .frv-footer {
  border-top: 1px solid var(--frv-line);
  padding: 3rem var(--frv-gutter);
  max-width: var(--frv-content);
  margin-inline: auto;
}
@media (min-width: 768px) { .frv-root .frv-footer { padding: 3rem var(--frv-gutter); } }
.frv-root .frv-footer-top { display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 1.25rem; font-size: 0.875rem; color: var(--frv-slate); }
@media (min-width: 768px) { .frv-root .frv-footer-top { flex-direction: row; } }
.frv-root .frv-brand-line { display: inline-flex; align-items: center; gap: 0.5rem; }
.frv-root .frv-brand-line i { color: var(--frv-gold); }
.frv-root .frv-brand-name { font-weight: 600; color: var(--frv-slate-light); }
.frv-root .frv-footer-links { display: flex; align-items: center; gap: 1.5rem; font-size: 12px; color: rgba(136, 146, 176, 0.7); }
.frv-root .frv-footer-links a { color: inherit; }
.frv-root .frv-footer-links a:hover { color: var(--frv-gold); }
.frv-root .frv-footer-fine { margin-top: 1.5rem; font-size: 11px; color: rgba(136, 146, 176, 0.6); line-height: 1.7; }

/* ── Reduced motion ──────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .frv-root .frv-btn, .frv-root .frv-btn-ghost,
  .frv-root .frv-program, .frv-root .frv-copy { transition: none !important; }
}

/* ── Theme / WP wrapper escape ─────────────────────────────────────
   The review plugin aims for a full-width, full-bleed page. Blocksy's
   .ct-container-full (max-width: 1290px) and WP's is-layout-constrained
   (max-width + padding) box the content column; route around both so the
   page spans edge-to-edge and uses a 1350px inner column (via --frv-content
   on the section shells). Scoped to a body
   that actually hosts a Future Review so unrelated pages are untouched. */
/* v1.1.0 FIX: scope the escape to the MAIN content column only.
   Blocksy reuses .ct-container inside its header and footer rows, so the
   old broad selectors hit the site header/footer and stripped their width,
   max-width and padding (breaking the header/footer on review pages).
   Every escape selector is now anchored under main#main so only the
   article area goes full-bleed; header/footer rows are untouched. */
body:has(.frv-root) main#main .ct-container-full,
body:has(.frv-root) main#main .ct-container,
body:has(.frv-root) main#main article:not(.frv-program):not(.frv-house-item),
body:has(.frv-root) main#main .entry-content.is-layout-grid,
body:has(.frv-root) main#main .entry-content.is-layout-flow,
body:has(.frv-root) main#main .entry-content.is-layout-constrained {
  max-width: none !important;
  width: 100% !important;
  min-width: 0;
  padding-inline: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-inline: 0 !important;
}
body:has(.frv-root) .site-main,
body:has(.frv-root) main#main {
  padding: 0 !important;
  margin: 0 !important;
}
/* Blocksy applies --theme-content-vertical-spacing (60px desktop / 50px
   mobile) as padding-top/padding-bottom on .ct-container-full via the
   [data-vertical-spacing*=top] / *=bottom attribute. That 60px emptiness
   sits above the hero; the plugin supplies its own vertical rhythm, so
   neutralise it on review pages. */
body:has(.frv-root) main#main [data-vertical-spacing*="top"] { padding-top: 0 !important; }
body:has(.frv-root) main#main [data-vertical-spacing*="bottom"] { padding-bottom: 0 !important; }
/* Full-bleed backdrop: the outer rows stretch to the viewport width even at
   very wide screens; text stays in the 1350px column via .frv-inner. */
@media (min-width: 1280px) {
  body:has(.frv-root) .frv-hero,
  body:has(.frv-root) .frv-stats,
  body:has(.frv-root) .frv-rules,
  body:has(.frv-root) .frv-footer { padding-inline: clamp(1.5rem, 5vw, 5rem); }
}
@media (max-width: 1279.98px) {
  body:has(.frv-root) .frv-hero,
  body:has(.frv-root) .frv-stats,
  body:has(.frv-root) .frv-rules,
  body:has(.frv-root) .frv-footer { padding-inline: 24px; }
}

/* ── Other ratings (PropFirmMatch / Google / site) hero badges ─────── */
.frv-alt-ratings {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
.frv-alt-rating {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border: 1px solid rgba(212, 175, 55, 0.35);
  border-radius: 999px;
  background: rgba(212, 175, 55, 0.08);
  font-size: 12.5px;
  line-height: 1.3;
  color: var(--frv-ink, #cbd5e1);
}
.frv-alt-rating b { font-weight: 600; color: var(--frv-ink, #e2e8f0); }
.frv-alt-rating .frv-gold { font-weight: 700; color: var(--frv-gold, #d4af37); }

/* ── Extra promo / bundle lines in the deal banner ─────────────────── */
.frv-deal-extra {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.frv-deal-extra li {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--frv-ink, #cbd5e1);
}
.frv-deal-extra li::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--frv-gold, #d4af37);
  flex: none;
  align-self: center;
}
.frv-deal-extra-label {
  color: var(--frv-ink, #e2e8f0);
  font-weight: 600;
  white-space: nowrap;
}
.frv-deal-extra-desc strong { color: var(--frv-gold, #d4af37); }

/* ── Key specs & policies grid ─────────────────────────────────────── */
.frv-specs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 1px;
  background: var(--frv-navy-2, #172a45);
  border: 1px solid rgba(148, 163, 184, 0.18);
  border-radius: 14px;
  overflow: hidden;
}
.frv-spec {
  background: var(--frv-navy, #112240);
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.frv-spec-label {
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--frv-ink-soft, #8fa0b8);
}
.frv-spec-value {
  font-size: 14.5px;
  font-weight: 600;
  color: var(--frv-ink, #e2e8f0);
}