/* ═══════════════════════════════════════════════════════════════════
   AI PULSE — KINETIC FEED (2040)
   Loaded after style.css. Re-tokens the existing system, then
   overrides the components that carry the new language.

   Rules: no rounded corners. no shadows. depth from contrast and
   colour blocking. --live is only ever real-time signal.
═══════════════════════════════════════════════════════════════════ */

/* ─── TOKENS ─── dark is the default; light is a deliberate toggle ─── */
:root,
:root[data-theme="dark"] {
  --void:       #101119;
  --surface:    #1a1c28;
  --surface-2:  #22243a;
  --edge:       #2b2d3d;
  --edge-soft:  #1f2130;

  --ink:        #f5f4fa;
  --ink-2:      #b5b3c6;
  --ink-3:      #7d7b92;
  --ink-4:      #4a4860;

  --signal:     #8b5cf6;
  --signal-dim: #4c1d95;
  --heat:       #f9634a;
  --live:       #c3f53c;
  --on-colour:  #0d0e14;

  --scrim:      rgba(13,14,20,.74);
  --hero-scrim: linear-gradient(to top, #101119 3%, rgba(16,17,25,0) 62%);
}

:root[data-theme="light"] {
  --void:       #f4f2ee;
  --surface:    #ffffff;
  --surface-2:  #eae7e0;
  --edge:       #d9d5cd;
  --edge-soft:  #e6e3db;

  --ink:        #14151c;
  --ink-2:      #3d3e4a;
  --ink-3:      #6a6875;
  --ink-4:      #9b99a6;

  --signal:     #6d28d9;
  --signal-dim: #ddd3f5;
  --heat:       #d63d22;
  --live:       #14151c;
  --on-colour:  #ffffff;

  --scrim:      rgba(20,21,28,.72);
  --hero-scrim: linear-gradient(to top, #f4f2ee 3%, rgba(244,242,238,0) 62%);
}

/* ─── Remap the legacy token names so the existing 67KB follows along ─── */
:root, :root[data-theme="dark"], :root[data-theme="light"] {
  --font-display: "Rubik", "Heebo", system-ui, sans-serif;
  --font-body:    "Assistant", "Heebo", system-ui, sans-serif;
  --font-ui:      "Assistant", "Heebo", system-ui, sans-serif;
  --font-mono:    "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --bg:          var(--void);
  --bg-elev:     var(--surface);
  --bg-soft:     var(--surface);
  --bg-tint:     var(--surface-2);
  --rule:        var(--edge);
  --rule-strong: var(--edge);

  --accent:          var(--signal);
  --accent-hover:    var(--signal);
  --accent-soft:     var(--surface);
  --accent-ink:      var(--signal);
  --accent-dark:     var(--signal-dim);
  --accent-contrast: var(--on-colour);
  --accent2:         var(--signal);

  --cat-news:      var(--heat);
  --cat-tools:     var(--live);
  --cat-guides:    var(--signal);
  --cat-resources: var(--heat);
  --cat-opinion:   var(--signal);

  --header-bg:  var(--void);
  --text:       var(--ink);
  --text-muted: var(--ink-3);
  --text-light: var(--ink-4);
  --card:       transparent;
  --border:     var(--edge);
  --border-soft: var(--edge-soft);

  /* Kinetic: corners are square. */
  --r-xs: 0; --r-sm: 0; --r-md: 0; --r-lg: 0; --r-pill: 0;
  --radius: 0; --radius-sm: 0;

  /* Kinetic: depth comes from contrast, not shadow. */
  --shadow-xs: none; --shadow-sm: none; --shadow-md: none;
  --shadow-lg: none; --shadow-hover: none;

  --header-h: 76px;
  --container-reading: 720px;
}

/* The oklch upgrade block in style.css targets bare :root — outrank it. */
:root:root { color-scheme: dark; }
:root[data-theme="light"]:root { color-scheme: light; }

body, .site, #page { background: var(--void); color: var(--ink); }

.kf-mono { font-family: var(--font-mono); }

/* Kill inherited roundness / shadow anywhere it survived. */
.ai-card-wrap, .ai-card-img, .btn, .cat-pill, .ai-read-time, .ai-search-form,
.ai-load-more-btn, .ai-newsletter-section, .widget-area .widget,
.ast-read-more-container a, .more-link, .cat-links a, .pagination .page-numbers {
  border-radius: 0 !important;
  box-shadow: none !important;
}

@keyframes kf-pulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: .35; transform: scale(.72); } }
.kf-live-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--live); box-shadow: 0 0 10px var(--live);
  animation: kf-pulse 1.8s ease-in-out infinite; flex-shrink: 0;
}
:root[data-theme="light"] .kf-live-dot { background: #7cb800; box-shadow: 0 0 8px rgba(124,184,0,.6); }
@media (prefers-reduced-motion: reduce) { .kf-live-dot { animation: none; } }

/* ═══════════════════════════════════════════════════
   HEADER
═══════════════════════════════════════════════════ */
.kf-header {
  position: sticky; top: 0; z-index: 999;
  background: color-mix(in srgb, var(--void) 82%, transparent);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  border-bottom: 1px solid var(--edge);
}
@supports not (background: color-mix(in srgb, red 50%, blue)) {
  .kf-header { background: var(--void); }
}
.kf-header-inner {
  display: flex; align-items: center; justify-content: space-between; gap: 32px;
  max-width: 1440px; margin: 0 auto; padding: 0 clamp(16px, 3vw, 48px); height: var(--header-h);
}
.kf-header-start { display: flex; align-items: center; gap: clamp(18px, 2.6vw, 36px); min-width: 0; }
.kf-header-end   { display: flex; align-items: center; gap: 12px; }

.kf-logo { display: flex; align-items: baseline; gap: 9px; text-decoration: none; flex-shrink: 0; }
.kf-logo-text {
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(19px, 2vw, 25px); letter-spacing: -.035em; color: var(--ink);
}
.kf-logo:hover .kf-logo-text { color: var(--ink); }

.kf-nav { display: flex; align-items: center; gap: 26px; }
.kf-nav a {
  font-family: var(--font-ui); font-size: 15px; font-weight: 600;
  color: var(--ink-3); text-decoration: none; white-space: nowrap;
  padding-bottom: 3px; border-bottom: 2px solid transparent; transition: color .15s, border-color .15s;
}
.kf-nav a:hover { color: var(--ink); }
.kf-nav a.is-current { color: var(--ink); border-bottom-color: var(--signal); }

.kf-search {
  display: flex; align-items: center; gap: 9px;
  height: 38px; width: 210px; padding: 0 14px;
  border: 1px solid var(--edge); background: transparent; color: var(--ink-4);
}
.kf-search:focus-within { border-color: var(--signal); color: var(--ink-3); }
.kf-search input {
  flex: 1; min-width: 0; border: 0; background: transparent; outline: none;
  font-family: var(--font-ui); font-size: 13.5px; color: var(--ink); padding: 0;
}
.kf-search input::placeholder { color: var(--ink-4); }

.kf-icon-btn {
  display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; padding: 0;
  border: 1px solid var(--edge); background: transparent; color: var(--ink-2);
  cursor: pointer; transition: border-color .15s, color .15s;
}
.kf-icon-btn:hover { border-color: var(--signal); color: var(--ink); }
.kf-icon-sun { display: none; }
:root[data-theme="dark"] .kf-icon-sun  { display: block; }
:root[data-theme="dark"] .kf-icon-moon { display: none; }

.kf-cta {
  display: flex; align-items: center; height: 38px; padding: 0 20px;
  background: var(--signal); color: var(--on-colour) !important;
  font-family: var(--font-ui); font-weight: 700; font-size: 14px;
  text-decoration: none !important; white-space: nowrap; transition: background .15s;
}
.kf-cta:hover { background: var(--live); color: var(--on-colour) !important; }
:root[data-theme="light"] .kf-cta { color: #fff !important; }
:root[data-theme="light"] .kf-cta:hover { background: var(--ink); }

.kf-burger {
  display: none; align-items: center; justify-content: center;
  width: 48px; height: 48px; padding: 0; margin-inline-end: -12px;
  border: 0; background: transparent; color: var(--ink); cursor: pointer;
}

/* Astra header remnants, if any survive */
.ast-mobile-header-wrap, .ast-desktop-header, .main-header-bar-wrap:not(.kf-header) { display: none !important; }

@media (max-width: 900px) {
  .kf-nav, .kf-search, .kf-cta { display: none; }
  .kf-burger { display: flex; }
  :root { --header-h: 60px; }
  /* plain icons on mobile — the boxed control reads as a stray button */
  .kf-icon-btn { border: 0; width: 48px; height: 48px; }
  .kf-header-end { gap: 0; }
}
.kf-drawer:focus { outline: none; }

/* ═══════════════════════════════════════════════════
   LIVE RAIL
═══════════════════════════════════════════════════ */
.kf-rail {
  display: flex; align-items: stretch; height: 44px;
  border-bottom: 1px solid var(--edge); overflow: hidden; background: var(--void);
}
.kf-rail-badge {
  display: flex; align-items: center; gap: 8px;
  padding: 0 20px; flex-shrink: 0;
  background: var(--live); color: var(--on-colour);
  font-family: var(--font-mono); font-size: 11.5px; font-weight: 600; letter-spacing: .16em;
}
.kf-rail-badge .kf-live-dot { background: var(--on-colour); box-shadow: none; width: 6px; height: 6px; }
:root[data-theme="light"] .kf-rail-badge { background: var(--ink); color: #c3f53c; }
:root[data-theme="light"] .kf-rail-badge .kf-live-dot { background: #c3f53c; }

.kf-rail-viewport { flex: 1; overflow: hidden; display: flex; align-items: center; }
@keyframes kf-rail-scroll { from { transform: translateX(0); } to { transform: translateX(50%); } }
.kf-rail-track {
  display: flex; align-items: center; gap: 40px;
  padding-inline-start: 24px; white-space: nowrap; flex-shrink: 0;
  animation: kf-rail-scroll 60s linear infinite;
}
.kf-rail:hover .kf-rail-track { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .kf-rail-track { animation: none; } }

.kf-rail-item { display: flex; align-items: center; gap: 11px; text-decoration: none !important; }
.kf-rail-time {
  font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .08em;
  color: var(--live);
}
:root[data-theme="light"] .kf-rail-time { color: #5f8f00; }
.kf-rail-text { font-family: var(--font-ui); font-size: 14px; color: var(--ink-3); transition: color .15s; }
.kf-rail-item:hover .kf-rail-text { color: var(--ink); }

@media (max-width: 680px) {
  .kf-rail { height: 38px; }
  .kf-rail-badge { padding: 0 12px; font-size: 10px; }
  .kf-rail-text { font-size: 13px; }
}

/* ═══════════════════════════════════════════════════
   HERO — headline overlaps the image. This is the move.
═══════════════════════════════════════════════════ */
.ai-lead-story {
  background: var(--void) !important; border: 0 !important;
  padding: 0 0 clamp(24px, 3vw, 44px) !important; position: relative; overflow: hidden;
}
.ai-lead-story::before {
  content: ''; position: absolute; top: 40px; inset-inline-start: -120px;
  width: 620px; height: 620px; pointer-events: none;
  background: radial-gradient(circle at 45% 45%, color-mix(in srgb, var(--signal) 22%, transparent), transparent 66%);
}
.ai-lead-story .ast-container { position: relative; z-index: 2; max-width: 1440px; padding-inline: clamp(16px, 3vw, 48px); }

.ai-lead-inner { display: block !important; position: relative; padding-top: clamp(28px, 4vw, 56px); }

.ai-lead-image {
  display: block; position: relative; overflow: hidden;
  width: min(720px, 64%);
  height: clamp(230px, 30vw, 420px);
  margin-inline-start: auto;
  margin-bottom: clamp(-132px, -8vw, -44px);
  background: linear-gradient(122deg, var(--signal) 0%, var(--signal-dim) 42%, var(--void) 100%);
}
.ai-lead-image::before {
  content: ''; position: absolute; z-index: 1;
  inset-inline-end: 0; bottom: 0; width: 30%; aspect-ratio: 1;
  background: var(--heat); mix-blend-mode: hard-light; opacity: .8;
}
.ai-lead-image img + ::before { display: none; }
.ai-lead-image::after {
  content: ''; position: absolute; inset: 0; z-index: 2;
  background: repeating-linear-gradient(96deg, rgba(255,255,255,.055) 0 1px, transparent 1px 9px), var(--hero-scrim);
}
/* when a real photo is present, drop the decorative block */
.ai-lead-image:has(img)::before { display: none; }
.ai-lead-image img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  border-radius: 0 !important;
}

.ai-lead-content { position: relative; z-index: 3; max-width: 1010px; }

.ai-lead-meta-top { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.ai-lead-badge {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 4px 11px; background: var(--live); color: var(--on-colour) !important;
  font-family: var(--font-mono); font-size: 10.5px; font-weight: 600; letter-spacing: .14em;
  border-radius: 0 !important; border: 0 !important;
}
:root[data-theme="light"] .ai-lead-badge { background: var(--ink); color: #c3f53c !important; }
.ai-lead-badge .ai-live-dot { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.cat-pill {
  border-radius: 0 !important; border: 1px solid var(--edge) !important;
  background: var(--scrim) !important; color: var(--ink-2) !important;
  font-family: var(--font-mono) !important; font-size: 10.5px !important;
  letter-spacing: .14em !important; padding: 4px 11px !important;
}

.ai-lead-title {
  margin: 0 !important;
  font-family: var(--font-display) !important; font-weight: 900 !important;
  font-size: clamp(36px, 7.2vw, 104px) !important;
  line-height: .92 !important; letter-spacing: -.045em !important;
  text-wrap: balance; text-shadow: 0 6px 44px var(--void);
}
.ai-lead-title a { color: var(--ink) !important; text-decoration: none !important; }
.ai-lead-title a:hover { color: var(--signal) !important; }

.ai-lead-excerpt {
  margin: 26px 0 0 !important; max-width: 560px;
  font-family: var(--font-body) !important; font-weight: 300 !important;
  font-size: clamp(15.5px, 1.4vw, 18.5px) !important; line-height: 1.62 !important;
  color: var(--ink-3) !important;
}
.ai-lead-meta {
  display: flex; align-items: center; gap: 12px; margin-top: 18px;
  font-family: var(--font-mono) !important; font-size: 11.5px !important;
  letter-spacing: .1em; color: var(--ink-4) !important;
}
.ai-lead-meta .sep { opacity: .5; }
.ai-lead-actions { margin-top: 24px; }

.btn, .btn-primary {
  display: inline-flex; align-items: center; gap: 9px;
  height: 50px; padding: 0 28px; border-radius: 0 !important; border: 0 !important;
  background: var(--ink) !important; color: var(--void) !important;
  font-family: var(--font-ui) !important; font-weight: 800 !important; font-size: 15.5px !important;
  text-decoration: none !important; transition: background .15s, color .15s;
}
.btn:hover, .btn-primary:hover { background: var(--signal) !important; color: var(--on-colour) !important; }

/* ═══════════════════════════════════════════════════
   TRENDING — outlined numerals
═══════════════════════════════════════════════════ */
.ai-trending-strip {
  background: var(--void) !important;
  border-top: 1px solid var(--edge) !important;
  border-bottom: 1px solid var(--edge) !important;
  padding: 0 !important;
}
.ai-trending-inner {
  display: block !important; max-width: 1440px; margin: 0 auto;
  padding: 0 clamp(16px, 3vw, 48px) !important;
}
.ai-trending-label {
  display: flex !important; align-items: center; gap: 8px;
  padding: 14px 0 2px !important; margin: 0 !important;
  font-family: var(--font-mono) !important; font-size: 10.5px !important;
  font-weight: 500 !important; letter-spacing: .18em !important;
  color: var(--ink-4) !important; text-transform: uppercase;
}
.ai-trending-links {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 !important; margin: 0 !important; padding: 0 !important;
}
.ai-trending-link {
  display: flex !important; align-items: flex-start; gap: 18px;
  padding: 20px 26px 24px 0 !important; margin: 0 !important;
  border-inline-start: 1px solid var(--edge);
  text-decoration: none !important;
  font-family: var(--font-display) !important; font-weight: 700 !important;
  font-size: 16.5px !important; line-height: 1.32 !important;
  letter-spacing: -.015em !important; color: var(--ink) !important;
}
.ai-trending-link:first-child { border-inline-start: 0; padding-inline-start: 0 !important; }
.ai-trending-link:not(:first-child) { padding-inline-start: 26px !important; }
.ai-trending-link:hover { color: var(--signal) !important; }
.ai-trending-link, .ai-trending-t { white-space: normal !important; }
.ai-trending-t {
  min-width: 0; flex: 1;
  display: -webkit-box !important; -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; overflow: hidden;
}
.ai-trending-n { position: relative; top: -2px; }
.ai-trending-n {
  font-family: var(--font-mono) !important; font-size: 42px !important; font-weight: 500 !important;
  line-height: .84 !important; letter-spacing: -.03em !important;
  color: transparent !important; -webkit-text-stroke: 1px var(--signal-dim);
  flex-shrink: 0; background: none !important; padding: 0 !important;
}
:root[data-theme="light"] .ai-trending-n { -webkit-text-stroke-color: var(--ink-4); }

@media (max-width: 900px) {
  .ai-trending-links { grid-template-columns: 1fr; }
  .ai-trending-link,
  .ai-trending-link:not(:first-child) {
    border-inline-start: 0; border-top: 1px solid var(--edge-soft);
    padding: 18px 0 !important;
  }
  .ai-trending-link:first-child { border-top: 0; }
}

/* ═══════════════════════════════════════════════════
   SECTION HEADER
═══════════════════════════════════════════════════ */
.ai-section-header {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 20px;
  max-width: 1440px; margin: 0 auto;
  padding: clamp(30px, 4vw, 56px) clamp(16px, 3vw, 48px) clamp(18px, 2.2vw, 30px) !important;
  border: 0 !important;
}
.ai-section-title {
  margin: 0 !important; font-family: var(--font-display) !important; font-weight: 900 !important;
  font-size: clamp(28px, 4vw, 52px) !important; letter-spacing: -.04em !important;
  color: var(--ink) !important;
}
.ai-section-link {
  font-family: var(--font-mono) !important; font-size: 12px !important;
  letter-spacing: .12em; color: var(--ink-3) !important; text-decoration: none !important;
}
.ai-section-link:hover { color: var(--signal) !important; }

/* Category filter bar */
.ai-cat-bar-sticky { background: var(--void) !important; border-color: var(--edge) !important; }
.ai-cat-bar { max-width: 1440px; margin: 0 auto; padding-inline: clamp(16px, 3vw, 48px); gap: 10px; }
.ai-cat-bar a {
  display: inline-flex; align-items: center; height: 34px; padding: 0 16px;
  border: 1px solid var(--edge) !important; border-radius: 0 !important;
  background: transparent !important; color: var(--ink-3) !important;
  font-family: var(--font-ui) !important; font-size: 13px !important; font-weight: 600 !important;
}
.ai-cat-bar a:hover { color: var(--ink) !important; border-color: var(--signal) !important; }
.ai-cat-bar a.active {
  background: var(--signal) !important; border-color: var(--signal) !important;
  color: var(--on-colour) !important; font-weight: 700 !important;
}

/* ═══════════════════════════════════════════════════
   CARDS — staggered, borderless, square
═══════════════════════════════════════════════════ */
.site-main .ast-row {
  max-width: 1440px; margin: 0 auto;
  padding-inline: clamp(16px, 3vw, 48px);
  gap: clamp(24px, 2.6vw, 34px) !important;
  align-items: start;
}

.ai-card-wrap {
  background: transparent !important; border: 0 !important;
  border-radius: 0 !important; box-shadow: none !important;
  overflow: visible;
}
.ai-card-wrap:hover { transform: none !important; box-shadow: none !important; border: 0 !important; }

/* The hero already carries the lead story — no full-width featured card. */
@media (min-width: 680px) {
  .site-main .ast-row .ai-card-wrap:first-child {
    grid-column: auto !important;
    flex-direction: column !important;
  }
  .site-main .ast-row .ai-card-wrap:first-child .ai-card-img {
    flex: none !important; aspect-ratio: 1200/630; min-height: 0 !important;
  }
  .site-main .ast-row .ai-card-wrap:first-child .ast-article-post {
    flex: 1 !important; width: 100% !important; max-width: 100% !important;
    justify-content: flex-start;
  }
  .site-main .ast-row .ai-card-wrap:first-child .post-content,
  .site-main .ast-row .ai-card-wrap:first-child .ast-grid-common-col {
    padding: 20px 0 0 !important; height: auto;
  }
  .site-main .ast-row .ai-card-wrap:first-child .entry-title a { font-size: 22px !important; line-height: 1.24 !important; }
}

/* the stagger — the kinetic rhythm */
@media (min-width: 1100px) {
  .site-main .ast-row .ai-card-wrap:nth-child(3n+2) { margin-top: 52px; }
}
@media (min-width: 680px) and (max-width: 1099px) {
  .site-main .ast-row .ai-card-wrap:nth-child(2n) { margin-top: 44px; }
}

.ai-card-img {
  aspect-ratio: 1200/630; border-radius: 0 !important;
  background: linear-gradient(140deg, var(--signal-dim) 0%, var(--void) 100%);
}
.ai-card-img::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(96deg, rgba(255,255,255,.05) 0 1px, transparent 1px 8px);
}
.ai-card-wrap:hover .ai-card-img-bg { transform: scale(1.05); }

.ai-card-cat-label {
  top: 12px; bottom: auto; inset-inline-start: 12px; inset-inline-end: auto;
  border-radius: 0 !important; background: var(--scrim) !important;
  color: var(--live) !important;
  font-family: var(--font-mono) !important; font-size: 10px !important;
  letter-spacing: .14em !important; font-weight: 500 !important; padding: 4px 10px !important;
}
:root[data-theme="light"] .ai-card-cat-label { color: #c3f53c !important; }
.ai-card-new {
  border-radius: 0 !important; background: var(--heat) !important;
  font-family: var(--font-mono) !important; letter-spacing: .12em !important;
  top: 12px; inset-inline-end: 12px; right: auto;
}
.ai-bookmark-btn {
  border-radius: 0 !important; background: var(--scrim) !important;
  border: 1px solid var(--edge) !important; color: var(--ink-2) !important;
}

/* card body — works for both server-rendered and load-more markup */
.ai-card-wrap .ast-article-post .post-content,
.ai-card-wrap .ast-article-post .ast-grid-common-col,
.ai-card-wrap .ast-article-post .post-content-wrap {
  padding: 20px 0 0 !important; background: transparent !important;
}
.ai-card-wrap .ast-article-inner { padding: 0 !important; }

.ai-card-wrap .entry-title { margin: 0 0 10px !important; order: 2; }
.ai-card-wrap .entry-title a {
  font-family: var(--font-display) !important; font-weight: 800 !important;
  font-size: clamp(19px, 1.6vw, 22px) !important; line-height: 1.24 !important;
  letter-spacing: -.025em !important; color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink) !important; text-wrap: pretty;
}
.ai-card-wrap .entry-title a:hover {
  color: var(--signal) !important; -webkit-text-fill-color: var(--signal) !important;
}
.ai-card-wrap .entry-meta {
  order: 1; margin-bottom: 12px !important;
  font-family: var(--font-mono) !important;
  font-size: 0 !important;           /* swallows Astra's stray " / " text node */
  letter-spacing: .12em; color: var(--ink-4) !important;
}
.ai-card-wrap .entry-meta > * { font-size: 11px !important; }
.ai-card-wrap .entry-meta .posted-on { display: inline !important; }
.ai-card-wrap .entry-meta .posted-by,
.ai-card-wrap .entry-meta .sep { display: none !important; }
.ai-card-wrap .ast-excerpt-container, .ai-card-wrap .ast-excerpt { order: 3; }
.ai-card-wrap .ast-excerpt p, .ai-card-wrap .ast-excerpt-container p, .ai-card-wrap .entry-summary p {
  font-family: var(--font-body) !important; font-weight: 300 !important;
  font-size: 15px !important; line-height: 1.58 !important; color: var(--ink-3) !important;
  display: -webkit-box !important; -webkit-box-orient: vertical;
  -webkit-line-clamp: 3; overflow: hidden;
}
.ai-card-wrap .ast-read-more-container { order: 4; }
.ai-card-wrap .ast-read-more-container a {
  background: transparent !important; border: 0 !important; padding: 0 !important;
  margin-top: 12px !important;
  color: var(--signal) !important; -webkit-text-fill-color: var(--signal) !important;
  font-family: var(--font-mono) !important; font-size: 11.5px !important;
  letter-spacing: .12em !important; font-weight: 500 !important;
}
.ai-read-time {
  background: transparent !important; border: 0 !important; padding: 0 !important;
  font-family: var(--font-mono) !important; color: var(--ink-4) !important;
}

/* ═══════════════════════════════════════════════════
   LOAD MORE / PAGINATION
═══════════════════════════════════════════════════ */
.ai-load-more-btn, .pagination .page-numbers, .ast-pagination .page-numbers {
  border-radius: 0 !important; background: transparent !important;
  border: 1px solid var(--edge) !important; color: var(--ink-2) !important;
  font-family: var(--font-mono) !important; letter-spacing: .1em !important;
}
.ai-load-more-btn:hover, .pagination .page-numbers:hover { border-color: var(--signal) !important; color: var(--ink) !important; }
.pagination .page-numbers.current { background: var(--signal) !important; border-color: var(--signal) !important; color: var(--on-colour) !important; }

/* ═══════════════════════════════════════════════════
   NEWSLETTER — full-bleed colour block
═══════════════════════════════════════════════════ */
.ai-newsletter-section {
  position: relative; overflow: hidden;
  background: var(--signal) !important; color: var(--on-colour) !important;
  border: 0 !important; border-radius: 0 !important;
  padding: clamp(40px, 5vw, 62px) clamp(16px, 3vw, 48px) !important;
  margin: clamp(36px, 5vw, 60px) 0 0 !important;
}
.ai-newsletter-section::before {
  content: ''; position: absolute; bottom: -90px; inset-inline-end: -50px;
  width: 280px; height: 280px; background: var(--heat);
  opacity: .34; pointer-events: none;
}
.ai-newsletter-section > * { position: relative; z-index: 2; }
.ai-newsletter-section h2, .ai-nl-title {
  font-family: var(--font-display) !important; font-weight: 900 !important;
  font-size: clamp(28px, 3.6vw, 46px) !important; line-height: 1.02 !important;
  letter-spacing: -.04em !important; color: var(--on-colour) !important; margin: 0 0 12px !important;
}
.ai-newsletter-section p {
  color: var(--on-colour) !important; opacity: .82;
  font-family: var(--font-ui) !important; font-size: 17px !important;
}
.ai-newsletter-section input[type="email"] {
  height: 58px !important; border-radius: 0 !important; border: 0 !important;
  background: var(--on-colour) !important; color: var(--ink) !important;
  font-family: var(--font-ui) !important; font-size: 15px !important; padding: 0 20px !important;
}
:root[data-theme="light"] .ai-newsletter-section input[type="email"] { background: #14151c !important; color: #f4f2ee !important; }
.ai-newsletter-section button {
  height: 58px !important; border-radius: 0 !important; border: 0 !important;
  background: var(--live) !important; color: #0d0e14 !important;
  font-family: var(--font-ui) !important; font-weight: 800 !important; font-size: 15.5px !important;
  padding: 0 30px !important;
}
.ai-newsletter-section button:hover { background: #0d0e14 !important; color: var(--live) !important; }

/* ═══════════════════════════════════════════════════
   SINGLE POST
═══════════════════════════════════════════════════ */
.single .site-main, .single .ast-container { background: var(--void); }
.single .entry-title, .single h1.entry-title {
  font-family: var(--font-display) !important; font-weight: 900 !important;
  font-size: clamp(32px, 5.4vw, 82px) !important; line-height: .94 !important;
  letter-spacing: -.045em !important; color: var(--ink) !important; text-wrap: balance;
}
.single .entry-content { font-family: var(--font-body) !important; }
.single .entry-content p {
  font-size: 17.5px !important; line-height: 1.78 !important;
  color: var(--ink-2) !important; font-weight: 300 !important;
}
.single .entry-content h2 {
  font-family: var(--font-display) !important; font-weight: 800 !important;
  font-size: clamp(24px, 3vw, 34px) !important; letter-spacing: -.035em !important;
  color: var(--ink) !important; margin: 48px 0 16px !important;
}
.single .entry-content blockquote {
  position: relative; overflow: hidden; border: 0 !important; border-radius: 0 !important;
  background: var(--signal); color: var(--on-colour);
  margin: 44px 0 !important; padding: 34px !important;
  font-family: var(--font-display); font-weight: 800; font-size: clamp(20px, 2.2vw, 27px);
  line-height: 1.28; letter-spacing: -.03em;
}
.single .entry-content blockquote p { color: var(--on-colour) !important; font-weight: 800 !important; font-size: inherit !important; }
.single .entry-content a { color: var(--signal) !important; border-bottom: 1px solid var(--signal-dim); }

.ai-single-meta-bar, .ai-disclosure-badge, .ai-related-posts, .widget-area .widget {
  border-radius: 0 !important; box-shadow: none !important;
  background: transparent !important; border-color: var(--edge) !important;
}
.ai-disclosure-badge {
  border: 1px solid var(--edge) !important;
  border-inline-start: 3px solid var(--live) !important;
  color: var(--ink-3) !important; padding: 20px 22px !important;
}
#reading-progress { background: var(--live) !important; }

/* the floating theme toggle is now in the header */
#dark-toggle { display: none !important; }
#back-to-top {
  border-radius: 0 !important; background: var(--surface) !important;
  border: 1px solid var(--edge) !important; color: var(--ink-2) !important; box-shadow: none !important;
}

/* ═══════════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════════ */
.ai-footer-main {
  background: var(--void) !important; border-top: 1px solid var(--edge) !important;
  padding: clamp(40px, 5vw, 56px) 0 40px !important;
}
.ai-footer-main .ast-container { max-width: 1440px; padding-inline: clamp(16px, 3vw, 48px); }
.ai-footer-logo-text {
  font-family: var(--font-display) !important; font-weight: 900 !important;
  font-size: 22px !important; letter-spacing: -.035em !important; color: var(--ink) !important;
}
.ai-footer-col-title {
  font-family: var(--font-mono) !important; font-size: 10.5px !important;
  letter-spacing: .16em !important; color: var(--ink-4) !important; font-weight: 500 !important;
}
.ai-footer-desc, .ai-ft-nl-desc { color: var(--ink-3) !important; font-family: var(--font-body) !important; font-weight: 300 !important; }
.ai-footer-links a, .ai-footer-col a { color: var(--ink-3) !important; font-family: var(--font-ui) !important; }
.ai-footer-links a:hover, .ai-footer-col a:hover { color: var(--ink) !important; }
.ai-ft-num { font-family: var(--font-mono) !important; color: var(--ink-4) !important; }
.ai-ft-nl-form input { border-radius: 0 !important; background: var(--surface) !important; border: 1px solid var(--edge) !important; color: var(--ink) !important; }
.ai-ft-nl-form button { border-radius: 0 !important; background: var(--signal) !important; color: var(--on-colour) !important; border: 0 !important; font-weight: 700 !important; }
.ai-ft-img { border-radius: 0 !important; }
.site-footer, .ast-small-footer { background: var(--void) !important; border-top: 1px solid var(--edge-soft) !important; color: var(--ink-4) !important; }
.site-footer a { color: var(--ink-3) !important; }

/* ═══════════════════════════════════════════════════
   MOBILE DRAWER
═══════════════════════════════════════════════════ */
.kf-drawer[hidden], .kf-drawer-scrim[hidden] { display: none !important; }

.kf-drawer-scrim {
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(5,6,10,.7); backdrop-filter: blur(3px);
  opacity: 0; transition: opacity .25s ease;
}
.kf-drawer-scrim.is-open { opacity: 1; }

.kf-drawer {
  position: fixed; inset-block: 0; inset-inline-end: 0; z-index: 1001;
  width: min(390px, 90vw); display: flex; flex-direction: column;
  background: var(--void); border-inline-start: 1px solid var(--edge);
  transform: translateX(-100%); transition: transform .26s cubic-bezier(.4,0,.2,1);
  overflow-y: auto;
}
html[dir="rtl"] .kf-drawer, body.rtl .kf-drawer { transform: translateX(100%); }
.kf-drawer.is-open { transform: translateX(0) !important; }
.kf-drawer::before {
  content: ''; position: absolute; top: -80px; inset-inline-start: -80px;
  width: 340px; height: 340px; pointer-events: none;
  background: radial-gradient(circle, color-mix(in srgb, var(--signal) 28%, transparent), transparent 68%);
}
.kf-drawer > * { position: relative; z-index: 2; }

.kf-drawer-head {
  display: flex; align-items: center; justify-content: space-between;
  height: 60px; padding: 0 16px; border-bottom: 1px solid var(--edge); flex-shrink: 0;
}
.kf-drawer-close { border: 0 !important; width: 48px; height: 48px; }

.kf-drawer-search {
  display: flex; align-items: center; gap: 11px;
  height: 52px; margin: 20px 16px 0; padding: 0 16px;
  border: 1px solid var(--edge); color: var(--ink-4);
}
.kf-drawer-search input {
  flex: 1; min-width: 0; border: 0; background: transparent; outline: none;
  font-family: var(--font-ui); font-size: 15px; color: var(--ink);
}
.kf-drawer-search input::placeholder { color: var(--ink-4); }

.kf-drawer-label {
  display: block; padding: 28px 16px 12px;
  font-size: 10px; letter-spacing: .18em; color: var(--ink-4);
}
.kf-drawer-primary { display: flex; flex-direction: column; padding: 0 16px; }
.kf-drawer-primary a {
  display: flex; align-items: center; gap: 13px;
  min-height: 62px; padding: 8px 0;
  border-top: 1px solid var(--edge-soft); text-decoration: none !important;
}
.kf-drawer-num { font-size: 11px; letter-spacing: .08em; color: var(--ink-4); flex-shrink: 0; }
.kf-drawer-primary a.is-current .kf-drawer-num { color: var(--live); }
.kf-drawer-name {
  flex: 1; font-family: var(--font-display); font-weight: 800;
  font-size: 30px; letter-spacing: -.035em; color: var(--ink);
}
.kf-drawer-count { font-size: 12px; color: var(--ink-4); }

.kf-drawer-secondary { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 16px; }
.kf-drawer-secondary a {
  display: flex; align-items: center; height: 44px; padding: 0 16px;
  border: 1px solid var(--edge); color: var(--ink-3) !important;
  font-family: var(--font-ui); font-size: 14.5px; font-weight: 600; text-decoration: none !important;
}
.kf-drawer-secondary a:hover { border-color: var(--signal); color: var(--ink) !important; }

.kf-drawer-foot { margin-top: auto; padding: 28px 16px 22px; display: flex; flex-direction: column; gap: 12px; }
.kf-drawer-theme {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  height: 44px; border: 1px solid var(--edge); background: transparent;
  color: var(--ink-3); font-family: var(--font-ui); font-size: 13.5px; font-weight: 600;
  cursor: pointer;
}
.kf-drawer-cta {
  display: flex; align-items: center; justify-content: center; height: 54px;
  background: var(--live); color: #0d0e14 !important;
  font-family: var(--font-ui); font-weight: 800; font-size: 16px; text-decoration: none !important;
}

/* ═══════════════════════════════════════════════════
   MOBILE
═══════════════════════════════════════════════════ */
@media (max-width: 680px) {
  .ai-lead-image { width: 100%; height: auto; aspect-ratio: 1200/630; margin-bottom: 18px; }
  .ai-lead-story::before { display: none; }
  .ai-lead-title { text-shadow: none; }
  .ai-lead-title { font-size: clamp(30px, 10vw, 42px) !important; }
  .ai-lead-excerpt { font-size: 16px !important; }
  .btn, .btn-primary { width: 100%; justify-content: center; height: 52px; }
  .ai-newsletter-section input[type="email"], .ai-newsletter-section button { width: 100%; }
}

/* Astra leftovers that clash with the kinetic surface */
.ast-separate-container .ai-card-wrap .ast-article-post,
.ast-separate-container .ai-card-wrap .ast-article-inner,
.ast-separate-container .ai-card-wrap .post-content,
.ai-card-wrap .ast-article-post,
.ai-card-wrap .ast-article-inner {
  background: transparent !important; background-color: transparent !important;
  border: 0 !important; box-shadow: none !important; padding: 0 !important;
}
.ast-separate-container .site-main > .ast-row { background: transparent !important; }

.ast-separate-container .ast-article-post,
.ast-separate-container .ast-article-single,
.ast-separate-container #primary,
.ast-plain-container .site-content,
.ast-separate-container .site-content {
  background: transparent !important; box-shadow: none !important;
}

/* ═══════════════════════════════════════════════════
   ARTICLE HERO
═══════════════════════════════════════════════════ */
.kf-article-hero { position: relative; padding: 0 0 clamp(12px, 1.6vw, 22px); }
.kf-article-hero-media {
  position: relative;
  height: clamp(220px, 32vw, 460px);
  max-width: 1440px; margin: clamp(20px, 3vw, 40px) auto 0;
  width: calc(100% - 2 * clamp(16px, 3vw, 48px));
  background-color: var(--surface-2);
}
.kf-article-hero-media::before {
  content: ''; position: absolute; inset-inline-start: 8%; top: 0;
  width: 17%; aspect-ratio: 1; background: var(--heat);
  mix-blend-mode: hard-light; opacity: .8;
}
.kf-article-hero.has-image .kf-article-hero-media::before { display: none; }
.kf-article-hero-media::after {
  content: ''; position: absolute; inset: 0;
  background: repeating-linear-gradient(96deg, rgba(255,255,255,.05) 0 1px, transparent 1px 9px), var(--hero-scrim);
}
.kf-article-hero-body {
  position: relative; z-index: 3;
  max-width: 1440px; margin: clamp(-160px, -13vw, -60px) auto 0;
  padding-inline: clamp(16px, 3vw, 48px);
}
.kf-article-hero-meta { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; flex-wrap: wrap; }
.kf-article-cat {
  display: inline-flex; align-items: center; height: 26px; padding: 0 12px;
  background: var(--live); color: var(--on-colour) !important;
  font-family: var(--font-mono); font-size: 10.5px; font-weight: 600; letter-spacing: .16em;
  text-decoration: none !important;
}
:root[data-theme="light"] .kf-article-cat { background: var(--ink); color: #c3f53c !important; }
.kf-article-stamp { font-size: 11.5px; color: var(--ink-2); letter-spacing: .12em; }
.kf-article-title {
  margin: 0 !important;
  font-family: var(--font-display); font-weight: 900;
  font-size: clamp(30px, 5.6vw, 82px); line-height: .94; letter-spacing: -.045em;
  color: var(--ink); text-wrap: balance; max-width: 1130px;
  text-shadow: 0 6px 44px var(--void);
}

/* breadcrumbs above the hero */
.ai-breadcrumb {
  max-width: 1440px; padding-inline: clamp(16px, 3vw, 48px) !important;
  font-family: var(--font-mono) !important; font-size: 11px !important;
  letter-spacing: .1em; color: var(--ink-4) !important; padding-top: 18px !important;
}
.ai-breadcrumb a { color: var(--ink-3) !important; }
.ai-breadcrumb .ai-bc-current { color: var(--ink-4) !important; }

/* meta bar under the hero */
.ai-single-meta-bar {
  max-width: 1440px; margin: 0 auto !important;
  padding: 12px clamp(16px, 3vw, 48px) !important;
  border-top: 1px solid var(--edge) !important; border-bottom: 1px solid var(--edge) !important;
  font-family: var(--font-mono) !important; font-size: 11.5px !important;
  letter-spacing: .1em; color: var(--ink-3) !important;
}
.ai-source-link { color: var(--signal) !important; }

/* ═══════════════════════════════════════════════════
   ARTICLE BODY DETAILS
═══════════════════════════════════════════════════ */
/* outlined initial instead of a filled drop cap */
.single .entry-content > p:first-of-type::first-letter {
  font-family: var(--font-display) !important; font-weight: 900 !important;
  font-size: 4.4em !important; line-height: .78 !important;
  float: right; margin: 4px 0 0 10px; padding: 0 !important;
  color: var(--signal) !important;
  -webkit-text-fill-color: var(--signal) !important;
  background: none !important;
}

/* table of contents */
#toc_container, .ai-toc, .toc_widget_list, .ez-toc-container {
  background: transparent !important; border: 1px solid var(--edge) !important;
  border-radius: 0 !important; box-shadow: none !important;
  padding: 18px 20px !important; width: auto !important; max-width: 100% !important;
}
#toc_container ul, #toc_container li { margin: 0 !important; }
#toc_container li { padding: 5px 0 !important; }
#toc_container .toc_title, .ai-toc-title {
  font-family: var(--font-mono) !important; font-size: 10.5px !important;
  letter-spacing: .18em !important; color: var(--ink-4) !important;
  font-weight: 500 !important; text-align: start !important;
}
#toc_container a, .ai-toc a { color: var(--ink-2) !important; font-family: var(--font-ui) !important; }
#toc_container a:hover, .ai-toc a:hover { color: var(--signal) !important; }

/* share bar — one system, no brand colours */
.ai-share-bar {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  border-top: 1px solid var(--edge-soft); padding-top: 24px !important; margin-top: 40px !important;
}
.ai-share-bar > span {
  font-family: var(--font-mono) !important; font-size: 10.5px !important;
  letter-spacing: .16em; color: var(--ink-4) !important;
}
.ai-share-btn, .ai-share-btn.whatsapp, .ai-share-btn.facebook,
.ai-share-btn.twitter, .ai-share-btn.linkedin, .ai-share-btn.copy {
  display: inline-flex; align-items: center; gap: 7px;
  height: 40px; padding: 0 16px;
  background: transparent !important; border: 1px solid var(--edge) !important;
  border-radius: 0 !important; box-shadow: none !important;
  color: var(--ink-2) !important; font-family: var(--font-ui) !important;
  font-size: 13.5px !important; font-weight: 600 !important; cursor: pointer;
  transition: border-color .15s, color .15s;
}
.ai-share-btn:hover { border-color: var(--signal) !important; color: var(--ink) !important; }

/* reactions */
.ai-reactions { gap: 10px; }
.ai-reactions button, .ai-react-btn {
  height: 40px; padding: 0 16px; border-radius: 0 !important;
  background: transparent !important; border: 1px solid var(--edge) !important;
  color: var(--ink-2) !important; box-shadow: none !important;
}
.ai-reactions button:hover, .ai-react-btn:hover { border-color: var(--signal) !important; }

/* author box */
.ai-author-box {
  background: transparent !important; border: 1px solid var(--edge) !important;
  border-radius: 0 !important; box-shadow: none !important;
}
.ai-author-box .avatar {
  border-radius: 0 !important; background: var(--signal) !important;
}
.ai-author-box h4 { font-family: var(--font-display) !important; color: var(--ink) !important; }
.ai-author-box p { color: var(--ink-3) !important; font-family: var(--font-body) !important; font-weight: 300 !important; }
.ai-generated-badge {
  border-radius: 0 !important; background: transparent !important;
  border: 1px solid var(--live) !important; color: var(--live) !important;
  font-family: var(--font-mono) !important; letter-spacing: .1em !important;
}
:root[data-theme="light"] .ai-generated-badge { border-color: var(--signal) !important; color: var(--signal) !important; }

/* related posts */
.ai-related-posts h3 {
  font-family: var(--font-display) !important; font-weight: 900 !important;
  font-size: clamp(24px, 3vw, 40px) !important; letter-spacing: -.04em !important;
  color: var(--ink) !important;
}
.ai-related-card {
  background: transparent !important; border: 0 !important;
  border-radius: 0 !important; box-shadow: none !important;
}
.ai-related-img {
  border-radius: 0 !important; position: relative; overflow: hidden;
  background-size: cover !important; background-position: center !important;
}
.ai-related-img::after {
  content: ''; position: absolute; inset: 0;
  background: repeating-linear-gradient(96deg, rgba(255,255,255,.05) 0 1px, transparent 1px 8px);
}
.ai-related-body { padding: 16px 0 0 !important; background: transparent !important; }
.ai-related-body h4 {
  font-family: var(--font-display) !important; font-weight: 800 !important;
  font-size: 19px !important; line-height: 1.26 !important; letter-spacing: -.025em !important;
  color: var(--ink) !important;
}
.ai-related-body p { color: var(--ink-3) !important; font-family: var(--font-body) !important; font-weight: 300 !important; }
.ai-related-card:hover h4 { color: var(--signal) !important; }

/* post navigation */
.ast-single-post-navigation, .post-navigation {
  border-top: 1px solid var(--edge-soft) !important;
  font-family: var(--font-ui) !important;
}
.ast-single-post-navigation a, .post-navigation a { color: var(--ink-2) !important; }
.ast-single-post-navigation a:hover, .post-navigation a:hover { color: var(--signal) !important; }

/* ═══════════════════════════════════════════════════
   ASTRA CONTAINER CHROME
   Astra's "separate container" paints a white card behind archive titles,
   search results and the 404 body. Nothing in this design sits on a card.
═══════════════════════════════════════════════════ */
.ast-separate-container,
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-archive-description,
.ast-separate-container .site-content,
.ast-separate-container #primary,
.ast-separate-container #secondary,
.ast-plain-container .site-content,
.ast-page-builder-template .site-content,
.site-content .ast-container,
.error404 .ast-article-single,
.search .ast-archive-description,
.archive .ast-archive-description {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* the masthead already states where you are — Astra's banner duplicates it */
.ast-archive-description,
.search-results .ast-archive-description,
.archive .ast-archive-description { display: none !important; }

/* 404: our custom block above covers this; keep only the message + search */
.error404 .ast-article-single {
  border: 1px solid var(--edge) !important;
  padding: clamp(28px, 4vw, 48px) !important;
  max-width: 720px; margin: 0 auto !important;
}
.error404 .entry-title, .error404 .page-title {
  font-family: var(--font-display) !important; font-weight: 900 !important;
  font-size: clamp(26px, 3.4vw, 40px) !important; letter-spacing: -.04em !important;
  color: var(--ink) !important;
}
.error404 p { color: var(--ink-3) !important; font-family: var(--font-body) !important; font-weight: 300 !important; }
.error404 .search-field, .search-form .search-field {
  border-radius: 0 !important; background: transparent !important;
  border: 1px solid var(--edge) !important; color: var(--ink) !important;
  font-family: var(--font-ui) !important;
}
/* our own search fields sit inside a bordered shell — no second box */
.kf-search input, .kf-drawer-search input, .ai-search-form input {
  border: 0 !important; background: transparent !important;
  border-radius: 0 !important; box-shadow: none !important; outline: none;
}
.error404 .search-submit, .search-form .search-submit {
  border-radius: 0 !important; background: var(--signal) !important;
  color: var(--on-colour) !important; border: 0 !important;
}

/* search + archive masthead */
.ai-masthead, .ai-masthead-slim {
  background: var(--void) !important; border-bottom: 1px solid var(--edge) !important;
}
.ai-masthead-inner { max-width: 1440px; padding-inline: clamp(16px, 3vw, 48px) !important; }
.ai-masthead-name {
  font-family: var(--font-display) !important; font-weight: 900 !important;
  font-size: clamp(24px, 3vw, 40px) !important; letter-spacing: -.04em !important;
  color: var(--ink) !important;
}
.ai-masthead-tagline { color: var(--ink-3) !important; font-family: var(--font-body) !important; font-weight: 300 !important; }
.ai-search-form {
  border: 1px solid var(--edge) !important; border-radius: 0 !important;
  background: transparent !important; box-shadow: none !important;
}
.ai-search-form input { background: transparent !important; color: var(--ink) !important; border: 0 !important; }
.ai-search-form button { background: transparent !important; color: var(--ink-3) !important; border: 0 !important; }

/* ═══════════════════════════════════════════════════
   LIGHT-MODE CONTRAST CORRECTIONS
═══════════════════════════════════════════════════ */
:root[data-theme="light"] .cat-pill {
  background: var(--ink) !important; color: #f4f2ee !important;
  border-color: var(--ink) !important;
}
:root[data-theme="light"] .ai-card-cat-label { background: rgba(20,21,28,.82) !important; }

/* card date must not read as a link */
.ai-card-wrap .entry-meta .posted-on,
.ai-card-wrap .entry-meta .posted-on a,
.ai-card-wrap .entry-meta .published {
  color: var(--ink-4) !important; text-decoration: none !important;
}

/* Astra's 404 section duplicates the custom 404 block above (heading, search,
   suggested articles) and ships a malformed double search form. Drop it. */
.error-404.not-found { display: none !important; }

/* ═══════════════════════════════════════════════════
   FOCUS
═══════════════════════════════════════════════════ */
a:focus-visible, button:focus-visible, input:focus-visible, .kf-logo:focus-visible {
  outline: 2px solid var(--live);
  outline-offset: 2px;
}
:root[data-theme="light"] a:focus-visible,
:root[data-theme="light"] button:focus-visible,
:root[data-theme="light"] input:focus-visible { outline-color: var(--signal); }
a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline: none; }

/* ═══════════════════════════════════════════════════
   NEWSLETTER + FOOTER DETAIL
═══════════════════════════════════════════════════ */
.ai-newsletter-section form,
.ai-newsletter-section .ai-nl-form {
  display: flex; align-items: stretch; gap: 0;
  background: transparent !important; border: 0 !important;
  padding: 0 !important; box-shadow: none !important;
}
.ai-newsletter-section input[type="email"] { flex: 1; min-width: 0; }
.ai-newsletter-section .ai-nl-eyebrow,
.ai-newsletter-section .ai-nl-label {
  font-family: var(--font-mono) !important; font-size: 10.5px !important;
  letter-spacing: .18em !important; color: var(--on-colour) !important; opacity: .7;
}

.ai-footer-logo-text > span { color: var(--live); }
.ai-ft-item { display: flex; align-items: flex-start; gap: 14px; }
.ai-ft-num {
  font-family: var(--font-mono) !important; font-size: 22px !important;
  font-weight: 500 !important; line-height: 1 !important; letter-spacing: -.02em;
  color: transparent !important; -webkit-text-stroke: 1px var(--signal-dim);
  background: none !important; padding: 0 !important; flex-shrink: 0; min-width: 30px;
}
:root[data-theme="light"] .ai-ft-num { -webkit-text-stroke-color: var(--ink-4); }
.ai-ft-item a {
  font-family: var(--font-ui) !important; font-size: 14px !important;
  line-height: 1.42 !important; color: var(--ink-3) !important;
}
.ai-ft-item a:hover { color: var(--ink) !important; }

/* newsletter internals */
.ai-newsletter-section .ai-nl-deco { display: none; }
.ai-newsletter-section .ai-nl-content {
  position: relative; z-index: 2;
  display: flex; align-items: center; justify-content: space-between;
  gap: clamp(24px, 4vw, 56px); flex-wrap: wrap;
  max-width: 1440px; margin: 0 auto; padding: 0;
}
.ai-newsletter-section .ai-nl-text { max-width: 640px; flex: 1 1 380px; }
.ai-newsletter-section .ai-nl-text .eyebrow {
  font-family: var(--font-mono) !important; font-size: 10.5px !important;
  letter-spacing: .18em !important; color: var(--on-colour) !important;
  opacity: .68; margin-bottom: 10px;
}
.ai-newsletter-section .ai-nl-form-wrap {
  flex: 0 0 auto; background: transparent !important;
  border: 0 !important; padding: 0 !important; box-shadow: none !important;
}
.ai-newsletter-section .ai-nl-form-wrap form { display: flex; align-items: stretch; }
.ai-newsletter-section .ai-nl-form-wrap input[type="email"] { width: 320px; max-width: 60vw; }
:root[data-theme="light"] .ai-newsletter-section::before { opacity: .28; }

@media (max-width: 680px) {
  .ai-newsletter-section .ai-nl-content { flex-direction: column; align-items: stretch; }
  .ai-newsletter-section .ai-nl-form-wrap form { flex-direction: column; gap: 8px; }
  .ai-newsletter-section .ai-nl-form-wrap input[type="email"] { width: 100%; max-width: 100%; }
}
