/* K4 Fit-Out — Journal (blog hub + article) */
.jn-hero{position:relative;padding:calc(148px + 4vw) var(--fo-pad-x) clamp(56px,7vw,96px);border-bottom:1px solid var(--fo-line)}
.jn-hero-inner{max-width:var(--fo-maxw);margin:0 auto}
.jn-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--fo-fg-3);margin-bottom:34px}
.jn-crumb a{color:var(--fo-fg-3);text-decoration:none}
.jn-crumb a:hover{color:var(--fo-white)}
.jn-crumb span.sep{opacity:.4}
.jn-hero h1{font-size:clamp(38px,5.4vw,78px);font-weight:200;line-height:1.04;letter-spacing:-.02em;color:var(--fo-white);text-wrap:balance;max-width:20ch}
.jn-hero-sub{margin-top:26px;max-width:62ch}

/* ---- filter rail ---- */
.jn-filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:44px}
.jn-chip{font:inherit;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--fo-fg-3);background:transparent;border:1px solid var(--fo-line);padding:11px 20px;cursor:pointer;transition:color .35s var(--fo-ease),border-color .35s var(--fo-ease),background .35s var(--fo-ease)}
.jn-chip:hover{color:var(--fo-white);border-color:var(--fo-gold-line)}
.jn-chip.on{color:#000;background:var(--fo-gold);border-color:var(--fo-gold)}

/* ---- BSBG-style hub layout: top filter row + grid ---- */
.jn-toprow{max-width:var(--fo-maxw);margin:0 auto;padding:clamp(48px,6vw,80px) var(--fo-pad-x) 0;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;border-bottom:1px solid var(--fo-line);padding-bottom:28px}
.jn-toprow-group{display:flex;flex-direction:column;gap:12px}
.jn-toprow-h{font-size:10px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--fo-fg-3)}
.jn-toprow-chips{display:flex;flex-wrap:wrap;gap:8px}
.jn-layout{max-width:var(--fo-maxw);margin:0 auto;padding:40px var(--fo-pad-x) 0}
.jn-cat-chip{font:inherit;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--fo-fg-3);background:transparent;border:1px solid var(--fo-line);padding:9px 16px;cursor:pointer;transition:color .3s var(--fo-ease),border-color .3s var(--fo-ease),background .3s var(--fo-ease)}
.jn-cat-chip:hover{color:var(--fo-white);border-color:var(--fo-gold-line)}
.jn-cat-chip.on{color:#000;background:var(--fo-gold);border-color:var(--fo-gold)}
.jn-list{display:grid;grid-template-columns:repeat(3,1fr);gap:36px 28px}
.jn-row{display:flex;flex-direction:column;gap:16px;padding:0;border-bottom:none;text-decoration:none;color:inherit}
.jn-row-media{aspect-ratio:4/3;overflow:hidden;background:var(--fo-bg-2)}
.jn-row-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--fo-ease)}
.jn-row:hover .jn-row-media img{transform:scale(1.05)}
.jn-row-body{display:flex;flex-direction:column;gap:10px}
.jn-row-body h3{font-size:20px;font-weight:350;line-height:1.32;color:var(--fo-white);text-wrap:pretty}
.jn-row-dek{font-size:14px;font-weight:300;line-height:1.68;color:var(--fo-fg-3)}
.jn-row:hover .jn-row-body h3{color:var(--fo-gold)}

/* ---- lead article ---- */
.jn-lead{display:grid;grid-template-columns:1.15fr 1fr;gap:0;border:1px solid var(--fo-line);background:var(--fo-bg-2);text-decoration:none;color:inherit;overflow:hidden}
.jn-lead-media{position:relative;min-height:420px;overflow:hidden}
.jn-lead-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--fo-ease)}
.jn-lead:hover .jn-lead-media img{transform:scale(1.045)}
.jn-lead-body{padding:clamp(32px,4vw,62px);display:flex;flex-direction:column;justify-content:center;gap:20px}
.jn-lead-body h2{font-size:clamp(24px,2.5vw,38px);font-weight:250;line-height:1.16;letter-spacing:-.01em;color:var(--fo-white);text-wrap:pretty}
.jn-meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px;font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--fo-fg-3)}
.jn-meta>span{white-space:nowrap}
.jn-meta .dot{width:3px;height:3px;background:var(--fo-gold);border-radius:50%;flex:0 0 3px}
.jn-tag{font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--fo-gold);border:1px solid var(--fo-gold-line);padding:6px 12px}

/* ---- grid ---- */
.jn-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(288px,1fr));border-top:1px solid var(--fo-line);border-left:1px solid var(--fo-line);margin-top:-1px}
.jn-card{background:var(--fo-bg);padding:0;text-decoration:none;color:inherit;display:flex;flex-direction:column;border-right:1px solid var(--fo-line);border-bottom:1px solid var(--fo-line);transition:background .5s var(--fo-ease)}
.jn-card:hover{background:var(--fo-bg-2)}
.jn-card-media{position:relative;aspect-ratio:16/10;overflow:hidden}
.jn-card-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--fo-ease)}
.jn-card:hover .jn-card-media img{transform:scale(1.05)}
.jn-card-body{padding:30px 30px 34px;display:flex;flex-direction:column;gap:16px;flex:1}
.jn-card-body h3{font-size:19px;font-weight:350;line-height:1.34;color:var(--fo-white);text-wrap:pretty}
.jn-card-dek{font-size:14px;font-weight:300;line-height:1.72;color:var(--fo-fg-3)}
.jn-card-foot{margin-top:auto;display:flex;align-items:center;gap:12px;font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--fo-fg-3)}
.jn-card:hover .jn-card-foot{color:var(--fo-white)}
.jn-empty{padding:80px 0;text-align:center;color:var(--fo-fg-3)}

/* ---- article ---- */
.jn-art-hero{position:relative;height:min(66vh,620px);min-height:420px;overflow:hidden}
.jn-art-hero img{width:100%;height:100%;object-fit:cover}
.jn-art-hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,11,16,.74) 0%,rgba(9,11,16,.30) 24%,rgba(9,11,16,.90) 52%,#090B10 100%)}
.jn-art-head{position:relative;padding:0 var(--fo-pad-x);margin-top:-190px;z-index:2}
.jn-art-head-inner{max-width:var(--fo-maxw);margin:0 auto}
.jn-art-head .jn-crumb{color:var(--fo-fg-2)}
.jn-art-head .jn-crumb a{color:var(--fo-fg-2)}
.jn-art-head h1{font-size:clamp(32px,4.4vw,64px);font-weight:200;line-height:1.06;letter-spacing:-.02em;color:var(--fo-white);text-wrap:balance;max-width:26ch;margin-top:22px}
.jn-art-dek{margin-top:24px;max-width:64ch}

.jn-art-wrap{max-width:var(--fo-maxw);margin:0 auto;padding:clamp(56px,7vw,96px) var(--fo-pad-x) 0;display:grid;grid-template-columns:1fr minmax(0,720px) 1fr;gap:48px;align-items:start}
.jn-toc{position:sticky;top:120px;border-top:1px solid var(--fo-gold-line);padding-top:20px}
.jn-toc-h{font-size:10px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--fo-gold);margin-bottom:18px}
.jn-toc a{display:block;font-size:12.5px;font-weight:300;line-height:1.5;color:var(--fo-fg-3);text-decoration:none;padding:7px 0;border-bottom:1px solid var(--fo-line-soft);transition:color .3s var(--fo-ease)}
.jn-toc a:hover{color:var(--fo-white)}
.jn-aside{position:sticky;top:120px;display:flex;flex-direction:column;gap:22px}
.jn-aside-card{border:1px solid var(--fo-line);background:var(--fo-bg-2);padding:28px}
.jn-aside-card h4{font-size:15px;font-weight:400;line-height:1.4;color:var(--fo-white);margin-bottom:12px}
.jn-aside-card p{font-size:13px;font-weight:300;line-height:1.7;color:var(--fo-fg-3);margin:0 0 18px}

/* prose */
.jn-prose{max-width:720px}
.jn-prose>*+*{margin-top:24px}
.jn-prose p{font-size:16.5px;font-weight:300;line-height:1.85;color:var(--fo-fg-2);text-wrap:pretty}
.jn-prose p a,.jn-prose li a{color:var(--fo-white);text-decoration:none;border-bottom:1px solid var(--fo-gold-line)}
.jn-prose p a:hover,.jn-prose li a:hover{border-bottom-color:var(--fo-white)}
.jn-prose h2{font-size:clamp(23px,2.4vw,31px);font-weight:250;line-height:1.22;letter-spacing:-.01em;color:var(--fo-white);margin-top:64px;scroll-margin-top:110px;text-wrap:balance}
.jn-prose h3{font-size:17px;font-weight:500;line-height:1.4;color:var(--fo-white);margin-top:40px;letter-spacing:.005em}
.jn-prose ul,.jn-prose ol{margin-top:20px;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:13px}
.jn-prose li{position:relative;padding-left:26px;font-size:16px;font-weight:300;line-height:1.8;color:var(--fo-fg-2)}
.jn-prose ul>li::before{content:"";position:absolute;left:0;top:14px;width:11px;height:1px;background:var(--fo-gold)}
.jn-prose ol{counter-reset:jn}
.jn-prose ol>li{counter-increment:jn;padding-left:34px}
.jn-prose ol>li::before{content:counter(jn,decimal-leading-zero);position:absolute;left:0;top:2px;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--fo-gold)}
.jn-prose li strong,.jn-prose p strong{color:var(--fo-white);font-weight:500}
.jn-note{border-left:1px solid var(--fo-gold);background:rgba(201,210,224,.05);padding:22px 26px;margin-top:32px}
.jn-note p{font-size:15px;line-height:1.75;color:var(--fo-fg-2);margin:0}
.jn-note-l{display:block;font-size:10px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--fo-gold);margin-bottom:10px}
.jn-tablewrap{margin-top:32px;overflow-x:auto;overflow-y:hidden;border:1px solid var(--fo-line)}
.jn-prose table{width:100%;border-collapse:collapse;font-size:14px;min-width:520px}
.jn-prose th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--fo-gold);padding:16px 20px;border-bottom:1px solid var(--fo-line);background:var(--fo-bg-2);white-space:nowrap}
.jn-prose td{padding:15px 20px;border-bottom:1px solid var(--fo-line-soft);color:var(--fo-fg-2);font-weight:300;line-height:1.6;vertical-align:top}
.jn-prose tr:last-child td{border-bottom:none}
.jn-prose td:first-child{color:var(--fo-white);font-weight:400}

/* ---- decision picker ---- */
.jn-pick{margin-top:40px;border:1px solid var(--fo-line);background:var(--fo-bg-2)}
.jn-pick-head{padding:30px 30px 24px;border-bottom:1px solid var(--fo-line)}
.jn-pick-eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--fo-gold);margin-bottom:12px}
.jn-pick-title{font-size:clamp(20px,2vw,26px);font-weight:300;line-height:1.25;color:var(--fo-white);margin:0}
.jn-pick-sub{font-size:14px;font-weight:300;line-height:1.65;color:var(--fo-fg-3);margin:10px 0 0}
.jn-pick-trail{display:flex;flex-wrap:wrap;gap:10px;padding:16px 30px 0;font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--fo-fg-3)}
.jn-pick-trail span{border:1px solid var(--fo-line);padding:6px 12px}
.jn-pick-step,.jn-pick-result{padding:26px 30px 30px}
.jn-pick-q{font-size:17px;font-weight:400;color:var(--fo-white);margin-bottom:20px;line-height:1.4}
.jn-pick-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.jn-pick-opt{display:flex;flex-direction:column;gap:6px;text-align:left;font:inherit;background:transparent;border:1px solid var(--fo-line);color:var(--fo-fg-2);padding:18px 20px;cursor:pointer;min-height:64px;transition:border-color .35s var(--fo-ease),background .35s var(--fo-ease),color .35s var(--fo-ease)}
.jn-pick-opt:hover{border-color:var(--fo-gold-line);background:rgba(201,210,224,.05);color:var(--fo-white)}
.jn-pick-opt-l{font-size:15px;font-weight:450;color:var(--fo-white);line-height:1.35}
.jn-pick-opt-n{font-size:12.5px;font-weight:300;line-height:1.55;color:var(--fo-fg-3)}
.jn-pick-rlabel{display:block;font-size:10px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--fo-gold);margin-bottom:12px}
.jn-pick-rname{font-size:clamp(24px,2.6vw,34px);font-weight:250;line-height:1.15;color:var(--fo-white)}
.jn-pick-rwhy{font-size:15.5px;font-weight:300;line-height:1.75;color:var(--fo-fg-2);margin:14px 0 0;max-width:52ch}
.jn-pick-cta{margin-top:24px}
.jn-pick-actions{display:flex;flex-wrap:wrap;gap:20px;margin-top:24px}
.jn-pick-link{font:inherit;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--fo-fg-3);background:none;border:none;padding:8px 0;cursor:pointer;border-bottom:1px solid var(--fo-line)}
.jn-pick-link:hover{color:var(--fo-white);border-bottom-color:var(--fo-gold-line)}

/* ---- firm entry ---- */
.jn-firm{display:grid;grid-template-columns:auto 1fr;gap:22px;margin-top:52px;padding-top:28px;border-top:1px solid var(--fo-line)}
.jn-firm-rank{font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--fo-gold);padding-top:6px}
.jn-firm-name{font-size:clamp(21px,2.2vw,28px);font-weight:250;line-height:1.2;color:var(--fo-white);margin:0}
.jn-firm-best{font-size:14.5px;font-weight:300;line-height:1.7;color:var(--fo-fg-3);margin:12px 0 0}
.jn-firm-best strong{color:var(--fo-gold);font-weight:600;letter-spacing:.04em}
.jn-firm-p{font-size:16px;font-weight:300;line-height:1.8;color:var(--fo-fg-2);margin:16px 0 0}
.jn-firm-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:26px;margin-top:22px}
.jn-firm-h{display:block;font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--fo-gold);margin-bottom:12px}
.jn-firm-cols ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}
.jn-firm-cols li{position:relative;padding-left:18px;font-size:14px;font-weight:300;line-height:1.6;color:var(--fo-fg-2)}
.jn-firm-cols li::before{content:"";position:absolute;left:0;top:11px;width:8px;height:1px;background:var(--fo-gold)}

/* faq */.jn-faq{margin-top:80px;border-top:1px solid var(--fo-line);padding-top:44px}
.jn-faq-h{font-size:clamp(22px,2.2vw,29px);font-weight:250;color:var(--fo-white);margin-bottom:28px}
.jn-faq-item{border-bottom:1px solid var(--fo-line-soft);padding:22px 0}
.jn-faq-q{font-size:16px;font-weight:450;color:var(--fo-white);line-height:1.5;margin-bottom:12px}
.jn-faq-a{font-size:15.5px;font-weight:300;line-height:1.8;color:var(--fo-fg-2);margin:0}

/* article footer */
.jn-art-foot{max-width:var(--fo-maxw);margin:0 auto;padding:clamp(64px,8vw,110px) var(--fo-pad-x) 0}
.jn-related-h{font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--fo-gold);margin-bottom:26px}
.jn-byline{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:56px;padding-top:26px;border-top:1px solid var(--fo-line)}
.jn-byline-txt{font-size:13px;font-weight:300;line-height:1.7;color:var(--fo-fg-3);max-width:56ch}
.jn-byline-txt b{color:var(--fo-white);font-weight:500}

@media (max-width:1180px){
  .jn-art-wrap{grid-template-columns:1fr;gap:0;max-width:840px}
  .jn-toc,.jn-aside{position:static}
  .jn-prose{max-width:none}
  .jn-toc{margin-bottom:34px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));column-gap:32px;padding-top:16px}
  .jn-toc-h{grid-column:1/-1;margin-bottom:6px}
  .jn-aside{margin-top:56px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
}
@media (max-width:860px){
  .jn-lead{grid-template-columns:1fr}
  .jn-lead-media{min-height:260px;aspect-ratio:16/10}
  .jn-art-head{margin-top:-130px}
  .jn-layout{grid-template-columns:1fr;gap:0}
  .jn-toprow{flex-direction:column;align-items:stretch}
  .jn-row{grid-template-columns:1fr;gap:16px}
  .jn-row-media{aspect-ratio:16/10}
  .jn-list{grid-template-columns:1fr}
}
@media (max-width:960px) and (min-width:861px){
  .jn-list{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
  .jn-hero{padding-top:calc(112px + 4vw)}
  .jn-hero h1{max-width:none}
  .jn-crumb{margin-bottom:24px;font-size:10px;gap:8px}
  .jn-filters{margin-top:32px;gap:8px}
  .jn-chip{padding:9px 14px;font-size:10px;letter-spacing:.14em}
  .jn-art-hero{height:min(52vh,420px);min-height:300px}
  .jn-art-head{margin-top:-104px}
  .jn-art-head h1{max-width:none;margin-top:16px}
  .jn-art-dek{margin-top:18px}
  .jn-prose p{font-size:16px;line-height:1.8}
  .jn-prose li{font-size:15.5px}
  .jn-prose h2{margin-top:48px}
  .jn-prose table{min-width:460px;font-size:13px}
  .jn-prose th{padding:13px 14px}
  .jn-prose td{padding:13px 14px}
  .jn-note{padding:18px 20px}
  .jn-faq{margin-top:60px}
  .jn-lead-body{gap:16px}
  .jn-card-body{padding:24px 24px 28px}
  .jn-aside{margin-top:44px}
  .jn-aside-card{padding:24px}
  .jn-pick-head,.jn-pick-step,.jn-pick-result{padding-left:20px;padding-right:20px}
  .jn-pick-trail{padding-left:20px;padding-right:20px}
  .jn-pick-opts{grid-template-columns:1fr}
  .jn-firm{grid-template-columns:1fr;gap:0}
  .jn-firm-rank{padding-top:0;margin-bottom:10px}
}
