
:root{
  --ffim-ink:#0B1820;
  --ffim-muted:#657178;
  --ffim-line:#DCE3E5;
  --ffim-soft:#F7F9FA;
  --ffim-orange:#FF6A2B;
  --ffim-teal:#007D87;
}
.ffim-shell{max-width:1160px;margin:0 auto;padding-left:24px;padding-right:24px}
.ffim-kicker{margin:0 0 10px;color:var(--ffim-teal);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.ffim-index{padding:72px 0 90px;background:#fff}
.ffim-index-head{max-width:800px;margin-bottom:42px}
.ffim-index-head h1,.ffim-hero h1{margin:0;color:var(--ffim-ink);font-size:clamp(42px,5vw,72px);line-height:.98;letter-spacing:-.05em}
.ffim-index-head>p:last-child,.ffim-intro{color:var(--ffim-muted);font-size:19px;line-height:1.6}
.ffim-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.ffim-card{border:1px solid var(--ffim-line);border-radius:16px;overflow:hidden;background:#fff}
.ffim-card-image{display:block;aspect-ratio:16/10;background:var(--ffim-soft);overflow:hidden}
.ffim-card-image img{width:100%;height:100%;object-fit:cover;display:block}
.ffim-placeholder{height:100%;display:grid;place-items:center;color:var(--ffim-muted);font-weight:800}
.ffim-card-body{padding:22px}
.ffim-card-meta{display:flex;justify-content:space-between;gap:12px;color:var(--ffim-teal);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.ffim-card h2{font-size:23px;line-height:1.14;margin:14px 0 10px}
.ffim-card h2 a,.ffim-text-link{color:var(--ffim-ink);text-decoration:none}
.ffim-card p{color:var(--ffim-muted);font-size:14px;line-height:1.55}
.ffim-text-link{display:inline-block;margin-top:8px;font-weight:800;border-bottom:2px solid var(--ffim-teal)}

.ffim-hero{padding:64px 0 52px;background:var(--ffim-soft);border-bottom:1px solid var(--ffim-line)}
.ffim-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.78fr);gap:60px;align-items:center}
.ffim-breadcrumb{margin-bottom:16px;color:var(--ffim-muted);font-size:13px}
.ffim-breadcrumb a{color:var(--ffim-teal);text-decoration:none;font-weight:800}
.ffim-breadcrumb span{padding:0 6px}
.ffim-intro{max-width:760px;margin:22px 0 0}
.ffim-byline{display:flex;gap:16px;flex-wrap:wrap;margin-top:24px;color:var(--ffim-muted);font-size:12px;font-weight:700}
.ffim-featured{margin:0;border-radius:16px;overflow:hidden;border:1px solid var(--ffim-line);background:#fff}
.ffim-featured img{display:block;width:100%;height:auto}
.ffim-article-grid{display:grid;grid-template-columns:250px minmax(0,760px);gap:70px;align-items:start;padding-top:56px;padding-bottom:70px}
.ffim-sidebar{position:sticky;top:120px}
.ffim-toc{border:1px solid var(--ffim-line);border-radius:12px;padding:18px;background:#fff}
.ffim-toc strong{display:block;color:var(--ffim-ink);font-size:13px;margin-bottom:10px}
.ffim-toc ol{margin:0;padding-left:19px}
.ffim-toc li{margin:7px 0;color:var(--ffim-muted);font-size:12px;line-height:1.35}
.ffim-toc li.level-3{margin-left:12px}
.ffim-toc a{color:inherit;text-decoration:none}
.ffim-service-card{margin-top:14px;border-radius:12px;padding:17px;background:#0B1820}
.ffim-service-card span{display:block;color:#9FB0B7;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.ffim-service-card strong{display:block;margin-top:5px;color:#fff;font-size:15px}
.ffim-service-card a{display:inline-block;margin-top:12px;color:#fff;text-decoration:none;font-size:12px;font-weight:800;border-bottom:2px solid var(--ffim-orange)}
.ffim-content{font-size:17px;line-height:1.75;color:#283941}
.ffim-content>p:first-child{font-size:19px}
.ffim-content h2{margin:52px 0 16px;color:var(--ffim-ink);font-size:34px;line-height:1.1;letter-spacing:-.03em}
.ffim-content h3{margin:34px 0 12px;color:var(--ffim-ink);font-size:24px;line-height:1.2}
.ffim-content a{color:var(--ffim-teal)}
.ffim-content img{max-width:100%;height:auto;border-radius:12px}
.ffim-pattern{margin:30px 0;padding:22px 24px;border-radius:12px;border:1px solid var(--ffim-line);background:var(--ffim-soft)}
.ffim-pattern h3{margin:0 0 8px;font-size:18px}
.ffim-pattern p:last-child,.ffim-pattern ul:last-child{margin-bottom:0}
.ffim-pattern-takeaway{border-left:4px solid var(--ffim-teal)}
.ffim-pattern-note{border-left:4px solid var(--ffim-orange)}
.ffim-pattern-warning{border-left:4px solid #0B1820}
.ffim-cta{margin:54px 0 28px;padding:30px;border-radius:16px;background:#0B1820;color:#fff}
.ffim-cta .ffim-kicker{color:#FF8C5B}
.ffim-cta h2{margin:0;color:#fff;font-size:30px}
.ffim-cta p{color:#B8C3C8}
.ffim-button{display:inline-block;margin-top:8px;padding:13px 17px;border-radius:10px;background:var(--ffim-orange);color:#0B1820!important;text-decoration:none;font-weight:850}
.ffim-author{margin:40px 0 0;padding:26px;border-top:1px solid var(--ffim-line);border-bottom:1px solid var(--ffim-line)}
.ffim-author h2{font-size:25px;margin:0 0 10px}
.ffim-reviewed{font-size:13px;color:var(--ffim-muted)}
.ffim-related{padding:60px 0 90px;border-top:1px solid var(--ffim-line)}
.ffim-section-head h2{margin:0 0 26px;color:var(--ffim-ink);font-size:34px}
.ffim-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.ffim-related article{padding:22px;border:1px solid var(--ffim-line);border-radius:13px}
.ffim-related span{font-size:11px;color:var(--ffim-muted)}
.ffim-related h3{font-size:20px;line-height:1.18}
.ffim-related h3 a{color:var(--ffim-ink);text-decoration:none}
.ffim-related p{font-size:13px;line-height:1.5;color:var(--ffim-muted)}

@media(max-width:900px){
  .ffim-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ffim-hero-grid{grid-template-columns:1fr;gap:30px}
  .ffim-featured{max-width:680px}
  .ffim-article-grid{grid-template-columns:1fr;gap:28px}
  .ffim-sidebar{position:static}
  .ffim-related-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .ffim-shell{padding-left:18px;padding-right:18px}
  .ffim-index{padding:50px 0 70px}
  .ffim-grid{grid-template-columns:1fr}
  .ffim-hero{padding:44px 0 34px}
  .ffim-hero h1,.ffim-index-head h1{font-size:43px}
  .ffim-article-grid{padding-top:36px}
  .ffim-sidebar{display:block}
  .ffim-related-grid{grid-template-columns:1fr}
  .ffim-content{font-size:16px}
  .ffim-content h2{font-size:30px}
}
