/* WarBrief CPT templates v1 */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@500;600;700;800&family=Geist+Mono:wght@500&display=swap');

.wb-cpt-progress { position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,#bb0112,#ff1a2e);z-index:9999;transition:width .1s linear;pointer-events:none; }

/* Hero */
.wb-cpt-hero { background:linear-gradient(135deg,#0f172a 0%,#1a1a1a 55%,#3d0009 100%); border-bottom:3px solid #bb0112; padding:44px 0 40px; }
.wb-cpt-hero--has-image { background-size:cover; background-position:center; min-height:clamp(300px,48vh,480px); display:flex; align-items:flex-end; padding:0 0 44px; position:relative; }
.wb-cpt-hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(15,23,42,.5) 0%,rgba(15,23,42,.92) 70%); pointer-events:none; }
.wb-cpt-hero--single .wb-cpt-hero-inner, .wb-cpt-hero--has-image .wb-cpt-hero-inner { position:relative; z-index:1; }
.wb-cpt-breadcrumbs ol { display:flex; flex-wrap:wrap; list-style:none; margin:0 0 16px; padding:0; font:500 11px/1 "Geist Mono",monospace; letter-spacing:.06em; text-transform:uppercase; }
.wb-cpt-breadcrumbs li { display:flex; align-items:center; }
.wb-cpt-breadcrumbs li+li::before { content:"/"; margin:0 10px; color:rgba(255,255,255,.35); }
.wb-cpt-breadcrumbs a { color:rgba(255,255,255,.65); text-decoration:none; }
.wb-cpt-breadcrumbs a:hover { color:#bb0112; }
.wb-cpt-breadcrumbs span { color:rgba(255,255,255,.9); }
.wb-cpt-hero-title { margin:12px 0 14px; color:#fff; font:800 clamp(1.6rem,4vw,2.6rem)/1.12 Inter,sans-serif; letter-spacing:-.03em; max-width:900px; }
.wb-cpt-hero-desc, .wb-cpt-hero-deck { margin:0; max-width:640px; color:rgba(255,255,255,.78); font:400 clamp(.95rem,1.8vw,1.1rem)/1.55 Georgia,serif; }
.wb-cpt-hero-count { margin:16px 0 0; font:500 11px/1 "Geist Mono",monospace; letter-spacing:.1em; text-transform:uppercase; color:#bb0112; }
.wb-cpt-hero-badge, .wb-cpt-hero .wb-pill { display:inline-block; background:#bb0112; color:#fff; font:700 10px/1 Inter,sans-serif; letter-spacing:.14em; text-transform:uppercase; padding:6px 12px; margin-bottom:14px; }
.wb-cpt-hero-meta { display:flex; flex-wrap:wrap; gap:8px; font:500 11px/1 "Geist Mono",monospace; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.55); }

/* Layout */
.wb-cpt-main { padding:40px 0 72px; background:#f4f5f7; }
.wb-cpt-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:32px; align-items:start; }
.wb-cpt-section-head { display:flex; justify-content:space-between; align-items:baseline; margin:0 0 24px; padding-bottom:12px; border-bottom:3px solid #191c1e; }
.wb-cpt-section-head h2 { margin:0; font:800 clamp(1.1rem,2.5vw,1.45rem)/1 Inter,sans-serif; text-transform:uppercase; letter-spacing:-.02em; }
.wb-cpt-section-head span { font:500 11px/1 "Geist Mono",monospace; color:#bb0112; text-transform:uppercase; }

/* Featured archive card */
.wb-cpt-featured { display:grid; grid-template-columns:1.15fr 1fr; background:#fff; border:2px solid #191c1e; box-shadow:6px 6px 0 #191c1e; margin-bottom:36px; overflow:hidden; transition:transform .2s,box-shadow .2s; }
.wb-cpt-featured:hover { transform:translate(-3px,-3px); box-shadow:9px 9px 0 #bb0112; }
.wb-cpt-featured-media { position:relative; display:block; min-height:260px; overflow:hidden; background:#e8eaed; }
.wb-cpt-featured-media img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.wb-cpt-featured:hover .wb-cpt-featured-media img { transform:scale(1.04); }
.wb-cpt-featured-badge { position:absolute; left:14px; bottom:14px; background:#bb0112; color:#fff; font:700 9px/1 Inter,sans-serif; letter-spacing:.12em; padding:5px 9px; }
.wb-cpt-featured-body { padding:28px 30px; display:flex; flex-direction:column; gap:12px; }
.wb-cpt-featured-kicker { font:700 10px/1 Inter,sans-serif; letter-spacing:.12em; text-transform:uppercase; color:#bb0112; }
.wb-cpt-featured-body h2 { margin:0; font:800 clamp(1.2rem,2vw,1.65rem)/1.25 Inter,sans-serif; }
.wb-cpt-featured-body h2 a { color:#191c1e; text-decoration:none; }
.wb-cpt-featured-body h2 a:hover { color:#bb0112; }
.wb-cpt-featured-body p { margin:0; font:400 .95rem/1.65 Georgia,serif; color:#4c4546; flex:1; }
.wb-cpt-featured-foot { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-top:12px; border-top:1px solid #e1e2e5; font:600 10px/1 Inter,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.wb-cpt-featured-foot a { color:#191c1e; text-decoration:none; }
.wb-cpt-featured-foot a:hover { color:#bb0112; }

/* Grid */
.wb-cpt-grid { display:grid; gap:22px; }
.wb-cpt-grid--cols-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.wb-cpt-grid--cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.wb-cpt-grid--cols-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.wb-cpt-card { display:flex; flex-direction:column; background:#fff; border:2px solid #191c1e; box-shadow:4px 4px 0 #191c1e; overflow:hidden; transition:transform .2s,box-shadow .2s; min-width:0; }
.wb-cpt-card:hover { transform:translate(-3px,-3px); box-shadow:7px 7px 0 #bb0112; }
.wb-cpt-card-media { position:relative; display:block; aspect-ratio:16/10; overflow:hidden; background:#e8eaed; }
.wb-cpt-card-media img { width:100%; height:100%; object-fit:cover; transition:transform .35s; }
.wb-cpt-card:hover .wb-cpt-card-media img { transform:scale(1.05); }
.wb-cpt-card-placeholder { width:100%; height:100%; background:linear-gradient(135deg,#e8eaed,#d5d8dc); }
.wb-cpt-card-badge { position:absolute; left:12px; bottom:12px; background:#bb0112; color:#fff; font:700 9px/1 Inter,sans-serif; letter-spacing:.12em; padding:5px 9px; }
.wb-cpt-card-body { padding:18px 18px 20px; display:flex; flex-direction:column; gap:8px; flex:1; }
.wb-cpt-card-meta { display:flex; justify-content:space-between; gap:8px; font:500 10px/1 "Geist Mono",monospace; letter-spacing:.06em; text-transform:uppercase; color:#bb0112; }
.wb-cpt-card-meta time { color:#7e7576; }
.wb-cpt-card-body h3 { margin:0; font:700 clamp(.95rem,1.5vw,1.1rem)/1.3 Inter,sans-serif; }
.wb-cpt-card-body h3 a { color:#191c1e; text-decoration:none; }
.wb-cpt-card-body h3 a:hover { color:#bb0112; }
.wb-cpt-card-body p { margin:0; font:400 .88rem/1.6 Georgia,serif; color:#4c4546; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; flex:1; }
.wb-cpt-card-link { font:700 10px/1 Inter,sans-serif; letter-spacing:.1em; text-transform:uppercase; color:#191c1e; text-decoration:none; }
.wb-cpt-card-link:hover { color:#bb0112; }

/* Single article */
.wb-cpt-article { background:#fff; border:2px solid #191c1e; box-shadow:6px 6px 0 #191c1e; padding:32px 36px 36px; min-width:0; }
.wb-cpt-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin-bottom:28px; }
.wb-cpt-stat { padding:14px 16px; background:#f4f5f7; border:2px solid #e1e2e5; transition:border-color .15s,background .15s; }
.wb-cpt-stat:hover { border-color:#bb0112; background:#fff; }
.wb-cpt-stat-label { display:block; font:600 10px/1 Inter,sans-serif; letter-spacing:.1em; text-transform:uppercase; color:#7e7576; margin-bottom:6px; }
.wb-cpt-stat-value { font:700 .95rem/1.3 Inter,sans-serif; color:#191c1e; }
.wb-cpt-toolbar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; margin-bottom:28px; padding-bottom:18px; border-bottom:2px solid #191c1e; }
.wb-cpt-back { font:700 11px/1 Inter,sans-serif; letter-spacing:.1em; text-transform:uppercase; color:#191c1e; text-decoration:none; }
.wb-cpt-back:hover { color:#bb0112; }
.wb-cpt-share { display:flex; align-items:center; gap:8px; }
.wb-cpt-share>span { font:600 10px/1 Inter,sans-serif; letter-spacing:.12em; text-transform:uppercase; color:#7e7576; margin-right:4px; }
.wb-cpt-share a, .wb-cpt-copy { width:36px; height:36px; display:grid; place-items:center; background:#f4f5f7; border:2px solid #191c1e; color:#191c1e; font:700 11px/1 Inter,sans-serif; text-decoration:none; cursor:pointer; transition:background .15s,color .15s; }
.wb-cpt-share a:hover, .wb-cpt-copy:hover { background:#bb0112; border-color:#bb0112; color:#fff; }
.wb-cpt-tool-cta { display:inline-flex; margin-bottom:24px; padding:12px 20px; background:#bb0112; color:#fff; font:700 11px/1 Inter,sans-serif; letter-spacing:.1em; text-transform:uppercase; text-decoration:none; border:2px solid #bb0112; transition:background .15s; }
.wb-cpt-tool-cta:hover { background:#191c1e; border-color:#191c1e; }

/* Prose */
.wb-cpt-prose { font:400 1.0625rem/1.8 Georgia,serif; color:#2a2526; }
.wb-cpt-prose h2 { margin:2.5rem 0 1rem; padding-left:16px; border-left:4px solid #bb0112; font:800 clamp(1.2rem,2.2vw,1.55rem)/1.25 Inter,sans-serif; color:#191c1e; }
.wb-cpt-prose h3 { margin:2rem 0 .75rem; font:700 1.1rem/1.35 Inter,sans-serif; color:#191c1e; }
.wb-cpt-prose p { margin:0 0 1.35rem; }
.wb-cpt-prose a { color:#bb0112; text-decoration:underline; text-underline-offset:3px; }
.wb-cpt-prose ul, .wb-cpt-prose ol { margin:0 0 1.5rem; padding-left:1.5rem; }
.wb-cpt-prose blockquote { margin:2rem 0; padding:22px 26px; background:#191c1e; border-left:4px solid #bb0112; color:rgba(255,255,255,.9); font-style:italic; }
.wb-cpt-prose img { max-width:100%; height:auto; margin:2rem 0; border:2px solid #191c1e; box-shadow:4px 4px 0 #191c1e; }
.wb-cpt-prose table { width:100%; border-collapse:collapse; margin:2rem 0; font-size:.95rem; }
.wb-cpt-prose th, .wb-cpt-prose td { border:1px solid #e1e2e5; padding:10px 14px; text-align:left; }
.wb-cpt-prose th { background:#191c1e; color:#fff; font-family:Inter,sans-serif; font-weight:700; font-size:.85rem; text-transform:uppercase; }

/* Tags + related */
.wb-cpt-tags { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:36px; padding-top:24px; border-top:1px solid #e1e2e5; }
.wb-cpt-tags>span { font:700 10px/1 Inter,sans-serif; letter-spacing:.12em; text-transform:uppercase; color:#7e7576; }
.wb-cpt-tags a { font:600 11px/1 Inter,sans-serif; letter-spacing:.04em; text-transform:uppercase; color:#191c1e; text-decoration:none; padding:7px 12px; border:2px solid #e1e2e5; transition:all .15s; }
.wb-cpt-tags a:hover { background:#191c1e; border-color:#191c1e; color:#fff; }
.wb-cpt-related { margin-top:44px; padding-top:32px; border-top:3px solid #191c1e; }
.wb-cpt-related-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:20px; }
.wb-cpt-related-head h2 { margin:0; font:800 clamp(1rem,2vw,1.3rem)/1 Inter,sans-serif; text-transform:uppercase; }
.wb-cpt-related-head a { font:600 11px/1 Inter,sans-serif; letter-spacing:.08em; text-transform:uppercase; color:#bb0112; text-decoration:none; }
.wb-cpt-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.wb-cpt-related-card { border:2px solid #191c1e; overflow:hidden; transition:transform .2s,box-shadow .2s; }
.wb-cpt-related-card:hover { transform:translate(-2px,-2px); box-shadow:4px 4px 0 #bb0112; }
.wb-cpt-related-media { display:block; aspect-ratio:16/10; overflow:hidden; background:#e8eaed; }
.wb-cpt-related-media img { width:100%; height:100%; object-fit:cover; transition:transform .35s; }
.wb-cpt-related-card:hover .wb-cpt-related-media img { transform:scale(1.05); }
.wb-cpt-related-body { padding:12px 14px 14px; }
.wb-cpt-related-body h3 { margin:0 0 6px; font:700 .9rem/1.35 Inter,sans-serif; }
.wb-cpt-related-body h3 a { color:#191c1e; text-decoration:none; }
.wb-cpt-related-body h3 a:hover { color:#bb0112; }
.wb-cpt-related-body time { font:500 10px/1 "Geist Mono",monospace; color:#bb0112; text-transform:uppercase; }

/* Sidebar */
.wb-cpt-sidebar .sidebar-primary { position:sticky; top:100px; }
.wb-cpt-sidebar .sidebar-primary>div { margin-bottom:20px; }
.wb-cpt-meta-panel, .wb-cpt-toc-panel { background:#fff; border:2px solid #191c1e; box-shadow:4px 4px 0 #191c1e; padding:18px 16px; margin-bottom:20px; }
.wb-cpt-meta-panel h3, .wb-cpt-toc-panel h3 { margin:0 0 14px; padding-bottom:10px; border-bottom:2px solid #191c1e; font:700 11px/1 Inter,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.wb-cpt-meta-row { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid #e1e2e5; font:500 12px/1.4 Inter,sans-serif; }
.wb-cpt-meta-row:last-child { border-bottom:none; }
.wb-cpt-meta-row dt { color:#7e7576; text-transform:uppercase; font-size:10px; letter-spacing:.06em; }
.wb-cpt-meta-row dd { margin:0; color:#191c1e; font-weight:700; text-align:right; }
.wb-cpt-side-visual { border:2px solid #191c1e; overflow:hidden; margin-bottom:20px; }
.wb-cpt-side-visual img { width:100%; display:block; object-fit:cover; }
.wb-cpt-toc-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }
.wb-cpt-toc-list a { display:block; padding:6px 0 6px 10px; border-left:2px solid transparent; font:500 13px/1.4 Inter,sans-serif; color:#4c4546; text-decoration:none; }
.wb-cpt-toc-list a:hover, .wb-cpt-toc-list a.is-active { color:#bb0112; border-left-color:#bb0112; }
.wb-cpt-toc-panel.is-empty { display:none; }

/* Pagination */
.wb-cpt-pagination { margin-top:36px; }
.wb-cpt-pagination .nav-links { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.wb-cpt-pagination a, .wb-cpt-pagination span { display:inline-flex; align-items:center; justify-content:center; min-width:42px; height:42px; padding:0 14px; font:600 12px/1 Inter,sans-serif; text-decoration:none; border:2px solid #191c1e; background:#fff; color:#191c1e; }
.wb-cpt-pagination a:hover, .wb-cpt-pagination .current { background:#bb0112; border-color:#bb0112; color:#fff; }
.wb-cpt-empty { text-align:center; padding:48px 0; color:#7e7576; }

/* Responsive */
@media (max-width:1100px) {
  .wb-cpt-layout { grid-template-columns:1fr; }
  .wb-cpt-grid--cols-3, .wb-cpt-grid--cols-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .wb-cpt-featured { grid-template-columns:1fr; }
  .wb-cpt-sidebar .sidebar-primary { position:static; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .wb-cpt-sidebar .sidebar-primary>div { margin-bottom:0; }
}
@media (max-width:720px) {
  .wb-cpt-grid--cols-2, .wb-cpt-grid--cols-3, .wb-cpt-grid--cols-4 { grid-template-columns:1fr; }
  .wb-cpt-article { padding:22px 18px 26px; }
  .wb-cpt-related-grid { grid-template-columns:1fr; }
  .wb-cpt-sidebar .sidebar-primary { grid-template-columns:1fr; }
}
