/* Key Brains Theme — Main Stylesheet */
:root {
  --red: #E53935; --red-light: #fff5f5; --red-mid: #fde8e8;
  --dark: #111827; --text: #374151; --muted: #6B7280;
  --border: #E5E7EB; --bg: #FAFAFA; --white: #fff;
  --nav-h: 68px;
  --sans: 'Sora', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --serif: 'Lora', Georgia, serif;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--sans); color: var(--text); background: #fff; overflow-x: hidden; line-height: 1.6; }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
h1,h2,h3,h4,h5,h6 { font-family: var(--serif); font-weight: 700; color: var(--dark); line-height: 1.15; }

/* HEADER */
.kb-header { position: fixed; top: 0; left: 0; right: 0; z-index: 9999; background: rgba(255,255,255,.97); backdrop-filter: blur(16px); border-bottom: 1px solid var(--border); height: var(--nav-h); display: flex; align-items: center; }
.kb-header__inner { max-width: 1280px; margin: 0 auto; padding: 0 40px; display: flex; align-items: center; width: 100%; gap: 8px; }
.kb-logo { font-family: var(--sans); font-size: 20px; font-weight: 800; color: var(--dark); letter-spacing: -.5px; margin-right: 24px; }
.kb-logo span { color: var(--red); }
.kb-nav { display: flex; gap: 2px; flex: 1; list-style: none; flex-wrap: wrap; }
.kb-nav a { display: block; font-size: 13px; font-weight: 500; color: var(--muted); padding: 8px 13px; border-radius: 7px; transition: all .18s; }
.kb-nav a:hover, .kb-nav a.active { color: var(--red); background: var(--red-light); }
.kb-header__cta { margin-left: auto; display: flex; gap: 10px; align-items: center; }
.kb-ham { display: none; flex-direction: column; gap: 5px; background: none; border: none; padding: 4px; cursor: pointer; }
.kb-ham span { display: block; width: 22px; height: 2px; background: var(--dark); border-radius: 2px; transition: all .25s; }
.kb-ham.open span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
.kb-ham.open span:nth-child(2) { opacity: 0; }
.kb-ham.open span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }
.kb-mobile-nav { display: none; position: fixed; top: var(--nav-h); left: 0; right: 0; bottom: 0; background: #fff; z-index: 9998; padding: 24px 20px; overflow-y: auto; }
.kb-mobile-nav.open { display: block; }
.kb-mobile-nav a { display: block; padding: 14px 0; font-size: 16px; font-weight: 600; color: var(--dark); border-bottom: 1px solid var(--border); }
.kb-mobile-nav a:hover { color: var(--red); }

/* BUTTONS */
.kb-btn { display: inline-flex; align-items: center; gap: 6px; font-family: var(--sans); font-weight: 600; border-radius: 8px; transition: all .18s; cursor: pointer; border: none; line-height: 1; }
.kb-btn-primary { background: var(--red); color: #fff; padding: 11px 24px; font-size: 14px; }
.kb-btn-primary:hover { background: #c62828; color: #fff; transform: translateY(-1px); }
.kb-btn-outline { background: none; color: var(--text); border: 1.5px solid var(--border); padding: 10px 22px; font-size: 14px; }
.kb-btn-outline:hover { border-color: var(--dark); color: var(--dark); }
.kb-btn-lg { padding: 14px 32px; font-size: 15px; }
.kb-btn-white { background: #fff; color: var(--red); padding: 13px 32px; font-size: 15px; font-weight: 700; }
.kb-btn-white:hover { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(0,0,0,.12); }

/* HERO */
.kb-hero { background: #fff; padding: 96px 40px 80px; position: relative; overflow: hidden; border-bottom: 1px solid var(--border); margin-top: var(--nav-h); }
.kb-hero__dots { position: absolute; inset: 0; background-image: radial-gradient(circle, var(--border) 1px, transparent 1px); background-size: 28px 28px; opacity: .5; pointer-events: none; }
.kb-hero__inner { max-width: 1280px; margin: 0 auto; position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.kb-hero__badge { display: inline-flex; align-items: center; gap: 8px; background: var(--red-light); border: 1px solid #fca5a5; color: var(--red); padding: 6px 14px; border-radius: 6px; font-size: 12px; font-weight: 600; margin-bottom: 24px; }
.kb-hero__title { font-family: var(--serif); font-size: clamp(36px, 4.5vw, 62px); font-weight: 700; color: var(--dark); line-height: 1.1; margin-bottom: 22px; }
.kb-hero__title em { color: var(--red); font-style: italic; }
.kb-hero__desc { font-size: 17px; color: var(--muted); line-height: 1.75; margin-bottom: 36px; max-width: 480px; }
.kb-hero__actions { display: flex; gap: 14px; flex-wrap: wrap; }
.kb-hero__cards { display: flex; flex-direction: column; gap: 14px; }
.kb-hero-card { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 18px 20px; display: flex; align-items: center; gap: 16px; box-shadow: 0 2px 8px rgba(0,0,0,.04); transition: all .2s; }
.kb-hero-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,.08); transform: translateX(4px); }
.kb-hero-card__icon { width: 44px; height: 44px; border-radius: 10px; background: var(--red-light); display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; }
.kb-hero-card__text h4 { font-family: var(--sans); font-size: 14px; font-weight: 700; color: var(--dark); margin-bottom: 2px; }
.kb-hero-card__text p { font-family: var(--sans); font-size: 12.5px; color: var(--muted); margin: 0; }

/* STATS */
.kb-stats { background: #fff; border-bottom: 1px solid var(--border); }
.kb-stats__inner { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: repeat(4,1fr); }
.kb-stat { padding: 36px 20px; text-align: center; border-right: 1px solid var(--border); }
.kb-stat:last-child { border-right: none; }
.kb-stat__num { font-family: var(--serif); font-size: 42px; font-weight: 700; color: var(--red); line-height: 1; }
.kb-stat__label { font-size: 13px; color: var(--muted); margin-top: 6px; font-weight: 500; }

/* SECTIONS */
.kb-section { padding: 96px 40px; }
.kb-section--subtle { background: var(--bg); }
.kb-container { max-width: 1280px; margin: 0 auto; }
.kb-eyebrow { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase; color: var(--red); margin-bottom: 12px; }
.kb-section-title { font-family: var(--serif); font-size: clamp(26px, 3vw, 42px); font-weight: 700; color: var(--dark); line-height: 1.15; }
.kb-section-sub { font-size: 16px; color: var(--muted); margin-top: 12px; line-height: 1.72; max-width: 560px; }
.kb-section-header { margin-bottom: 52px; }
.kb-section-header.center { text-align: center; }
.kb-section-header.center .kb-section-sub { margin-left: auto; margin-right: auto; }

/* PAGE HERO */
.kb-page-hero { background: #fff; padding: 72px 40px 60px; border-bottom: 1px solid var(--border); margin-top: var(--nav-h); }
.kb-page-hero__inner { max-width: 1280px; margin: 0 auto; }
.kb-page-hero h1 { font-family: var(--serif); font-size: clamp(32px, 4vw, 54px); font-weight: 700; color: var(--dark); margin-bottom: 16px; line-height: 1.1; }
.kb-page-hero p { font-size: 17px; color: var(--muted); line-height: 1.75; max-width: 620px; margin: 0; }

/* GRIDS */
.kb-grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.kb-grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.kb-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }

/* CARDS */
.kb-card { background: #fff; border-radius: 14px; border: 1px solid var(--border); padding: 28px; transition: all .2s; display: block; text-decoration: none; }
.kb-card:hover { border-color: var(--red); box-shadow: 0 8px 32px rgba(229,57,53,.08); transform: translateY(-3px); }
.kb-card__icon { width: 48px; height: 48px; background: var(--red-light); border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 22px; margin-bottom: 18px; }
.kb-card__title { font-family: var(--sans); font-size: 16px; font-weight: 700; color: var(--dark); margin-bottom: 8px; }
.kb-card__desc { font-family: var(--sans); font-size: 14px; color: var(--muted); line-height: 1.65; margin: 0; }
.kb-card__arrow { font-size: 13px; font-weight: 700; color: var(--red); margin-top: 16px; display: flex; align-items: center; gap: 6px; }

/* BLOG CARDS */
.kb-blog-card { background: #fff; border: 1px solid var(--border); border-radius: 14px; overflow: hidden; transition: all .2s; display: block; text-decoration: none; }
.kb-blog-card:hover { border-color: var(--red); box-shadow: 0 8px 28px rgba(229,57,53,.07); transform: translateY(-3px); }
.kb-blog-card__thumb { height: 200px; background: linear-gradient(135deg, #fef2f2, #fde8e8); display: flex; align-items: center; justify-content: center; font-size: 52px; overflow: hidden; }
.kb-blog-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.kb-blog-card__body { padding: 22px; }
.kb-blog-card__tag { font-size: 10.5px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--red); padding: 4px 11px; background: var(--red-light); border-radius: 5px; display: inline-block; margin-bottom: 12px; }
.kb-blog-card h2 { font-family: var(--sans); font-size: 16px; font-weight: 700; color: var(--dark); margin-bottom: 8px; line-height: 1.35; }
.kb-blog-card p { font-size: 13px; color: var(--muted); line-height: 1.65; margin: 0 0 14px; }
.kb-blog-card__meta { font-size: 12px; color: var(--muted); display: flex; gap: 8px; flex-wrap: wrap; }

/* CASE CARDS */
.kb-case-card { background: #fff; border-radius: 14px; border: 1px solid var(--border); overflow: hidden; transition: all .2s; display: block; text-decoration: none; }
.kb-case-card:hover { border-color: var(--red); box-shadow: 0 10px 36px rgba(229,57,53,.08); transform: translateY(-3px); }
.kb-case-card__thumb { height: 160px; background: linear-gradient(135deg, #fef2f2, #fde8e8); display: flex; align-items: center; justify-content: center; font-size: 54px; }
.kb-case-card__body { padding: 22px; }
.kb-case-card__tag { font-size: 10.5px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--red); display: block; margin-bottom: 8px; }
.kb-case-card h2 { font-family: var(--sans); font-size: 15px; font-weight: 700; color: var(--dark); margin-bottom: 8px; line-height: 1.35; }
.kb-case-card p { font-size: 13px; color: var(--muted); line-height: 1.65; margin: 0 0 16px; }
.kb-case-card__metrics { display: flex; gap: 20px; padding-top: 14px; border-top: 1px solid var(--border); flex-wrap: wrap; }
.kb-case-card__val { font-family: var(--serif); font-size: 22px; font-weight: 700; color: var(--red); }
.kb-case-card__label { font-size: 11px; color: var(--muted); margin-top: 2px; }

/* SINGLE ARTICLE */
.kb-single { padding: 60px 40px; }
.kb-single__inner { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1fr 300px; gap: 56px; align-items: start; }
.kb-article h2 { font-size: 26px; margin: 44px 0 14px; padding-top: 44px; border-top: 1px solid var(--border); }
.kb-article h2:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.kb-article h3 { font-size: 19px; margin: 28px 0 10px; }
.kb-article p { font-size: 16px; line-height: 1.85; margin-bottom: 18px; }
.kb-article ul, .kb-article ol { margin: 0 0 18px; padding: 0; list-style: none; }
.kb-article ul li, .kb-article ol li { font-size: 15px; padding: 9px 0; border-bottom: 1px solid #f3f4f6; display: flex; gap: 10px; align-items: flex-start; line-height: 1.6; }
.kb-article ul li::before { content: ''; width: 6px; height: 6px; background: var(--red); border-radius: 50%; flex-shrink: 0; margin-top: 7px; }
.kb-article blockquote { border-left: 4px solid var(--red); padding: 18px 24px; background: var(--red-light); border-radius: 0 10px 10px 0; margin: 24px 0; }
.kb-article blockquote p { font-family: var(--serif); font-size: 17px; font-style: italic; color: var(--dark); margin: 0; }
.kb-article a { color: var(--red); text-decoration: underline; }

/* SIDEBAR */
.kb-sidebar { position: sticky; top: calc(var(--nav-h) + 24px); display: flex; flex-direction: column; gap: 20px; align-self: start; max-height: calc(100vh - var(--nav-h) - 48px); overflow-y: auto; }
.kb-sidebar-card { background: var(--bg); border: 1px solid var(--border); border-radius: 12px; padding: 22px; }
.kb-sidebar-card h5 { font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--muted); margin-bottom: 16px; }
.kb-sidebar-stat { display: flex; justify-content: space-between; padding: 11px 0; border-bottom: 1px solid #f3f4f6; font-size: 13.5px; }
.kb-sidebar-stat:last-of-type { border-bottom: none; }
.kb-sidebar-stat span:first-child { color: var(--muted); }
.kb-sidebar-stat span:last-child { font-weight: 600; color: var(--dark); }

/* TAG */
.kb-tag { display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--red); padding: 4px 11px; background: var(--red-light); border-radius: 5px; }

/* CTA */
.kb-cta-section { padding: 80px 40px; background: #fff; }
.kb-cta-box { max-width: 1280px; margin: 0 auto; background: var(--red); border-radius: 20px; padding: 72px 80px; text-align: center; position: relative; overflow: hidden; }
.kb-cta-box::before { content: ''; position: absolute; right: -60px; top: -60px; width: 260px; height: 260px; border-radius: 50%; background: rgba(255,255,255,.07); }
.kb-cta-box h2 { font-family: var(--serif); font-size: 40px; color: #fff; font-weight: 700; margin-bottom: 14px; position: relative; z-index: 1; }
.kb-cta-box p { font-size: 17px; color: rgba(255,255,255,.82); margin-bottom: 32px; position: relative; z-index: 1; }

/* FAQ */
.kb-faq-item { border-bottom: 1px solid var(--border); }
.kb-faq-item:first-of-type { border-top: 1px solid var(--border); }
.kb-faq-q { width: 100%; background: none; border: none; text-align: left; padding: 18px 0; font-family: var(--sans); font-size: 15px; font-weight: 600; color: var(--dark); display: flex; justify-content: space-between; align-items: center; gap: 16px; cursor: pointer; }
.kb-faq-q:hover, .kb-faq-q.open { color: var(--red); }
.kb-faq-q .chevron { font-size: 12px; transition: transform .22s; flex-shrink: 0; }
.kb-faq-q.open .chevron { transform: rotate(180deg); }
.kb-faq-a { display: none; padding: 0 0 18px; font-size: 14.5px; color: var(--text); line-height: 1.78; }
.kb-faq-a.open { display: block; }

/* HIGHLIGHT */
.kb-highlight { background: var(--red-light); border: 1px solid var(--red-mid); border-radius: 10px; padding: 20px 24px; margin: 24px 0; }
.kb-highlight p { font-size: 15px; color: var(--dark); font-weight: 500; margin: 0; line-height: 1.6; font-style: italic; }

/* FORM */
.kb-form { background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 44px; box-shadow: 0 4px 32px rgba(0,0,0,.06); }
.kb-form h3 { font-size: 26px; margin-bottom: 28px; }
.kb-form-group { margin-bottom: 20px; }
.kb-form-group label { display: block; font-size: 12.5px; font-weight: 600; color: var(--dark); margin-bottom: 7px; }
.kb-form-group input, .kb-form-group textarea, .kb-form-group select { width: 100%; padding: 12px 16px; border: 1.5px solid var(--border); border-radius: 8px; font-family: var(--sans); font-size: 14px; color: var(--text); background: var(--bg); transition: border-color .18s; outline: none; }
.kb-form-group input:focus, .kb-form-group textarea:focus, .kb-form-group select:focus { border-color: var(--red); background: #fff; }
.kb-form-group textarea { resize: vertical; min-height: 120px; }
.kb-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.kb-submit { width: 100%; padding: 14px; background: var(--red); color: #fff; border: none; border-radius: 8px; font-family: var(--sans); font-size: 15px; font-weight: 700; cursor: pointer; transition: all .2s; }
.kb-submit:hover { background: #c62828; }

/* CLIENTS */
.kb-clients { padding: 48px 40px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.kb-clients__inner { max-width: 1280px; margin: 0 auto; text-align: center; }
.kb-clients__label { font-size: 12px; color: var(--muted); margin-bottom: 28px; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 500; }
.kb-clients__logos { display: flex; gap: 52px; justify-content: center; flex-wrap: wrap; align-items: center; }
.kb-client-logo { font-family: var(--sans); font-size: 18px; font-weight: 800; color: #d1d5db; letter-spacing: -.5px; }

/* PAGINATION */
.kb-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 52px; flex-wrap: wrap; }
.kb-pagination .page-numbers { padding: 10px 16px; border: 1px solid var(--border); border-radius: 8px; font-size: 14px; font-weight: 500; color: var(--text); transition: all .18s; text-decoration: none; }
.kb-pagination .page-numbers:hover { border-color: var(--red); color: var(--red); }
.kb-pagination .page-numbers.current { background: var(--red); color: #fff; border-color: var(--red); }

/* FOOTER */
.kb-footer { background: var(--dark); padding: 72px 40px 36px; }
.kb-footer__inner { max-width: 1280px; margin: 0 auto; }
.kb-footer__top { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 56px; margin-bottom: 52px; }
.kb-footer__logo { font-family: var(--sans); font-size: 20px; font-weight: 800; color: #fff; letter-spacing: -.5px; }
.kb-footer__logo span { color: var(--red); }
.kb-footer__brand p { color: rgba(255,255,255,.35); font-size: 13.5px; line-height: 1.75; margin-top: 14px; max-width: 260px; }
.kb-footer__col h5 { font-family: var(--sans); color: #fff; font-size: 11px; font-weight: 700; margin-bottom: 18px; letter-spacing: 1.5px; text-transform: uppercase; }
.kb-footer__col ul { list-style: none; }
.kb-footer__col ul li { margin-bottom: 10px; }
.kb-footer__col ul li a { color: rgba(255,255,255,.35); font-size: 13.5px; transition: color .18s; }
.kb-footer__col ul li a:hover { color: rgba(255,255,255,.8); }
.kb-footer__bottom { border-top: 1px solid rgba(255,255,255,.08); padding-top: 26px; display: flex; justify-content: space-between; align-items: center; }
.kb-footer__bottom p { color: rgba(255,255,255,.22); font-size: 12.5px; }
.kb-footer__social { display: flex; gap: 10px; }
.kb-social-btn { width: 34px; height: 34px; border-radius: 8px; border: 1px solid rgba(255,255,255,.12); background: none; color: rgba(255,255,255,.38); font-size: 12px; transition: all .18s; display: flex; align-items: center; justify-content: center; cursor: pointer; text-decoration: none; }
.kb-social-btn:hover { background: var(--red); border-color: var(--red); color: #fff; }

/* ADMIN BAR */
.admin-bar .kb-header { top: 32px; }
.admin-bar .kb-mobile-nav { top: calc(var(--nav-h) + 32px); }
@media screen and (max-width: 782px) { .admin-bar .kb-header { top: 46px; } }

/* RESPONSIVE */
@media (max-width: 1024px) {
  .kb-hero__inner { gap: 48px; }
  .kb-grid-4 { grid-template-columns: repeat(2,1fr); }
  .kb-footer__top { grid-template-columns: 1fr 1fr; gap: 36px; }
}
@media (max-width: 768px) {
  :root { --nav-h: 60px; }
  .kb-header__inner { padding: 0 20px; }
  .kb-nav, .kb-header__cta { display: none; }
  .kb-ham { display: flex; }
  .kb-hero { padding: 52px 20px 48px; }
  .kb-hero__inner { grid-template-columns: 1fr; gap: 40px; }
  .kb-hero__cards { display: none; }
  .kb-section { padding: 64px 20px; }
  .kb-grid-3, .kb-grid-2 { grid-template-columns: 1fr; }
  .kb-stats__inner { grid-template-columns: repeat(2,1fr); }
  .kb-cta-box { padding: 48px 28px; }
  .kb-cta-box h2 { font-size: 28px; }
  .kb-single__inner { grid-template-columns: 1fr; }
  .kb-sidebar { position: relative; top: 0; }
  .kb-footer__top { grid-template-columns: 1fr; }
  .kb-form-row { grid-template-columns: 1fr; }
  .kb-page-hero { padding: 52px 20px 48px; }
  .kb-clients { padding: 40px 20px; }
  .kb-cta-section { padding: 56px 20px; }
  .kb-clients__logos { gap: 28px; }
}

.kb-toc-link { display:block; font-size:13px; color:var(--muted); padding:7px 10px; border-radius:6px; transition:all .15s; line-height:1.4; text-decoration:none; }
.kb-toc-link:hover, .kb-toc-link.active { color:var(--red); background:var(--red-light); font-weight:600; }

/* ── CAREERS ── */
.kb-job-card { background:#fff; border:1px solid var(--border); border-radius:14px; padding:24px 28px; display:flex; align-items:center; justify-content:space-between; gap:24px; transition:all .2s; }
.kb-job-card:hover { border-color:var(--red); box-shadow:0 6px 28px rgba(229,57,53,.08); transform:translateY(-2px); }
.kb-job-card__main { flex:1; }
.kb-job-card__title { font-family:var(--sans); font-size:16px; font-weight:700; color:var(--dark); margin-bottom:10px; }
.kb-job-card__meta { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.kb-job-card__excerpt { font-size:13px; color:var(--muted); line-height:1.6; margin:0; }
.kb-job-card__cta { flex-shrink:0; }
.kb-job-pill { display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:600; padding:5px 12px; background:var(--bg); border:1px solid var(--border); border-radius:20px; color:var(--text); white-space:nowrap; }
.kb-job-pill--green { background:#f0fdf4; border-color:#bbf7d0; color:#166534; }
.kb-job-pill--open { background:#f0fdf4; border-color:#bbf7d0; color:#166534; }
.kb-job-pill--closed { background:#fef2f2; border-color:#fecaca; color:#991b1b; }
@media(max-width:768px){ .kb-job-card { flex-direction:column; align-items:flex-start; } .kb-job-card__cta { width:100%; } .kb-job-card__cta .kb-btn { width:100%; justify-content:center; } }
