/* =====================================================================
   FunnelToolLab — reusable article design system
   Loaded ONLY on pages flagged with post meta _ftl_article_layout=1
   (see functions.php: wp_enqueue_scripts + body_class filter add
   `ftl-article-page`). All rules are scoped to body.ftl-article-page
   or to namespaced .ftl-* component classes, so nothing else is affected.
   Medium-style readability + SaaS review layout. No claims live in CSS.
   ===================================================================== */

/* ---- palette (matches theme.json royal blue + warm orange) ---- */
:root{
  --ftl-ink:#1f2937; --ftl-muted:#64748b; --ftl-line:#e2e8f0;
  --ftl-bg-soft:#f8fafc; --ftl-bg-card:#f1f5f9;
  --ftl-blue:#1f4e79; --ftl-blue-dark:#163a5b; --ftl-accent:#d86518;
  --ftl-ok:#15803d; --ftl-ok-bg:#f0fdf4; --ftl-ok-line:#bbf7d0;
  --ftl-warn:#b45309; --ftl-warn-bg:#fffbeb; --ftl-warn-line:#fde68a;
  --ftl-measure:760px;
}

/* ---- base typography / readable measure ---- */
body.ftl-article-page .wp-block-post-title{
  max-width:var(--ftl-measure);margin:0 auto 6px;
  font-size:2.05rem;line-height:1.2;font-weight:800;letter-spacing:-.01em;color:#0f172a;
}
@media(min-width:782px){body.ftl-article-page .wp-block-post-title{font-size:2.5rem;}}
body.ftl-article-page .wp-block-post-content,
body.ftl-article-page .entry-content{
  max-width:var(--ftl-measure) !important;margin-left:auto;margin-right:auto;
  font-size:1.12rem;line-height:1.78;color:var(--ftl-ink);
}
body.ftl-article-page .entry-content p{margin:0 0 1.25em;}
body.ftl-article-page .entry-content h2{
  font-size:1.5rem;line-height:1.3;font-weight:700;color:#0f172a;
  margin:2.2em 0 .6em;padding-top:.2em;scroll-margin-top:90px;
}
body.ftl-article-page .entry-content h3{
  font-size:1.18rem;font-weight:700;color:#0f172a;margin:1.6em 0 .5em;scroll-margin-top:90px;
}
body.ftl-article-page .entry-content ul{margin:0 0 1.25em;padding-left:1.25em;}
body.ftl-article-page .entry-content li{margin:.4em 0;line-height:1.7;}
body.ftl-article-page .entry-content a{color:var(--ftl-blue);text-underline-offset:2px;}

/* ---- hero ---- */
.ftl-hero{max-width:var(--ftl-measure);margin:0 auto 4px;}
.ftl-hero__cat{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:2px;
  text-transform:uppercase;color:var(--ftl-accent);margin-bottom:6px;}
.ftl-hero__deck{font-size:1.18rem;line-height:1.6;color:#334155;margin:.4em 0 .8em;}
.ftl-hero__meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;
  font-size:.86rem;color:var(--ftl-muted);border-top:1px solid var(--ftl-line);
  border-bottom:1px solid var(--ftl-line);padding:10px 0;margin-bottom:8px;}
.ftl-hero__meta span{display:inline-flex;align-items:center;gap:6px;}

/* ---- summary box (Best for / Tested / Recommendation / Not tested) ---- */
.ftl-summary-box{background:var(--ftl-bg-soft);border:1px solid var(--ftl-line);
  border-left:4px solid var(--ftl-blue);border-radius:10px;padding:18px 20px;margin:24px 0;}
.ftl-summary-box h2{margin:0 0 12px !important;font-size:1.05rem !important;
  text-transform:uppercase;letter-spacing:1px;color:#0f172a;padding:0 !important;}
.ftl-summary-box dl{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0;}
.ftl-summary-box dt{font-size:.74rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;
  color:var(--ftl-accent);padding-top:2px;white-space:nowrap;}
.ftl-summary-box dd{margin:0;font-size:.98rem;line-height:1.55;color:#1f2937;}
@media(max-width:600px){.ftl-summary-box dl{grid-template-columns:1fr;gap:2px 0;}
  .ftl-summary-box dd{margin:0 0 10px;}}

/* ---- inline table of contents ---- */
.ftl-toc{background:#fff;border:1px solid var(--ftl-line);border-radius:10px;
  padding:16px 20px;margin:24px 0;}
.ftl-toc__title{font-size:.74rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;
  color:var(--ftl-muted);margin:0 0 10px;}
.ftl-toc ol{margin:0;padding-left:1.1em;columns:2;column-gap:28px;}
.ftl-toc li{margin:.25em 0;line-height:1.45;}
.ftl-toc a{color:var(--ftl-blue);text-decoration:none;}
.ftl-toc a:hover{text-decoration:underline;}
@media(max-width:600px){.ftl-toc ol{columns:1;}}

/* ---- CTA box + buttons (affiliate) ---- */
.ftl-cta-box{background:linear-gradient(180deg,#f8fbff,#eef4fb);border:1px solid #d6e4f5;
  border-radius:12px;padding:22px;margin:28px 0;text-align:center;}
.ftl-cta-box__line{font-size:1rem;color:#334155;margin:0 0 14px;}
.ftl-cta-wrap{margin:26px 0;text-align:center;}
a.ftl-cta{display:inline-block;background:var(--ftl-blue);color:#fff !important;
  padding:15px 34px;border-radius:8px;font-weight:700;font-size:1.06rem;text-decoration:none;
  box-shadow:0 2px 8px rgba(31,78,121,.30);transition:background .15s ease,transform .1s ease;}
a.ftl-cta:hover{background:var(--ftl-blue-dark);transform:translateY(-1px);}
a.ftl-cta--secondary{background:#fff;color:var(--ftl-blue) !important;
  border:2px solid var(--ftl-blue);box-shadow:none;}
a.ftl-cta--secondary:hover{background:#f1f5f9;}

/* ---- disclosure (above first CTA) + footer disclosure ---- */
.ftl-disclosure{background:var(--ftl-bg-card);border-left:4px solid var(--ftl-blue);
  padding:14px 18px;margin:0 0 26px;font-size:.95em;color:#334155;border-radius:4px;}
.ftl-footer-disclosure{border-top:1px solid var(--ftl-line);margin-top:34px;padding-top:16px;
  font-size:.9em;color:#475569;}

/* ---- pros / cons cards ---- */
.ftl-pros-cons{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0;}
.ftl-pc{border:1px solid var(--ftl-line);border-radius:10px;padding:16px 18px;background:#fff;}
.ftl-pc--pros{border-top:3px solid var(--ftl-ok);background:var(--ftl-ok-bg);}
.ftl-pc--cons{border-top:3px solid var(--ftl-warn);background:var(--ftl-warn-bg);}
.ftl-pc h3{margin:0 0 10px !important;font-size:1.02rem !important;display:flex;gap:8px;align-items:center;}
.ftl-pc--pros h3{color:var(--ftl-ok);}
.ftl-pc--cons h3{color:var(--ftl-warn);}
.ftl-pc ul{margin:0;padding-left:1.15em;}
.ftl-pc li{margin:.45em 0;font-size:.97rem;line-height:1.55;}
@media(max-width:600px){.ftl-pros-cons{grid-template-columns:1fr;}}

/* ---- screenshot cards ---- */
body.ftl-article-page .entry-content figure,
.ftl-screenshot-card{margin:30px auto;max-width:100%;}
body.ftl-article-page .entry-content figure img,
.ftl-screenshot-card img{width:100%;height:auto;display:block;border:1px solid var(--ftl-line);
  border-radius:12px;box-shadow:0 4px 18px rgba(15,23,42,.10);}
body.ftl-article-page .entry-content figcaption,
.ftl-screenshot-card figcaption{font-size:.88rem;color:var(--ftl-muted);text-align:center;
  margin-top:10px;font-style:italic;}

/* ---- comparison / limits tables ---- */
.ftl-table-wrap{overflow-x:auto;margin:20px 0;-webkit-overflow-scrolling:touch;
  border:1px solid var(--ftl-line);border-radius:10px;}
.ftl-table-wrap table{width:100%;border-collapse:collapse;min-width:min(440px,100%);margin:0;}
.ftl-table-wrap thead th{background:var(--ftl-bg-card);text-align:left;padding:13px 16px;
  border-bottom:1px solid var(--ftl-line);font-weight:700;font-size:.95rem;}
.ftl-table-wrap td{padding:12px 16px;border-bottom:1px solid var(--ftl-line);font-size:.97rem;}
.ftl-table-wrap tbody tr:nth-child(even){background:var(--ftl-bg-soft);}
.ftl-table-wrap tbody tr:last-child td{border-bottom:0;}

/* ---- "what I tested / did not test" box (trustworthy, not scary) ---- */
.ftl-tested-box{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0;
  border:1px solid var(--ftl-line);border-radius:12px;padding:18px;background:#fff;}
.ftl-tested-box__col h3{margin:0 0 10px !important;font-size:1rem !important;}
.ftl-tested-box__col--did h3{color:var(--ftl-ok);}
.ftl-tested-box__col--didnt h3{color:#475569;}
.ftl-tested-box ul{margin:0;padding-left:1.15em;}
.ftl-tested-box li{margin:.4em 0;font-size:.95rem;line-height:1.5;}
.ftl-tested-box__note{grid-column:1/-1;margin:4px 0 0;font-size:.9rem;color:var(--ftl-muted);}
@media(max-width:600px){.ftl-tested-box{grid-template-columns:1fr;}}

/* ---- final verdict ---- */
.ftl-verdict{background:#fbfdff;border:1px solid #d6e4f5;border-left:4px solid var(--ftl-accent);
  border-radius:12px;padding:22px 24px;margin:28px 0;}
.ftl-verdict h2{margin:0 0 10px !important;padding:0 !important;}
.ftl-verdict__lead{font-size:1.08rem;font-weight:700;color:#0f172a;margin:0 0 .6em;}

/* ---- generic callout (breaks dense text) ---- */
.ftl-callout{background:var(--ftl-warn-bg);border:1px solid var(--ftl-warn-line);
  border-radius:10px;padding:14px 18px;margin:22px 0;font-size:.98rem;line-height:1.6;color:#3f3f46;}
.ftl-callout strong{color:var(--ftl-warn);}

/* ---- cxs-leads newsletter form (auto-appended to posts): keep it inside the
   viewport on article pages. Scoped to body.ftl-article-page so the shared
   plugin is untouched and other sites/pages are unaffected. The plugin's inline
   row doesn't wrap at narrow widths, which pushed the submit button past the
   right edge at ~375px; this makes the row wrap and stack on mobile. ---- */
body.ftl-article-page .cxs-leads-form-wrap{max-width:100%;}
body.ftl-article-page .cxs-leads-row--inline{display:flex;flex-wrap:wrap;gap:10px;max-width:100%;}
body.ftl-article-page .cxs-leads-row--inline > *{box-sizing:border-box;max-width:100%;}
body.ftl-article-page .cxs-leads-form input{box-sizing:border-box;max-width:100%;}
@media(max-width:600px){
  body.ftl-article-page .cxs-leads-row--inline > *{flex:1 1 100%;}
  body.ftl-article-page .cxs-leads-submit{width:100%;}
}

/* ---- mobile guards: never overflow, comfortable text ---- */
@media(max-width:600px){
  body.ftl-article-page .wp-block-post-content,
  body.ftl-article-page .entry-content{font-size:1.04rem;line-height:1.72;}
  a.ftl-cta{display:block;width:100%;box-sizing:border-box;padding:15px 18px;}
  .ftl-cta-box{padding:18px 14px;}
}
