/*
Theme Name: BestFax Journal
Theme URI: https://bestfaxservices.com
Author: BestFaxServices
Description: Clean & modern editorial theme for BestFaxServices — online fax guides, reviews and comparisons. Manrope + IBM Plex Mono, indigo accent.
Version: 1.0
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: bestfax-journal
*/

/* ============ TOKENS ============ */
:root{
  --accent:#4b57d6;            /* oklch(0.58 0.15 262) fallback */
  --accent-soft:#eef0fb;
  --ink:#17181a; --body:#2c2d31; --sub:#57585e; --muted:#6b6d73; --faint:#9a9ba6;
  --line:#ececed; --line2:#f2f2f3; --chip:#f4f4f6; --chip2:#f4f4f8;
  --dark:#111214; --paper:#ffffff;
  --sans:'Manrope',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,monospace;
  --wrap:1180px;
  --radius:14px;
}
@supports (color: oklch(0.58 0.15 262)){ :root{ --accent:oklch(0.58 0.15 262); --accent-soft:oklch(0.58 0.15 262 / 0.08); } }

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
a{color:inherit;text-decoration:none;}
a:hover{color:var(--accent);}
img{max-width:100%;height:auto;display:block;}
::selection{background:rgba(75,87,214,.18);}

.bf-wrap{max-width:var(--wrap);margin:0 auto;padding:0 40px;}
.bf-mono{font-family:var(--mono);}
.bf-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:600;}

/* ============ HEADER ============ */
.bf-topbar{border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);backdrop-filter:saturate(1.4) blur(10px);}
.bf-header{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:16px 0;}
.bf-brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:18px;letter-spacing:-.02em;color:var(--ink);flex:0 0 auto;}
.bf-brand .mark{width:34px;height:34px;border-radius:9px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;}
.bf-brand .accent{color:var(--accent);}
.bf-nav{display:flex;gap:26px;font-size:14.5px;font-weight:600;color:#3d3f44;flex:1 1 auto;}
.bf-nav a.active,.bf-nav a:hover{color:var(--accent);}
.bf-search{display:flex;align-items:center;gap:10px;background:var(--chip);border:1px solid var(--line);border-radius:9px;padding:9px 14px;width:230px;color:var(--faint);font-size:13.5px;flex:0 0 auto;}
.bf-search svg{flex:0 0 auto;}
.bf-search input{border:0;background:transparent;outline:0;width:100%;font-family:var(--sans);font-size:13.5px;color:var(--ink);}
.bf-search input::placeholder{color:var(--faint);}
.bf-burger{display:none;background:none;border:0;cursor:pointer;padding:6px;color:var(--ink);}

/* chips */
.bf-chipbar{border-bottom:1px solid var(--line2);background:#fff;}
.bf-chips{display:flex;gap:10px;padding:14px 0;font-size:13px;font-weight:600;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.bf-chips::-webkit-scrollbar{display:none;}
.bf-chips a{padding:7px 15px;border-radius:999px;background:var(--chip);color:#4a4c52;white-space:nowrap;flex:0 0 auto;}
.bf-chips a.active,.bf-chips a:hover{background:var(--accent);color:#fff;}

/* reading progress */
.bf-progress{height:3px;background:var(--line2);}
.bf-progress span{display:block;height:3px;width:0;background:var(--accent);transition:width .1s linear;}

/* ============ HOME / ARCHIVE LAYOUT ============ */
.bf-layout{display:flex;gap:44px;padding:36px 0 60px;align-items:flex-start;}
.bf-content{flex:1 1 auto;min-width:0;}
.bf-sidebar{flex:0 0 300px;display:flex;flex-direction:column;gap:26px;position:sticky;top:88px;}

.bf-archead{padding:34px 0 6px;}
.bf-archead h1{font-size:30px;font-weight:800;letter-spacing:-.02em;margin:6px 0 8px;}
.bf-archead p{color:var(--muted);font-size:15px;margin:0;max-width:640px;}

/* featured */
.bf-featured{display:grid;grid-template-columns:1.15fr 1fr;gap:26px;align-items:center;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:34px;}
.bf-featured .thumb{aspect-ratio:4/3;overflow:hidden;background:var(--chip);}
.bf-featured .thumb img{width:100%;height:100%;object-fit:cover;}
.bf-featured .body{padding:8px 26px 8px 0;}
.bf-featured h2{font-size:25px;line-height:1.2;font-weight:800;letter-spacing:-.02em;margin:12px 0 10px;}
.bf-featured p{font-size:14.5px;line-height:1.6;color:var(--muted);margin:0 0 16px;}
.bf-meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--faint);flex-wrap:wrap;}
.bf-meta .avatar{width:26px;height:26px;border-radius:999px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;overflow:hidden;}
.bf-meta .avatar img{width:100%;height:100%;object-fit:cover;}
.bf-meta .name{color:#4a4c52;font-weight:600;}

/* card grid */
.bf-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.bf-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .18s ease,transform .18s ease;}
.bf-card:hover{box-shadow:0 14px 34px rgba(23,24,26,.08);transform:translateY(-2px);}
.bf-card .thumb{aspect-ratio:16/9;overflow:hidden;background:var(--chip);}
.bf-card .thumb img{width:100%;height:100%;object-fit:cover;}
.bf-card .pad{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1 1 auto;}
.bf-card h3{font-size:16.5px;line-height:1.3;font-weight:700;margin:9px 0 8px;letter-spacing:-.01em;}
.bf-card p{font-size:13px;line-height:1.55;color:var(--muted);margin:0 0 12px;}
.bf-card .date{font-size:12px;color:var(--faint);margin-top:auto;}

.bf-loadmore{display:flex;justify-content:center;margin-top:30px;}
.bf-pagination{display:flex;justify-content:center;gap:6px;margin-top:34px;flex-wrap:wrap;}
.bf-pagination .page-numbers{padding:9px 15px;border:1px solid var(--line);border-radius:999px;font-size:13.5px;font-weight:700;color:#3d3f44;}
.bf-pagination .current{background:var(--accent);color:#fff;border-color:var(--accent);}
.bf-pagination a.page-numbers:hover{border-color:var(--accent);color:var(--accent);}

/* ============ SIDEBAR ============ */
.bf-widget{border:1px solid var(--line);border-radius:12px;padding:20px;}
.bf-widget .wtitle{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:14px;}
.bf-popular{display:flex;flex-direction:column;gap:14px;}
.bf-popular .row{display:flex;gap:13px;align-items:flex-start;}
.bf-popular .num{font-family:var(--mono);font-size:18px;font-weight:600;color:#dcdce0;line-height:1.2;flex:0 0 auto;}
.bf-popular a{font-size:14px;font-weight:700;line-height:1.35;}
.bf-popular a:hover{color:var(--accent);}
.bf-catlist{display:flex;flex-direction:column;font-size:14px;}
.bf-catlist a{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line2);}
.bf-catlist a:last-child{border-bottom:0;}
.bf-catlist a span:first-child{font-weight:600;color:var(--ink);}
.bf-catlist a:hover span:first-child{color:var(--accent);}
.bf-catlist a .count{color:var(--faint);}
.bf-news{border-radius:12px;padding:24px;background:var(--accent);color:#fff;}
.bf-news h3{font-size:17px;font-weight:800;letter-spacing:-.01em;margin:0 0 8px;}
.bf-news p{font-size:13px;line-height:1.55;color:rgba(255,255,255,.85);margin:0 0 16px;}
.bf-news input{width:100%;background:#fff;border:0;border-radius:8px;padding:11px 14px;font-size:13px;color:var(--ink);font-family:var(--sans);margin-bottom:10px;outline:0;}
.bf-news button{width:100%;background:var(--dark);color:#fff;border:0;text-align:center;border-radius:8px;padding:11px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:var(--sans);}
.bf-news button:hover{opacity:.92;}

/* ============ ARTICLE ============ */
.bf-article{max-width:900px;margin:0 auto;padding:0 40px;}
.bf-artpad{padding:40px 50px 20px;}
.bf-breadcrumb{font-family:var(--mono);font-size:11.5px;color:var(--faint);margin-bottom:22px;}
.bf-breadcrumb a{color:var(--faint);}
.bf-breadcrumb a:hover{color:var(--accent);}
.bf-breadcrumb .cur{color:var(--accent);}
.bf-article h1{font-size:38px;line-height:1.14;font-weight:800;letter-spacing:-.025em;margin:14px 0 16px;}
.bf-dek{font-size:18px;line-height:1.55;color:var(--sub);margin:0 0 24px;}
.bf-byline{display:flex;align-items:center;gap:12px;padding-bottom:26px;border-bottom:1px solid var(--line);font-size:13.5px;}
.bf-byline .avatar{width:40px;height:40px;border-radius:999px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;overflow:hidden;flex:0 0 auto;}
.bf-byline .avatar img{width:100%;height:100%;object-fit:cover;}
.bf-byline .name{font-weight:700;}
.bf-byline .sub{color:var(--faint);font-size:12.5px;}
.bf-byline .share{margin-left:auto;display:flex;gap:8px;}
.bf-byline .share a{width:34px;height:34px;border-radius:999px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px;}
.bf-byline .share a:hover{border-color:var(--accent);color:var(--accent);}
.bf-hero{padding:6px 50px 0;}
.bf-hero .frame{aspect-ratio:2/1;border-radius:12px;overflow:hidden;background:var(--chip);}
.bf-hero img{width:100%;height:100%;object-fit:cover;}

/* prose */
.bf-article-body{padding:36px 50px 10px;font-size:16.5px;line-height:1.72;color:var(--body);}
.bf-article-body > *:first-child{margin-top:0;}
.bf-article-body p{margin:0 0 20px;}
.bf-article-body h2{font-size:25px;font-weight:800;letter-spacing:-.02em;margin:34px 0 14px;color:var(--ink);}
.bf-article-body h3{font-size:19px;font-weight:800;letter-spacing:-.01em;margin:26px 0 10px;color:var(--ink);}
.bf-article-body a{color:var(--accent);text-decoration:underline;text-decoration-color:rgba(75,87,214,.3);text-underline-offset:2px;}
.bf-article-body a:hover{text-decoration-color:var(--accent);}
.bf-article-body ul,.bf-article-body ol{margin:0 0 24px;padding-left:22px;}
.bf-article-body li{margin-bottom:8px;}
.bf-article-body strong{color:var(--ink);}
.bf-article-body img{border-radius:10px;margin:6px 0;}
.bf-article-body figure{margin:0 0 24px;}
.bf-article-body figcaption{font-size:13px;color:var(--faint);text-align:center;margin-top:8px;}
.bf-article-body code{font-family:var(--mono);background:#e9e9f2;padding:2px 6px;border-radius:4px;font-size:.86em;}
.bf-article-body pre{background:var(--dark);color:#e9e9ee;padding:18px 20px;border-radius:10px;overflow-x:auto;margin:0 0 24px;}
.bf-article-body pre code{background:none;padding:0;color:inherit;}
.bf-article-body blockquote{margin:0 0 30px;padding:4px 0 4px 24px;border-left:3px solid var(--ink);font-size:20px;line-height:1.5;font-weight:600;letter-spacing:-.01em;color:var(--ink);}
.bf-article-body blockquote p{margin:0;}
.bf-article-body table{width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:0 0 30px;font-size:14.5px;}
.bf-article-body thead{background:var(--chip);}
.bf-article-body th{text-align:left;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:12px 16px;font-weight:700;}
.bf-article-body td{padding:12px 16px;border-top:1px solid var(--line);}

/* article components (authored / pipeline) */
.bf-callout{background:var(--chip2);border-left:3px solid var(--accent);border-radius:0 10px 10px 0;padding:18px 22px;margin:0 0 30px;}
.bf-callout .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:6px;}
.bf-callout p{margin:0;font-size:15px;line-height:1.6;color:#3d3f44;}
.bf-steps{margin:0 0 28px;padding:0;list-style:none;}
.bf-steps li{display:flex;gap:16px;margin-bottom:18px;}
.bf-steps li:last-child{margin-bottom:0;}
.bf-steps .n{flex:0 0 32px;height:32px;border-radius:999px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;}
.bf-steps strong{display:block;margin-bottom:2px;color:var(--ink);}
.bf-faq{border-top:1px solid var(--line);margin-bottom:8px;}
.bf-faq .item{padding:16px 0;border-bottom:1px solid var(--line);}
.bf-faq .q{font-weight:700;font-size:16px;margin-bottom:6px;color:var(--ink);}
.bf-faq .a{margin:0;font-size:15px;color:var(--sub);line-height:1.6;}

/* author box */
.bf-authorbox{margin:24px 50px 0;padding:22px;background:var(--chip);border-radius:12px;display:flex;gap:16px;align-items:flex-start;}
.bf-authorbox .avatar{width:52px;height:52px;border-radius:999px;background:var(--accent-soft);color:var(--accent);flex:0 0 52px;display:flex;align-items:center;justify-content:center;font-weight:800;overflow:hidden;}
.bf-authorbox .avatar img{width:100%;height:100%;object-fit:cover;}
.bf-authorbox .name{font-weight:800;font-size:15px;margin-bottom:4px;}
.bf-authorbox p{margin:0;font-size:13.5px;line-height:1.6;color:var(--sub);}

/* related */
.bf-related{padding:36px 50px 8px;}
.bf-related .wtitle{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:16px;}
.bf-related .grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}

/* article newsletter cta */
.bf-cta{margin:34px 50px 44px;border-radius:var(--radius);padding:30px 34px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.bf-cta h3{font-size:20px;font-weight:800;letter-spacing:-.01em;margin:0 0 6px;}
.bf-cta p{margin:0;font-size:14px;color:rgba(255,255,255,.85);}
.bf-cta form{display:flex;gap:10px;flex:0 0 auto;}
.bf-cta input{background:#fff;border:0;border-radius:8px;padding:12px 16px;font-size:13.5px;color:var(--ink);width:200px;font-family:var(--sans);outline:0;}
.bf-cta button{background:var(--dark);color:#fff;border:0;border-radius:8px;padding:12px 20px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:var(--sans);}

/* ============ PAGE ============ */
.bf-page{max-width:760px;margin:0 auto;padding:48px 40px 60px;}
.bf-page h1{font-size:34px;font-weight:800;letter-spacing:-.02em;margin:0 0 22px;}
.bf-page-body{font-size:16.5px;line-height:1.72;color:var(--body);}
.bf-page-body h2{font-size:23px;font-weight:800;margin:32px 0 12px;color:var(--ink);}
.bf-page-body p{margin:0 0 18px;}
.bf-page-body a{color:var(--accent);text-decoration:underline;}
.bf-page-body ul,.bf-page-body ol{margin:0 0 18px;padding-left:22px;}

/* ============ FOOTER ============ */
.bf-footer{background:var(--dark);color:#c7c8ce;margin-top:20px;}
.bf-footer .inner{display:flex;justify-content:space-between;align-items:center;padding:34px 0;font-size:13px;gap:20px;flex-wrap:wrap;}
.bf-footer .brand{display:flex;align-items:center;gap:10px;font-weight:800;color:#fff;font-size:16px;}
.bf-footer .brand .mark{width:28px;height:28px;border-radius:8px;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;}
.bf-footer .links{display:flex;gap:26px;flex-wrap:wrap;}
.bf-footer .links a:hover{color:#fff;}
.bf-footer .copy{color:#6b6d73;}

/* ============ 404 / EMPTY ============ */
.bf-empty{max-width:760px;margin:0 auto;padding:80px 40px;text-align:center;}
.bf-empty h1{font-size:40px;font-weight:800;letter-spacing:-.02em;margin:0 0 12px;}
.bf-empty p{color:var(--muted);font-size:16px;margin:0 0 24px;}
.bf-btn{display:inline-block;padding:11px 24px;border-radius:999px;background:var(--accent);color:#fff;font-size:14px;font-weight:700;}
.bf-btn.ghost{background:transparent;border:1px solid var(--line);color:#3d3f44;}
.bf-btn.ghost:hover{border-color:var(--accent);color:var(--accent);}

/* ============ RESPONSIVE ============ */
@media (max-width:1000px){
  .bf-layout{gap:32px;}
  .bf-sidebar{flex-basis:260px;}
}
@media (max-width:860px){
  .bf-wrap,.bf-article,.bf-hero{padding-left:22px;padding-right:22px;}
  .bf-artpad{padding:30px 22px 16px;}
  .bf-hero{padding:6px 22px 0;}
  .bf-article-body{padding:28px 22px 8px;}
  .bf-authorbox{margin:22px 22px 0;}
  .bf-related{padding:30px 22px 8px;}
  .bf-cta{margin:28px 22px 36px;}
  .bf-nav{display:none;}
  .bf-nav.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:#fff;border-bottom:1px solid var(--line);padding:8px 22px 16px;box-shadow:0 20px 40px rgba(0,0,0,.08);}
  .bf-nav.open a{padding:12px 0;border-bottom:1px solid var(--line2);font-size:15px;}
  .bf-burger{display:block;}
  .bf-search{display:none;}
  .bf-topbar{position:relative;}
  .bf-layout{flex-direction:column;padding:26px 0 48px;}
  .bf-sidebar{flex-basis:auto;width:100%;position:static;flex-direction:column;}
  .bf-featured{grid-template-columns:1fr;}
  .bf-featured .thumb{aspect-ratio:16/9;}
  .bf-featured .body{padding:0 20px 22px;}
  .bf-grid{grid-template-columns:1fr;}
  .bf-related .grid{grid-template-columns:1fr;}
  .bf-article h1{font-size:29px;}
  .bf-dek{font-size:16px;}
  .bf-cta{flex-direction:column;align-items:flex-start;}
  .bf-cta form{width:100%;}
  .bf-cta input{flex:1 1 auto;width:auto;}
}
@media (max-width:520px){
  .bf-header{gap:12px;}
  .bf-brand{font-size:16px;}
  .bf-byline .share{display:none;}
}

/* ============ APP FUNNEL CHROME ============ */
/* in-article CTA (Node-injected .bf-incta) */
.bf-incta{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--accent);color:#fff;border-radius:var(--radius);padding:22px 24px;margin:8px 0 26px;flex-wrap:wrap;}
.bf-incta .h{font-size:17px;font-weight:800;letter-spacing:-.01em;margin-bottom:5px;}
.bf-incta p{margin:0;font-size:13.5px;line-height:1.55;color:rgba(255,255,255,.85);max-width:540px;}
.bf-incta .btn{flex:0 0 auto;background:var(--dark);color:#fff;border-radius:9px;padding:12px 20px;font-size:14px;font-weight:700;white-space:nowrap;}
.bf-incta .btn:hover{opacity:.92;color:#fff;}

/* desktop QR card (fixed bottom-right, >820px) */
.bf-qr-card{position:fixed;right:22px;bottom:22px;z-index:120;width:214px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(23,24,26,.18);padding:16px;text-align:center;}
.bf-qr-card img{width:120px;height:120px;margin:0 auto 10px;border-radius:8px;}
.bf-qr-card .t{font-size:14px;font-weight:800;letter-spacing:-.01em;color:var(--ink);}
.bf-qr-card .s{font-size:11.5px;line-height:1.4;color:var(--muted);margin-top:4px;}
.bf-qr-card .badge{margin-top:10px;font-size:11px;color:var(--faint);}
.bf-qr-card .badge .stars{color:#E8A400;letter-spacing:1px;margin-right:4px;}

/* mobile sticky + alert hidden by default */
.bf-sticky-cta{display:none;}
.bf-appbanner{display:none;}

@media (min-width:821px){ .bf-sticky-cta{display:none!important;} .bf-appbanner{display:none!important;} }
@media (max-width:820px){
  .bf-qr-card{display:none!important;}
  .bf-sticky-cta{display:flex;align-items:center;justify-content:center;gap:9px;position:fixed;left:16px;right:16px;bottom:16px;z-index:120;background:var(--accent);color:#fff;border-radius:14px;padding:15px;font-size:15px;font-weight:700;box-shadow:0 12px 34px rgba(75,87,214,.4);}
  .bf-appbanner{position:fixed;inset:0;z-index:200;background:rgba(23,24,26,.5);align-items:flex-end;padding:12px;}
  .bf-appbanner.is-open{display:flex;}
  .bf-appbanner .sheet{width:100%;background:#fff;border-radius:20px;padding:18px 18px 16px;box-shadow:0 -8px 44px rgba(0,0,0,.28);animation:bf-up .28s ease;}
  .bf-ab-top{display:flex;gap:14px;align-items:center;margin-bottom:16px;}
  .bf-ab-icon{width:56px;height:56px;border-radius:13px;flex:0 0 56px;}
  .bf-ab-name{font-weight:800;font-size:16px;display:flex;align-items:center;gap:8px;}
  .bf-ab-stars{color:#E8A400;font-size:12px;letter-spacing:1px;}
  .bf-ab-sub{font-size:13px;color:var(--muted);margin-top:2px;}
  .bf-ab-meta{font-size:12px;color:var(--faint);margin-top:2px;}
  .bf-ab-actions{display:flex;gap:10px;}
  .bf-ab-btn{flex:1 1 0;text-align:center;border-radius:10px;padding:12px;font-size:14px;font-weight:700;cursor:pointer;}
  .bf-ab-dismiss{background:var(--chip);color:#4a4c52;border:0;font-family:var(--sans);}
  .bf-ab-cta{background:var(--accent);color:#fff;}
  .bf-ab-cta:hover{color:#fff;}
}
@keyframes bf-up{from{transform:translateY(30px);opacity:.6;}to{transform:translateY(0);opacity:1;}}
