:root {
  --ek-ink: #0b151b;
  --ek-slate: #172833;
  --ek-paper: #f0ece3;
  --ek-mist: #bdc8cc;
  --ek-amber: #d5aa72;
  --ek-copper: #9e6e43;
  --ek-line: rgba(213, 170, 114, 0.32);
  --ek-shadow: 0 22px 70px rgba(0, 0, 0, 0.34);
}

html { scroll-behavior: smooth; }

body.eight-keys-site {
  background:
    radial-gradient(circle at 82% 8%, rgba(83, 112, 126, 0.22), transparent 34rem),
    linear-gradient(180deg, #0d1920 0%, var(--ek-ink) 60%, #071015 100%);
  min-height: 100vh;
}

body.admin-bar .ek-site-header { top: 32px; }

.ek-site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid rgba(213, 170, 114, 0.18);
  background: rgba(8, 18, 24, 0.9);
  backdrop-filter: blur(16px);
}

.ek-site-header .wp-block-site-title a,
.ek-site-header a { text-decoration: none; }

.ek-site-header .wp-block-navigation-item__content {
  color: var(--ek-paper);
}

.ek-site-header .wp-block-navigation-item__content:hover,
.ek-site-header .current-menu-item > .wp-block-navigation-item__content {
  color: var(--ek-amber);
}

.ek-main { min-height: 65vh; }

.ek-hero {
  position: relative;
  overflow: hidden;
  padding-top: clamp(3rem, 8vw, 7.5rem);
  padding-bottom: clamp(3rem, 8vw, 7rem);
  border-bottom: 1px solid var(--ek-line);
}

.ek-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(11, 21, 27, 0) 48%, rgba(213, 170, 114, 0.05)),
    repeating-linear-gradient(90deg, transparent 0 79px, rgba(255,255,255,.017) 80px);
}

.ek-hero-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.75fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: center;
}

.ek-eyebrow {
  margin-bottom: 1rem;
  color: var(--ek-amber);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.ek-display {
  margin: 0 0 1.25rem;
  max-width: 16ch;
  font-size: clamp(2.65rem, 6.8vw, 6.25rem);
  line-height: 0.98;
  text-wrap: balance;
}

.ek-lead {
  max-width: 42rem;
  color: var(--ek-mist);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.16rem, 2.1vw, 1.55rem);
  line-height: 1.55;
}

.ek-cover-wrap { position: relative; }

.ek-cover-wrap::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 15% 3% 0;
  border-radius: 50%;
  background: rgba(213, 170, 114, 0.22);
  filter: blur(45px);
}

.ek-cover {
  display: block;
  width: min(100%, 440px);
  height: auto;
  margin-inline: auto;
  border-radius: 6px;
  box-shadow: var(--ek-shadow);
}

.ek-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 1.8rem;
}

.ek-button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 0.82rem 1.35rem;
  border: 1px solid var(--ek-amber);
  border-radius: 999px;
  background: var(--ek-amber);
  color: var(--ek-ink) !important;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none !important;
  transition: transform .18s ease, background .18s ease, color .18s ease;
}

.ek-button:hover {
  transform: translateY(-2px);
  background: #efc892;
}

.ek-button--ghost {
  background: transparent;
  color: var(--ek-paper) !important;
}

.ek-button--ghost:hover {
  background: rgba(213, 170, 114, 0.12);
}

.ek-button--disabled {
  cursor: not-allowed;
  opacity: .65;
}

.ek-section {
  padding-top: clamp(3.3rem, 8vw, 7rem);
  padding-bottom: clamp(3.3rem, 8vw, 7rem);
}

.ek-section--soft {
  border-block: 1px solid rgba(213, 170, 114, 0.15);
  background: rgba(23, 40, 51, 0.44);
}

.ek-section h2 {
  margin-top: 0;
  max-width: 18ch;
  font-size: clamp(2rem, 4.2vw, 3.8rem);
}

.ek-section-intro {
  max-width: 48rem;
  color: var(--ek-mist);
  font-size: 1.13rem;
}

.ek-grid-3,
.ek-grid-2,
.ek-book-grid {
  display: grid;
  gap: 1.25rem;
  margin-top: 2rem;
}

.ek-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ek-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ek-book-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.ek-card {
  padding: clamp(1.3rem, 3vw, 2rem);
  border: 1px solid rgba(213, 170, 114, 0.2);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(29, 49, 60, .88), rgba(14, 27, 34, .82));
  box-shadow: 0 16px 45px rgba(0, 0, 0, .15);
}

.ek-card h3 { margin-top: 0; font-size: 1.55rem; }
.ek-card p:last-child { margin-bottom: 0; }

.ek-number {
  display: inline-grid;
  width: 2.4rem;
  height: 2.4rem;
  place-items: center;
  margin-bottom: 1rem;
  border: 1px solid var(--ek-line);
  border-radius: 50%;
  color: var(--ek-amber);
  font-family: Georgia, serif;
}

.ek-quote {
  margin: 2rem 0;
  padding: 1.6rem 1.8rem;
  border-left: 3px solid var(--ek-amber);
  background: rgba(255, 255, 255, 0.035);
  color: var(--ek-paper);
  font-family: Georgia, serif;
  font-size: 1.18rem;
}

.ek-excerpt {
  max-width: 760px;
  margin-inline: auto;
  padding: clamp(1.3rem, 4vw, 3rem);
  border: 1px solid rgba(213, 170, 114, 0.22);
  border-radius: 18px;
  background: #efe9dc;
  color: #182127;
  box-shadow: var(--ek-shadow);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.02rem, 1.9vw, 1.18rem);
  line-height: 1.82;
}

.ek-excerpt p:first-of-type::first-letter {
  float: left;
  margin: 0.08em 0.13em 0 0;
  color: #8a5e37;
  font-size: 3.7em;
  line-height: .76;
}

.ek-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin: 1rem 0;
}

.ek-pill {
  padding: .32rem .7rem;
  border: 1px solid rgba(213, 170, 114, .35);
  border-radius: 999px;
  color: var(--ek-mist);
  font-size: .82rem;
}

.ek-faq details {
  padding: 1rem 0;
  border-bottom: 1px solid rgba(213, 170, 114, .22);
}

.ek-faq summary {
  cursor: pointer;
  color: var(--ek-paper);
  font-weight: 750;
}

.ek-faq details p { color: var(--ek-mist); }

.ek-audio {
  padding: 1.25rem;
  border: 1px solid var(--ek-line);
  border-radius: 16px;
  background: rgba(255,255,255,.035);
}

.ek-audio audio { width: 100%; }
.ek-audio-placeholder { color: var(--ek-mist); }

.ek-notice {
  padding: 1rem 1.2rem;
  border: 1px dashed var(--ek-copper);
  border-radius: 12px;
  color: var(--ek-mist);
}

.ek-page-shell {
  padding-top: clamp(2.5rem, 6vw, 5rem);
  padding-bottom: clamp(4rem, 8vw, 7rem);
}

.ek-page-shell > .wp-block-post-title { max-width: 18ch; }

.ek-post-list .wp-block-post {
  padding-block: 1.3rem;
  border-bottom: 1px solid var(--ek-line);
}

.ek-site-footer {
  border-top: 1px solid rgba(213, 170, 114, 0.2);
  background: #071015;
  color: var(--ek-mist);
}

.ek-site-footer a { color: var(--ek-mist); }

.ek-landing-bar {
  border-bottom: 1px solid var(--ek-line);
  background: #081218;
}

.eight-keys-landing .ek-hero { padding-top: clamp(2.5rem, 6vw, 5rem); }

.ek-cookie {
  position: fixed;
  z-index: 9999;
  right: 1rem;
  bottom: 1rem;
  width: min(440px, calc(100vw - 2rem));
  padding: 1.15rem;
  border: 1px solid var(--ek-line);
  border-radius: 16px;
  background: #10212b;
  box-shadow: var(--ek-shadow);
  color: var(--ek-paper);
}

.ek-cookie[hidden] { display: none; }
.ek-cookie p { margin-top: 0; font-size: .92rem; }
.ek-cookie__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.ek-cookie button { cursor: pointer; }

.ek-skip-link {
  position: absolute;
  z-index: 1000;
  left: 1rem;
  top: -10rem;
  padding: .7rem 1rem;
  background: var(--ek-paper);
  color: var(--ek-ink);
}

.ek-skip-link:focus { top: 1rem; }

@media (max-width: 900px) {
  .ek-hero-grid { grid-template-columns: 1fr; }
  .ek-cover-wrap { order: -1; }
  .ek-cover { width: min(78vw, 360px); }
  .ek-grid-3, .ek-book-grid { grid-template-columns: 1fr; }
  .ek-grid-2 { grid-template-columns: 1fr; }
}

@media (max-width: 782px) {
  body.admin-bar .ek-site-header { top: 46px; }
  .ek-site-header { position: relative; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

