/*
Theme Name: FitReviews - REHub Child
Theme URI: https://fitreviews.com
Description: Fitness program review site - REHub child theme with custom colors and review components
Author: FitReviews
Author URI: https://fitreviews.com
Template: rehub-theme
Version: 1.0.0
Text Domain: fitreviews
*/

/* =============================================
   Design Tokens
   ============================================= */
:root {
  /* === Palette ===
     White       #FFFFFF — page background
     Cream       #F8F3EE — section alternation, hero bg
     Greige      #D4C4B0 — mid-tone, subtle borders
     Deep Toffee #A07B3D — scores, ratings, rate bars, data accent
     Near Black  #1E1A16 — headings, buttons, links, primary accent
  */
  /* Warm Charcoal (primary) */
  --fr-primary-50: #F7F6F5;
  --fr-primary-100: #EEEDEB;
  --fr-primary-200: #DDDAD7;
  --fr-primary-300: #B8B3AC;
  --fr-primary-400: #918B83;
  --fr-primary-500: #605A52;
  --fr-primary-600: #2A2521;
  --fr-primary-700: #1E1A16;
  --fr-primary-800: #151210;
  --fr-primary-900: #0D0B09;
  /* Accent (deep toffee) */
  --fr-accent-50: #FBF7F0;
  --fr-accent-100: #F3EBDA;
  --fr-accent-200: #E6D5B8;
  --fr-accent-300: #D4BB8E;
  --fr-accent-400: #C4A46C;
  --fr-accent-500: #B89054;
  --fr-accent-600: #A07B3D;
  --fr-accent-700: #886832;
  --fr-accent-800: #6E5428;
  --fr-accent-900: #54401E;
  /* Secondary (quiz — aliases toffee) */
  --fr-secondary-300: #D4BB8E;
  --fr-secondary-400: #C4A46C;
  --fr-secondary-500: #B89054;
  --fr-secondary-600: #A07B3D;
  /* Neutral (Cream → Greige → Near Black) */
  --fr-slate-50: #F8F3EE;
  --fr-slate-100: #F2ECE5;
  --fr-slate-200: #E5DDD4;
  --fr-slate-300: #D4C4B0;
  --fr-slate-400: #B0A494;
  --fr-slate-500: #8A7F73;
  --fr-slate-600: #625A50;
  --fr-slate-700: #2A2521;
  --fr-slate-800: #1E1A16;
  --fr-slate-900: #1E1A16;
  --fr-slate-950: #151210;
  /* Heading color */
  --fr-plum: #1E1A16;
  /* Link colour — warm toffee, matches guide/Best-x pages */
  --fr-link: #A07B3D;
  --fr-link-hover: #886832;
  /* Functional */
  --fr-success: #3A9B74;
  --fr-success-light: #F0F8F4;
  --fr-warning: #C8922A;
  --fr-warning-light: #FDF8ED;
  --fr-danger: #B85C5C;
  --fr-danger-light: #FBF0F0;
  /* Shadows */
  --fr-shadow-soft: 0 1px 3px rgba(30,26,22,0.04);
  --fr-shadow-medium: 0 4px 20px rgba(30,26,22,0.06);
  --fr-shadow-strong: 0 8px 30px rgba(30,26,22,0.08);
  --fr-shadow-glow-primary: 0 4px 24px rgba(30,26,22,0.10);
  --fr-shadow-glow-accent: 0 4px 24px rgba(160,123,61,0.15);
  /* Layout */
  --fr-radius-lg: 10px;
  --fr-radius-xl: 14px;
  --fr-radius-2xl: 18px;
  --fr-transition-fast: 150ms ease;
  --fr-transition-base: 250ms cubic-bezier(.4,0,.2,1);
  --fr-transition-spring: 300ms cubic-bezier(.22,1,.36,1);
  --fr-font-body: 'Inter', system-ui, -apple-system, sans-serif;
  --fr-font-display: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
}

/* =============================================
   Global Base
   ============================================= */
html { scroll-behavior: smooth; }
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "cv02", "cv03", "cv04", "cv11";
  background-color: #fff;
  color: var(--fr-slate-700);
}
::selection { background: var(--fr-primary-100); color: var(--fr-primary-900); }

/* Global link colour */
a { color: var(--fr-link); }
a:hover { color: var(--fr-link-hover); }

/* Scroll-triggered animations */
@keyframes frFadeInUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes frFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes frScaleIn {
  from { opacity: 0; transform: scale(0.96); }
  to   { opacity: 1; transform: scale(1); }
}
.fr-animate { opacity: 0; }
.fr-animate.fr-visible { animation: frFadeInUp 0.45s cubic-bezier(.2,0,.2,1) forwards; }

/* Scroll-driven animations (2026 progressive enhancement) */
@supports (animation-timeline: view()) {
  .fr-animate {
    opacity: 0; transform: translateY(16px);
    animation: frFadeInUp 1s ease both;
    animation-timeline: view();
    animation-range: entry 0% entry 30%;
  }
  .fr-animate--scale {
    animation-name: frScaleIn;
  }
}
.fr-animate--fade.fr-visible { animation-name: frFadeIn; }
.fr-animate--scale.fr-visible { animation-name: frScaleIn; }
.fr-delay-1 { animation-delay: 80ms; }
.fr-delay-2 { animation-delay: 160ms; }
.fr-delay-3 { animation-delay: 240ms; }
.fr-delay-4 { animation-delay: 320ms; }
.fr-delay-5 { animation-delay: 400ms; }
.fr-delay-6 { animation-delay: 480ms; }

/* Noise overlay — removed for 2026 clean aesthetic */
.fr-noise::after { display: none; }

/* =============================================
   Homepage — Hero
   ============================================= */
.fr-home-hero {
  position: relative;
  background: var(--fr-slate-50);
  display: flex; align-items: center;
  padding: 100px 0 260px; overflow: hidden;
}
.fr-home-hero__glow,
.fr-home-hero__glow-accent { display: none; }
.fr-home-hero__content {
  position: relative; z-index: 2;
  text-align: center; max-width: 800px; margin: 0 auto;
}
.fr-home-hero__badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--fr-primary-50);
  color: var(--fr-primary-600); padding: 8px 22px; border-radius: 100px;
  font-size: 13px; font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; margin-bottom: 28px;
}
.fr-home-hero__title {
  font-family: var(--fr-font-display);
  font-size: clamp(2.25rem, 5vw, 3.75rem);
  font-weight: 700; color: var(--fr-slate-900); line-height: 1.12;
  margin-bottom: 24px; letter-spacing: -0.025em;
}
.fr-home-hero__title span {
  color: inherit;
}
.fr-home-hero__subtitle {
  font-size: 1.125rem; color: var(--fr-slate-500);
  line-height: 1.75; margin-bottom: 44px;
  max-width: 560px; margin-left: auto; margin-right: auto;
}
.fr-home-hero__actions { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }
.fr-home-hero__wave { display: none; }
.fr-home-hero__wave svg { width: 100%; height: auto; }

/* Hero Card Preview Strip */
.fr-hero-preview {
  position: relative;
  z-index: 4;
  margin-top: -180px;
  margin-bottom: 0;
  pointer-events: none; /* let clicks pass to cards only */
}
.fr-hero-preview__label {
  pointer-events: none;
  position: relative;
  z-index: 5;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--fr-slate-400);
  margin: 0 0 28px;
}
.fr-hero-preview__strip {
  display: flex;
  gap: 20px;
  justify-content: center;
  align-items: flex-end;
  padding: 0 20px;
}
.fr-hero-card {
  pointer-events: all;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow:
    0 4px 6px rgba(0,0,0,0.04),
    0 10px 30px rgba(0,0,0,0.09),
    0 2px 4px rgba(0,0,0,0.04);
  width: 270px;
  flex-shrink: 0;
  text-decoration: none;
  color: inherit;
  transition: transform 0.35s cubic-bezier(.4,0,.2,1), box-shadow 0.35s ease;
}
.fr-hero-card--center {
  transform: translateY(-18px);
  box-shadow:
    0 8px 10px rgba(0,0,0,0.05),
    0 20px 50px rgba(0,0,0,0.13),
    0 4px 8px rgba(0,0,0,0.05);
}
.fr-hero-card:hover {
  transform: translateY(-6px);
  box-shadow:
    0 12px 16px rgba(0,0,0,0.07),
    0 24px 48px rgba(0,0,0,0.13);
}
.fr-hero-card--center:hover {
  transform: translateY(-24px);
}
.fr-hero-card__thumb {
  height: 158px;
  overflow: hidden;
  position: relative;
}
.fr-hero-card__thumb img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.5s cubic-bezier(.4,0,.2,1);
}
.fr-hero-card:hover .fr-hero-card__thumb img {
  transform: scale(1.04);
}
.fr-hero-card__info {
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-top: 1px solid var(--fr-slate-100);
}
.fr-hero-card__name {
  font-size: 13px;
  font-weight: 600;
  color: var(--fr-slate-700);
  line-height: 1.35;
}

/* Trust bar needs top padding so cards don't overlap stats */
.fr-trust-bar { background: #fff; padding-top: 48px; }

/* Mobile: hide side cards, show only center */
@media (max-width: 767px) {
  .fr-hero-preview__strip { gap: 12px; }
  .fr-hero-card { width: 200px; }
  .fr-hero-card__thumb { height: 120px; }
  .fr-home-hero { padding-bottom: 160px; }
}
@media (max-width: 599px) {
  .fr-hero-card:not(.fr-hero-card--center) { display: none; }
  .fr-hero-card--center { transform: translateY(0); width: 280px; }
}

/* Home Search (between trust bar and programs) */
.fr-home-search {
  background: #fff; padding: 32px 0;
  border-top: 1px solid var(--fr-slate-100);
  border-bottom: 1px solid var(--fr-slate-100);
}
.fr-home-search__row {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  flex-wrap: wrap;
}
.fr-home-search__form {
  position: relative; flex-shrink: 0;
}
.fr-home-search__form svg {
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  color: var(--fr-slate-500); pointer-events: none;
}
.fr-home-search__form input[type="text"] {
  width: 320px; padding: 10px 14px 10px 38px;
  background: var(--fr-slate-50); border: 1px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-xl); font-size: 14px;
  color: var(--fr-slate-800); outline: none;
  font-family: var(--fr-font-body);
  transition: border-color var(--fr-transition-fast), box-shadow var(--fr-transition-fast), background var(--fr-transition-fast);
}
.fr-home-search__form input[type="text"]::placeholder { color: var(--fr-slate-400); }
.fr-home-search__form input[type="text"]:focus {
  background: #fff; border-color: var(--fr-primary-500);
  box-shadow: 0 0 0 3px rgba(30,26,22,0.12);
}
.fr-home-search__pills {
  display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
}
.fr-home-search__pills a {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 7px 14px; border: 1px solid var(--fr-slate-200);
  border-radius: 100px; font-size: 13px; font-weight: 600;
  color: var(--fr-slate-600); text-decoration: none;
  background: var(--fr-slate-50);
  white-space: nowrap; transition: all var(--fr-transition-fast);
}
.fr-home-search__pills a svg {
  flex-shrink: 0; color: var(--fr-accent-700); opacity: 0.75;
  transition: opacity var(--fr-transition-fast);
}
.fr-home-search__pills a:hover svg { opacity: 1; }
.fr-home-search__pills a:hover {
  border-color: var(--fr-primary-300); color: var(--fr-primary-700);
  background: var(--fr-primary-50);
}
@media (max-width: 767px) {
  .fr-home-search__row { flex-direction: column; }
  .fr-home-search__form input[type="text"] { width: 260px; }
}

/* =============================================
   Life Stage Selector Block
   ============================================= */
.fr-life-stage-block {
  background: #fff;
  padding: 40px 0 44px;
  border-top: 1px solid var(--fr-slate-100);
  border-bottom: 1px solid var(--fr-slate-100);
}
.fr-life-stage-block__heading {
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fr-slate-400);
  margin: 0 0 20px;
}
.fr-life-stage-block__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.fr-life-stage-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  padding: 24px 16px 22px;
  background: var(--fr-slate-50);
  border: 1.5px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-lg);
  text-decoration: none;
  color: var(--fr-slate-700);
  transition: var(--fr-transition-base);
}
.fr-life-stage-tile:hover {
  border-color: var(--fr-accent-400);
  background: #fff;
  transform: translateY(-3px);
  box-shadow: var(--fr-shadow-medium);
}
.fr-life-stage-tile__icon {
  font-size: 28px;
  line-height: 1;
  margin-bottom: 4px;
}
.fr-life-stage-tile__label {
  font-family: var(--fr-font-display);
  font-size: 1rem;
  font-weight: 700;
  color: var(--fr-plum);
  line-height: 1.2;
}
.fr-life-stage-tile__sub {
  font-size: 12px;
  color: var(--fr-slate-400);
  line-height: 1.4;
}
.fr-life-stage-block__quiz-link {
  text-align: center;
  margin: 18px 0 0;
  font-size: 13px;
  color: var(--fr-slate-400);
}
.fr-life-stage-block__quiz-link a {
  color: var(--fr-accent-600);
  text-decoration: none;
  font-weight: 600;
}
.fr-life-stage-block__quiz-link a:hover {
  text-decoration: underline;
}
@media (max-width: 767px) {
  .fr-life-stage-block__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .fr-life-stage-tile { padding: 18px 12px; }
  .fr-life-stage-tile__icon { font-size: 22px; }
  .fr-life-stage-tile__label { font-size: 0.9rem; }
}

/* Trust / Stats Bar */
.fr-trust-bar { background: #fff; }
.fr-trust-bar__grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 24px; padding: 48px 0; text-align: center;
}
.fr-trust-bar__stat { position: relative; }
.fr-trust-bar__stat:not(:last-child)::after {
  content: ''; position: absolute; right: 0; top: 20%; height: 60%;
  width: 1px; background: var(--fr-slate-200);
}
.fr-trust-bar__number {
  font-family: var(--fr-font-display);
  font-size: 2.5rem; font-weight: 800; line-height: 1; margin-bottom: 4px;
}
.fr-trust-bar__number--primary { color: var(--fr-accent-600); }
.fr-trust-bar__number--accent { color: var(--fr-accent-600); }
.fr-trust-bar__number--dark { color: var(--fr-plum); }
.fr-trust-bar__label { font-size: 14px; font-weight: 500; color: var(--fr-slate-500); }

/* Homepage Sections */
.fr-home-section { padding: 64px 0; background: var(--fr-slate-50); }
.fr-home-section + .fr-home-section { padding-top: 0; overflow: hidden; }
.fr-home-section--white { background: #fff; }
.fr-home-section--guides { background: #fff; }
.fr-home-section__header { text-align: center; margin-bottom: 40px; }
.fr-home-section__header h2 {
  font-family: var(--fr-font-display); font-size: 2rem;
  font-weight: 700; color: var(--fr-plum); margin-bottom: 14px;
  letter-spacing: -0.015em;
}
.fr-home-section__header h2::after { display: none; }
.fr-home-section__header p { color: var(--fr-slate-400); font-size: 1rem; max-width: 520px; margin: 0 auto; line-height: 1.7; }
.fr-home-section__cta { text-align: center; margin-top: 36px; }

/* Program Cards — micro-interactions */
.fr-home-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.fr-program-card {
  display: flex; flex-direction: column; background: #fff;
  border-radius: var(--fr-radius-2xl);
  overflow: hidden; text-decoration: none; color: inherit;
  box-shadow: var(--fr-shadow-soft);
  transition: box-shadow var(--fr-transition-base);
  position: relative;
}
.fr-program-card:hover {
  box-shadow: var(--fr-shadow-medium);
  color: inherit;
}
.fr-program-card__top { position: relative; }
.fr-program-card__thumb {
  aspect-ratio: 16/9; overflow: hidden; position: relative;
  background: linear-gradient(135deg, var(--fr-slate-200), var(--fr-slate-100));
}
.fr-program-card__thumb::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to bottom,
    rgba(0,0,0,0)    30%,
    rgba(0,0,0,0.55) 100%
  );
  pointer-events: none;
}
.fr-program-card__thumb img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.5s cubic-bezier(.4,0,.2,1);
  display: block;
}
.fr-program-card:hover .fr-program-card__thumb img { transform: scale(1.02); }
.fr-program-card__top .fr-score-badge {
  position: absolute; top: 12px; right: 12px;
  backdrop-filter: blur(8px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.fr-program-card__body { padding: 28px; flex: 1; display: flex; flex-direction: column; }
.fr-program-card__title {
  font-family: var(--fr-font-display); font-size: 1.125rem;
  font-weight: 600; color: var(--fr-plum); margin-bottom: 8px;
  transition: color var(--fr-transition-fast);
}
.fr-program-card:hover .fr-program-card__title { color: var(--fr-primary-600); }
.fr-program-card__verdict { font-size: 14px; color: var(--fr-slate-500); line-height: 1.65; margin-bottom: 12px; flex: 1; }
.fr-program-card__stages { display: flex; gap: 6px; margin-bottom: 14px; }
.fr-ls-pip { font-size: 18px; opacity: 0.18; transition: opacity .2s; line-height: 1; }
.fr-ls-pip--on { opacity: 1; }
.fr-program-card__meta { display: flex; flex-wrap: wrap; gap: 8px; }

/* Methodology — bento grid */
.fr-home-methodology {
  padding: 100px 0;
  background: #fff;
}
.fr-home-methodology__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.fr-home-methodology__text h2 {
  font-family: var(--fr-font-display); font-size: 2rem;
  font-weight: 700; color: var(--fr-plum); margin-bottom: 16px;
  letter-spacing: -0.015em;
}
.fr-home-methodology__text > p { color: var(--fr-slate-600); line-height: 1.75; margin-bottom: 24px; font-size: 1.0625rem; }
.fr-home-criteria-preview {
  background: #fff;
  border-radius: var(--fr-radius-2xl); padding: 28px;
  box-shadow: var(--fr-shadow-medium);
}
.fr-home-criteria-row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--fr-slate-100); font-size: 14px; }
.fr-home-criteria-row:last-child { border-bottom: none; }
.fr-home-criteria-row__name { color: var(--fr-slate-700); font-weight: 500; }
.fr-home-criteria-row__weight {
  color: var(--fr-accent-600); font-weight: 700;
  background: var(--fr-accent-50); padding: 2px 10px; border-radius: 100px; font-size: 13px;
}
.fr-home-methodology__visual { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.fr-home-methodology__card {
  background: #fff;
  border-radius: var(--fr-radius-2xl); padding: 28px;
  box-shadow: var(--fr-shadow-soft);
  transition: box-shadow var(--fr-transition-base);
}
.fr-home-methodology__card:hover { box-shadow: var(--fr-shadow-medium); }
.fr-home-methodology__card:first-child {
  grid-column: 1 / -1;
  background: var(--fr-slate-50);
}
.fr-home-methodology__icon {
  font-size: 1.75rem; margin-bottom: 14px;
  width: 48px; height: 48px; display: flex; align-items: center; justify-content: center;
  background: var(--fr-slate-50); border-radius: var(--fr-radius-lg);
}
.fr-home-methodology__card:first-child .fr-home-methodology__icon { background: var(--fr-primary-100); }
.fr-home-methodology__card h3 { font-size: 1rem; font-weight: 700; color: var(--fr-plum); margin-bottom: 6px; }
.fr-home-methodology__card p { font-size: 14px; color: var(--fr-slate-600); margin: 0; line-height: 1.6; }

/* Quiz CTA — soft */
.fr-home-quiz-cta {
  position: relative; padding: 100px 0;
  background: var(--fr-slate-50);
  overflow: hidden;
}
.fr-home-quiz-cta__inner { position: relative; z-index: 1; text-align: center; max-width: 600px; margin: 0 auto; }
.fr-home-quiz-cta__inner h2 {
  font-family: var(--fr-font-display); font-size: 2.25rem;
  font-weight: 700; color: var(--fr-plum); margin-bottom: 16px; letter-spacing: -0.015em;
}
.fr-home-quiz-cta__inner p { color: var(--fr-slate-600); font-size: 1.125rem; line-height: 1.7; margin-bottom: 32px; }
.fr-home-quiz-cta .fr-btn--primary { background: var(--fr-primary-600); color: #fff; padding: 16px 32px; font-size: 1rem; box-shadow: 0 2px 8px rgba(30,26,22,0.25); }
.fr-home-quiz-cta .fr-btn--primary:hover {
  background: var(--fr-primary-700); box-shadow: var(--fr-shadow-glow-primary);
  transform: translateY(-1px);
}

/* Guide Cards */
.fr-home-guides-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.fr-guide-card {
  display: flex; flex-direction: column; background: #fff;
  border-radius: var(--fr-radius-2xl);
  overflow: hidden; text-decoration: none; color: inherit;
  box-shadow: var(--fr-shadow-soft);
  transition: box-shadow var(--fr-transition-base);
}
.fr-guide-card:hover {
  box-shadow: var(--fr-shadow-medium);
  color: inherit;
}
.fr-guide-card__thumb {
  aspect-ratio: 16/9; overflow: hidden; position: relative;
  background: linear-gradient(135deg, var(--fr-slate-200), var(--fr-slate-100));
}
.fr-guide-card__thumb::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to bottom,
    rgba(0,0,0,0)    30%,
    rgba(0,0,0,0.55) 100%
  );
  pointer-events: none;
}
.fr-guide-card__thumb img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.5s cubic-bezier(.4,0,.2,1);
  display: block;
}
.fr-guide-card:hover .fr-guide-card__thumb img { transform: scale(1.02); }
.fr-guide-card__body { padding: 24px; }
.fr-guide-card__date { font-size: 13px; color: var(--fr-slate-400); font-weight: 500; text-transform: uppercase; letter-spacing: 0.04em; }
.fr-guide-card__body h3 {
  font-size: 1.0625rem; font-weight: 600; color: var(--fr-plum);
  margin: 8px 0 10px; line-height: 1.4; transition: color var(--fr-transition-fast);
}
.fr-guide-card:hover .fr-guide-card__body h3 { color: var(--fr-primary-600); }
.fr-guide-card__body p { font-size: 14px; color: var(--fr-slate-600); line-height: 1.6; margin: 0; }

/* Homepage responsive */
@media (max-width: 767px) {
  .fr-home-hero { min-height: auto; padding: 64px 0 48px; }
  .fr-home-section { padding: 48px 0; }
  .fr-home-methodology { padding: 48px 0; }
  .fr-home-quiz-cta { padding: 48px 0; }
  .fr-home-quiz-cta__inner h2 { font-size: 1.75rem; }
  .fr-home-grid, .fr-home-guides-grid { grid-template-columns: 1fr; }
  .fr-home-methodology__inner { grid-template-columns: 1fr; }
  .fr-home-methodology__visual { grid-template-columns: 1fr; }
  .fr-home-methodology__card:first-child { grid-column: auto; }
  .fr-trust-bar__grid { grid-template-columns: repeat(2, 1fr); gap: 20px; padding: 24px 0; }
  .fr-trust-bar__stat:not(:last-child)::after { display: none; }
  .fr-trust-bar__number { font-size: 1.75rem; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .fr-home-grid, .fr-home-guides-grid { grid-template-columns: repeat(2, 1fr); }
}

/* =============================================
   REHub Overrides
   ============================================= */
.rate-bar-bar { background: linear-gradient(90deg, var(--fr-accent-600), var(--fr-accent-300)) !important; }
.rh-container { max-width: 1280px; }
.rh_tab_container .re_vreview, .top_chart_wrap { border-radius: var(--fr-radius-xl); overflow: hidden; }
body .wpsm-button { border-radius: var(--fr-radius-lg); font-weight: 700; }
body .wpsm-button.rehub_main_btn { box-shadow: 0 2px 8px rgba(30,26,22,0.25); }
body .wpsm-button.rehub_main_btn:hover { transform: translateY(-1px); box-shadow: var(--fr-shadow-glow-primary); }

/* Score badge */
.fr-score-badge {
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; border-radius: var(--fr-radius-lg);
  font-size: 18px; font-weight: 700; color: #fff;
  font-family: var(--fr-font-display); letter-spacing: -0.02em;
}
.fr-score-badge--high { background: #A07B3D !important; }
.fr-score-badge--mid  { background: var(--fr-warning) !important; }
.fr-score-badge--low  { background: var(--fr-slate-400) !important; }
.fr-score-badge--lg   { width: 64px; height: 64px; font-size: 24px; border-radius: var(--fr-radius-xl); }

/* =============================================
   Single Review Layout
   ============================================= */
.fr-overall-score-block {
  background: #fff;
  border-radius: var(--fr-radius-2xl); padding: 40px; margin-bottom: 40px;
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 24px;
  box-shadow: var(--fr-shadow-medium);
}
.fr-overall-score-block__number { font-size: 3.5rem; font-weight: 800; color: var(--fr-accent-600); line-height: 1; font-family: var(--fr-font-display); }
.fr-overall-score-block__number span { font-size: 1.75rem; color: var(--fr-slate-500); }
.fr-overall-score-block__label { font-size: 15px; font-weight: 600; color: var(--fr-slate-700); margin-top: 4px; }
.fr-overall-score-block__sub { font-size: 13px; color: var(--fr-slate-500); margin-top: 4px; }
.fr-overall-score-block__right { text-align: right; }
.fr-overall-score-block__price-label { font-size: 13px; color: var(--fr-slate-500); }
.fr-overall-score-block__price { font-size: 2.25rem; font-weight: 800; color: var(--fr-accent-600); font-family: var(--fr-font-display); }

.fr-review-section { margin-bottom: 56px; }
.fr-review-section h2 { font-size: 1.5rem; font-weight: 700; margin-bottom: 20px; padding-bottom: 14px; border-bottom: 1px solid var(--fr-slate-100); }
.fr-review-section__verdict { font-size: 18px; line-height: 1.7; color: var(--fr-slate-700); }

.fr-review-toc { background: var(--fr-slate-50); border-radius: var(--fr-radius-xl); padding: 28px; margin-bottom: 48px; }
.fr-review-toc__title { font-size: 18px; font-weight: 700; color: var(--fr-plum); margin-bottom: 12px; }
.fr-review-toc__links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; font-size: 14px; }

.fr-key-facts { background: var(--fr-slate-50); border-radius: var(--fr-radius-xl); padding: 24px; }
.fr-key-facts__grid { display: grid; grid-template-columns: repeat(2, 1fr); }
.fr-key-facts__item { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--fr-slate-200); }
.fr-key-facts__item dt { color: var(--fr-slate-500); }
.fr-key-facts__item dd { font-weight: 600; color: var(--fr-plum); }

.fr-fit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.fr-fit-card { border-radius: var(--fr-radius-xl); padding: 24px; border: 2px solid; }
.fr-fit-card--best { background: var(--fr-success-light); border-color: #C6E6D5; }
.fr-fit-card--best h3 { color: #1C6B4A; font-size: 1.125rem; margin-bottom: 12px; }
.fr-fit-card--not { background: var(--fr-danger-light); border-color: #E8C5C5; }
.fr-fit-card--not h3 { color: #8B3A3A; font-size: 1.125rem; margin-bottom: 12px; }
.fr-fit-card ul { list-style: none; padding: 0; margin: 0; }
.fr-fit-card li { padding: 6px 0 6px 20px; position: relative; color: var(--fr-slate-700); }
.fr-fit-card--best li::before { content: '✓'; position: absolute; left: 0; color: var(--fr-success); font-weight: bold; }
.fr-fit-card--not li::before { content: '✗'; position: absolute; left: 0; color: var(--fr-danger); font-weight: bold; }

.fr-rating-details { margin-top: 24px; }
.fr-rating-detail { background: #fff; border-radius: var(--fr-radius-lg); padding: 24px; margin-bottom: 12px; box-shadow: var(--fr-shadow-soft); transition: box-shadow var(--fr-transition-fast); }
.fr-rating-detail:hover { box-shadow: var(--fr-shadow-medium); }
.fr-rating-detail__header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 8px; }
.fr-rating-detail__header h3 { font-size: 1.125rem; margin: 0; }
.fr-rating-detail__score { font-size: 1.75rem; font-weight: 800; color: var(--fr-accent-600); white-space: nowrap; font-family: var(--fr-font-display); }
.fr-rating-detail__score span { font-size: 1rem; color: var(--fr-slate-400); }
.fr-rating-detail p { color: var(--fr-slate-600); margin: 0; line-height: 1.6; }

.fr-criteria-row { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--fr-slate-100); }
.fr-criteria-row:last-child { border-bottom: none; }
.fr-criteria-row__label { flex: 0 0 180px; font-size: 14px; font-weight: 500; color: var(--fr-slate-600); }
.fr-criteria-row__bar { flex: 1; height: 8px; background: var(--fr-slate-200); border-radius: 9999px; overflow: hidden; }
.fr-criteria-row__fill { height: 100%; border-radius: 9999px; width: 0; background: linear-gradient(90deg, var(--fr-accent-600), var(--fr-accent-300)); transition: width 0.8s cubic-bezier(.4,0,.2,1); }
.fr-criteria-row__score { flex: 0 0 40px; text-align: right; font-size: 14px; font-weight: 700; color: var(--fr-accent-600); }

.fr-pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
.fr-pricing-card { background: #fff; border-radius: var(--fr-radius-xl); padding: 28px; text-align: center; box-shadow: var(--fr-shadow-soft); transition: box-shadow var(--fr-transition-base); }
.fr-pricing-card:hover { box-shadow: var(--fr-shadow-medium); }
.fr-pricing-card__amount { font-size: 1.75rem; font-weight: 800; color: var(--fr-plum); font-family: var(--fr-font-display); }
.fr-pricing-card__period { color: var(--fr-slate-500); margin-bottom: 8px; }

.fr-community-agg { background: var(--fr-slate-50); border: 1px solid var(--fr-slate-200); border-radius: var(--fr-radius-xl); padding: 24px; display: flex; align-items: center; gap: 16px; margin-bottom: 24px; }
.fr-community-agg__score { font-size: 3rem; font-weight: 800; color: var(--fr-plum); font-family: var(--fr-font-display); }
.fr-community-agg__score span { font-size: 1.25rem; color: var(--fr-slate-400); }
.fr-community-agg__stars { font-size: 1.5rem; color: #EAB308; }
.fr-community-agg__count { color: var(--fr-slate-500); font-size: 14px; }

.fr-faq-item { border-radius: var(--fr-radius-lg); margin-bottom: 8px; overflow: hidden; box-shadow: var(--fr-shadow-soft); border: 1px solid var(--fr-slate-200); transition: box-shadow var(--fr-transition-fast), border-color var(--fr-transition-fast); }
.fr-faq-item:hover { box-shadow: var(--fr-shadow-medium); border-color: var(--fr-slate-300); }
.fr-faq-item__question { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; font-weight: 600; color: var(--fr-plum); background: #fff; }
.fr-faq-item__answer { padding: 0 20px 16px; color: var(--fr-slate-600); line-height: 1.7; display: block; }
.fr-faq-item__chevron { display: none; }
.fr-faq-item__answer p { margin-bottom: 12px; }
.fr-faq-item__answer p:last-child { margin-bottom: 0; }

.fr-disclosure { background: var(--fr-slate-100); border: 1px solid var(--fr-slate-300); border-radius: var(--fr-radius-lg); padding: 16px; font-size: 14px; color: var(--fr-slate-500); margin-top: 32px; }

/* Prose */
.fr-review-article.prose { color: var(--fr-slate-700); line-height: 1.75; font-size: 16px; }
.fr-review-article.prose h2 { font-size: 1.5rem; font-weight: 700; color: var(--fr-plum); margin-top: 56px; margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--fr-slate-100); }
.fr-review-article.prose h3 { font-size: 1.1875rem; font-weight: 600; color: var(--fr-plum); margin-top: 36px; margin-bottom: 16px; }
.fr-review-article.prose p { margin-bottom: 16px; }
.fr-review-article.prose strong { color: var(--fr-plum); }
.fr-review-article.prose a { color: var(--fr-link); }
.fr-review-article.prose a:hover { color: var(--fr-link-hover); }
.fr-review-article.prose ul, .fr-review-article.prose ol { padding-left: 0; margin: 16px 0; list-style: none; }
.fr-review-article.prose li { margin-bottom: 10px; padding-left: 24px; position: relative; }
.fr-review-article.prose ul > li::before { content: ''; position: absolute; left: 4px; top: 10px; width: 8px; height: 8px; border-radius: 50%; background: var(--fr-primary-400); }
.fr-review-article.prose ol { counter-reset: fr-ol; }
.fr-review-article.prose ol > li { counter-increment: fr-ol; }
.fr-review-article.prose ol > li::before { content: counter(fr-ol); position: absolute; left: 0; top: 1px; width: 20px; height: 20px; border-radius: 50%; background: var(--fr-primary-100); color: var(--fr-primary-700); font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.fr-callout ul > li::before, .fr-pros-col ul > li::before, .fr-cons-col ul > li::before, .fr-fit-card ul > li::before, .fr-tldr-block ul > li::before, .fr-verdict-box ul > li::before { background: var(--fr-slate-800) !important; }
.fr-review-article.prose table { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--fr-radius-xl); overflow: hidden; margin: 24px 0; box-shadow: var(--fr-shadow-soft); }
.fr-review-article.prose thead { border-bottom: 2px solid var(--fr-slate-200); }
.fr-review-article.prose th { background: var(--fr-slate-50); padding: 12px 16px; text-align: left; font-size: 13px; font-weight: 600; color: var(--fr-slate-600); border: 1px solid var(--fr-slate-200); }
.fr-review-article.prose td { padding: 12px 16px; border: 1px solid var(--fr-slate-100); font-size: 14px; }

/* Callouts */
.fr-callout { border-radius: 0 var(--fr-radius-lg) var(--fr-radius-lg) 0; padding: 20px; margin: 24px 0; }
.fr-callout h4 { font-weight: 700; margin-bottom: 8px; margin-top: 0; }
.fr-callout p:last-child { margin-bottom: 0; }
.fr-callout--info { background: var(--fr-primary-50); border-left: 4px solid var(--fr-primary-500); }
.fr-callout--success { background: var(--fr-success-light); border-left: 4px solid var(--fr-success); }
.fr-callout--warning { background: var(--fr-warning-light); border-left: 4px solid var(--fr-warning); border-radius: var(--fr-radius-lg); }
.fr-callout--danger { background: var(--fr-danger-light); border-left: 4px solid var(--fr-danger); border-radius: var(--fr-radius-lg); }
.fr-callout--danger h4 { color: #991B1B; }
.fr-callout--warning h4 { color: #92400E; }

/* Rich review blocks (BODi) */
.fr-tldr-block { background: var(--fr-slate-50); border: 1px solid var(--fr-slate-200); border-radius: var(--fr-radius-2xl); padding: 32px; margin-bottom: 48px; }
.fr-tldr-block h2 { font-size: 1.5rem; font-weight: 800; margin-bottom: 4px; border: none; padding-bottom: 0; margin-top: 0; }
.fr-meta { font-size: 14px; color: var(--fr-slate-500); margin-bottom: 24px; }
.fr-tldr-grid { display: grid; grid-template-columns: 1fr 1fr; }
.fr-tldr-row { display: block; padding: 10px 0; border-bottom: 1px solid var(--fr-slate-200); font-size: 14px; }
.fr-tldr-label { display: block; font-weight: 600; color: var(--fr-slate-600); margin-bottom: 2px; }
.fr-tldr-value { display: block; color: var(--fr-plum); text-align: left; }
.fr-tldr-highlight { grid-column: 1 / -1; }
.fr-score-big { font-size: 1.75rem; font-weight: 800; color: var(--fr-accent-600); }
.fr-verdict-box { background: #fff; border: 2px solid #BBF7D0; border-radius: var(--fr-radius-2xl); padding: 32px; margin-bottom: 48px; }
.fr-verdict-box h2 { margin-top: 0; border: none; padding-bottom: 0; }
.fr-verdict-lead { font-size: 1.125rem; font-weight: 400; color: var(--fr-slate-800); margin-bottom: 16px; }
.fr-review-article.prose .fr-verdict-lead strong { font-weight: 700; color: #15803D; }
.fr-verdict-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.fr-tag { display: inline-flex; align-items: center; padding: 4px 12px; border-radius: 9999px; font-size: 14px; font-weight: 600; }
.fr-tag--score { background: var(--fr-primary-100); color: var(--fr-primary-800); }
.fr-tag--cost { background: #DCFCE7; color: #166534; }
.fr-tag--trial { background: var(--fr-primary-100); color: var(--fr-primary-800); }
.fr-tag--cancel { background: var(--fr-slate-100); color: var(--fr-slate-800); }
.fr-tag--equip    { background: #FEF9C3; color: #854D0E; }
.fr-tag--delivery { background: #F1F0EE; color: #4B4540; }
.fr-tag--impact-low  { background: #DCFCE7; color: #166534; }
.fr-tag--impact-mod  { background: #FEF3C7; color: #92400E; }
.fr-tag--impact-high { background: #FEE2E2; color: #991B1B; }
.fr-jump-sections { background: #fff; border: 1px solid var(--fr-slate-200); border-radius: var(--fr-radius-xl); padding: 24px; margin-bottom: 48px; }
.fr-jump-sections h3 { font-weight: 700; margin-bottom: 16px; margin-top: 0; }
.fr-jump-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; font-size: 14px; }
.fr-jump-grid a { color: var(--fr-link); text-decoration: none; }
.fr-jump-grid a:hover { text-decoration: underline; }
.fr-equipment-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 32px 0; }
.fr-equipment-card { background: var(--fr-slate-50); border: 1px solid var(--fr-slate-200); border-radius: var(--fr-radius-xl); padding: 24px; text-align: center; }
.fr-equipment-icon { font-size: 2.5rem; margin-bottom: 12px; display: block; }
.fr-equipment-card h4 { font-weight: 700; margin-bottom: 8px; }
.fr-equipment-item { background: var(--fr-slate-50); border: 1px solid var(--fr-slate-200); border-radius: var(--fr-radius-xl); padding: 24px; }
.fr-equipment-item strong { display: block; font-weight: 700; color: var(--fr-plum); margin-bottom: 6px; }
.fr-equipment-price { font-size: 1.25rem; font-weight: 800; color: var(--fr-primary-700); margin-top: 8px; }
.fr-equipment-note { font-size: 12px; color: var(--fr-slate-500); margin-top: 4px; }
.fr-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.fr-last-updated { font-size: 14px; color: var(--fr-slate-500); margin-bottom: 24px; }
.fr-risk-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 32px 0; }
.fr-risk-card { border-radius: var(--fr-radius-lg); padding: 16px; }
.fr-risk--low { background: var(--fr-success-light); border-left: 4px solid var(--fr-success); }
.fr-risk--vlow { background: #ECFDF5; border-left: 4px solid #059669; }
.fr-risk-badge { display: inline-block; background: var(--fr-success); color: #fff; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 4px; margin-right: 8px; }
.fr-risk--vlow .fr-risk-badge { background: #059669; }
.fr-risk--med { background: var(--fr-warning-light); border-left: 4px solid var(--fr-warning); }
.fr-risk--med .fr-risk-badge { background: var(--fr-warning); }
.fr-risk--high { background: var(--fr-danger-light); border-left: 4px solid var(--fr-danger); }
.fr-risk--high .fr-risk-badge { background: var(--fr-danger); }
.fr-risk-label { font-weight: 700; color: var(--fr-plum); }
.fr-risk-card p { font-size: 14px; color: var(--fr-slate-600); margin: 8px 0 0; }
.fr-adherence-ratings { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 32px 0; }
.fr-adherence-item { background: #fff; border: 1px solid var(--fr-slate-200); border-radius: var(--fr-radius-lg); padding: 16px; transition: border-color var(--fr-transition-fast); }
.fr-adherence-item:hover { border-color: var(--fr-primary-200); }
.fr-adherence-label { display: inline-block; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 4px; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.04em; background: var(--fr-slate-100); color: var(--fr-slate-600); }
.fr-adherence-item--low { background: var(--fr-success-light); border: none; border-left: 4px solid var(--fr-success); }
.fr-adherence-item--low .fr-adherence-label { background: var(--fr-success); color: #fff; }
.fr-adherence-item--vlow { background: #ECFDF5; border: none; border-left: 4px solid #059669; }
.fr-adherence-item--vlow .fr-adherence-label { background: #059669; color: #fff; }
.fr-adherence-item--moderate { background: var(--fr-warning-light); border: none; border-left: 4px solid var(--fr-warning); }
.fr-adherence-item--moderate .fr-adherence-label { background: var(--fr-warning); color: #fff; }
.fr-adherence-item--high { background: var(--fr-danger-light); border: none; border-left: 4px solid var(--fr-danger); }
.fr-adherence-item--high .fr-adherence-label { background: var(--fr-danger); color: #fff; }
.fr-adherence-item--mhigh { background: #FFF7ED; border: none; border-left: 4px solid #F97316; }
.fr-adherence-item--mhigh .fr-adherence-label { background: #F97316; color: #fff; }
.fr-adherence-item strong { display: block; font-weight: 700; color: var(--fr-plum); margin-bottom: 4px; }
.fr-final-score { background: var(--fr-slate-50); border: 2px solid var(--fr-slate-200); border-radius: var(--fr-radius-2xl); padding: 32px; text-align: center; color: var(--fr-slate-700); margin: 32px 0; }
.fr-final-score__label { font-size: 14px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--fr-slate-500); margin-bottom: 4px; }
.fr-final-score__number { font-size: 3.5rem; font-weight: 800; margin: 0; color: var(--fr-accent-600); }
.fr-final-score__number span { font-size: inherit; color: var(--fr-slate-400); }
.fr-final-score__note { color: var(--fr-slate-500); margin-top: 4px; }
.fr-footer-note { background: var(--fr-slate-100); border: 1px solid var(--fr-slate-300); border-radius: var(--fr-radius-lg); padding: 16px; margin-top: 16px; font-size: 14px; color: var(--fr-slate-600); }
.fr-result-box { background: var(--fr-slate-50); border-radius: var(--fr-radius-lg); padding: 20px; margin: 24px 0; }
.fr-result-box p { margin-bottom: 4px; }
.fr-result-box p:last-child { margin-bottom: 0; }

/* Pros / Cons side-by-side grid (article body) */
.fr-pros-cons-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 24px 0; }
.fr-pros-col, .fr-cons-col { border-radius: var(--fr-radius-xl); padding: 24px; border: 2px solid; }
.fr-pros-col { background: var(--fr-success-light); border-color: #C6E6D5; }
.fr-pros-col h3 { color: #1C6B4A; font-size: 1.125rem; margin-top: 0; margin-bottom: 12px; }
.fr-cons-col { background: var(--fr-danger-light); border-color: #E8C5C5; }
.fr-cons-col h3 { color: #8B3A3A; font-size: 1.125rem; margin-top: 0; margin-bottom: 12px; }
.fr-pros-col ul, .fr-cons-col ul { list-style: none; padding: 0; margin: 0; }
.fr-pros-col li, .fr-cons-col li { padding: 6px 0 6px 20px; position: relative; color: var(--fr-slate-700); }
.fr-pros-col li::before { content: '✓'; position: absolute; left: 0; color: var(--fr-success); font-weight: bold; }
.fr-cons-col li::before { content: '✗'; position: absolute; left: 0; color: var(--fr-danger); font-weight: bold; }

@media (max-width: 767px) {
  .fr-criteria-row__label { flex: 0 0 120px; font-size: 13px; }
  .fr-fit-grid, .fr-key-facts__grid, .fr-tldr-grid, .fr-equipment-grid, .fr-risk-grid, .fr-pros-cons-grid, .fr-adherence-ratings { grid-template-columns: 1fr; }
  .fr-review-toc__links, .fr-jump-grid { grid-template-columns: 1fr 1fr; }
  .fr-overall-score-block { flex-direction: column; text-align: center; }
  .fr-overall-score-block__right { text-align: center; }
}

/* =============================================
   Quiz
   ============================================= */
.fr-quiz { max-width: 780px; margin: 0 auto; padding: 0 16px; }
.fr-quiz__start-hero { position: relative; text-align: center; padding: 80px 24px; background: var(--fr-slate-100); border: 1px solid var(--fr-slate-200); border-radius: var(--fr-radius-2xl); overflow: hidden; }
.fr-quiz__start-glow,
.fr-quiz__start-glow-accent { display: none; }
.fr-quiz__start-content { position: relative; z-index: 1; }
.fr-quiz__badge { display: inline-block; background: var(--fr-primary-50); color: var(--fr-primary-700); padding: 6px 16px; border-radius: 100px; font-size: 13px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 20px; }
.fr-quiz__start-title { font-family: var(--fr-font-display); font-size: 2.75rem; font-weight: 800; color: var(--fr-slate-900); margin-bottom: 16px; line-height: 1.15; }
.fr-quiz__start-title span { color: inherit; }
.fr-quiz__start-subtitle { font-size: 1.125rem; color: var(--fr-slate-600); max-width: 480px; margin: 0 auto 32px; line-height: 1.6; }
.fr-quiz__start-note { font-size: 13px; color: var(--fr-slate-400); margin-top: 16px; }
.fr-quiz__progress { margin-bottom: 32px; }
.fr-quiz__progress-info { display: flex; justify-content: space-between; font-size: 13px; color: var(--fr-slate-500); margin-bottom: 8px; font-weight: 500; }
.fr-quiz__progress-bar { height: 6px; background: var(--fr-slate-100); border-radius: 100px; overflow: hidden; }
.fr-quiz__progress-fill { height: 100%; background: linear-gradient(90deg, var(--fr-accent-600), var(--fr-accent-300)); border-radius: 100px; transition: width 0.4s ease; }
.fr-quiz__step { display: none; }
.fr-quiz__step.active { display: block; animation: frFadeUp 0.35s ease; }
@keyframes frFadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.fr-quiz__step h2 { font-family: var(--fr-font-display); font-size: 1.5rem; font-weight: 700; color: var(--fr-plum); margin-bottom: 8px; }
.fr-quiz__step > p { color: var(--fr-slate-500); margin-bottom: 24px; font-size: 15px; }
.fr-quiz__options { display: flex; flex-direction: column; gap: 10px; }
.fr-quiz__option { cursor: pointer; }
.fr-quiz__option input { position: absolute; opacity: 0; pointer-events: none; }
.fr-quiz__card { display: flex; align-items: center; gap: 14px; padding: 16px 20px; border: 2px solid var(--fr-slate-200); border-radius: var(--fr-radius-xl); background: #fff; transition: border-color 0.2s, box-shadow 0.2s, background 0.2s; }
.fr-quiz__card:hover { border-color: var(--fr-primary-300); box-shadow: 0 0 0 4px rgba(30,26,22,0.08); }
.fr-quiz__option.selected .fr-quiz__card { border-color: var(--fr-primary-500); background: rgba(30,26,22,0.04); box-shadow: 0 0 0 4px rgba(30,26,22,0.12); }
.fr-quiz__icon { font-size: 1.5rem; flex-shrink: 0; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: var(--fr-slate-50); border-radius: var(--fr-radius-lg); }
.fr-quiz__option.selected .fr-quiz__icon { background: rgba(30,26,22,0.1); }
.fr-quiz__card strong { display: block; font-weight: 600; color: var(--fr-plum); font-size: 15px; margin-bottom: 2px; }
.fr-quiz__card small { display: block; font-size: 13px; color: var(--fr-slate-500); }
.fr-quiz__nav { display: flex; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--fr-slate-100); }
.fr-quiz__loading { text-align: center; padding: 80px 0; }
.fr-quiz__spinner { width: 40px; height: 40px; border: 4px solid var(--fr-slate-200); border-top-color: var(--fr-primary-500); border-radius: 50%; animation: frSpin 0.8s linear infinite; margin: 0 auto 16px; }
@keyframes frSpin { to { transform: rotate(360deg); } }
.fr-quiz__loading p { color: var(--fr-slate-500); font-size: 15px; }
.fr-quiz__results-header { text-align: center; margin-bottom: 32px; }
.fr-quiz__results-header h2 { font-family: var(--fr-font-display); font-size: 2rem; font-weight: 800; color: var(--fr-plum); margin: 12px 0 8px; }
.fr-quiz__results-header p { color: var(--fr-slate-500); font-size: 15px; }
.fr-quiz__profile { background: var(--fr-slate-50); border-radius: var(--fr-radius-xl); padding: 20px 24px; margin-bottom: 32px; }
.fr-quiz__profile h3 { font-size: 14px; font-weight: 600; color: var(--fr-slate-500); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 12px; }
.fr-quiz__profile-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.fr-quiz__results-grid { display: grid; gap: 20px; }
.fr-quiz__result-card { position: relative; background: #fff; border-radius: var(--fr-radius-xl); padding: 28px; box-shadow: var(--fr-shadow-soft); transition: box-shadow 0.2s; }
.fr-quiz__result-card:hover { box-shadow: var(--fr-shadow-medium); }
.fr-quiz__result-card--best { box-shadow: var(--fr-shadow-medium), 0 0 0 2px var(--fr-primary-200); }
.fr-quiz__best-badge { position: absolute; top: -11px; left: 24px; background: var(--fr-primary-700); color: #fff; padding: 4px 14px; border-radius: 100px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.fr-quiz__result-top { display: flex; align-items: center; gap: 16px; margin-bottom: 12px; }
.fr-quiz__match-ring { position: relative; width: 56px; height: 56px; flex-shrink: 0; }
.fr-quiz__ring-svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.fr-quiz__ring-bg { fill: none; stroke: var(--fr-slate-100); stroke-width: 3; }
.fr-quiz__ring-fill { fill: none; stroke: var(--fr-accent-500); stroke-width: 3; stroke-linecap: round; }
.fr-quiz__match-pct { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; color: var(--fr-accent-600); }
.fr-quiz__result-top h3 { font-family: var(--fr-font-display); font-size: 1.125rem; font-weight: 700; color: var(--fr-plum); margin-bottom: 2px; }
.fr-quiz__ed-score { font-size: 13px; font-weight: 600; color: var(--fr-accent-600); }
.fr-quiz__result-verdict { color: var(--fr-slate-600); font-size: 14px; line-height: 1.6; margin-bottom: 12px; }
.fr-quiz__reasons { background: var(--fr-slate-50); border-radius: var(--fr-radius-lg); padding: 14px 18px; margin-bottom: 16px; font-size: 14px; }
.fr-quiz__reasons strong { display: block; font-size: 13px; color: var(--fr-slate-600); margin-bottom: 6px; }
.fr-quiz__reasons ul { list-style: none; padding: 0; margin: 0; }
.fr-quiz__reasons li { color: var(--fr-slate-700); padding: 3px 0; }
.fr-quiz__results-footer { display: flex; justify-content: center; gap: 12px; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--fr-slate-100); }

/* Buttons */
.fr-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 24px; font-size: 14px; font-weight: 700;
  border-radius: var(--fr-radius-lg); text-decoration: none;
  cursor: pointer; border: none; transition: all var(--fr-transition-base); font-family: inherit;
}
.fr-btn--primary { background: var(--fr-primary-600); color: #fff; }
.fr-btn--primary:hover { background: var(--fr-primary-700); box-shadow: var(--fr-shadow-glow-primary); color: #fff; }
.fr-btn--outline { background: transparent; color: var(--fr-slate-700); border: 1.5px solid var(--fr-slate-200); }
.fr-btn--outline:hover { border-color: var(--fr-slate-300); color: var(--fr-plum); }
.fr-btn--outline-light { background: transparent; color: var(--fr-slate-700); border: 1.5px solid var(--fr-slate-300); }
.fr-btn--outline-light:hover { background: var(--fr-slate-50); border-color: var(--fr-slate-400); color: var(--fr-slate-900); }
.fr-btn--lg { padding: 16px 32px; font-size: 1rem; border-radius: var(--fr-radius-xl); }

@media (max-width: 640px) {
  .fr-quiz__start-hero { padding: 48px 16px; }
  .fr-quiz__start-title { font-size: 1.75rem; }
  .fr-quiz__card { padding: 12px 14px; }
  .fr-quiz__result-top { flex-direction: column; text-align: center; }
  .fr-quiz__results-footer { flex-direction: column; align-items: center; }
}

/* =============================================
   Page Hero (shared)
   ============================================= */
.fr-page-hero {
  position: relative;
  background: var(--fr-slate-50);
  padding: 72px 0 60px; overflow: hidden;
}
.fr-page-hero--compact { padding: 56px 0 44px; }
.fr-page-hero__glow { display: none; }
.fr-page-hero__content { position: relative; z-index: 1; max-width: 800px; }
.fr-page-hero__content .breadcrumb { margin-bottom: 12px; }
.fr-page-hero__content .breadcrumb, .fr-page-hero__content .breadcrumb a { color: var(--fr-slate-500); font-size: 14px; }
.fr-page-hero__content .breadcrumb a:hover { color: var(--fr-slate-900); }
.fr-page-hero__badge { display: inline-block; background: var(--fr-primary-50); color: var(--fr-primary-600); padding: 6px 16px; border-radius: 100px; font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 14px; }
.fr-page-hero__content h1 {
  font-family: var(--fr-font-display); font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700; color: var(--fr-slate-900); line-height: 1.15; margin-bottom: 14px; letter-spacing: -0.02em;
}
.fr-page-hero__accent { color: inherit; }
.fr-page-hero__subtitle { font-size: 1rem; color: var(--fr-slate-600); line-height: 1.6; margin-bottom: 24px; max-width: 640px; }
.fr-page-hero__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 40px; margin-bottom: 20px; }
.fr-page-hero__facts p { font-size: 14px; color: var(--fr-slate-600); margin: 0; }
.fr-page-hero__facts strong { color: var(--fr-slate-500); font-weight: 600; margin-right: 5px; }
@media (max-width: 480px) { .fr-page-hero__facts { grid-template-columns: 1fr; } }
.fr-page-hero__meta {
  display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px;
}
.fr-page-hero__badge {
  display: inline-block; background: var(--fr-slate-100);
  color: var(--fr-slate-500); padding: 6px 16px;
  border-radius: 100px; font-size: 13px; font-weight: 500;
  text-decoration: none;
  transition: color var(--fr-transition-fast);
}
.fr-page-hero__badge:hover { color: var(--fr-slate-700); }

/* Review Hero */
.fr-review-hero {
  position: relative;
  background: var(--fr-slate-50);
  padding: 72px 0 60px; overflow: hidden;
}
.fr-review-hero__glow,
.fr-review-hero__glow-accent { display: none; }
.fr-review-hero__content { position: relative; z-index: 1; max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.fr-review-hero__breadcrumbs { margin-bottom: 12px; font-size: 14px; }
.fr-review-hero__breadcrumbs, .fr-review-hero__breadcrumbs a { color: var(--fr-slate-500); }
.fr-review-hero__breadcrumbs a:hover { color: var(--fr-slate-900); }
.fr-review-hero__breadcrumbs .sep { margin: 0 6px; }
.fr-review-hero__title {
  font-family: var(--fr-font-display); font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700; color: var(--fr-slate-900); line-height: 1.15; margin-bottom: 16px; letter-spacing: -0.02em;
}
.fr-review-hero__accent { color: inherit; }
.fr-review-hero__meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.fr-review-hero__badge { display: inline-block; background: var(--fr-slate-100); color: var(--fr-slate-500); padding: 6px 16px; border-radius: 100px; font-size: 13px; font-weight: 500; }
.fr-review-hero__badge--tested { background: #ECFDF5; color: #059669; border-color: #A7F3D0; }
.fr-review-hero__wave { display: none; }
.fr-review-hero__wave svg { width: 100%; height: auto; }

/* =============================================
   Comparison Page
   ============================================= */
/* Verdict quick-answer cards (comparison page) */
.fr-verdict-cards {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 24px;
}
.fr-verdict-card {
  background: #fff; border-radius: var(--fr-radius-xl); padding: 20px 24px;
  border-top: 3px solid var(--fr-slate-200);
  box-shadow: var(--fr-shadow-soft);
}
.fr-verdict-card--a { border-top-color: var(--fr-accent-400); }
.fr-verdict-card--b { border-top-color: var(--fr-primary-400); }
.fr-verdict-card__label {
  display: block; font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.07em; color: var(--fr-slate-500); margin-bottom: 8px;
}
.fr-verdict-card p { margin: 0; font-size: 15px; color: var(--fr-slate-700); line-height: 1.6; }

/* Winner / tied cells for the at-a-glance table (fr-comparison-table) */
.fr-comparison-table .winner-cell {
  font-weight: 700; color: var(--fr-success);
}
.fr-comparison-table .tied-cell {
  color: var(--fr-slate-500);
}

.fr-comparison-verdict { background: var(--fr-slate-50); border-radius: var(--fr-radius-xl); padding: 24px; margin-bottom: 24px; }
.fr-comparison-verdict p { margin: 0 0 8px; color: var(--fr-slate-700); }
.fr-comparison-verdict p:last-child { margin-bottom: 0; }
.fr-comparison-table-wrap { overflow-x: auto; }
.fr-comparison-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--fr-radius-xl); overflow: hidden; box-shadow: var(--fr-shadow-medium); }
.fr-comparison-table th { background: var(--fr-slate-50); padding: 12px 16px; text-align: left; font-size: 13px; font-weight: 600; color: var(--fr-slate-600); border-bottom: 2px solid var(--fr-slate-200); }
.fr-comparison-table td { padding: 12px 16px; border-bottom: 1px solid var(--fr-slate-100); font-size: 14px; color: var(--fr-slate-700); }
.fr-comparison-table tbody tr:hover { background: var(--fr-slate-50); }
.fr-comparison-links { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.fr-comparison-review-link { display: block; background: #fff; border-radius: var(--fr-radius-xl); padding: 24px; text-decoration: none; color: var(--fr-plum); box-shadow: var(--fr-shadow-soft); transition: box-shadow var(--fr-transition-base); }
.fr-comparison-review-link:hover { box-shadow: var(--fr-shadow-medium); color: var(--fr-plum); }
.fr-comparison-review-link span { display: block; margin-top: 4px; font-size: 14px; color: var(--fr-primary-600); }
.fr-capitalize { text-transform: capitalize; }
.fr-decision-rules { display: grid; gap: 8px; }
.fr-decision-rule { display: flex; align-items: center; justify-content: space-between; background: #fff; border-radius: var(--fr-radius-lg); padding: 16px 20px; box-shadow: var(--fr-shadow-soft); }
.fr-decision-rule__condition { color: var(--fr-slate-700); font-size: 14px; }
.fr-decision-rule__pick { font-size: 13px; font-weight: 700; padding: 4px 12px; border-radius: 100px; white-space: nowrap; }
.fr-decision-rule__pick--a { background: var(--fr-primary-100); color: var(--fr-primary-800); }
.fr-decision-rule__pick--b { background: var(--fr-accent-100); color: var(--fr-accent-800); }
.fr-decision-rule__pick--either { background: var(--fr-slate-100); color: var(--fr-slate-700); }

/* =============================================
   Hub Page
   ============================================= */
.fr-hub-facts { background: #fff; border-radius: var(--fr-radius-xl); padding: 28px; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin-bottom: 32px; box-shadow: var(--fr-shadow-soft); }
.fr-hub-facts__item strong { display: block; color: var(--fr-slate-500); font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; }
.fr-hub-facts__item p { margin: 4px 0 0; color: var(--fr-slate-800); }
.fr-hub-count { color: var(--fr-slate-500); font-size: 14px; margin-bottom: 24px; }

/* Hub ranking list */
.fr-hub-list { display: flex; flex-direction: column; gap: 14px; margin-bottom: 48px; }
.fr-hub-card {
  display: flex; align-items: center; gap: 20px;
  background: #fff; border-radius: var(--fr-radius-xl);
  padding: 20px 24px;
  text-decoration: none; color: inherit;
  box-shadow: var(--fr-shadow-soft);
  transition: box-shadow var(--fr-transition-base), transform var(--fr-transition-base);
  border-left: 3px solid transparent;
}
.fr-hub-card:hover {
  box-shadow: var(--fr-shadow-medium); color: inherit;
  transform: translateX(3px);
  border-left-color: var(--fr-primary-400);
}
.fr-hub-card__rank {
  flex: 0 0 36px; text-align: center;
  font-family: var(--fr-font-display); font-size: 1.375rem;
  font-weight: 800; color: var(--fr-slate-300); line-height: 1;
}
.fr-hub-card__thumb {
  flex: 0 0 140px; height: 100px; border-radius: var(--fr-radius-lg);
  overflow: hidden; background: var(--fr-slate-100);
}
.fr-hub-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.fr-hub-card:hover .fr-hub-card__thumb img { transform: scale(1.04); }
.fr-hub-card__body { flex: 1; min-width: 0; }
.fr-hub-card__title {
  font-family: var(--fr-font-display); font-size: 1.0625rem;
  font-weight: 700; color: var(--fr-plum); margin: 0 0 6px;
  transition: color var(--fr-transition-fast);
}
.fr-hub-card:hover .fr-hub-card__title { color: var(--fr-primary-600); }
.fr-hub-card__verdict { font-size: 13px; color: var(--fr-slate-500); line-height: 1.55; margin: 0 0 8px; }
.fr-hub-card__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.fr-hub-card__aside { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.fr-hub-empty { text-align: center; padding: 64px 24px; background: #fff; border-radius: var(--fr-radius-xl); border: 1px solid var(--fr-slate-200); }
.fr-hub-empty h3 { color: var(--fr-slate-400); }
.fr-hub-empty p { color: var(--fr-slate-500); }
.fr-hub-related-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.fr-hub-related-guides { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.fr-hub-guide-link { display: block; background: #fff; border: 1px solid var(--fr-slate-200); border-radius: var(--fr-radius-lg); padding: 20px; color: var(--fr-slate-700); text-decoration: none; transition: all var(--fr-transition-base); }
.fr-hub-guide-link:hover { border-color: var(--fr-primary-300); color: var(--fr-slate-700); transform: translateY(-2px); }
.fr-hub-guide-link strong { color: var(--fr-plum); }
.fr-hub-guide-link p { margin: 8px 0 0; font-size: 14px; }

/* =============================================
   Quiz Page — full-width wrapper
   ============================================= */
.fr-quiz-page { background: #fff; padding: 48px 0 80px; }
.fr-quiz-page .fr-quiz { padding-bottom: 40px; }
/* Hide the shortcode's built-in start screen — the page template has its own hero */
.fr-quiz-page .fr-quiz__start { display: none; }

/* Quiz hero variant — taller, centered */
.fr-home-hero--quiz { min-height: auto; }
.fr-home-hero--quiz .fr-home-hero__content { text-align: center; }
.fr-home-hero__note {
  font-size: 14px; color: var(--fr-slate-400); margin-top: 20px;
}

/* =============================================
   Generic Page Layout
   ============================================= */
.fr-page-layout { padding: 48px 0 80px; background: #fff; }
.fr-page-layout__grid { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 40px; align-items: start; }
.fr-page-main { min-width: 0; overflow: hidden; }
.fr-page-card {
  background: transparent;
  border-radius: 0; padding: 0; box-shadow: none;
}
.fr-page-meta {
  display: flex; align-items: center; gap: 16px;
  font-size: 13px; color: var(--fr-slate-500); margin-bottom: 24px;
  padding-bottom: 16px; border-bottom: 1px solid var(--fr-slate-100);
}
.fr-page-hero__wave { display: none; }
.fr-page-hero__wave svg { width: 100%; height: auto; }

/* Guide Article Layout (single-column + floating TOC) */
.fr-guide-layout { padding: 48px 0 80px; background: #fff; }
.fr-guide-grid {
  max-width: 1200px; margin: 0 auto;
  padding: 0 24px; box-sizing: border-box;
}
.fr-guide-main {
  min-width: 0;
  box-shadow: none; border: none; border-radius: 0;
  background: transparent; padding: 0;
}
.fr-guide-toc { display: none; }

@media (min-width: 1200px) {
  .fr-guide-grid {
    padding: 0;
    display: grid; grid-template-columns: minmax(0, 1fr) 280px;
    gap: 40px;
  }
  .fr-guide-toc {
    display: block; position: sticky; top: 100px;
    align-self: start;
  }
}

/* Guide TOC items */
.fr-guide-toc__title {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--fr-slate-400);
  margin-bottom: 12px; padding-left: 12px;
}
.fr-guide-toc__list { list-style: none; padding: 0; margin: 0; }
.fr-guide-toc__list a {
  display: block; padding: 6px 12px; border-radius: 6px;
  font-size: 13px; font-weight: 500; line-height: 1.4;
  color: var(--fr-slate-500); text-decoration: none;
  transition: all var(--fr-transition-fast);
  border-left: 2px solid transparent;
}
.fr-guide-toc__list a:hover {
  color: var(--fr-plum); background: var(--fr-slate-50);
}
.fr-guide-toc__list a.active {
  color: var(--fr-accent-600); font-weight: 600;
  border-left-color: var(--fr-accent-600);
  background: var(--fr-accent-50);
}

/* Sidebar fix — only kicks in when post content's closing </div> tags have broken
   the inner grid, causing .fr-page-sidebar to land as a direct child of .rh-container
   instead of inside .fr-page-layout__grid. Uses :has() to target only that broken case. */
.fr-page-layout .rh-container:has(> .fr-page-sidebar) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  column-gap: 40px;
  align-items: start;
}
.fr-page-layout .rh-container:has(> .fr-page-sidebar) .fr-page-layout__grid {
  grid-column: 1;
  display: block;
}
.fr-page-layout .rh-container:has(> .fr-page-sidebar) .fr-author-box {
  grid-column: 1;
}
.fr-page-layout .rh-container:has(> .fr-page-sidebar) > .fr-page-sidebar {
  grid-column: 2;
  grid-row: 1 / span 10;
  position: sticky;
  top: 100px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Sidebar */
.fr-page-sidebar { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 20px; }
.fr-sidebar-card {
  background: #fff;
  border-radius: var(--fr-radius-xl); padding: 24px;
  box-shadow: var(--fr-shadow-soft);
  transition: box-shadow var(--fr-transition-base);
}
.fr-sidebar-card:hover { box-shadow: var(--fr-shadow-medium); }
.fr-sidebar-card h3 {
  font-family: var(--fr-font-display); font-size: 1rem;
  font-weight: 700; color: var(--fr-plum); margin-bottom: 12px;
}
.fr-sidebar-card p { font-size: 14px; color: var(--fr-slate-600); line-height: 1.6; margin-bottom: 16px; }
.fr-sidebar-card--cta {
  background: var(--fr-slate-50);
  border-color: var(--fr-slate-200);
}
.fr-sidebar-card--cta .fr-sidebar-card__icon {
  font-size: 1.5rem; margin-bottom: 12px;
  width: 44px; height: 44px; display: flex; align-items: center; justify-content: center;
  background: var(--fr-primary-100); border-radius: var(--fr-radius-lg);
}
.fr-sidebar-card--muted { background: var(--fr-slate-50); }
.fr-sidebar-card__title { font-family: var(--fr-font-display); font-size: 1rem; font-weight: 700; color: var(--fr-plum); margin: 0 0 12px; }
.fr-sidebar-card__link { display: inline-block; margin-top: 12px; font-size: 13px; font-weight: 600; color: var(--fr-primary-600); text-decoration: none; transition: color var(--fr-transition-fast); }
.fr-sidebar-card__link:hover { color: var(--fr-primary-700); }
.fr-sidebar-nav { list-style: none; padding: 0; margin: 0; }
.fr-sidebar-nav li { padding: 7px 0; border-bottom: 1px solid var(--fr-slate-100); font-size: 14px; }
.fr-sidebar-nav li:last-child { border-bottom: none; }
.fr-sidebar-nav a { color: var(--fr-slate-700); text-decoration: none; font-weight: 500; transition: color var(--fr-transition-fast); }
.fr-sidebar-nav a:hover { color: var(--fr-primary-600); }
.fr-sidebar-nav__item--active span { color: var(--fr-primary-600); font-weight: 600; }
.fr-sidebar-programs { list-style: none; padding: 0; margin: 0; }
.fr-sidebar-programs li {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 0; border-bottom: 1px solid var(--fr-slate-100);
}
.fr-sidebar-programs li:last-child { border-bottom: none; }
.fr-sidebar-programs li a {
  color: var(--fr-slate-700); text-decoration: none; font-weight: 500;
  transition: color var(--fr-transition-fast); font-size: 14px;
}
.fr-sidebar-programs li a:hover { color: var(--fr-primary-600); }
.fr-sidebar-programs__score {
  font-size: 13px; font-weight: 700; color: var(--fr-accent-600);
  white-space: nowrap;
}
.fr-sidebar-links { list-style: none; padding: 0; margin: 0; }
.fr-sidebar-links li { padding: 6px 0; }
.fr-sidebar-links a {
  color: var(--fr-slate-600); text-decoration: none; font-size: 14px;
  transition: color var(--fr-transition-fast);
}
.fr-sidebar-links a:hover { color: var(--fr-primary-600); }

/* REHub widgets inside our sidebar */
.fr-page-sidebar .widget {
  background: #fff;
  border-radius: var(--fr-radius-xl); padding: 24px;
  margin-bottom: 20px;
  box-shadow: var(--fr-shadow-soft);
  transition: box-shadow var(--fr-transition-base);
}
.fr-page-sidebar .widget:hover { box-shadow: var(--fr-shadow-medium); }
.fr-page-sidebar .widget .title {
  font-family: var(--fr-font-display); font-size: 1rem;
  font-weight: 700; color: var(--fr-plum); margin-bottom: 12px;
}
.fr-page-sidebar .widget ul { list-style: none; padding: 0; margin: 0; }
.fr-page-sidebar .widget li { padding: 6px 0; border-bottom: 1px solid var(--fr-slate-100); }
.fr-page-sidebar .widget li:last-child { border-bottom: none; }
.fr-page-sidebar .widget a {
  color: var(--fr-slate-600); text-decoration: none; font-size: 14px;
  transition: color var(--fr-transition-fast);
}
.fr-page-sidebar .widget a:hover { color: var(--fr-primary-600); }

/* =============================================
   Archive / Programs Listing
   ============================================= */
.fr-archive-layout { padding: 24px 0 80px; background: #fff; }
.fr-archive-count {
  font-size: 15px; color: var(--fr-slate-600); margin-bottom: 24px;
}
.fr-archive-count strong { color: var(--fr-plum); }

/* Filter chips */
.fr-filter-bar {
  display: flex; flex-wrap: wrap; gap: 12px; align-items: center;
  margin-bottom: 36px; padding: 24px 28px;
  background: #fff;
  border-radius: var(--fr-radius-2xl); box-shadow: var(--fr-shadow-medium);
}
.fr-filter-bar__group { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fr-filter-bar__label {
  font-size: 13px; font-weight: 600; color: var(--fr-slate-500);
  text-transform: uppercase; letter-spacing: 0.04em; margin-right: 4px;
}
.fr-chip {
  display: inline-flex; align-items: center;
  padding: 7px 16px; border-radius: 100px;
  font-size: 13px; font-weight: 500; text-decoration: none;
  background: var(--fr-slate-50); color: var(--fr-slate-600);
  transition: all var(--fr-transition-fast);
}
.fr-chip:hover {
  background: var(--fr-primary-50); color: var(--fr-primary-600);
}
.fr-chip--active {
  background: var(--fr-primary-600); color: #fff;
}
.fr-chip--active:hover { background: var(--fr-primary-700); color: #fff; }
.fr-chip--clear {
  background: var(--fr-danger-light); color: var(--fr-danger);
  border-color: #FECACA;
}
.fr-chip--clear:hover { background: #FEE2E2; color: #B91C1C; }

/* Fallback card thumb when no image */
.fr-program-card__thumb--score {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--fr-slate-100) 0%, var(--fr-slate-50) 100%);
  color: var(--fr-slate-700);
}
.fr-program-card__thumb-score {
  font-size: 2.5rem; font-weight: 800; font-family: var(--fr-font-display); color: var(--fr-accent-600);
}
.fr-program-card__thumb-score span { font-size: 1.25rem; color: var(--fr-slate-400); }
.fr-program-card__thumb-label {
  font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em;
  font-weight: 600; color: var(--fr-slate-500);
}

/* Hub quick-answer (content ABOVE cards) — no box, flows as prose */
.fr-hub-content {
  margin: 0 0 24px;
  font-size: 1.05rem; line-height: 1.75; color: var(--fr-slate-700);
}

/* Hub long-form article area (content + FAQ + related, BELOW cards) */
/* Hub article — white, full width, clear visual break from ranking list */
.fr-hub-article {
  margin-top: 64px;
  padding-top: 56px;
  border-top: 2px solid var(--fr-slate-100);
}
.fr-hub-article__body {
  margin-bottom: 56px;
}
.fr-hub-content h2, .fr-hub-content h3, .fr-hub-content h4 {
  font-family: var(--fr-font-display); font-weight: 800; color: var(--fr-plum);
  margin-top: 1.5em; margin-bottom: 0.5em;
}
.fr-hub-content p { margin-bottom: 1em; }
.fr-hub-content strong, .fr-hub-content b { font-weight: 700; color: var(--fr-slate-800); }
.fr-hub-content ul, .fr-hub-content ol { margin: 0.5em 0 1em 1.5em; }
.fr-hub-content li { margin-bottom: 0.35em; }
.fr-hub-content a { color: var(--fr-link); text-decoration: underline; }
.fr-hub-content a:hover { color: var(--fr-link-hover); }

/* Quick Answer box */
.fr-hub-content .quick-answer,
.fr-hub-content .fr-quick-answer {
  background: #FBF7F0; border-left: 4px solid var(--fr-accent-600);
  padding: 16px 20px; margin: 0 0 16px; border-radius: 0 8px 8px 0;
}
.fr-hub-content .quick-answer h3,
.fr-hub-content .fr-quick-answer h3 {
  font-size: 13px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--fr-accent-600); margin: 0 0 8px;
}
.fr-hub-content .quick-answer p,
.fr-hub-content .fr-quick-answer p { margin: 0 0 10px; }
.fr-hub-content .quick-answer p:last-child,
.fr-hub-content .fr-quick-answer p:last-child { margin-bottom: 0; }

/* Tables inside quick-answer box (fr-hub-content only) */
.fr-hub-content table {
  width: 100%; border-collapse: collapse; background: #fff; margin: 24px 0;
  border-radius: var(--fr-radius-xl); overflow: hidden; box-shadow: var(--fr-shadow-soft);
}
.fr-hub-content thead tr { background: var(--fr-slate-50); }
.fr-hub-content th {
  padding: 12px 16px; text-align: left; font-size: 13px; font-weight: 600;
  color: var(--fr-slate-600); border: 1px solid var(--fr-slate-200);
}
.fr-hub-content td { padding: 12px 16px; border: 1px solid var(--fr-slate-100); color: var(--fr-slate-700); }
.fr-hub-content tbody tr:nth-child(even) { background: var(--fr-slate-50); }
.fr-hub-content tbody tr:hover { background: #FBF7F0; }

/* Score text / badge */
.fr-hub-content .score { font-weight: 700; color: var(--fr-accent-600); font-size: 1.1em; }
.fr-hub-content .score-badge {
  display: inline-block; background: var(--fr-accent-600); color: #fff;
  padding: 4px 14px; border-radius: 100px; font-weight: 700; font-size: 0.9em; margin: 8px 0;
}

/* Callout boxes inside quick-answer */
.fr-hub-content .green-box, .fr-hub-content .insight-box {
  background: var(--fr-success-light); border-left: 4px solid var(--fr-success);
  padding: 16px 20px; margin: 20px 0; border-radius: 0 8px 8px 0;
}
.fr-hub-content .green-box h4, .fr-hub-content .insight-box h4 { color: var(--fr-success); margin-top: 0; }
.fr-hub-content .amber-box {
  background: var(--fr-warning-light); border-left: 4px solid var(--fr-warning);
  padding: 16px 20px; margin: 20px 0; border-radius: 0 8px 8px 0;
}
.fr-hub-content .amber-box h4 { color: #92400E; margin-top: 0; }

/* Programme sections / use-case / comparison — fr-hub-content only */
.fr-hub-content .programme-section { margin: 32px 0; padding-bottom: 28px; border-bottom: 1px solid var(--fr-slate-200); }
.fr-hub-content .programme-section:last-of-type { border-bottom: none; }
.fr-hub-content .programme-header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; }
.fr-hub-content .programme-score { font-size: 1.3em; font-weight: 700; color: var(--fr-accent-600); }
.fr-hub-content .use-case { padding: 14px 18px; margin-bottom: 16px; background: var(--fr-slate-50); border-left: 4px solid var(--fr-accent-600); border-radius: 0 8px 8px 0; }
.fr-hub-content .use-case strong { color: var(--fr-accent-600); }
.fr-hub-content .comparison-subtitle { font-size: 0.88em; color: var(--fr-slate-500); margin-top: 8px; }
.fr-hub-content em { font-style: italic; color: var(--fr-slate-600); }

/* ── Hub article body: full guide-quality prose styling ──────────────────── */
/* Mirrors .single-blog .post-inner so hub page content renders identically   */
.fr-hub-article__body {
  color: var(--fr-slate-700); line-height: 1.75; font-size: 16px;
}
.fr-hub-article__body h2 {
  font-size: 1.5rem; font-weight: 700; color: var(--fr-plum);
  margin-top: 56px; margin-bottom: 16px; padding-bottom: 14px;
  border-bottom: 1px solid var(--fr-slate-100);
}
.fr-hub-article__body h3 {
  font-size: 1.1875rem; font-weight: 600; color: var(--fr-plum);
  margin-top: 36px; margin-bottom: 16px;
}
.fr-hub-article__body h4 { font-weight: 700; color: var(--fr-plum); margin-top: 0; margin-bottom: 8px; }
.fr-hub-article__body p { margin-bottom: 16px; }
.fr-hub-article__body strong { color: var(--fr-plum); }
.fr-hub-article__body a { color: var(--fr-link); }
.fr-hub-article__body a:hover { color: var(--fr-link-hover); text-decoration: underline; }
.fr-hub-article__body ul,
.fr-hub-article__body ol { padding-left: 0; margin: 16px 0; list-style: none; }
.fr-hub-article__body li { margin-bottom: 10px; padding-left: 24px; position: relative; list-style: none; }
.fr-hub-article__body ul:not([class]) > li,
.fr-hub-article__body ol:not([class]) > li { list-style: none !important; margin-left: 0; }
.fr-hub-article__body ul > li::before {
  content: ''; position: absolute; left: 4px; top: 10px;
  width: 8px; height: 8px; border-radius: 50%; background: var(--fr-primary-400);
}
.fr-hub-article__body ol { counter-reset: fr-ol; }
.fr-hub-article__body ol > li { counter-increment: fr-ol; }
.fr-hub-article__body ol > li::before {
  content: counter(fr-ol); position: absolute; left: 0; top: 1px;
  width: 20px; height: 20px; border-radius: 50%; background: var(--fr-primary-100);
  color: var(--fr-primary-700); font-size: 12px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
/* Override bullets inside callout blocks */
.fr-hub-article__body .callout ul > li::before,
.fr-hub-article__body .callout-green ul > li::before,
.fr-hub-article__body .callout-amber ul > li::before,
.fr-hub-article__body .callout-box ul > li::before,
.fr-hub-article__body .verdict-box ul > li::before,
.fr-hub-article__body .verdict ul > li::before,
.fr-hub-article__body .key-takeaways ul > li::before,
.fr-hub-article__body .quick-answer ul > li::before { background: var(--fr-slate-800) !important; }

/* Quick answer */
.fr-hub-article__body .quick-answer {
  background: var(--fr-slate-50); border: 1px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-2xl); padding: 32px; margin: 0 0 48px;
}
.fr-hub-article__body .quick-answer h3 {
  font-size: 13px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--fr-slate-600); margin: 0 0 8px;
  border: none; padding: 0;
}
.fr-hub-article__body .quick-answer p { margin: 0 0 10px; }
.fr-hub-article__body .quick-answer p:last-child { margin-bottom: 0; }

/* Opening / intro */
.fr-hub-article__body .opening-section,
.fr-hub-article__body .katy-opening,
.fr-hub-article__body .intro-quote {
  background: var(--fr-primary-50); border-left: 4px solid var(--fr-primary-500);
  border-radius: 0 var(--fr-radius-lg) var(--fr-radius-lg) 0;
  padding: 20px; margin: 24px 0; font-style: italic;
}
.fr-hub-article__body .opening-section .author { margin-top: 12px; font-style: normal; font-size: 14px; color: var(--fr-slate-500); }

/* Callouts — exactly matching .single-blog .post-inner */
.fr-hub-article__body .callout,
.fr-hub-article__body .callout-amber,
.fr-hub-article__body .callout-box,
.fr-hub-article__body .stat-box,
.fr-hub-article__body .stats-box,
.fr-hub-article__body .exercise-type {
  background: var(--fr-warning-light); border-left: 4px solid var(--fr-warning);
  border-radius: var(--fr-radius-lg); padding: 20px; margin: 24px 0;
}
.fr-hub-article__body .callout-title,
.fr-hub-article__body .callout h4,
.fr-hub-article__body .callout-box h4,
.fr-hub-article__body .exercise-type h3 { font-weight: 700; color: #92400E; margin-top: 0; }
.fr-hub-article__body .callout-green,
.fr-hub-article__body .research-highlight {
  background: var(--fr-success-light); border-left: 4px solid var(--fr-success);
  border-radius: 0 var(--fr-radius-lg) var(--fr-radius-lg) 0;
  padding: 24px; margin: 24px 0;
}
.fr-hub-article__body .callout-green strong { color: #1C6B4A; }
.fr-hub-article__body .callout-medical {
  background: #FEF2F2; border-left: 4px solid #EF4444;
  border-radius: 0 var(--fr-radius-lg) var(--fr-radius-lg) 0;
  padding: 24px; margin: 24px 0;
}
.fr-hub-article__body .callout-medical h4 { color: #991B1B; }
.fr-hub-article__body .warning-box {
  background: #FFFBEB; border-left: 4px solid #F59E0B;
  border-radius: 0 var(--fr-radius-lg) var(--fr-radius-lg) 0;
  padding: 24px; margin: 24px 0;
}
.fr-hub-article__body .warning-box h4 { color: #92400E; font-weight: 700; margin-top: 0; }

/* Verdict / key-takeaways */
.fr-hub-article__body .verdict-box,
.fr-hub-article__body .verdict,
.fr-hub-article__body .key-takeaways {
  background: var(--fr-slate-50); border-radius: var(--fr-radius-2xl);
  border: 1px solid var(--fr-slate-200); padding: 32px; margin: 40px 0;
}
.fr-hub-article__body .verdict-box h3,
.fr-hub-article__body .verdict h3,
.fr-hub-article__body .verdict-title,
.fr-hub-article__body .key-takeaways h2 {
  font-size: 13px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--fr-slate-600); margin: 0 0 16px;
  border: none; padding: 0;
}

/* Framework / data boxes */
.fr-hub-article__body .framework-box,
.fr-hub-article__body .framework,
.fr-hub-article__body .data-box {
  background: var(--fr-slate-50); border-radius: var(--fr-radius-2xl);
  border: 1px solid var(--fr-slate-200); padding: 32px; margin: 40px 0;
}
.fr-hub-article__body .framework-item {
  padding: 12px 0; border-bottom: 1px solid var(--fr-slate-200);
}
.fr-hub-article__body .framework-item:last-child { border-bottom: none; padding-bottom: 0; }
.fr-hub-article__body .framework-item strong { color: var(--fr-accent-600); }

/* Tables — exactly matching .single-blog .post-inner table */
.fr-hub-article__body table {
  width: 100%; border-collapse: collapse; background: #fff;
  border-radius: var(--fr-radius-xl); overflow: hidden;
  margin: 24px 0; box-shadow: var(--fr-shadow-soft);
}
.fr-hub-article__body thead { border-bottom: 2px solid var(--fr-slate-200); }
.fr-hub-article__body th {
  background: var(--fr-slate-50); padding: 12px 16px; text-align: left;
  font-size: 13px; font-weight: 600; color: var(--fr-slate-600);
  border: 1px solid var(--fr-slate-200);
}
.fr-hub-article__body td {
  padding: 12px 16px; border: 1px solid var(--fr-slate-100); font-size: 14px;
}

/* Images */
.fr-hub-article__body img {
  max-width: 100%; height: auto; border-radius: var(--fr-radius-xl);
  display: block; margin: 32px 0;
}
.fr-hub-article__body figure { margin: 32px 0; }
.fr-hub-article__body figcaption {
  font-size: 13px; color: var(--fr-slate-400); text-align: center; margin-top: 10px; font-style: italic;
}
/* ── Article section 2-col grid (main + sticky TOC) ─────────────────────── */
.fr-hub-article__grid {
  display: block;
}
@media (min-width: 1100px) {
  .fr-hub-article__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 56px;
    align-items: start;
  }
}
.fr-hub-article__toc {
  display: none;
}
@media (min-width: 1100px) {
  .fr-hub-article__toc {
    display: block;
    position: sticky;
    top: 100px;
  }
}

/* ── Programme section visual treatments ─────────────────────────────────── */

/* H3 programme heading */
.fr-hub-article__body h3 {
  margin-top: 56px;
}
.fr-hub-article__body h3:first-child { margin-top: 0; }

/* ── Score tiles ─────────────────────────────────────────────────────────── */
.fr-score-tiles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin: 20px 0 36px;
  background: var(--fr-slate-200);
  border: 1px solid var(--fr-slate-200);
  border-radius: 12px;
  overflow: hidden;
}
.fr-score-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 16px 8px 14px;
  background: #fff;
  text-align: center;
  gap: 5px;
}
.fr-score-tile__num {
  font-size: 1.875rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.03em;
}
.fr-score-tile--high .fr-score-tile__num { color: var(--fr-success); }
.fr-score-tile--mid  .fr-score-tile__num { color: var(--fr-warning); }
.fr-score-tile--low  .fr-score-tile__num { color: var(--fr-danger); }
.fr-score-tile__label {
  font-size: 10px;
  font-weight: 600;
  color: var(--fr-slate-500);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1.4;
}

/* HR separator between programme entries */
.fr-hub-article__body hr,
.fr-hub-article__body .wp-block-separator {
  border: none;
  border-top: 1px solid var(--fr-slate-200);
  margin: 56px 0 0;
}

/* Personal testing quote — paragraph whose only content is <em> */
.fr-hub-article__body p:has(> em:only-child) {
  font-style: italic;
  color: var(--fr-slate-600);
  background: var(--fr-primary-50);
  border-left: 3px solid var(--fr-primary-300);
  border-radius: 0 var(--fr-radius-lg) var(--fr-radius-lg) 0;
  padding: 14px 18px;
  margin: 20px 0;
  line-height: 1.65;
}
.fr-hub-article__body p:has(> em:only-child) em { color: inherit; }

/* Review link at end of each programme entry */
.fr-hub-article__body p > a[href*="/programs/"] {
  font-weight: 600; font-size: 14px;
  color: var(--fr-primary-600); text-decoration: none;
}
.fr-hub-article__body p > a[href*="/programs/"]:hover { text-decoration: underline; }

@media (max-width: 767px) {
  .fr-hub-article__body h2 { margin-top: 36px; font-size: 1.25rem; }
  .fr-hub-article__body h3 { margin-top: 40px; }
  .fr-hub-article__body .quick-answer,
  .fr-hub-article__body .verdict-box,
  .fr-hub-article__body .key-takeaways,
  .fr-hub-article__body .callout,
  .fr-hub-article__body .callout-green,
  .fr-hub-article__body .callout-amber { padding: 20px; }
}

/* Archive empty state */
.fr-archive-empty {
  text-align: center; padding: 80px 24px;
  background: #fff; border: 1px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-2xl);
}
.fr-archive-empty__icon { font-size: 4rem; margin-bottom: 16px; }
.fr-archive-empty h3 { font-size: 1.5rem; font-weight: 800; color: var(--fr-plum); margin-bottom: 8px; }
.fr-archive-empty p { color: var(--fr-slate-500); margin-bottom: 24px; }

/* Archive quiz CTA bar */
.fr-archive-quiz-cta {
  margin-top: 48px; padding: 24px 32px;
  background: var(--fr-slate-50);
  border: 1px solid var(--fr-slate-200); border-radius: var(--fr-radius-2xl);
}
.fr-archive-quiz-cta__inner {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 16px;
}
.fr-archive-quiz-cta__inner span {
  font-size: 1.125rem; font-weight: 700; color: var(--fr-slate-800);
}

/* Pagination */
.fr-pagination {
  display: flex; justify-content: center; gap: 4px;
  margin-top: 48px; padding-top: 32px;
  border-top: 1px solid var(--fr-slate-200);
}
.fr-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; padding: 0 12px;
  border-radius: var(--fr-radius-lg); font-size: 14px; font-weight: 600;
  text-decoration: none; color: var(--fr-slate-600);
  background: #fff; border: 1px solid var(--fr-slate-200);
  transition: all var(--fr-transition-fast);
}
.fr-pagination .page-numbers:hover { background: var(--fr-slate-50); border-color: var(--fr-primary-300); color: var(--fr-primary-600); }
.fr-pagination .page-numbers.current {
  background: var(--fr-primary-600); color: #fff; border-color: var(--fr-primary-600);
}
.fr-pagination .page-numbers.prev,
.fr-pagination .page-numbers.next {
  font-weight: 500; padding: 0 16px;
}

/* =============================================
   Compare Index Page
   ============================================= */
.fr-compare-index {
  padding: 40px 0 80px; background: #fff;
}
/* Compare search + chips */
.fr-compare-search {
  margin-bottom: 32px;
}
.fr-compare-search__input-wrap {
  position: relative; margin-bottom: 14px;
}
.fr-compare-search__icon {
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  width: 18px; height: 18px; color: var(--fr-slate-400); pointer-events: none;
}
.fr-compare-search__input {
  width: 100%; box-sizing: border-box;
  padding: 12px 16px 12px 42px;
  font-size: 0.9375rem; font-family: var(--fr-font-body);
  color: var(--fr-plum); background: #fff;
  border: 1.5px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-xl);
  box-shadow: var(--fr-shadow-soft);
  outline: none;
  transition: border-color var(--fr-transition-fast), box-shadow var(--fr-transition-fast);
}
.fr-compare-search__input::placeholder { color: var(--fr-slate-400); }
.fr-compare-search__input:focus {
  border-color: var(--fr-accent-400);
  box-shadow: 0 0 0 3px var(--fr-accent-100), var(--fr-shadow-soft);
}
.fr-compare-chips {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.fr-compare-chip {
  padding: 6px 14px;
  font-size: 13px; font-weight: 600;
  color: var(--fr-slate-600); background: #fff;
  border: 1.5px solid var(--fr-slate-200);
  border-radius: 100px; cursor: pointer;
  transition: all var(--fr-transition-fast);
  line-height: 1.4;
}
.fr-compare-chip:hover {
  border-color: var(--fr-accent-300); color: var(--fr-accent-700);
}
.fr-compare-chip--active {
  background: var(--fr-accent-600); border-color: var(--fr-accent-600);
  color: #fff;
}
.fr-compare-no-results {
  text-align: center; padding: 48px 0;
  font-size: 1rem; color: var(--fr-slate-500);
}
.fr-compare-index__section-title {
  font-family: var(--fr-font-display); font-size: 1.75rem;
  font-weight: 800; color: var(--fr-plum); margin: 48px 0 24px;
}
.fr-compare-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px;
}
/* Comparison card (A vs B) */
.fr-compare-card {
  display: flex; flex-direction: column;
  background: #fff;
  border-radius: var(--fr-radius-2xl); overflow: hidden;
  text-decoration: none; color: inherit;
  box-shadow: var(--fr-shadow-soft);
  transition: box-shadow var(--fr-transition-base);
}
.fr-compare-card:hover {
  box-shadow: var(--fr-shadow-medium);
  color: inherit;
}
.fr-compare-card__vs-title {
  font-family: var(--fr-font-display); font-size: 1rem;
  font-weight: 700; color: var(--fr-plum); line-height: 1.3;
  margin: 0; padding: 18px 20px 14px;
  border-bottom: 1px solid var(--fr-slate-100);
}
.fr-compare-card__vs-sep {
  display: inline-block;
  font-size: 11px; font-weight: 800; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--fr-slate-400);
  margin: 0 6px; vertical-align: middle;
}
.fr-compare-card__header {
  display: grid; grid-template-columns: 1fr 36px 1fr;
  border-bottom: 1px solid var(--fr-slate-100);
  overflow: hidden;
}
.fr-compare-card__program {
  padding: 24px 20px; text-align: center;
  background: var(--fr-slate-50);
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  position: relative;
}
.fr-compare-card__program--winner {
  background: linear-gradient(160deg, var(--fr-accent-50) 0%, #fff 100%);
}
.fr-compare-card__winner-label {
  display: inline-block; font-size: 9px; font-weight: 800;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--fr-success); background: #ecfdf5;
  padding: 2px 8px; border-radius: 100px; margin-bottom: 2px;
}
.fr-compare-card__score {
  display: block; font-family: var(--fr-font-display);
  font-size: 2.25rem; font-weight: 800; line-height: 1;
  color: var(--fr-plum);
}
.fr-compare-card__program--winner .fr-compare-card__score {
  color: var(--fr-accent-600);
}
.fr-compare-card__name {
  display: block; font-size: 0.8125rem; font-weight: 600;
  color: var(--fr-slate-600); line-height: 1.3;
}
.fr-compare-card__vs {
  display: flex; align-items: center; justify-content: center;
  background: var(--fr-slate-100); color: var(--fr-slate-400);
  font-size: 10px; font-weight: 800; letter-spacing: 0.04em;
  writing-mode: vertical-lr;
}
.fr-compare-card__verdict {
  padding: 16px 24px 0; font-size: 14px;
  color: var(--fr-slate-600); line-height: 1.6; flex: 1;
}
.fr-compare-card__footer {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 24px; margin-top: auto;
}
.fr-compare-card__date {
  font-size: 13px; color: var(--fr-slate-400);
}
.fr-compare-card__cta {
  font-size: 14px; font-weight: 600; color: var(--fr-primary-600);
  transition: color var(--fr-transition-fast);
}
.fr-compare-card:hover .fr-compare-card__cta { color: var(--fr-primary-700); }

/* Guide variant */
.fr-compare-card--guide .fr-compare-card__guide-body {
  padding: 24px; flex: 1;
}
.fr-compare-card--guide h3 {
  font-family: var(--fr-font-display); font-size: 1.0625rem;
  font-weight: 700; color: var(--fr-plum); margin: 10px 0 8px;
  transition: color var(--fr-transition-fast);
}
.fr-compare-card--guide:hover h3 { color: var(--fr-primary-600); }
.fr-compare-card--guide p {
  font-size: 14px; color: var(--fr-slate-600); line-height: 1.6; margin: 0;
}

/* "More ways" section */
.fr-compare-more {
  margin-top: 64px; padding-top: 48px;
  border-top: 1px solid var(--fr-slate-200);
}
.fr-compare-more h2 {
  font-family: var(--fr-font-display); font-size: 1.5rem;
  font-weight: 800; color: var(--fr-plum); margin-bottom: 24px;
}
.fr-compare-more__grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
.fr-compare-more__card {
  background: #fff;
  border-radius: var(--fr-radius-xl); padding: 28px;
  text-decoration: none; color: inherit;
  box-shadow: var(--fr-shadow-soft);
  transition: box-shadow var(--fr-transition-base);
}
.fr-compare-more__card:hover {
  box-shadow: var(--fr-shadow-medium);
  color: inherit;
}
.fr-compare-more__icon {
  font-size: 1.5rem; margin-bottom: 12px;
  width: 48px; height: 48px; display: flex; align-items: center; justify-content: center;
  background: var(--fr-primary-50); border-radius: var(--fr-radius-lg);
  transition: background var(--fr-transition-base);
}
.fr-compare-more__card:hover .fr-compare-more__icon {
  background: var(--fr-primary-100);
}
.fr-compare-more__card h3 {
  font-weight: 700; color: var(--fr-plum); margin-bottom: 6px; font-size: 1rem;
}
.fr-compare-more__card p {
  font-size: 14px; color: var(--fr-slate-600); margin: 0; line-height: 1.6;
}

/* Comparison article — prevent content from blowing out the grid column */
.fr-page-layout .fr-page-main .fr-review-article.prose { overflow-x: auto; max-width: 100%; }
.fr-page-layout .fr-page-main .fr-review-article.prose table,
.fr-page-layout .fr-page-main .fr-compare-scores,
.fr-page-layout .fr-page-main .fr-compare-review-links,
.fr-page-layout .fr-page-main .fr-featured-in { max-width: 100%; box-sizing: border-box; }

@media (max-width: 767px) {
  .fr-compare-grid { grid-template-columns: 1fr; }
  .fr-compare-more__grid { grid-template-columns: 1fr; }
  .fr-compare-card__score { font-size: 1.75rem; }
}

/* =============================================
   Policy / About
   ============================================= */
.fr-policy-page { max-width: 780px; margin: 0 auto; padding: 32px 0; }
.fr-policy-page h1 { font-family: var(--fr-font-display); font-size: 2.25rem; font-weight: 800; margin-bottom: 32px; }
.fr-policy-page__updated { margin-top: 48px; font-size: 14px; color: var(--fr-slate-500); }

/* =============================================
   Author Page
   ============================================= */
.fr-author-hero {
  display: flex; align-items: center; gap: 32px;
  max-width: 960px; margin: 0 auto;
  text-align: left;
}
.fr-author-hero__avatar {
  flex-shrink: 0;
  width: 120px; height: 120px;
  border-radius: 50%; overflow: hidden;
  border: 3px solid var(--fr-slate-200);
  box-shadow: var(--fr-shadow-medium);
}
.fr-author-hero__avatar img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}
.fr-author-hero__info h1 {
  font-family: var(--fr-font-display);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 800; color: var(--fr-slate-900);
  margin: 0 0 12px;
}
.fr-author-hero__bio {
  font-size: 1rem; color: var(--fr-slate-500);
  line-height: 1.7; margin: 0 0 16px;
}
.fr-author-hero__bio p {
  margin: 0 0 10px; line-height: 1.7;
}
.fr-author-hero__bio a {
  color: var(--fr-accent-600); text-decoration: underline;
}
.fr-author-hero__bio h3 {
  font-family: var(--fr-font-display); font-size: 1.125rem;
  font-weight: 700; color: var(--fr-slate-900); margin: 20px 0 8px;
}
.fr-author-hero__bio ul {
  list-style: none; padding: 0; margin: 0 0 12px;
}
.fr-author-hero__bio ul li {
  padding: 4px 0 4px 18px; position: relative;
  font-size: 0.9375rem; color: var(--fr-slate-600);
}
.fr-author-hero__bio ul li::before {
  content: ''; position: absolute; left: 0; top: 11px;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--fr-accent-600);
}
.fr-author-bio-toggle {
  background: none; border: none; padding: 0;
  color: var(--fr-accent-600); font-size: 14px; font-weight: 600;
  cursor: pointer; margin-top: 4px;
}
.fr-author-bio-toggle:hover { text-decoration: underline; }

/* Author Box (under reviews) */
.fr-author-box {
  display: flex; gap: 20px; align-items: flex-start;
  background: var(--fr-slate-50); border: 1px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-xl); padding: 28px;
  margin-top: 40px;
}
.fr-author-box__avatar img {
  width: 80px; height: 80px; border-radius: 50%; object-fit: cover;
  border: 2px solid var(--fr-slate-200);
}
.fr-author-box__info { flex: 1; }
.fr-author-box__label {
  font-size: 12px; font-weight: 600; color: var(--fr-slate-500);
  text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 4px;
}
.fr-author-box__info h4 {
  font-family: var(--fr-font-display); font-size: 1.125rem;
  font-weight: 700; margin: 0 0 8px;
}
.fr-author-box__info h4 a {
  color: var(--fr-plum); text-decoration: none;
}
.fr-author-box__info h4 a:hover { color: var(--fr-primary-600); }
.fr-author-box__info p {
  font-size: 14px; color: var(--fr-slate-600); line-height: 1.65;
  margin: 0 0 10px;
}
.fr-author-box__link {
  font-size: 14px; font-weight: 600; color: var(--fr-accent-600);
  text-decoration: none;
}
.fr-author-box__link:hover { text-decoration: underline; }
@media (max-width: 600px) {
  .fr-author-box { flex-direction: column; align-items: center; text-align: center; }
}
.fr-author-hero__meta {
  display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px;
}

@media (max-width: 600px) {
  .fr-author-hero {
    flex-direction: column; text-align: center;
  }
  .fr-author-hero__meta { justify-content: center; }
}

/* =============================================
   Shared Responsive
   ============================================= */
@media (max-width: 767px) {
  .fr-page-hero__content h1, .fr-review-hero__title { font-size: 1.75rem; }
  .fr-hub-card { flex-wrap: wrap; padding: 14px 16px; gap: 12px; }
  .fr-hub-card__rank { flex: 0 0 24px; font-size: 1rem; }
  .fr-hub-card__thumb { flex: 0 0 80px; height: 60px; }
  .fr-hub-card__body { flex: 1 1 0; min-width: 0; }
  .fr-hub-card__aside { flex-direction: row; align-items: center; width: 100%; justify-content: space-between; }
  .fr-comparison-links { grid-template-columns: 1fr; }
  .fr-verdict-cards { grid-template-columns: 1fr; }
  .fr-hub-facts { grid-template-columns: 1fr; }
  .fr-page-layout__grid { grid-template-columns: 1fr; }
  .fr-page-sidebar { position: static; }
  .fr-page-card { padding: 24px; }
  .fr-filter-bar { padding: 16px; gap: 8px; }
  .fr-archive-quiz-cta__inner { flex-direction: column; text-align: center; }
}

/* =============================================
   ReHub Overrides — Footer & Header Button
   ============================================= */
/* “Add a review” button in header */
.addsomebtn.wpsm-button.btncolor,
.addsomebtn.wpsm-button.rehub_btn_color {
  background: var(--fr-primary-600) !important;
  color: #fff !important;
  border-radius: var(--fr-radius-lg);
  font-weight: 600;
  border: none;
  transition: background var(--fr-transition-fast);
}
.addsomebtn.wpsm-button.btncolor:hover,
.addsomebtn.wpsm-button.rehub_btn_color:hover {
  background: var(--fr-primary-700) !important;
}

/* Footer widget area */
.footer-bottom.white_style {
  background: var(--fr-slate-50) !important;
  border-top: 1px solid var(--fr-slate-200);
}
.footer-bottom .widget .title,
.footer-bottom .widget h4 {
  color: var(--fr-plum) !important;
  font-family: var(--fr-font-display);
}
.footer-bottom,
.footer-bottom .widget,
.footer-bottom p,
.footer-bottom li,
.footer-bottom span {
  color: var(--fr-slate-600) !important;
}
.footer-bottom a {
  color: var(--fr-slate-600) !important;
  transition: color var(--fr-transition-fast);
}
.footer-bottom a:hover {
  color: var(--fr-primary-600) !important;
}

/* Bottom footer bar */
footer#theme_footer,
footer#theme_footer.dark_style {
  background: var(--fr-slate-100) !important;
  border-top: 1px solid var(--fr-slate-200);
}
footer#theme_footer,
footer#theme_footer p,
footer#theme_footer span,
footer#theme_footer .footer_copyright {
  color: var(--fr-slate-500) !important;
}
footer#theme_footer a {
  color: var(--fr-slate-600) !important;
}
footer#theme_footer a:hover {
  color: var(--fr-primary-600) !important;
}

/* ReHub User Reviews — muted sage for community ratings */
#user_reviews_in_comment .noUi-connect { background-color: #6B8F71 !important; }
.userstar-rating span:before { color: #6B8F71 !important; }
body .user-review-criteria .rate-bar-bar { background-color: #6B8F71 !important; }
.rate_bar_wrap_two_reviews .user-review-criteria .score_val { border-bottom-color: #6B8F71 !important; }
.add_user_review_link.def_btn { background: var(--fr-primary-600) !important; color: #fff !important; border-radius: var(--fr-radius-lg); }
.add_user_review_link.def_btn:hover { background: var(--fr-primary-700) !important; }

/* =============================================
   Article Tables (pricing, adherence, scoring)
   ============================================= */
.fr-pricing-table,
.fr-adherence-table,
.fr-scoring-table {
  width: 100%; border-collapse: collapse; background: #fff;
  border-radius: var(--fr-radius-xl); overflow: hidden;
  margin: 24px 0; box-shadow: var(--fr-shadow-soft);
}
.fr-pricing-table thead,
.fr-adherence-table thead,
.fr-scoring-table thead { border-bottom: 2px solid var(--fr-slate-200); }
.fr-pricing-table th,
.fr-adherence-table th,
.fr-scoring-table th {
  background: var(--fr-slate-50); padding: 12px 16px; text-align: left;
  font-size: 13px; font-weight: 600; color: var(--fr-slate-600);
  border: 1px solid var(--fr-slate-200);
}
.fr-pricing-table td,
.fr-adherence-table td,
.fr-scoring-table td {
  padding: 12px 16px; border: 1px solid var(--fr-slate-100);
  font-size: 14px; color: var(--fr-slate-700);
}
.fr-pricing-table tbody tr:hover,
.fr-adherence-table tbody tr:hover,
.fr-scoring-table tbody tr:hover {
  background: var(--fr-slate-50);
}
.fr-scoring-table tfoot td {
  background: var(--fr-slate-50); font-weight: 700;
  border-top: 2px solid var(--fr-slate-200); color: var(--fr-plum);
}
/* Inline SVG row icons (on-brand) */
.fr-icon {
  display: inline-block;
  width: 1.15em;
  height: 1.15em;
  vertical-align: -0.2em;
  margin-right: 0.25em;
  color: var(--fr-accent-600);
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}

/* Review header meta (subtitle line) */
.review-header-meta {
  margin-bottom: 20px;
}
.review-header-meta .uppercase {
  text-transform: uppercase;
}
.review-header-meta .tracking-wide {
  letter-spacing: 0.04em;
}
.review-header-meta p {
  font-size: 12px; color: var(--fr-slate-400); line-height: 1.6;
  margin: 0;
}

/* Footnote superscripts */
.fr-review-article.prose sup {
  font-size: 0.7em; color: var(--fr-accent-600); font-weight: 600;
}

/* Sources & Disclaimers */
.fr-sources {
  background: var(--fr-slate-50); border: 1px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-lg); padding: 24px; margin: 32px 0;
}
.fr-sources h3 {
  font-family: var(--fr-font-display); font-size: 1rem;
  font-weight: 700; color: var(--fr-plum); margin: 0 0 12px;
}
.fr-sources ol {
  padding-left: 1.5em; margin: 0;
}
.fr-sources li {
  font-size: 13px; color: var(--fr-slate-500); line-height: 1.65;
  margin-bottom: 6px; padding-left: 0;
}
.fr-sources li::before { display: none; }

.fr-medical-disclaimer,
.fr-affiliate-disclosure {
  background: var(--fr-slate-100); border: 1px solid var(--fr-slate-300);
  border-radius: var(--fr-radius-lg); padding: 16px;
  font-size: 14px; color: var(--fr-slate-500); margin-top: 16px;
}
.fr-medical-disclaimer strong,
.fr-affiliate-disclosure strong {
  color: var(--fr-slate-700);
}

/* Tag variants */
.fr-tag--note {
  background: var(--fr-slate-100); color: var(--fr-slate-600);
}
.fr-tag--accent {
  background: var(--fr-accent-100); color: var(--fr-accent-800);
}
.fr-tag--success {
  background: var(--fr-success-light); color: #166534;
}
.fr-tag--info {
  background: var(--fr-primary-100); color: var(--fr-primary-700);
}
.fr-tag--muted {
  background: var(--fr-slate-100); color: var(--fr-slate-500);
  font-style: italic; font-weight: 500;
}

/* =============================================
   Featured In (Program → Hub Backlinks)
   ============================================= */
.fr-featured-in {
  background: #fff; border: 1px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-xl); padding: 28px;
  margin: 40px 0; box-shadow: var(--fr-shadow-soft);
}
.fr-featured-in h3 {
  font-family: var(--fr-font-display); font-size: 0.875rem;
  font-weight: 700; color: var(--fr-slate-500); margin: 0 0 16px;
  text-transform: uppercase; letter-spacing: 0.06em;
}
.fr-featured-in__chips {
  display: flex; flex-wrap: wrap; gap: 10px;
}
.fr-featured-in__chips .fr-tag {
  font-size: 13px; padding: 8px 16px;
  text-decoration: none;
  border: 1px solid transparent;
  transition: all var(--fr-transition-fast);
}
.fr-featured-in__chips .fr-tag:hover {
  border-color: currentColor; opacity: 0.85;
  box-shadow: var(--fr-shadow-soft);
}
.fr-featured-in__chips .fr-tag em {
  font-weight: 400; opacity: 0.7; margin-left: 4px;
}

/* =============================================
   Homepage — Browse by Category Hub Grid (2026)
   Frosted glass · Light skeuomorphism · Micro-delight
   ============================================= */

/* --- Section treatment: organic warm gradient --- */
.fr-home-section--hubs {
  background: var(--fr-slate-50);
}

/* --- Grid: 5 cols on desktop, fills 15 cards in 3 clean rows --- */
.fr-home-hub-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
}

/* --- Card: frosted glass + light skeuomorphism --- */
.fr-hub-card-2026 {
  display: flex; flex-direction: column; align-items: flex-start;
  padding: 22px 20px;
  background: rgba(255,255,255,0.65);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(212,196,176,0.25);
  border-radius: var(--fr-radius-xl);
  text-decoration: none; color: var(--fr-slate-700);
  position: relative;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.7),
    0 1px 3px rgba(30,26,22,0.04),
    0 4px 14px rgba(30,26,22,0.025);
  transition:
    box-shadow 0.35s cubic-bezier(.22,1,.36,1),
    background 0.35s cubic-bezier(.22,1,.36,1),
    border-color 0.35s cubic-bezier(.22,1,.36,1);
}

/* --- Frosted icon pill --- */
.fr-hub-card-2026__icon {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px;
  border-radius: 12px;
  margin-bottom: 14px;
  color: var(--fr-accent-700);
  background: rgba(248,243,238,0.8);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    0 2px 6px rgba(30,26,22,0.05);
  transition: transform 0.4s cubic-bezier(.22,1,.36,1), box-shadow 0.3s ease, color 0.3s ease;
}
.fr-hub-card-2026__icon svg {
  width: 22px; height: 22px;
}

/* --- Title --- */
.fr-hub-card-2026 h3 {
  font-family: var(--fr-font-display);
  font-size: 0.9375rem; font-weight: 700;
  color: var(--fr-plum); margin: 0;
  line-height: 1.35;
  transition: color 0.25s ease;
}

/* --- Count --- */
.fr-hub-card-2026__count {
  display: block;
  font-size: 12px; font-weight: 600;
  color: var(--fr-accent-600);
  margin-top: 8px;
}

/* --- Arrow --- */
.fr-hub-card-2026__arrow {
  position: absolute; top: 22px; right: 18px;
  font-size: 0.9375rem; color: var(--fr-slate-300);
  opacity: 0; transform: translateX(-4px);
  transition: opacity 0.25s ease, transform 0.25s ease, color 0.25s ease;
}

/* === Hover === */
.fr-hub-card-2026:hover {
  background: rgba(255,255,255,0.9);
  border-color: rgba(160,123,61,0.2);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.8),
    0 4px 20px rgba(160,123,61,0.08),
    0 8px 28px rgba(30,26,22,0.04);
  color: var(--fr-slate-700);
}
.fr-hub-card-2026:hover .fr-hub-card-2026__icon {
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 4px 10px rgba(160,123,61,0.10);
}
.fr-hub-card-2026:hover h3 { color: var(--fr-primary-600); }
.fr-hub-card-2026:hover .fr-hub-card-2026__arrow {
  opacity: 1; transform: none; color: var(--fr-accent-600);
}

/* === Scroll-driven stagger reveal === */
.fr-home-hub-grid .fr-hub-card-2026 {
  opacity: 0;
  transform: translateY(16px) scale(0.98);
}
.fr-home-hub-grid .fr-hub-card-2026.fr-visible {
  animation: frHubCardIn 0.45s cubic-bezier(.22,1,.36,1) forwards;
  animation-delay: calc(var(--card-i, 0) * 50ms);
}
@keyframes frHubCardIn {
  from { opacity: 0; transform: translateY(16px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
@supports (animation-timeline: view()) {
  .fr-home-hub-grid .fr-hub-card-2026 {
    animation: frHubCardIn 1s ease both;
    animation-timeline: view();
    animation-range: entry 0% entry 30%;
  }
}

/* =============================================
   Hub Index Page
   ============================================= */
.fr-hub-index-cluster {
  margin-bottom: 48px;
}
.fr-hub-index-cluster__title {
  font-family: var(--fr-font-display); font-size: 1.25rem;
  font-weight: 700; color: var(--fr-plum); margin: 0 0 16px;
  padding-bottom: 12px; border-bottom: 2px solid var(--fr-slate-200);
}
.fr-hub-index-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
}
.fr-hub-index-card {
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-lg); padding: 20px;
  text-decoration: none; color: var(--fr-slate-700);
  transition: var(--fr-transition-base);
  position: relative;
}
.fr-hub-index-card:hover {
  border-color: var(--fr-accent-400);
  box-shadow: var(--fr-shadow-medium);
}
.fr-hub-index-card__header {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 12px; margin-bottom: 8px;
}
.fr-hub-index-card h3 {
  font-family: var(--fr-font-display); font-size: 0.9375rem;
  font-weight: 700; color: var(--fr-plum); margin: 0;
  line-height: 1.3;
}
.fr-hub-index-card__count {
  font-size: 12px; color: var(--fr-accent-600); font-weight: 600;
  white-space: nowrap;
}
.fr-hub-index-card__intro {
  font-size: 13px; color: var(--fr-slate-500); line-height: 1.5;
  margin: 0; flex: 1;
}
.fr-hub-index-card__arrow {
  position: absolute; top: 20px; right: 20px;
  color: var(--fr-slate-300); font-size: 1.125rem;
  transition: var(--fr-transition-fast);
}
.fr-hub-index-card:hover .fr-hub-index-card__arrow {
  color: var(--fr-accent-600); transform: translateX(3px);
}

/* =============================================
   Footer Hub Links
   ============================================= */
.fr-footer-hubs {
  background: var(--fr-slate-50); border-top: 1px solid var(--fr-slate-200);
  padding: 48px 0 40px;
}
.fr-footer-hubs__inner {
  display: grid;
  grid-template-columns: 1.2fr repeat(3, 1fr);
  gap: 32px;
}
.fr-footer-hubs__col h4 {
  font-family: var(--fr-font-display); font-size: 1rem;
  font-weight: 700; color: var(--fr-plum); margin: 0 0 8px;
}
.fr-footer-hubs__col h5 {
  font-family: var(--fr-font-display); font-size: 0.8125rem;
  font-weight: 700; color: var(--fr-slate-600); margin: 0 0 12px;
  text-transform: uppercase; letter-spacing: 0.06em;
}
.fr-footer-hubs__desc {
  font-size: 13px; color: var(--fr-slate-500); margin: 0 0 16px;
}
.fr-footer-hubs__all {
  display: inline-block; font-size: 13px; font-weight: 600;
  color: var(--fr-accent-600); text-decoration: none;
}
.fr-footer-hubs__all:hover { color: var(--fr-accent-700); }
.fr-footer-hubs__col ul {
  list-style: none; margin: 0; padding: 0;
}
.fr-footer-hubs__col li {
  margin-bottom: 8px;
}
.fr-footer-hubs__col li a {
  font-size: 13px; color: var(--fr-slate-600); text-decoration: none;
  transition: var(--fr-transition-fast);
}
.fr-footer-hubs__col li a:hover {
  color: var(--fr-accent-600);
}

/* Nav dropdown styling for hub menu */
.fr-hub-menu-all a {
  font-weight: 600 !important;
  color: var(--fr-accent-600) !important;
}

/* Hub grid responsive */
@media (max-width: 1023px) {
  .fr-home-hub-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  .fr-home-hub-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .fr-hub-card-2026 { padding: 16px; }
  .fr-hub-card-2026__icon { width: 38px; height: 38px; margin-bottom: 10px; }
  .fr-hub-card-2026__icon svg { width: 18px; height: 18px; }
  .fr-hub-card-2026 h3 { font-size: 0.8125rem; }
  .fr-hub-card-2026__count { font-size: 11px; }
}

@media (max-width: 768px) {
  .fr-footer-hubs__inner {
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }
  .fr-hub-index-grid {
    grid-template-columns: 1fr;
  }
}

/* =============================================
   Guide Articles (.single-blog)
   Aligned with fr-review-article.prose design
   ============================================= */

/* --- Base prose typography (matches .fr-review-article.prose) --- */
.single-blog .post-inner {
  color: var(--fr-slate-700); line-height: 1.75; font-size: 16px;
}
.single-blog .post-inner h2 {
  font-size: 1.5rem; font-weight: 700; color: var(--fr-plum);
  margin-top: 56px; margin-bottom: 16px; padding-bottom: 14px;
  border-bottom: 1px solid var(--fr-slate-100);
}
.single-blog .post-inner h3 {
  font-size: 1.1875rem; font-weight: 600; color: var(--fr-plum);
  margin-top: 36px; margin-bottom: 16px;
}
.single-blog .post-inner h4 {
  font-weight: 700; color: var(--fr-plum); margin-top: 0; margin-bottom: 8px;
}
.single-blog .post-inner p { margin-bottom: 16px; }
.single-blog .post-inner strong { color: var(--fr-plum); }
.single-blog .post-inner a { color: var(--fr-link); }
.single-blog .post-inner a:hover { color: var(--fr-link-hover); text-decoration: underline; }
.single-blog .post-inner ul,
.single-blog .post-inner ol { padding-left: 0; margin: 16px 0; list-style: none; }
.single-blog .post-inner li { margin-bottom: 10px; padding-left: 24px; position: relative; list-style: none; }
.single-blog .post-inner ul:not([class]) > li,
.single-blog .post-inner ol:not([class]) > li { list-style: none !important; margin-left: 0; }
.single-blog .post-inner ul > li::before {
  content: ''; position: absolute; left: 4px; top: 10px;
  width: 8px; height: 8px; border-radius: 50%; background: var(--fr-primary-400);
}
.single-blog .post-inner ol { counter-reset: fr-ol; }
.single-blog .post-inner ol > li { counter-increment: fr-ol; }
.single-blog .post-inner ol > li::before {
  content: counter(fr-ol); position: absolute; left: 0; top: 1px;
  width: 20px; height: 20px; border-radius: 50%; background: var(--fr-primary-100);
  color: var(--fr-primary-700); font-size: 12px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}

/* Override bullets inside special blocks */
.single-blog .post-inner .callout ul > li::before,
.single-blog .post-inner .callout-green ul > li::before,
.single-blog .post-inner .callout-amber ul > li::before,
.single-blog .post-inner .callout-box ul > li::before,
.single-blog .post-inner .verdict-box ul > li::before,
.single-blog .post-inner .verdict ul > li::before,
.single-blog .post-inner .key-takeaways ul > li::before,
.single-blog .post-inner .quick-answer ul > li::before { background: var(--fr-slate-800) !important; }

/* --- Quick Answer (matches fr-tldr-block) --- */
.single-blog .post-inner .quick-answer {
  background: var(--fr-slate-50); border: 1px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-2xl); padding: 32px; margin: 0 0 48px;
}
.single-blog .post-inner .quick-answer h3 {
  font-size: 13px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--fr-slate-600); margin: 0 0 8px;
  border: none; padding: 0;
}
.single-blog .post-inner .quick-answer p { margin: 0 0 10px; }
.single-blog .post-inner .quick-answer p:last-child { margin-bottom: 0; }

/* --- Opening / intro sections (matches fr-callout--info) --- */
.single-blog .post-inner .opening-section,
.single-blog .post-inner .katy-opening,
.single-blog .post-inner .intro-quote {
  background: var(--fr-primary-50); border-left: 4px solid var(--fr-primary-500);
  border-radius: 0 var(--fr-radius-lg) var(--fr-radius-lg) 0;
  padding: 20px; margin: 24px 0; font-style: italic;
}
.single-blog .post-inner .opening-section .author {
  margin-top: 12px; font-style: normal; font-size: 14px; color: var(--fr-slate-500);
}
.single-blog .post-inner .opening-quote {
  background: var(--fr-success-light); border-left: 4px solid var(--fr-success);
  border-radius: 0 var(--fr-radius-lg) var(--fr-radius-lg) 0;
  padding: 20px; margin: 24px 0; font-style: italic;
}

/* --- Callouts (matches fr-callout variants) --- */
.single-blog .post-inner .callout,
.single-blog .post-inner .callout-amber,
.single-blog .post-inner .callout-box,
.single-blog .post-inner .stat-box,
.single-blog .post-inner .stats-box,
.single-blog .post-inner .exercise-type,
.single-blog .post-inner div.internal-link {
  background: var(--fr-warning-light); border-left: 4px solid var(--fr-warning);
  border-radius: var(--fr-radius-lg); padding: 20px; margin: 24px 0;
}
.single-blog .post-inner .callout-title,
.single-blog .post-inner .callout h4,
.single-blog .post-inner .callout-box h4,
.single-blog .post-inner .stat-box strong,
.single-blog .post-inner .exercise-type h3 {
  color: #92400E; margin-top: 0;
}
.single-blog .post-inner .stat-box .source {
  font-size: 13px; color: var(--fr-slate-500); margin-top: 8px; font-style: italic;
}
.single-blog .post-inner div.internal-link a { font-weight: 600; color: var(--fr-primary-600); }

/* --- Green callouts (matches fr-callout--success) --- */
.single-blog .post-inner .callout-green,
.single-blog .post-inner .research-highlight {
  background: var(--fr-success-light); border-left: 4px solid var(--fr-success);
  border-radius: 0 var(--fr-radius-lg) var(--fr-radius-lg) 0;
  padding: 20px; margin: 24px 0;
}
.single-blog .post-inner .callout-green strong { color: #1C6B4A; }
.single-blog .post-inner .research-highlight-title { font-weight: 700; color: #1C6B4A; margin-bottom: 8px; }

/* --- TOC (matches fr-review-toc) --- */
.single-blog .post-inner .toc {
  background: var(--fr-slate-50); border-radius: var(--fr-radius-xl);
  padding: 28px; margin: 0 0 48px;
}
.single-blog .post-inner .toc h3 {
  font-size: 18px; font-weight: 700; color: var(--fr-plum);
  margin: 0 0 12px; border: none; padding: 0;
}
.single-blog .post-inner .toc ol { margin-left: 20px; }
.single-blog .post-inner .toc a { color: var(--fr-primary-600); text-decoration: none; font-size: 14px; }
.single-blog .post-inner .toc a:hover { text-decoration: underline; }

/* --- Medical callout (matches fr-callout--danger) --- */
.single-blog .post-inner .callout-medical {
  background: var(--fr-danger-light); border-left: 4px solid var(--fr-danger);
  border-radius: var(--fr-radius-lg); padding: 20px; margin: 24px 0;
}
.single-blog .post-inner .callout-medical h4 { color: #991B1B; }
.single-blog .post-inner .callout-medical strong { color: #991B1B; }

/* --- Warning box (matches fr-callout--warning) --- */
.single-blog .post-inner .warning-box {
  background: var(--fr-warning-light); border-left: 4px solid var(--fr-warning);
  border-radius: var(--fr-radius-lg); padding: 20px; margin: 24px 0;
}
.single-blog .post-inner .warning-box h4 { color: #92400E; font-weight: 700; margin-top: 0; }
.single-blog .post-inner .highlight {
  background: var(--fr-warning-light); padding: 2px 6px; border-radius: 4px;
}

/* --- Verdict boxes (matches fr-verdict-box) --- */
.single-blog .post-inner .verdict-box,
.single-blog .post-inner .verdict {
  background: #fff; border: 2px solid #BBF7D0;
  border-radius: var(--fr-radius-2xl); padding: 32px; margin: 24px 0 48px;
}
.single-blog .post-inner .verdict-box h3,
.single-blog .post-inner .verdict h3,
.single-blog .post-inner .verdict-title {
  color: #15803D; margin-top: 0; font-weight: 700; font-size: 1.125rem;
  border: none; padding: 0;
}
.single-blog .post-inner .verdict-box p:last-child,
.single-blog .post-inner .verdict p:last-child { margin-bottom: 0; }

/* --- Framework boxes (matches fr-tldr-block) --- */
.single-blog .post-inner .framework-box,
.single-blog .post-inner .framework {
  background: var(--fr-slate-50); border: 1px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-2xl); padding: 32px; margin: 24px 0;
}
.single-blog .post-inner .framework-box h3,
.single-blog .post-inner .framework-box h4,
.single-blog .post-inner .framework-title {
  color: var(--fr-plum); margin-top: 0; font-weight: 700;
  border: none; padding: 0;
}
.single-blog .post-inner .framework-item {
  margin-bottom: 12px; padding-bottom: 12px;
  border-bottom: 1px solid var(--fr-slate-200);
}
.single-blog .post-inner .framework-item:last-child {
  border-bottom: none; margin-bottom: 0; padding-bottom: 0;
}
.single-blog .post-inner .framework-item strong { color: var(--fr-accent-600); }

/* Framework boxes with tables: strip bg so table sits on white */
.single-blog .post-inner .framework-box:has(table),
.single-blog .post-inner .framework:has(table) {
  background: transparent; border: none; padding: 0; border-radius: 0; margin: 0;
}
.single-blog .post-inner .framework-box:has(table) h3,
.single-blog .post-inner .framework:has(table) h3 {
  margin-top: 24px;
}

/* --- Data callout (matches fr-final-score) --- */
.single-blog .post-inner .data-callout {
  background: var(--fr-slate-50); border: 2px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-2xl); padding: 32px; margin: 24px 0;
  text-align: center;
}
.single-blog .post-inner .data-callout .number {
  font-family: var(--fr-font-display);
  font-size: 3.5rem; font-weight: 800; color: var(--fr-accent-600);
  display: block; margin-bottom: 4px; line-height: 1;
}
.single-blog .post-inner .data-callout .label {
  font-size: 14px; color: var(--fr-slate-500);
}

/* --- Data / threshold boxes (matches fr-result-box) --- */
.single-blog .post-inner .data-box {
  background: var(--fr-slate-50); border-radius: var(--fr-radius-lg);
  padding: 20px; margin: 24px 0;
}
.single-blog .post-inner .data-box h4 {
  color: var(--fr-plum); font-weight: 700; margin: 0 0 12px;
}
.single-blog .post-inner .threshold-item {
  margin-bottom: 10px; padding-left: 14px; border-left: 3px solid var(--fr-primary-400);
}
.single-blog .post-inner .threshold-item strong { color: var(--fr-plum); display: block; font-size: 14px; }
.single-blog .post-inner .threshold-item span { color: var(--fr-slate-500); font-size: 14px; }

/* --- Priority boxes (matches fr-rating-detail) --- */
.single-blog .post-inner .priority {
  background: #fff; border-radius: var(--fr-radius-lg); padding: 24px;
  margin-bottom: 12px; box-shadow: var(--fr-shadow-soft);
  transition: box-shadow var(--fr-transition-fast);
}
.single-blog .post-inner .priority:hover { box-shadow: var(--fr-shadow-medium); }
.single-blog .post-inner .priority-number {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--fr-primary-100); color: var(--fr-primary-700);
  width: 28px; height: 28px; border-radius: 50%; font-weight: 700;
  font-size: 12px; margin-right: 10px;
}
.single-blog .post-inner .priority-heading {
  font-weight: 700; color: var(--fr-plum); margin-bottom: 4px;
}
.single-blog .post-inner .priority-text {
  font-size: 14px; color: var(--fr-slate-600); margin-left: 38px;
}

/* --- Tables (matches fr-review-article.prose table) --- */
.single-blog .post-inner table {
  width: 100%; border-collapse: collapse; background: #fff;
  border-radius: var(--fr-radius-xl); overflow: hidden;
  margin: 24px 0; box-shadow: var(--fr-shadow-soft);
}
.single-blog .post-inner thead { border-bottom: 2px solid var(--fr-slate-200); }
.single-blog .post-inner th {
  background: var(--fr-slate-50); padding: 12px 16px; text-align: left;
  font-size: 13px; font-weight: 600; color: var(--fr-slate-600);
  border: 1px solid var(--fr-slate-200);
}
.single-blog .post-inner td {
  padding: 12px 16px; border: 1px solid var(--fr-slate-100); font-size: 14px;
}

/* --- Key takeaways (matches fr-tldr-block) --- */
.single-blog .post-inner .key-takeaways {
  background: var(--fr-slate-50); border: 1px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-2xl); padding: 32px; margin: 24px 0;
}
.single-blog .post-inner .key-takeaways h2 {
  color: var(--fr-plum); margin-top: 0; font-size: 1.5rem; font-weight: 800;
  border: none; padding: 0; margin-bottom: 4px;
}
.single-blog .post-inner .key-takeaways ul { margin-left: 0; }
.single-blog .post-inner .key-takeaways li { margin-bottom: 8px; }

/* --- Programmes box (matches fr-key-facts) --- */
.single-blog .post-inner .programmes-box {
  background: var(--fr-slate-50); border: 1px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-xl); padding: 24px; margin: 24px 0;
}
.single-blog .post-inner .programmes-box h2 {
  color: var(--fr-plum); margin-top: 0; font-size: 1.25rem; font-weight: 700;
  border: none; padding: 0; margin-bottom: 4px;
}
.single-blog .post-inner .programmes-box p.intro {
  font-size: 14px; color: var(--fr-slate-500); margin-bottom: 20px;
}
.single-blog .post-inner .programme-entry {
  padding: 12px 0; border-bottom: 1px solid var(--fr-slate-200);
}
.single-blog .post-inner .programme-entry:last-child { border-bottom: none; padding-bottom: 0; }
.single-blog .post-inner .programme-entry:first-of-type { padding-top: 0; }
.single-blog .post-inner .prog-name {
  font-weight: 600; color: var(--fr-plum); text-decoration: none;
}
.single-blog .post-inner .prog-name:hover { text-decoration: underline; }
.single-blog .post-inner .prog-score {
  font-size: 13px; font-weight: 800; color: var(--fr-accent-600);
  margin-left: 8px; font-family: var(--fr-font-display);
}
.single-blog .post-inner .prog-why {
  display: block; font-size: 13px; color: var(--fr-slate-500);
  line-height: 1.5; margin-top: 2px;
}

/* --- Mistakes list (matches fr-rating-detail cards) --- */
.single-blog .post-inner .mistakes-list {
  margin: 24px 0;
}
.single-blog .post-inner .mistake-item {
  background: #fff; border-radius: var(--fr-radius-lg); padding: 24px;
  margin-bottom: 12px; box-shadow: var(--fr-shadow-soft);
  transition: box-shadow var(--fr-transition-fast);
}
.single-blog .post-inner .mistake-item:hover { box-shadow: var(--fr-shadow-medium); }
.single-blog .post-inner .mistake-item:last-child { margin-bottom: 0; }
.single-blog .post-inner .mistake-item strong {
  color: var(--fr-plum); display: block; margin-bottom: 6px;
}

/* --- Practical / modification lists --- */
.single-blog .post-inner .practical-list { list-style: none; padding: 0; margin: 24px 0; }
.single-blog .post-inner .practical-list li {
  padding: 6px 0 6px 20px; position: relative; margin-bottom: 4px;
}
.single-blog .post-inner .practical-list li::before {
  content: '✓'; position: absolute; left: 0; top: 0;
  width: auto; height: auto; border-radius: 0; background: none;
  color: var(--fr-success); font-weight: bold;
}
.single-blog .post-inner .modification-list {
  background: var(--fr-primary-50); border-left: 4px solid var(--fr-primary-500);
  border-radius: 0 var(--fr-radius-lg) var(--fr-radius-lg) 0;
  padding: 20px; margin: 24px 0;
}

/* --- Nesting overrides (prevent box-in-box) --- */

/* Tables inside container blocks: flat to match container bg */
.single-blog .post-inner .quick-answer table,
.single-blog .post-inner .callout table,
.single-blog .post-inner .callout-box table,
.single-blog .post-inner .key-takeaways table,
.single-blog .post-inner .data-box table,
.single-blog .post-inner .verdict-box table,
.single-blog .post-inner .verdict table {
  background: transparent; box-shadow: none; border-radius: 0;
  margin: 16px 0 0;
}
.single-blog .post-inner .quick-answer th { background: transparent; }

/* Priority items inside framework: render as flat list, not cards */
.single-blog .post-inner .framework .priority,
.single-blog .post-inner .framework-box .priority {
  background: transparent; box-shadow: none; border-radius: 0;
  padding: 16px 0; margin-bottom: 0;
  border-bottom: 1px solid var(--fr-slate-200);
}
.single-blog .post-inner .framework .priority:last-child,
.single-blog .post-inner .framework-box .priority:last-child { border-bottom: none; }
.single-blog .post-inner .framework .priority:hover,
.single-blog .post-inner .framework-box .priority:hover { box-shadow: none; }

/* Headings inside container blocks: strip base h2/h3 chrome */
.single-blog .post-inner .quick-answer h2,
.single-blog .post-inner .framework-box h2,
.single-blog .post-inner .framework h2,
.single-blog .post-inner .verdict-box h2,
.single-blog .post-inner .verdict h2,
.single-blog .post-inner .data-box h2,
.single-blog .post-inner .callout h2,
.single-blog .post-inner .callout-box h2,
.single-blog .post-inner .callout-amber h2,
.single-blog .post-inner .callout-green h2,
.single-blog .post-inner .research-highlight h2,
.single-blog .post-inner .opening-section h2 {
  margin-top: 0; border-bottom: none; padding-bottom: 0;
}
.single-blog .post-inner .quick-answer h2 {
  font-size: 13px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--fr-slate-600); margin-bottom: 8px;
}
.single-blog .post-inner .framework-box h3,
.single-blog .post-inner .framework h3,
.single-blog .post-inner .callout h3,
.single-blog .post-inner .callout-amber h3,
.single-blog .post-inner .callout-box h3,
.single-blog .post-inner .callout-green h3,
.single-blog .post-inner .research-highlight h3,
.single-blog .post-inner .data-box h3,
.single-blog .post-inner .opening-section h3,
.single-blog .post-inner .warning-box h3,
.single-blog .post-inner .callout-medical h3 {
  margin-top: 0;
}

/* Nested quick-answer fallback (in case inner div shares class) */
.single-blog .post-inner .quick-answer .quick-answer {
  background: transparent; border: none; border-radius: 0; padding: 0; margin: 0 0 8px;
  font-size: 13px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--fr-slate-600);
}

/* Framework-title as div (not heading) */
.single-blog .post-inner .framework-title {
  font-size: 1.1875rem; margin-bottom: 20px;
}

/* Callout-title as div */
.single-blog .post-inner .callout-title {
  font-size: 1rem; font-weight: 700; margin-bottom: 8px;
}

/* --- FAQ items (matches fr-faq-item) --- */
.single-blog .post-inner .faq-item {
  border-radius: var(--fr-radius-lg); margin-bottom: 8px; overflow: hidden;
  box-shadow: var(--fr-shadow-soft); background: #fff;
  padding: 16px 20px;
}
.single-blog .post-inner .faq-item h4 { margin-top: 0; margin-bottom: 8px; }

/* --- Misc --- */
.single-blog .post-inner .citation { font-weight: 500; }
.single-blog .post-inner .testing-note {
  font-size: 13px; color: var(--fr-slate-500); font-style: italic;
}
.single-blog .post-inner .content-section { margin-bottom: 56px; }

/* --- Responsive --- */
@media (max-width: 767px) {
  .single-blog .post-inner h2 { margin-top: 36px; }
  .single-blog .post-inner .quick-answer,
  .single-blog .post-inner .verdict-box,
  .single-blog .post-inner .verdict,
  .single-blog .post-inner .framework-box,
  .single-blog .post-inner .framework,
  .single-blog .post-inner .key-takeaways,
  .single-blog .post-inner .data-callout { padding: 20px; }
  .single-blog .post-inner .priority-text { margin-left: 0; margin-top: 6px; }
  .single-blog .post-inner table { font-size: 13px; }
  .single-blog .post-inner th,
  .single-blog .post-inner td { padding: 10px 12px; }
}

/* =============================================
   Sidebar TOC (auto-generated)
   ============================================= */
.fr-sidebar-toc__list {
  list-style: none; padding: 0; margin: 0;
}
.fr-sidebar-toc__list li {
  padding: 0; border-bottom: none;
}
.fr-sidebar-toc__list a {
  display: block; padding: 7px 12px; border-radius: 6px;
  font-size: 13px; font-weight: 500; line-height: 1.4;
  color: var(--fr-slate-600); text-decoration: none;
  transition: all var(--fr-transition-fast);
  border-left: 2px solid transparent;
}
.fr-sidebar-toc__list a:hover {
  color: var(--fr-plum); background: var(--fr-slate-50);
}
.fr-sidebar-toc__list a.active {
  color: var(--fr-accent-600); font-weight: 600;
  border-left-color: var(--fr-accent-600);
  background: var(--fr-accent-50);
}

/* =============================================
   Comparison Articles
   ============================================= */
.fr-compare-scores {
  display: flex; gap: 20px; margin: 28px 0;
}
.fr-compare-score-card {
  flex: 1; background: #fff;
  border: 1.5px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-2xl);
  padding: 28px 24px; text-align: center;
  transition: border-color var(--fr-transition-base);
}
.fr-compare-score-card:hover { border-color: var(--fr-slate-300); }
.fr-compare-score-card--winner {
  border-color: var(--fr-accent-300);
  background: linear-gradient(180deg, var(--fr-accent-50) 0%, #fff 100%);
}
.fr-compare-score-card__name {
  font-family: var(--fr-font-display);
  font-size: 1.1rem; font-weight: 700;
  margin-bottom: 10px; color: var(--fr-plum);
}
.fr-compare-score-card__score {
  font-size: 3rem; font-weight: 800;
  color: var(--fr-accent-600); line-height: 1;
  font-family: var(--fr-font-display);
}
/* ── fr-vs-cards — Side-by-side comparison component ─────────────────────── */
.fr-vs-cards {
  margin: 0 0 36px;
}
.fr-vs-cards__grid {
  display: grid;
  grid-template-columns: 1fr 40px 1fr;
  align-items: start;
  gap: 0;
}
.fr-vs-cards__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 48px;
}
.fr-vs-cards__divider span {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--fr-slate-200); color: var(--fr-slate-500);
  font-size: 11px; font-weight: 800; letter-spacing: 0.04em;
}
.fr-vs-cards__footnote {
  font-size: 13px; color: var(--fr-slate-500); margin-top: 16px;
  text-align: center; line-height: 1.6;
}
/* Listing page — stack comparisons vertically with a separator */
.fr-compare-listing {
  display: flex; flex-direction: column; gap: 0;
}
.fr-vs-cards--listing {
  padding: 48px 0;
  border-bottom: 1px solid var(--fr-slate-200);
}
.fr-vs-cards--listing:first-child { padding-top: 0; }
.fr-vs-cards__compare-link {
  display: flex; align-items: center; justify-content: space-between;
  margin-top: 16px; flex-wrap: wrap; gap: 8px;
}
.fr-vs-cards__compare-link a {
  font-size: 13px; font-weight: 600; color: var(--fr-primary-600);
  text-decoration: none;
}
.fr-vs-cards__compare-link a:hover { color: var(--fr-primary-700); text-decoration: underline; }
.fr-vs-cards__date {
  font-size: 12px; color: var(--fr-slate-400);
}

/* Card */
.fr-vs-card {
  position: relative;
  background: #fff;
  border-radius: var(--fr-radius-2xl);
  box-shadow: var(--fr-shadow-soft);
  border: 1.5px solid var(--fr-slate-200);
  display: flex; flex-direction: column;
  transition: box-shadow var(--fr-transition-base), border-color var(--fr-transition-base);
  overflow: hidden;
}
.fr-vs-card:hover {
  box-shadow: var(--fr-shadow-medium);
  border-color: var(--fr-slate-300);
}
.fr-vs-card--recommended {
  border-color: var(--fr-accent-300);
  box-shadow: 0 0 0 3px var(--fr-accent-100), var(--fr-shadow-medium);
}
.fr-vs-card--recommended:hover {
  box-shadow: 0 0 0 3px var(--fr-accent-200), var(--fr-shadow-medium);
}

/* Recommended badge */
.fr-vs-card__badge {
  background: var(--fr-accent-600);
  color: #fff;
  font-size: 10px; font-weight: 800;
  text-transform: uppercase; letter-spacing: 0.1em;
  text-align: center;
  padding: 6px 16px;
}

/* Header */
.fr-vs-card__header {
  padding: 24px 24px 16px;
  display: flex; flex-direction: column; align-items: center;
  text-align: center; gap: 6px;
}
.fr-vs-card__logo {
  width: 72px; height: 72px; border-radius: var(--fr-radius-xl);
  overflow: hidden; background: var(--fr-slate-100);
  border: 1px solid var(--fr-slate-200);
  flex-shrink: 0;
}
.fr-vs-card__logo img {
  width: 100%; height: 100%; object-fit: contain; display: block;
}
.fr-vs-card__title {
  font-family: var(--fr-font-display);
  font-size: 1.1rem; font-weight: 800;
  color: var(--fr-plum); margin: 4px 0 0;
}
.fr-vs-card__subtitle {
  font-size: 13px; color: var(--fr-slate-500);
  line-height: 1.5; margin: 0;
}
.fr-vs-card__score {
  font-family: var(--fr-font-display);
  font-size: 2.5rem; font-weight: 800; line-height: 1;
  color: var(--fr-accent-600); margin: 6px 0 0;
}
.fr-vs-card--recommended .fr-vs-card__score {
  color: var(--fr-accent-600);
}
.fr-vs-card__score span {
  font-size: 1rem; font-weight: 600;
  color: var(--fr-slate-400);
}

/* Feature list */
.fr-vs-card__features {
  list-style: none; padding: 0 24px; margin: 0;
  border-top: 1px solid var(--fr-slate-100);
  padding-top: 16px; padding-bottom: 4px;
  flex: 1;
}
.fr-vs-card__feature {
  font-size: 13px; color: var(--fr-slate-700);
  padding: 6px 0;
  border-bottom: 1px solid var(--fr-slate-100);
  line-height: 1.5;
}
.fr-vs-card__feature:last-child { border-bottom: none; }

/* Footer */
.fr-vs-card__footer {
  padding: 16px 24px 24px;
  display: flex; flex-direction: column; gap: 14px;
  border-top: 1px solid var(--fr-slate-100);
}
.fr-vs-card__best-for {
  font-size: 13px; color: var(--fr-slate-600);
  line-height: 1.5; margin: 0;
}
.fr-vs-card__best-for strong {
  color: var(--fr-plum); font-weight: 700;
}
.fr-vs-card__cta {
  display: block; text-align: center;
  padding: 11px 20px;
  border-radius: var(--fr-radius-xl);
  font-size: 14px; font-weight: 700;
  text-decoration: none;
  border: 2px solid var(--fr-slate-300);
  color: var(--fr-plum);
  background: #fff;
  transition: all var(--fr-transition-fast);
  cursor: pointer;
}
.fr-vs-card__cta:hover {
  border-color: var(--fr-accent-400);
  color: var(--fr-accent-700);
  background: var(--fr-accent-50);
}
.fr-vs-card__cta--primary {
  background: var(--fr-accent-600);
  border-color: var(--fr-accent-600);
  color: #fff;
}
.fr-vs-card__cta--primary:hover {
  background: var(--fr-accent-700);
  border-color: var(--fr-accent-700);
  color: #fff;
}

@media (max-width: 640px) {
  .fr-vs-cards__grid {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .fr-vs-cards__divider {
    padding-top: 0;
  }
}

.fr-compare-score-card__label {
  font-size: 0.8rem; color: var(--fr-slate-400); margin-top: 8px;
  letter-spacing: 0.02em;
}
.fr-compare-winner-badge {
  background: var(--fr-accent-600); color: #fff;
  font-size: 0.65em; padding: 3px 10px; border-radius: 100px;
  font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.06em; vertical-align: middle; margin-left: 8px;
}
.fr-compare-review-links {
  display: flex; gap: 12px; margin: 20px 0 36px; flex-wrap: wrap;
}
.fr-compare-review-links a {
  font-size: 13px; font-weight: 600; text-decoration: none;
  color: var(--fr-accent-700); background: var(--fr-accent-50);
  border: 1px solid var(--fr-accent-200);
  padding: 8px 18px; border-radius: 100px;
  transition: all var(--fr-transition-fast);
}
.fr-compare-review-links a:hover {
  background: var(--fr-accent-600); color: #fff;
  border-color: var(--fr-accent-600);
}
/* Comparison — winner / tied / total cells */
.fr-review-article.prose .winner-cell {
  font-weight: 700; color: var(--fr-success);
}
.fr-review-article.prose .tied-cell {
  color: var(--fr-slate-500);
}
.fr-review-article.prose .fr-compare-total td {
  font-weight: 700; background: var(--fr-slate-50) !important;
  border-top: 2px solid var(--fr-accent-200);
  font-size: 15px;
}
.fr-review-article.prose .fr-compare-total td:last-child {
  color: var(--fr-accent-600);
}

/* Comparison table — 2026 */
.fr-review-article.prose table.fr-compare-table {
  border-collapse: collapse;
  border: 1px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-xl); overflow: hidden;
  box-shadow: var(--fr-shadow-soft);
}
.fr-review-article.prose .fr-compare-table thead { border-bottom: 2px solid var(--fr-slate-200); }
.fr-review-article.prose .fr-compare-table th {
  background: var(--fr-slate-50);
  color: var(--fr-slate-700);
  font-family: var(--fr-font-body);
  font-size: 13px; font-weight: 600; padding: 12px 16px;
  border: 1px solid var(--fr-slate-200);
  text-align: left;
}
.fr-review-article.prose .fr-compare-table th:first-child {
  color: var(--fr-slate-400);
  font-family: var(--fr-font-body);
  font-size: 11px; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.06em; text-align: left;
}
.fr-review-article.prose .fr-compare-table td {
  padding: 12px 16px; font-size: 14px; line-height: 1.5;
  border: 1px solid var(--fr-slate-100);
  vertical-align: top;
}
.fr-review-article.prose .fr-compare-table td:first-child {
  font-weight: 600; color: var(--fr-plum); font-size: 13px;
  background: transparent; white-space: nowrap;
}
/* Zebra striping */
.fr-review-article.prose .fr-compare-table tbody tr:nth-child(even) td {
  background: var(--fr-slate-50);
}
.fr-review-article.prose .fr-compare-table tbody tr:hover td {
  background: var(--fr-accent-50);
}
/* Weight column — subtle badge */
.fr-review-article.prose .fr-compare-table .fr-weight-col {
  font-size: 12px; font-weight: 600; color: var(--fr-slate-400);
  text-align: center; white-space: nowrap;
}
/* Score cells — centre-align numbers */
.fr-review-article.prose .fr-compare-table .winner-cell,
.fr-review-article.prose .fr-compare-table .tied-cell {
  text-align: center; font-size: 15px;
  font-family: var(--fr-font-display); font-weight: 700;
}
.fr-review-article.prose .fr-compare-table .winner-cell {
  color: var(--fr-success);
}
.fr-review-article.prose .fr-compare-table .tied-cell {
  color: var(--fr-slate-500); font-weight: 600;
}

/* Comparison footnote */
.fr-compare-footnote {
  font-size: 12px; color: var(--fr-slate-400); line-height: 1.6;
  margin-top: -8px; margin-bottom: 32px;
}

/* Comparison — FAQ cards (h3 + p pairs) */
.fr-review-article.prose h2#faq ~ h3 {
  background: #fff; margin: 0; padding: 16px 20px 0;
  border: 1px solid var(--fr-slate-200); border-bottom: none;
  border-radius: var(--fr-radius-lg) var(--fr-radius-lg) 0 0;
}
.fr-review-article.prose h2#faq ~ h3 + p {
  background: #fff; margin: 0 0 12px;
  padding: 10px 20px 18px;
  border: 1px solid var(--fr-slate-200); border-top: none;
  border-radius: 0 0 var(--fr-radius-lg) var(--fr-radius-lg);
  color: var(--fr-slate-600); line-height: 1.75;
}

/* Comparison — "Choose X If" section cards */
.fr-choose-card {
  border-radius: var(--fr-radius-lg); padding: 24px;
  margin: 32px 0;
}
.fr-choose-card h2 {
  margin-top: 0 !important; padding-bottom: 10px;
  border-bottom: none !important;
}
.fr-choose-card p { margin-bottom: 12px; }
.fr-choose-card p:last-child { margin-bottom: 0; }
.fr-choose-card--a {
  background: var(--fr-success-light);
  border-left: 4px solid var(--fr-success);
}
.fr-choose-card--a h2 { color: #1C6B4A !important; }
.fr-choose-card--b {
  background: var(--fr-primary-50);
  border-left: 4px solid var(--fr-primary-500);
}
.fr-choose-card--b h2 { color: var(--fr-primary-700) !important; }
@media (max-width: 640px) {
  .fr-compare-scores { flex-direction: column; gap: 12px; }
  .fr-review-article.prose .fr-compare-table td:first-child { white-space: normal; }
  .fr-review-article.prose .fr-compare-table th,
  .fr-review-article.prose .fr-compare-table td { padding: 10px 12px; font-size: 13px; }
  .fr-review-article.prose .fr-compare-table .winner-cell,
  .fr-review-article.prose .fr-compare-table .tied-cell { font-size: 13px; }
  .fr-choose-card { padding: 20px 16px; margin: 24px 0; }
  .fr-review-article.prose h2#faq ~ h3,
  .fr-review-article.prose h2#faq ~ h3 + p { padding-left: 16px; padding-right: 16px; }
}

/* =============================================
   Social Share Icons
   ============================================= */
.row_social_inpost span.share-link-image {
  background: transparent !important;
  color: var(--fr-primary-600) !important;
  border: 1px solid var(--fr-slate-200);
  box-shadow: none;
  border-radius: var(--fr-radius-lg);
  padding: 6px 14px;
  transition: background var(--fr-transition-fast), border-color var(--fr-transition-fast), color var(--fr-transition-fast);
}
.row_social_inpost span.share-link-image:hover {
  background: var(--fr-slate-50) !important;
  border-color: var(--fr-slate-300);
  color: var(--fr-plum) !important;
  top: 0;
  box-shadow: none;
}
.row_social_inpost span.share-link-image i {
  color: inherit !important;
}
/* Hide default share icons — keep only Save + Copy Link */
.row_social_inpost > span.fb,
.row_social_inpost > span.tw,
.row_social_inpost > span.pn,
.row_social_inpost > span.in {
  display: none !important;
}
/* Copy-link button — styled inline with share buttons */
.row_social_inpost .cp.share-link-image {
  cursor: pointer;
}
/* "Copied!" tooltip */
.fr-copied-tip {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%; transform: translateX(-50%);
  background: var(--fr-plum); color: #fff;
  font-size: 11px; font-weight: 600;
  padding: 3px 10px; border-radius: 6px;
  white-space: nowrap;
  pointer-events: none;
  animation: frFadeIn 0.15s ease;
}

/* =============================================
   Save / Wishlist Button — warm neutral restyle
   ============================================= */
.row_social_inpost .favour_in_row {
  margin: 0 6px 6px 0;
}
.row_social_inpost .favour_btn_red .heart_thumb_wrap {
  background-color: transparent;
  color: var(--fr-primary-600);
  border: 1px solid var(--fr-slate-200);
  border-radius: var(--fr-radius-lg);
  padding: 4px 12px;
  font-size: 14px;
  transition: background var(--fr-transition-fast), border-color var(--fr-transition-fast), color var(--fr-transition-fast);
}
.row_social_inpost .favour_btn_red .heart_thumb_wrap:hover {
  background-color: var(--fr-slate-50);
  border-color: var(--fr-slate-300);
  color: var(--fr-plum);
}
.row_social_inpost .favour_btn_red .heart_thumb_wrap .heartplus,
.row_social_inpost .favour_btn_red .heart_thumb_wrap .heartplus.alreadywish:before {
  color: inherit;
}
.row_social_inpost .favour_btn_red .heart_thumb_wrap .heartplus:hover {
  color: var(--fr-danger);
}
.row_social_inpost .favour_btn_red .heart_thumb_wrap .thumbscount {
  position: static;
  background: transparent;
  color: var(--fr-slate-500);
  font-size: 12px;
  padding: 0 0 0 4px;
}

/* ReHub main color CSS variable override */
:root {
  --rehub-main-color: #2A2521;
}

/* ── Nav — lighter weight + override REHub red with site gold ────────────── */
nav.top_menu > ul > li > a {
  font-weight: 300 !important;
  font-size: 14px !important;
}
/* Override REHub red hover bar — cover both :after/:after notations, all states */
nav.top_menu > ul:not(.off-canvas) > li > a:after,
nav.top_menu > ul:not(.off-canvas) > li > a::after,
nav.top_menu > ul:not(.off-canvas) > li:hover > a:after,
nav.top_menu > ul:not(.off-canvas) > li:hover > a::after,
nav.top_menu > ul:not(.off-canvas) > li.hovered > a:after,
nav.top_menu > ul:not(.off-canvas) > li.hovered > a::after,
nav.top_menu > ul:not(.off-canvas) > li.current-menu-item > a:after,
nav.top_menu > ul:not(.off-canvas) > li.current-menu-item > a::after {
  background: #A07B3D !important;
  background-color: #A07B3D !important;
}
/* Sub-menu border */
nav.top_menu ul li ul.sub-menu {
  border-bottom-color: #A07B3D !important;
}
/* Nav link text colour on hover/active */
nav.top_menu > ul > li > a:hover,
nav.top_menu > ul > li.hovered > a,
nav.top_menu > ul > li.current-menu-item > a,
nav.top_menu > ul > li.current-menu-ancestor > a,
nav.top_menu > ul > li.current_page_item > a {
  color: #A07B3D !important;
}

/* ── Logo: "Her / Daily Fit" wordmark ───────────────────────────────────── */
.fr-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  font-family: 'Jost', sans-serif;
  font-weight: 400;
  font-size: 24px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  white-space: nowrap;
  line-height: 1;
}
.fr-logo__her {
  color: #C4A46C;
}
.fr-logo__slash {
  display: inline-block;
  width: 1.5px;
  height: 32px;
  background: #C4A46C;
  transform: skewX(-16deg);
  margin: 0 14px;
  flex-shrink: 0;
}
.fr-logo__rest {
  color: #1E1A16;
}
/* On dark header backgrounds, flip rest to cream */
.dark_style .fr-logo__rest,
.logo_section_wrap.dark_style .fr-logo__rest {
  color: #F7F6F5;
}
/* ── /Logo ───────────────────────────────────────────────────────────────── */

/* =============================================
   Content link colours
   ============================================= */
/* Links inside article body */
.fr-hub-article__body a:not([class]),
.fr-hub-article__body a.fr-tester-intro,
.fr-hub-article__body p a,
.fr-hub-article__body li a,
.fr-hub-article__body td a,
.fr-callout a {
  color: var(--fr-link);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(160,123,61,0.3);
  transition: color var(--fr-transition-fast), text-decoration-color var(--fr-transition-fast);
}
.fr-hub-article__body p a:hover,
.fr-hub-article__body li a:hover,
.fr-hub-article__body td a:hover,
.fr-callout a:hover {
  color: var(--fr-link-hover);
  text-decoration-color: var(--fr-link-hover);
}

/* =============================================
   Hide template Related Categories section
   (content merged into post body instead)
   ============================================= */
section.fr-review-section:has(.fr-hub-related-chips) {
  display: none !important;
}

/* =============================================
   Situation Cards — "Which programme is right for you?"
   fr-situation-cards / fr-situation-card
   ============================================= */
.fr-situation-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 24px 0 32px;
}

.fr-situation-card {
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  overflow: hidden;
}

/* Header row: number badge + italic scenario question */
.fr-situation-card__number {
  display: none; /* hidden — used as counter below */
}

.fr-situation-card__scenario {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #f8f8f6;
  padding: 14px 18px;
  border-bottom: 1px solid #e5e5e5;
  margin: 0;
  font-style: italic;
  color: #3a3a3a;
  font-size: 0.96em;
  line-height: 1.55;
}

/* Inject the number badge before the scenario text via counter */
.fr-situation-cards { counter-reset: fr-card; }
.fr-situation-card { counter-increment: fr-card; }
.fr-situation-card__scenario::before {
  content: counter(fr-card);
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  background: #2c2c2c;
  color: #fff;
  border-radius: 50%;
  font-size: 0.78em;
  font-weight: 700;
  font-style: normal;
  line-height: 1;
  margin-top: 1px;
}

/* Body: recommendation + description */
.fr-situation-card__recommendation {
  padding: 12px 18px 4px;
  margin: 0;
}

.fr-situation-card > p:not(.fr-situation-card__scenario):not(.fr-situation-card__recommendation) {
  padding: 0 18px 14px;
  margin: 0;
  font-size: 0.91em;
  color: #555;
  line-height: 1.65;
}
