/*
 * fto-sections.css  —  Fideograph FTO Page Builder
 *
 * Styles for all section types rendered by FTO_Sections::render_section().
 * Loaded only on pages using the "FTO Page Builder" template.
 *
 * Class families:
 *   ct-*        core section types (intro_prose, stats_bar, typology_entry…)
 *   kyf-*       argument section with tabs
 *   fh__*       card_grid, dark_feature
 *   fto-*       named component sections
 *   fg-btn      CTA buttons
 *   fg-subnav   in-page navigation
 */

/* ── CSS custom properties ───────────────────────────────── */
:root {
  --gold:      #C9A84C;
  --gold-lt:   #d4aa60;
  --gold-dim:  #8B6A1A;
  --ink:       #1c1810;
  --ink2:      #2e2a1e;
  --ink3:      #48432e;
  --parchment: #faf6ed;
  --parchment2:#f4edd8;
  --cream:     #fffdf7;
  --crimson:   #8B3000;
  --green:     #1A6A38;
  --border:    #ddd5b8;
  --shadow:    rgba(28,24,16,.12);
  --serif:     'Source Serif 4', Georgia, serif;
  --display:   'Playfair Display', Georgia, serif;
  --garamond:  'EB Garamond', Georgia, serif;
  --mono:      'DM Mono', monospace;
  /* FTO plugin aliases */
  --fg-gold:     #C9A84C;
  --fg-ink:      #1A1510;
  --fg-parchment:#FAF6ED;
  --fg-border:   #DDD5B8;
  --fg-teal:     #1A6B5A;
}

/* ── Page wrap ───────────────────────────────────────────── */
.fto-page-wrap {
  background: var(--parchment);
  color: var(--ink);
  font-family: var(--serif);
}
.fto-page-wrap *, .fto-page-wrap *::before, .fto-page-wrap *::after { box-sizing: border-box; }

/* ── Fade-in animation ───────────────────────────────────── */
@keyframes ftoFadeUp {
  from { opacity:0; transform:translateY(16px); }
  to   { opacity:1; transform:none; }
}
.ct-fade, .kyf-fade, .fto-fade {
  animation: ftoFadeUp .4s ease both;
}

/* ════════════════════════════════════════════════════════════
   CT-* CORE SECTION TYPES
   ════════════════════════════════════════════════════════════ */

.ct-sec {
  max-width: 860px;
  margin: 0 auto;
  padding: 52px 28px 0;
}
.ct-sec + .ct-sec {
  border-top: 1px solid var(--border);
  margin-top: 52px;
}

/* Eyebrow */
.ct-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(201,168,76,.7);
  margin-bottom: 14px;
}
.ct-eyebrow span {
  display: block;
  height: 1px;
  width: 40px;
  background: var(--gold);
  opacity: .4;
}

/* Title */
.ct-title {
  font-family: var(--display);
  font-size: clamp(22px,3.5vw,38px);
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 10px;
  line-height: 1.2;
}
.ct-title em { font-style: italic; color: var(--gold); }

/* Deck */
.ct-deck {
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(14px,2vw,18px);
  color: var(--ink3);
  line-height: 1.55;
  margin: 0 0 24px;
  max-width: 680px;
}

/* Prose */
.ct-prose {
  font-size: 16px;
  line-height: 1.82;
  color: var(--ink2);
  max-width: 680px;
}
.ct-prose p { margin: 0 0 18px; }
.ct-prose p:last-child { margin-bottom: 0; }
.ct-prose strong { color: var(--ink); font-weight: 700; }
.ct-prose em { font-style: italic; color: var(--ink2); }
.ct-prose a { color: var(--gold); text-decoration: none; }
.ct-prose a:hover { text-decoration: underline; }
.ct-prose blockquote {
  border-left: 3px solid var(--gold);
  margin: 20px 0;
  padding: 12px 0 12px 20px;
  font-family: var(--garamond);
  font-style: italic;
  font-size: 17px;
  color: var(--ink2);
  line-height: 1.65;
}
.ct-prose h3 {
  font-family: var(--display);
  font-size: 20px;
  font-weight: 700;
  color: var(--ink);
  margin: 28px 0 10px;
}

/* Drop cap */
.ct-dropcap .ct-prose > p:first-child::first-letter,
.ct-dropcap > p:first-child::first-letter {
  float: left;
  font-family: var(--display);
  font-size: 4.2em;
  line-height: .78;
  margin: .06em .1em 0 0;
  color: var(--crimson);
  font-weight: 900;
}

/* ── Stats bar ───────────────────────────────────────────── */
.fto-stats-section { max-width: 860px; margin: 0 auto; padding: 40px 28px; }
.ct-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
  justify-content: center;
  padding: 32px 28px;
  background: var(--ink);
  border-radius: 8px;
}
.ct-stat { text-align: center; min-width: 80px; }
.ct-stat-n {
  font-family: var(--display);
  font-size: clamp(28px,5vw,48px);
  font-weight: 900;
  color: var(--gold);
  line-height: 1;
  margin-bottom: 6px;
}
.ct-stat-l {
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(250,246,237,.45);
  line-height: 1.4;
}

/* ── Typology entry ──────────────────────────────────────── */
.ct-type-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  margin: 24px 0;
}
.ct-type-ot, .ct-type-nt {
  padding: 24px 28px;
  font-size: 14px;
  line-height: 1.75;
  color: var(--ink2);
}
.ct-type-ot { background: var(--parchment2); border-right: 1px solid var(--border); }
.ct-type-nt { background: var(--cream); }
.ct-type-label {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold-dim);
  margin-bottom: 10px;
  font-weight: 700;
}
.ct-type-ot p, .ct-type-nt p { margin: 0 0 12px; }
.ct-type-ot p:last-child, .ct-type-nt p:last-child { margin-bottom: 0; }

/* Scripture block */
.ct-scripture {
  background: linear-gradient(135deg, var(--parchment2), var(--parchment3, #ece3c5));
  border-left: 4px solid var(--gold);
  border-radius: 0 8px 8px 0;
  padding: 18px 22px;
  margin: 20px 0;
  cursor: pointer;
}
.ct-scr-ref {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--gold-dim);
  margin-bottom: 6px;
}
.ct-scr-text {
  font-family: var(--garamond);
  font-size: 17px;
  font-style: italic;
  color: var(--ink2);
  line-height: 1.65;
  margin-bottom: 8px;
}
.ct-scr-note {
  font-size: 13px;
  color: var(--ink3);
  line-height: 1.65;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--border);
}

/* Patristic fathers grid */
.ct-fathers { margin: 24px 0; }
.ct-fathers-label {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold-dim);
  margin-bottom: 12px;
}
.ct-father-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px,1fr));
  gap: 12px;
}
.ct-father-card {
  background: var(--cream);
  border: .5px solid var(--border);
  border-radius: 10px;
  padding: 16px;
  border-top: 3px solid var(--gold);
}
.ct-father-name {
  font-family: var(--display);
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 4px;
}
.ct-father-date {
  font-size: 10px;
  color: var(--gold-dim);
  font-style: italic;
  margin-left: 6px;
}
.ct-father-text {
  font-size: 13px;
  color: var(--ink3);
  line-height: 1.6;
  margin-top: 8px;
}

/* Apologetic weight */
.ct-apol {
  background: var(--parchment2);
  border-radius: 8px;
  padding: 16px 20px;
  margin-top: 20px;
  font-size: 14px;
  color: var(--ink2);
  line-height: 1.75;
}
.ct-apol-label {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold-dim);
  margin-bottom: 8px;
  font-weight: 700;
}

/* Verdict pill */
.fto-verdict-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(26,106,56,.1);
  border: 1px solid rgba(26,106,56,.3);
  color: var(--green);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 99px;
  margin-bottom: 20px;
}
.fto-verdict-pill__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
}

/* ════════════════════════════════════════════════════════════
   KYF-* ARGUMENT SECTION
   ════════════════════════════════════════════════════════════ */
.kyf-sec {
  max-width: 860px;
  margin: 0 auto;
  padding: 52px 28px 0;
  border-top: 1px solid var(--border);
  margin-top: 52px;
}
.kyf-sec:first-child { border-top: none; margin-top: 0; }
.kyf-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(201,168,76,.7);
  margin-bottom: 14px;
}
.kyf-eyebrow span { display: block; height: 1px; width: 40px; background: var(--gold); opacity: .4; }
.kyf-title {
  font-family: var(--display);
  font-size: clamp(20px,3vw,34px);
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 10px;
  line-height: 1.2;
}
.kyf-deck {
  font-family: var(--display);
  font-style: italic;
  font-size: 17px;
  color: var(--ink3);
  line-height: 1.55;
  margin-bottom: 20px;
  max-width: 680px;
}
.kyf-prose {
  font-size: 16px;
  line-height: 1.8;
  color: var(--ink2);
  max-width: 680px;
  margin-bottom: 24px;
}
.kyf-prose p { margin: 0 0 16px; }
.kyf-prose strong { color: var(--ink); }

/* Tabs */
.kyf-stab-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 16px;
}
.kyf-stab {
  font-size: 12px;
  padding: 7px 16px;
  border-radius: 99px;
  border: 1px solid var(--border);
  background: var(--parchment2);
  color: var(--ink3);
  cursor: pointer;
  font-family: var(--serif);
  transition: .15s;
}
.kyf-stab.on, .kyf-stab:hover {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
.kyf-stab-panels { min-height: 60px; }
.kyf-stab-panel { display: none; }
.kyf-stab-panel.on { display: block; animation: ftoFadeUp .2s ease; }
.kyf-stab-panel p { font-size: 15px; line-height: 1.78; color: var(--ink2); margin: 0 0 14px; }
.kyf-stab-verse {
  background: linear-gradient(135deg, var(--parchment2), var(--parchment3, #ece3c5));
  border-left: 4px solid var(--gold);
  border-radius: 0 8px 8px 0;
  padding: 14px 18px;
  margin-bottom: 14px;
}
.kyf-stab-vt {
  font-family: var(--garamond);
  font-style: italic;
  font-size: 16px;
  color: var(--ink2);
  line-height: 1.6;
  margin-bottom: 4px;
}
.kyf-stab-vr {
  font-size: 11px;
  color: var(--gold-dim);
  font-weight: 600;
  letter-spacing: .04em;
}
.kyf-stab-body p { font-size: 14.5px; line-height: 1.78; color: var(--ink2); }

/* ════════════════════════════════════════════════════════════
   FH__* CARD GRID & DARK FEATURE
   ════════════════════════════════════════════════════════════ */
.fto-card-grid { max-width: 1180px; margin: 0 auto; padding: 52px 28px 0; }
.fh__heading {
  font-family: var(--display);
  font-size: clamp(22px,3vw,34px);
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 10px;
}
.fto-card-grid__sub { font-size: 16px; color: var(--ink3); margin-bottom: 24px; }
.fh__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 24px;
}
.fto-card-grid__cols--3 .fh__grid { grid-template-columns: repeat(3,1fr); }
.fto-card-grid__cols--4 .fh__grid { grid-template-columns: repeat(4,1fr); }
.fh__card {
  display: block;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 28px 28px 22px;
  text-decoration: none;
  transition: box-shadow .2s, border-color .2s;
  color: inherit;
}
.fh__card:hover { box-shadow: 0 6px 24px var(--shadow); border-color: rgba(201,168,76,.4); }
.fh__card--major { border-left: 3px solid var(--gold); }
.fh__cardnum {
  font-family: var(--display);
  font-size: 11px;
  font-weight: 700;
  color: rgba(201,168,76,.6);
  letter-spacing: .12em;
  margin-bottom: 10px;
}
.fh__cardtitle {
  font-family: var(--display);
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 10px;
  line-height: 1.2;
}
.fh__carddesc {
  font-size: 14px;
  color: var(--ink3);
  line-height: 1.75;
  margin-bottom: 16px;
}
.fh__cardfoot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  color: var(--gold);
  font-weight: 600;
  border-top: 1px solid var(--border);
  padding-top: 12px;
}

/* Dark feature block */
.fh__dark {
  background: var(--ink);
  padding: 64px 28px;
  color: var(--parchment);
}
.fh__dark-inner { max-width: 1180px; margin: 0 auto; }
.fto-dark__eyebrow { color: rgba(201,168,76,.5); }
.fto-dark__eyebrow span { background: rgba(201,168,76,.25); }
.fto-dark__heading {
  font-family: var(--display);
  font-size: clamp(22px,3.5vw,40px);
  font-weight: 700;
  color: #fff;
  margin-bottom: 14px;
  line-height: 1.15;
}
.fto-dark__body {
  font-size: 15px;
  color: rgba(250,246,237,.5);
  max-width: 640px;
  line-height: 1.8;
  margin-bottom: 36px;
}
.fh__points {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 16px;
  margin-top: 32px;
}
.fh__point {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(201,168,76,.12);
  border-radius: 8px;
  padding: 24px;
}
.fh__point-icon { font-size: 24px; margin-bottom: 12px; }
.fh__point-title {
  font-family: var(--display);
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 8px;
}
.fh__point-text { font-size: 12.5px; color: rgba(250,246,237,.42); line-height: 1.7; }

/* ════════════════════════════════════════════════════════════
   FTO-* NAMED SECTION COMPONENTS
   ════════════════════════════════════════════════════════════ */

/* Quote block */
.fto-quote-block {
  max-width: 860px;
  margin: 0 auto;
  padding: 40px 28px;
  border-top: 1px solid var(--border);
  margin-top: 40px;
}
.fto-quote__text {
  font-family: var(--garamond);
  font-size: clamp(18px,2.5vw,24px);
  font-style: italic;
  color: var(--ink2);
  line-height: 1.65;
  border-left: 4px solid var(--gold);
  padding-left: 24px;
  margin: 0 0 16px;
}
.fto-quote__attr {
  font-family: var(--display);
  font-weight: 700;
  font-size: 14px;
  color: var(--ink);
  margin-bottom: 4px;
  padding-left: 28px;
}
.fto-quote__meta {
  font-size: 12px;
  color: var(--ink3);
  letter-spacing: .04em;
  padding-left: 28px;
  margin-bottom: 14px;
}
.fto-quote__note {
  font-size: 14px;
  color: var(--ink3);
  line-height: 1.7;
  padding-left: 28px;
  border-left: 2px solid var(--border);
  margin-left: 0;
  font-style: italic;
}

/* CTA strip */
.fto-cta-strip {
  background: var(--parchment2);
  padding: 48px 28px;
  text-align: center;
  border-top: 1px solid var(--border);
  margin-top: 52px;
}
.fto-cta-strip__heading {
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(16px,2.2vw,22px);
  color: var(--ink);
  margin: 0 0 8px;
  line-height: 1.5;
}
.fto-cta-strip__sub {
  font-size: 14px;
  color: var(--ink3);
  margin-bottom: 24px;
}
.fto-cta-strip__btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.fto-strip-btn {
  display: inline-block;
  padding: 11px 26px;
  border-radius: 5px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  transition: .2s;
  font-family: var(--serif);
}
.fto-strip-btn--gold { background: var(--gold); color: var(--ink); }
.fto-strip-btn--gold:hover { background: var(--gold-lt); }
.fto-strip-btn--outline { background: transparent; color: var(--ink2); border: 1px solid var(--border); }
.fto-strip-btn--outline:hover { border-color: var(--gold); color: var(--ink); }
.fto-strip-btn--ink { background: var(--ink); color: var(--parchment); }

/* FG buttons (shared) */
.fg-btn {
  display: inline-block;
  padding: 11px 26px;
  border-radius: 5px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  font-family: var(--serif);
  transition: background .2s, color .2s;
  cursor: pointer;
  border: none;
}
.fg-btn--gold { background: var(--gold); color: var(--ink); }
.fg-btn--gold:hover { background: var(--gold-lt); }
.fg-btn--ghost { background: transparent; color: rgba(250,246,237,.65); border: 1px solid rgba(250,246,237,.2); }
.fg-btn--ghost:hover { background: rgba(250,246,237,.1); }

/* Scripture section */
.fto-scripture { max-width: 860px; margin: 0 auto; padding: 40px 28px 0; }
.fto-scripture__inner {
  background: linear-gradient(135deg, var(--parchment2), var(--parchment3, #ece3c5));
  border-left: 4px solid var(--gold);
  border-radius: 0 10px 10px 0;
  padding: 24px 28px;
}
.fto-scripture__ref {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--gold-dim);
  margin-bottom: 10px;
}
.fto-scripture__passage {
  font-family: var(--garamond);
  font-size: 19px;
  font-style: italic;
  color: var(--ink2);
  line-height: 1.7;
  margin: 0 0 14px;
  border: none;
  padding: 0;
}
.fto-scripture__commentary {
  font-size: 14px;
  color: var(--ink3);
  line-height: 1.7;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}
.fto-scripture__commentary p { margin: 0 0 10px; }

/* Patristic cite */
.fto-patristic-cite { max-width: 860px; margin: 24px auto; padding: 0 28px; }
.fto-patristic-cite__inner {
  background: var(--cream);
  border: .5px solid var(--border);
  border-radius: 12px;
  padding: 22px 26px;
}
.fto-patristic-cite__head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.fto-patristic-cite__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--display);
  font-weight: 700;
  font-size: 16px;
  color: #fff;
  flex-shrink: 0;
}
.fto-patristic-cite__name {
  font-family: var(--display);
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 2px;
}
.fto-patristic-cite__meta { font-size: 12px; color: var(--ink3); }
.fto-patristic-cite__badge {
  margin-left: auto;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 99px;
  background: rgba(139,48,0,.08);
  color: var(--crimson);
}
.fto-patristic-cite__badge--eastern { background: rgba(24,95,165,.08); color: #185FA5; }
.fto-patristic-cite__badge--protestant { background: rgba(128,64,176,.08); color: #8040B0; }
.fto-patristic-cite__badge--catholic { background: rgba(26,106,56,.08); color: var(--green); }
.fto-patristic-cite__quote {
  font-family: var(--garamond);
  font-size: 17px;
  font-style: italic;
  color: var(--ink2);
  line-height: 1.65;
  border-left: 3px solid var(--gold);
  padding-left: 16px;
  margin: 0 0 12px;
}
.fto-patristic-cite__sig {
  font-size: 13px;
  color: var(--ink3);
  line-height: 1.65;
}
.fto-patristic-cite__sig-label {
  display: block;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold-dim);
  margin-bottom: 4px;
}

/* Two column */
.fto-two-col { max-width: 860px; margin: 0 auto; padding: 40px 28px 0; }
.fto-two-col__grid {
  display: grid;
  gap: 48px;
}
.fto-two-col__grid--50-50 { grid-template-columns: 1fr 1fr; }
.fto-two-col__grid--60-40 { grid-template-columns: 3fr 2fr; }
.fto-two-col__grid--40-60 { grid-template-columns: 2fr 3fr; }
.fto-two-col__col-title {
  font-family: var(--display);
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 12px;
}

/* Prose callout */
.fto-prose-callout {
  max-width: 860px;
  margin: 24px auto;
  padding: 20px 28px 20px 24px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
  border-radius: 0 8px 8px 0;
}
.fto-prose-callout--parch { background: var(--parchment2); border-left: 4px solid var(--gold); }
.fto-prose-callout--gold  { background: rgba(201,168,76,.08); border-left: 4px solid var(--gold); }
.fto-prose-callout--ink   { background: var(--ink); border-left: 4px solid var(--gold); color: var(--parchment); }
.fto-prose-callout__icon { font-size: 20px; flex-shrink: 0; margin-top: 2px; }
.fto-prose-callout__title {
  font-family: var(--display);
  font-weight: 700;
  font-size: 15px;
  color: var(--ink);
  margin-bottom: 6px;
}
.fto-prose-callout--ink .fto-prose-callout__title { color: var(--gold); }
.fto-prose-callout__body { font-size: 14px; line-height: 1.72; color: var(--ink3); }
.fto-prose-callout__body p { margin: 0 0 10px; }
.fto-prose-callout__body a { color: var(--gold); }

/* CTA block full */
.fto-cta-full {
  padding: 64px 28px;
  text-align: center;
}
.fto-cta-full__inner { max-width: 680px; margin: 0 auto; }
.fto-cta-full__eyebrow {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 14px;
}
.fto-cta-full__heading {
  font-family: var(--display);
  font-size: clamp(22px,3.5vw,38px);
  font-weight: 700;
  color: #fff;
  margin-bottom: 12px;
  line-height: 1.2;
}
.fto-cta-full__body {
  font-size: 16px;
  color: rgba(250,246,237,.55);
  margin-bottom: 28px;
  line-height: 1.7;
}
.fto-cta-full__btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.fto-cta-btn {
  display: inline-block;
  padding: 12px 28px;
  border-radius: 5px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: .04em;
  font-family: var(--serif);
  transition: .2s;
}
.fto-cta-btn--gold { background: var(--gold); color: var(--ink); }
.fto-cta-btn--gold:hover { background: var(--gold-lt); }
.fto-cta-btn--outline { background: transparent; color: rgba(250,246,237,.7); border: 1px solid rgba(250,246,237,.2); }
.fto-cta-btn--outline:hover { background: rgba(250,246,237,.1); }

/* Subnav */
.fg-subnav {
  background: var(--ink);
  border-bottom: 1px solid rgba(201,168,76,.15);
  position: sticky;
  top: 0;
  z-index: 40;
}
.fg-subnav__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 28px;
  display: flex;
  align-items: center;
  gap: 24px;
  height: 44px;
  overflow-x: auto;
  scrollbar-width: none;
}
.fg-subnav__inner::-webkit-scrollbar { display: none; }
.fg-subnav__label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(201,168,76,.5);
  white-space: nowrap;
  flex-shrink: 0;
}
.fg-subnav__links {
  display: flex;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: nowrap;
}
.fg-subnav__links li a {
  display: block;
  padding: 0 14px;
  height: 44px;
  line-height: 44px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .06em;
  color: rgba(250,246,237,.45);
  text-decoration: none;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: color .15s, border-color .15s;
}
.fg-subnav__links li a:hover,
.fg-subnav__links li a.active {
  color: var(--gold);
  border-bottom-color: var(--gold);
}

/* Masthead */
.fg-pillar-masthead {
  background: var(--ink);
  color: var(--parchment);
  padding: 64px 28px 56px;
  position: relative;
  overflow: hidden;
}
.fg-pillar-masthead::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 60% at 50% 0%,rgba(201,168,76,.15) 0%,transparent 70%);
  pointer-events: none;
}
.fg-pillar-masthead__inner { position: relative; max-width: 1100px; margin: 0 auto; }
.fg-pillar-masthead__series {
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 16px;
}
.fg-pillar-masthead__title {
  font-family: var(--display);
  font-size: clamp(28px,5vw,54px);
  font-weight: 900;
  color: #fff;
  line-height: 1.05;
  margin-bottom: 10px;
}
.fg-pillar-masthead__title em { font-style: italic; color: var(--gold); }
.fg-pillar-masthead__sub {
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(14px,2vw,18px);
  color: rgba(250,246,237,.65);
  max-width: 580px;
  line-height: 1.5;
  margin-bottom: 28px;
}
.fg-pillar-masthead__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  font-size: 11px;
  color: rgba(250,246,237,.45);
  letter-spacing: .06em;
}
.fg-pillar-masthead__meta span::before {
  content: '';
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--gold);
  display: inline-block;
  margin-right: 6px;
  vertical-align: middle;
}

/* Accordion */
.fto-acc-item {
  border-bottom: 1px solid var(--border);
}
.fto-acc-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0;
  cursor: pointer;
  font-family: var(--display);
  font-weight: 700;
  font-size: 16px;
  color: var(--ink);
  background: none;
  border: none;
  width: 100%;
  text-align: left;
}
.fto-acc-icon { color: var(--gold); font-size: 18px; transition: transform .2s; }
.fto-acc-body { padding-bottom: 16px; font-size: 15px; line-height: 1.75; color: var(--ink2); }

/* Ornament divider */
.fto-ornament {
  text-align: center;
  color: var(--gold);
  opacity: .4;
  padding: 24px 0;
  letter-spacing: 12px;
  font-size: 10px;
}
.fto-ornament--wide { padding: 40px 0; }
.fto-ornament__line, .fto-ornament__goldline {
  display: block;
  height: 1px;
  max-width: 400px;
  margin: 0 auto;
}
.fto-ornament__line { background: var(--border); }
.fto-ornament__goldline { background: var(--gold); opacity: .3; }

/* Claim/verdict blocks */
.fto-obj-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-radius: 8px;
  overflow: hidden;
  border: .5px solid var(--border);
  margin: 20px 0;
}
.fto-obj-col { padding: 20px 22px; font-size: 14px; line-height: 1.65; }
.fto-obj-col--objection { background: #fdf0f0; border-right: .5px solid var(--border); }
.fto-obj-col--response  { background: #eaf5ec; }
.fto-obj-label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 8px;
  color: var(--crimson);
}
.fto-obj-col--response .fto-obj-label { color: var(--green); }

.fto-arg-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  margin: 12px 0;
}
.fto-arg-head {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  cursor: pointer;
  background: var(--parchment2);
  user-select: none;
}
.fto-arg-num { font-family: var(--display); font-size: 20px; font-weight: 900; color: var(--gold); min-width: 28px; }
.fto-arg-title { font-family: var(--display); font-weight: 700; font-size: 15px; color: var(--ink); flex: 1; }
.fto-arg-arrow { color: var(--ink3); font-size: 12px; transition: transform .2s; }
.fto-arg-open .fto-arg-arrow { transform: rotate(180deg); }
.fto-arg-body { display: none; padding: 0 20px 20px; font-size: 14.5px; line-height: 1.78; color: var(--ink2); }
.fto-arg-open .fto-arg-body { display: block; }

/* Pull quote */
.fto-pull-quote { padding: 40px 28px; text-align: center; }
.fto-pull-quote--gold { background: rgba(201,168,76,.06); }
.fto-pull-quote--ink  { background: var(--ink); }
.fto-pull-quote__inner { max-width: 720px; margin: 0 auto; }
.fto-pull-quote__mark { font-family: var(--display); font-size: 80px; color: var(--gold); opacity: .2; line-height: .6; margin-bottom: 8px; }
.fto-pull-quote__text {
  font-family: var(--garamond);
  font-size: clamp(18px,2.5vw,26px);
  font-style: italic;
  line-height: 1.6;
  color: var(--ink2);
  margin-bottom: 16px;
}
.fto-pull-quote--ink .fto-pull-quote__text { color: rgba(250,246,237,.82); }
.fto-pull-quote__attr { font-size: 13px; font-weight: 700; color: var(--ink); margin-bottom: 4px; }
.fto-pull-quote--ink .fto-pull-quote__attr { color: var(--gold); }
.fto-pull-quote__source { font-size: 12px; color: var(--ink3); letter-spacing: .04em; }

/* Timeline */
.fto-timeline { max-width: 860px; margin: 0 auto; padding: 40px 28px 0; }
.fto-tl-track { position: relative; }
.fto-tl-event { display: flex; gap: 20px; margin-bottom: 32px; }
.fto-tl-spine { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; width: 16px; }
.fto-tl-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--gold); flex-shrink: 0; margin-top: 5px; }
.fto-tl-line { width: 2px; flex: 1; background: var(--border); margin-top: 4px; }
.fto-tl-date { font-family: var(--mono); font-size: 11px; color: var(--gold-dim); margin-bottom: 4px; letter-spacing: .06em; }
.fto-tl-title { font-family: var(--display); font-size: 17px; font-weight: 700; color: var(--ink); margin-bottom: 8px; }
.fto-tl-body { font-size: 14px; line-height: 1.72; color: var(--ink3); }

/* Comparison table */
.fto-comparison-table { max-width: 860px; margin: 0 auto; padding: 28px 28px 0; overflow-x: auto; }
.fto-comparison-table__caption { font-family: var(--display); font-weight: 700; font-size: 18px; color: var(--ink); margin-bottom: 16px; }
.fto-comparison-table table { width: 100%; border-collapse: collapse; font-size: 14px; }
.fto-comparison-table th { background: var(--ink); color: var(--parchment); padding: 10px 14px; text-align: left; font-family: var(--mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.fto-comparison-table td { padding: 10px 14px; border-bottom: 1px solid var(--border); color: var(--ink2); }
.fto-comparison-table tr:hover td { background: var(--parchment2); }
.fto-row-highlight td { background: rgba(201,168,76,.06); font-weight: 600; }

/* ════════════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════════════ */
@media (max-width: 680px) {
  .ct-sec, .kyf-sec, .fto-quote-block, .fto-scripture,
  .fto-patristic-cite, .fto-two-col, .fto-timeline,
  .fto-card-grid { padding-left: 20px; padding-right: 20px; }

  .ct-type-block { grid-template-columns: 1fr; }
  .ct-type-ot { border-right: none; border-bottom: 1px solid var(--border); }

  .fh__grid,
  .fto-card-grid__cols--3 .fh__grid,
  .fto-card-grid__cols--4 .fh__grid { grid-template-columns: 1fr; }

  .fh__points { grid-template-columns: 1fr; }

  .fto-two-col__grid--50-50,
  .fto-two-col__grid--60-40,
  .fto-two-col__grid--40-60 { grid-template-columns: 1fr; }

  .fto-obj-pair { grid-template-columns: 1fr; }
  .fto-obj-col--objection { border-right: none; border-bottom: .5px solid var(--border); }

  .ct-father-grid { grid-template-columns: 1fr; }
  .fg-pillar-masthead { padding: 48px 20px 40px; }
  .ct-stats { gap: 20px; }
}
