/* Hallmark · macrostructure: Bento Grid · nav: N1b · footer: Ft3 · hero: H2 · theme: dark-hud · knobs: tiles=9, spans=irregular, accent=corner-only · pre-emit: P5 H5 E5 S5 R5 V5 · contrast: pass (40-41) · slop: pass (42-45) · mobile: pass (34,49,50-57) */

:root {
  /* OKLCH & Hex Color Palette - Dark HUD Cyan & Gold */
  --ekp-bg: #060b14;
  --ekp-bg-2: #0b1422;
  --ekp-panel: #101d30;
  --ekp-panel-hover: #16263f;
  --ekp-line: rgba(41, 163, 220, 0.22);
  --ekp-line-hi: rgba(95, 208, 255, 0.45);
  --ekp-cyan: #29A3DC;
  --ekp-cyan-hi: #5FD0FF;
  --ekp-gold: #F2B933;
  --ekp-gold-muted: rgba(242, 185, 51, 0.18);
  --ekp-text: #E6EEF7;
  --ekp-muted: #8FA6BD;
  --ekp-dim: #50677e;
  
  /* Semantic 4-Layer Surface Tokens */
  --color-paper: var(--ekp-bg);
  --color-paper-2: var(--ekp-bg-2);
  --color-panel: var(--ekp-panel);
  --color-rule: var(--ekp-line);
  --color-neutral: var(--ekp-muted);
  --color-muted: var(--ekp-dim);
  --color-ink: var(--ekp-text);
  --color-accent: var(--ekp-cyan);
  --color-accent-ink: #060b14;
  --color-gold: var(--ekp-gold);
  --color-focus: var(--ekp-cyan-hi);
  
  /* Typography Scale */
  --font-display: "Cabinet Grotesk", "Big Shoulders Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-body: "Switzer", "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-mono: "JetBrains Mono", "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  
  /* Spacing Scale - 4pt Based */
  --space-3xs: 0.125rem;
  --space-2xs: 0.25rem;
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 9rem;
  
  /* Layout Constraints */
  --site-max-width: 1280px;
  --content-max-width: 68ch;
  --header-height: 72px;
  --banner-height: 0px;
  
  /* Z-index Scale */
  --z-base: 1;
  --z-raised: 10;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-sticky-nav: 300;
  --z-modal: 400;
  --z-toast: 500;
  
  /* Component Radii */
  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-card: 16px;
  --radius-pill: 9999px;
  
  /* Motion Constants */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in: cubic-bezier(0.7, 0, 0.84, 0);
  --dur-micro: 120ms;
  --dur-short: 200ms;
  --dur-med: 320ms;
}

/* Base Document Reset */
html, body {
  overflow-x: clip;
  margin: 0;
  padding: 0;
  background-color: var(--color-paper);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
  box-sizing: border-box;
}

*, *::before, *::after {
  box-sizing: inherit;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
  transition: color var(--dur-short) var(--ease-out);
}

/* Headings: Uppercase, Condensed, Heavy, Strict Non-Italic */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-style: normal;
  line-height: 1.1;
  letter-spacing: 0.02em;
  color: var(--color-ink);
  margin-top: 0;
  overflow-wrap: anywhere;
  min-width: 0;
}

h1 {
  font-size: clamp(2rem, 5vw, 3.25rem);
  letter-spacing: 0.03em;
  margin-bottom: var(--space-md);
}

h2 {
  font-size: clamp(1.5rem, 3.5vw, 2.25rem);
  margin-bottom: var(--space-md);
}

h3 {
  font-size: clamp(1.2rem, 2.5vw, 1.5rem);
  margin-bottom: var(--space-sm);
}

p {
  margin-top: 0;
  margin-bottom: var(--space-md);
}

/* Layout Utilities */
.ekp-container {
  width: 100%;
  max-width: var(--site-max-width);
  margin-inline: auto;
  padding-inline: var(--space-md);
}

@media (min-width: 768px) {
  .ekp-container {
    padding-inline: var(--space-xl);
  }
}

.ekp-section {
  padding-block-start: var(--space-2xl);
  padding-block-end: calc(var(--space-2xl) * 1.3);
  position: relative;
}

.ekp-section-alt {
  background-color: var(--color-paper-2);
  border-block: 1px solid var(--color-rule);
}

/* HUD Corner Bracket Frame */
.ekp-frame-corner {
  position: relative;
  border: 1px solid var(--color-rule);
  padding: var(--space-lg);
  background-color: var(--color-panel);
}

.ekp-frame-corner::before,
.ekp-frame-corner::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  pointer-events: none;
}

.ekp-frame-corner::before {
  top: -1px;
  left: -1px;
  border-top: 2px solid var(--ekp-cyan);
  border-left: 2px solid var(--ekp-cyan);
}

.ekp-frame-corner::after {
  bottom: -1px;
  right: -1px;
  border-bottom: 2px solid var(--ekp-cyan);
  border-right: 2px solid var(--ekp-cyan);
}

/* Section Label with Slashes //// */
.ekp-sec-label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ekp-cyan);
  margin-bottom: var(--space-xs);
  line-height: 1;
}

.ekp-sec-label::after {
  content: "////";
  color: var(--ekp-gold);
  letter-spacing: -0.05em;
  font-weight: 800;
}

/* Hexagonal Number Badge: 01, 02, 03, 04 */
.ekp-badge-hex {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  background-color: var(--color-panel);
  border: 1px solid var(--ekp-cyan);
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  color: var(--ekp-gold);
  font-family: var(--font-mono);
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1;
  flex-shrink: 0;
}

/* Card: 14-16px Radius, Hairline Border, Panel Bg */
.ekp-card {
  position: relative;
  background-color: var(--color-panel);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-card);
  padding: var(--space-lg);
  transition: border-color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out);
}

.ekp-card:hover {
  border-color: var(--ekp-line-hi);
  background-color: var(--ekp-panel-hover);
}

/* Buttons: Primary Pill + Ghost */
.ekp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2xs);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.875rem;
  letter-spacing: 0.02em;
  padding: 0.625rem 1.25rem;
  border-radius: var(--radius-pill);
  cursor: pointer;
  white-space: nowrap;
  line-height: 1;
  text-decoration: none;
  min-height: 42px;
  border: 1px solid transparent;
  transition: background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}

.ekp-btn:active {
  transform: scale(0.98);
}

.ekp-btn:disabled,
.ekp-btn.is-disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}

.ekp-btn-sm {
  padding: 0.45rem 0.9rem;
  font-size: 0.8125rem;
  min-height: 34px;
}

.ekp-btn-primary {
  background-color: var(--ekp-cyan);
  color: var(--color-accent-ink);
  border-color: var(--ekp-cyan);
}

.ekp-btn-primary:hover {
  background-color: var(--ekp-cyan-hi);
  border-color: var(--ekp-cyan-hi);
  color: var(--color-accent-ink);
}

.ekp-btn-ghost {
  background-color: transparent;
  color: var(--color-ink);
  border-color: var(--color-rule);
}

.ekp-btn-ghost:hover {
  border-color: var(--ekp-cyan);
  color: var(--ekp-cyan-hi);
  background-color: rgba(41, 163, 220, 0.08);
}

.ekp-btn-gold {
  background-color: var(--ekp-gold);
  color: var(--color-accent-ink);
  border-color: var(--ekp-gold);
}

.ekp-btn-gold:hover {
  background-color: #ffd257;
  border-color: #ffd257;
  color: var(--color-accent-ink);
}

.ekp-btn-arrow {
  display: inline-block;
  font-size: 1.1em;
  transition: transform var(--dur-short) var(--ease-out);
}

.ekp-btn:hover .ekp-btn-arrow {
  transform: translate(2px, -2px);
}

/* Focus Visible Compliance */
a:focus-visible,
button:focus-visible,
input:focus-visible,
.ekp-btn:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}

/* Horizontal Rail for Mobile Scrolling */
.ekp-rail {
  width: 100%;
}

@media (max-width: 768px) {
  .ekp-rail {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    padding-bottom: var(--space-sm);
    scrollbar-width: thin;
    scrollbar-color: var(--ekp-line) transparent;
  }
  
  .ekp-rail-track {
    display: flex;
    gap: var(--space-md);
    width: max-content;
  }
  
  .ekp-rail-item {
    scroll-snap-align: start;
    flex: 0 0 280px;
  }
}

/* Tables: Self-Scrolling without overflow-x:hidden */
table.ekp-table {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-collapse: collapse;
  border: 1px solid var(--color-rule);
  background-color: var(--color-panel);
  border-radius: var(--radius-sm);
  font-size: 0.9375rem;
  margin: var(--space-lg) 0;
}

table.ekp-table thead,
table.ekp-table tbody {
  min-width: 600px;
  display: table;
  width: 100%;
}

table.ekp-table th,
table.ekp-table td {
  padding: var(--space-sm) var(--space-md);
  text-align: left;
  border-bottom: 1px solid var(--color-rule);
  font-variant-numeric: tabular-nums;
}

table.ekp-table th {
  background-color: var(--ekp-bg-2);
  color: var(--ekp-cyan);
  font-family: var(--font-display);
  font-size: 0.8125rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-weight: 600;
}

table.ekp-table tr:last-child td {
  border-bottom: none;
}

/* Collapsible Read-More Block (SEO Safe) */
.ekp-more {
  position: relative;
  margin-top: var(--space-xl);
}

.ekp-more-input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

.ekp-more-content {
  position: relative;
  max-height: 280px;
  overflow: hidden;
  transition: max-height var(--dur-med) var(--ease-out);
}

.ekp-more-content::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 120px;
  background: linear-gradient(180deg, rgba(6, 11, 20, 0) 0%, var(--ekp-bg) 100%);
  pointer-events: none;
  transition: opacity var(--dur-short) var(--ease-out);
}

.ekp-more-input:checked ~ .ekp-more-content,
.ekp-more.is-expanded .ekp-more-content {
  max-height: 8000px;
}

.ekp-more-input:checked ~ .ekp-more-content::after,
.ekp-more.is-expanded .ekp-more-content::after {
  opacity: 0;
  pointer-events: none;
}

.ekp-more-actions {
  text-align: center;
  margin-top: var(--space-md);
  position: relative;
  z-index: var(--z-raised);
}

.ekp-more-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--ekp-cyan);
  background-color: var(--color-panel);
  border: 1px solid var(--ekp-line-hi);
  border-radius: var(--radius-pill);
  padding: 0.5rem 1.25rem;
  cursor: pointer;
  transition: background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out);
}

.ekp-more-btn:hover {
  background-color: var(--ekp-panel-hover);
  color: var(--ekp-cyan-hi);
}

.ekp-more-input:checked ~ .ekp-more-actions .ekp-more-btn-text-more {
  display: none;
}

.ekp-more-input:checked ~ .ekp-more-actions .ekp-more-btn-text-less {
  display: inline;
}

.ekp-more-input:not(:checked) ~ .ekp-more-actions .ekp-more-btn-text-more {
  display: inline;
}

.ekp-more-input:not(:checked) ~ .ekp-more-actions .ekp-more-btn-text-less {
  display: none;
}

/* Bento Grid System */
.ekp-bento {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-md);
}

.ekp-span-3 { grid-column: span 12; }
.ekp-span-4 { grid-column: span 12; }
.ekp-span-6 { grid-column: span 12; }
.ekp-span-8 { grid-column: span 12; }
.ekp-span-12 { grid-column: span 12; }

@media (min-width: 768px) {
  .ekp-span-3 { grid-column: span 6; }
  .ekp-span-4 { grid-column: span 6; }
  .ekp-span-6 { grid-column: span 6; }
  .ekp-span-8 { grid-column: span 8; }
}

@media (min-width: 1024px) {
  .ekp-span-3 { grid-column: span 3; }
  .ekp-span-4 { grid-column: span 4; }
  .ekp-span-6 { grid-column: span 6; }
  .ekp-span-8 { grid-column: span 8; }
  .ekp-span-12 { grid-column: span 12; }
}

/* Header & Navigation */
.ekp-header {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky-nav);
  background-color: rgba(6, 11, 20, 0.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--color-rule);
  height: var(--header-height);
}

.ekp-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  gap: var(--space-md);
}

.ekp-logo-link {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.ekp-logo-img {
  height: 38px;
  width: auto;
  max-width: 160px;
  object-fit: contain;
}

.ekp-nav-desktop {
  display: none;
}

.ekp-nav-list {
  display: flex;
  align-items: center;
  gap: var(--space-2xs);
  list-style: none;
  margin: 0;
  padding: 0;
}

.ekp-nav-link {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-neutral);
  padding: 0.5rem 0.65rem;
  border-radius: var(--radius-xs);
  white-space: nowrap;
  line-height: 1;
}

.ekp-nav-link:hover {
  color: var(--color-ink);
  background-color: rgba(41, 163, 220, 0.08);
}

.ekp-nav-link.is-active,
.ekp-nav-link[aria-current="page"] {
  color: var(--ekp-cyan);
  font-weight: 600;
}

.ekp-header-actions {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  flex-shrink: 0;
}

/* Mobile Drawer Elements */
.ekp-drawer-checkbox {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

.ekp-drawer-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-sm);
  background-color: var(--color-panel);
  color: var(--color-ink);
  cursor: pointer;
  padding: 0;
}

.ekp-hamburger-icon {
  width: 20px;
  height: 14px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.ekp-hamburger-line {
  display: block;
  height: 2px;
  width: 100%;
  background-color: var(--color-ink);
  border-radius: 1px;
}

.ekp-drawer {
  position: fixed;
  top: var(--header-height);
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(6, 11, 20, 0.98);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  z-index: var(--z-modal);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  overflow-y: auto;
  transform: translateX(100%);
  visibility: hidden;
  pointer-events: none;
  transition: transform var(--dur-med) var(--ease-out), visibility var(--dur-med);
}

.ekp-drawer-checkbox:checked ~ .ekp-drawer {
  transform: translateX(0);
  visibility: visible;
  pointer-events: auto;
}

.ekp-drawer-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  list-style: none;
  margin: 0;
  padding: 0;
}

.ekp-drawer-link {
  display: flex;
  align-items: center;
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--color-ink);
  padding: var(--space-sm) var(--space-md);
  border-radius: var(--radius-sm);
  border-bottom: 1px solid var(--color-rule);
  min-height: 44px;
}

.ekp-drawer-link:hover,
.ekp-drawer-link:focus-visible {
  color: var(--ekp-cyan);
  background-color: rgba(41, 163, 220, 0.08);
}

.ekp-drawer-actions {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  margin-top: auto;
  padding-top: var(--space-md);
}

@media (min-width: 1024px) {
  .ekp-nav-desktop {
    display: block;
  }
  
  .ekp-drawer-toggle,
  .ekp-drawer,
  .ekp-drawer-checkbox {
    display: none;
  }
}

/* Footer Styling */
.ekp-footer {
  background-color: var(--color-paper-2);
  border-top: 1px solid var(--color-rule);
  padding-block-start: var(--space-3xl);
  padding-block-end: var(--space-2xl);
  margin-top: var(--space-3xl);
}

.ekp-footer-grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: var(--space-xl);
  margin-bottom: var(--space-2xl);
}

@media (min-width: 640px) {
  .ekp-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .ekp-footer-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.ekp-footer-col {
  display: flex;
  flex-direction: column;
}

.ekp-footer-title {
  font-family: var(--font-display);
  font-size: 0.9375rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ekp-cyan);
  margin-bottom: var(--space-md);
  padding-bottom: var(--space-2xs);
  border-bottom: 1px solid var(--color-rule);
}

.ekp-footer-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.ekp-footer-link {
  font-size: 0.875rem;
  color: var(--color-neutral);
  line-height: 1.4;
  display: inline-block;
}

.ekp-footer-link:hover {
  color: var(--ekp-cyan-hi);
}

.ekp-footer-audit {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-md);
  padding-block: var(--space-lg);
  border-top: 1px solid var(--color-rule);
  border-bottom: 1px solid var(--color-rule);
  margin-bottom: var(--space-xl);
  text-align: center;
}

.ekp-footer-audit-badges {
  width: 300px;
  height: 85px;
  object-fit: contain;
  filter: brightness(0.95);
}

.ekp-footer-trust-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-lg);
  margin-bottom: var(--space-xl);
  font-size: 0.8125rem;
  color: var(--color-neutral);
  text-align: center;
}

.ekp-badge-18plus {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 2px solid var(--ekp-gold);
  border-radius: 50%;
  color: var(--ekp-gold);
  font-weight: 800;
  font-size: 0.8125rem;
  font-family: var(--font-mono);
  line-height: 1;
}

.ekp-trust-link {
  color: var(--color-neutral);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ekp-trust-link:hover {
  color: var(--ekp-cyan-hi);
}

.ekp-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-md);
  padding-top: var(--space-lg);
  border-top: 1px solid var(--color-rule);
  font-size: 0.8125rem;
  color: var(--color-muted);
}

.ekp-footer-support-link {
  color: var(--ekp-cyan);
  font-weight: 600;
}

.ekp-footer-support-link:hover {
  color: var(--ekp-cyan-hi);
  text-decoration: underline;
}

/* Reduced Motion Fallbacks */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* --- Fix QA mobile 25/08: .ekp-header-actions tran 15px, hamburger bi cat --- */
@media (max-width: 1023px) {
  .ekp-header-actions .ekp-btn-ghost {
    display: none;
  }
}

@media (max-width: 767px) {
  .ekp-logo-img {
    height: 32px;
    max-width: 130px;
  }
}

/* ===== CSS section bu (agy a1d, 25/08) ===== */
/* Hallmark · macrostructure: Bento Grid · nav: N1b · footer: Ft3 · hero: H2 · theme: dark-hud · knobs: tiles=9, spans=irregular, accent=corner-only · pre-emit: P5 H5 E5 S5 R5 V5 · contrast: pass (40-41) · slop: pass (42-45) · mobile: pass (34,49,50-57) */

/* Accessibility Skip Link */
.ekp-skip-link {
  position: absolute;
  top: -1000px;
  left: var(--space-md);
  z-index: var(--z-toast);
  padding: var(--space-xs) var(--space-md);
  background-color: var(--ekp-cyan);
  color: var(--color-accent-ink);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.875rem;
  border-radius: var(--radius-xs);
  text-decoration: none;
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
  transition: top var(--dur-micro) var(--ease-out);
}

.ekp-skip-link:focus,
.ekp-skip-link:focus-visible {
  top: var(--space-xs);
}

/* Page Body & Main Layout Shell */
.ekp-body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.ekp-main {
  flex: 1 0 auto;
  width: 100%;
}

/* Page Banner Container */
.ekp-page-banner-wrap {
  width: 100%;
  background-color: var(--color-paper-2);
  border-bottom: 1px solid var(--color-rule);
}

.ekp-page-banner {
  width: 100%;
  max-width: var(--site-max-width);
  margin-inline: auto;
  height: auto;
  object-fit: cover;
  display: block;
}

/* Breadcrumb Navigation Bar */
.ekp-breadcrumb-bar {
  padding-block: var(--space-sm);
  border-bottom: 1px solid var(--color-rule);
  background-color: var(--color-paper);
  font-size: 0.8125rem;
  color: var(--color-neutral);
}

.ekp-breadcrumb-bar ol,
.ekp-breadcrumb-bar ul {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-xs);
  list-style: none;
  margin: 0;
  padding: 0;
}

.ekp-crumb {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  color: var(--color-neutral);
  white-space: nowrap;
}

.ekp-crumb a {
  color: var(--color-neutral);
  text-decoration: none;
  transition: color var(--dur-short) var(--ease-out);
}

.ekp-crumb a:hover {
  color: var(--ekp-cyan);
}

.ekp-crumb:not(:last-child)::after {
  content: "/";
  color: var(--color-muted);
  font-size: 0.75rem;
  margin-left: var(--space-xs);
}

.ekp-crumb:last-child {
  color: var(--ekp-cyan-hi);
  font-weight: 600;
}

/* Subpage Hero Intro & Main Title */
.ekp-hero-intro {
  padding-block: var(--space-xl) var(--space-lg);
  border-bottom: 1px solid var(--color-rule);
  background: linear-gradient(180deg, var(--color-paper-2) 0%, var(--color-paper) 100%);
}

.ekp-main-title {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--color-ink);
  margin-top: 0;
  margin-bottom: var(--space-md);
  overflow-wrap: anywhere;
  min-width: 0;
}

.ekp-quotable-summary {
  background-color: var(--color-panel);
  border-left: 3px solid var(--ekp-cyan);
  border-top: 1px solid var(--color-rule);
  border-right: 1px solid var(--color-rule);
  border-bottom: 1px solid var(--color-rule);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  padding: var(--space-md) var(--space-lg);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--ekp-text);
  max-width: var(--content-max-width);
  margin-top: var(--space-md);
}

.ekp-quotable-summary p:last-child {
  margin-bottom: 0;
}

/* Article & Content Flow */
.ekp-content-flow {
  padding-block: var(--space-2xl);
}

.ekp-content-flow h2 {
  margin-top: var(--space-2xl);
  padding-bottom: var(--space-2xs);
  border-bottom: 1px solid var(--color-rule);
}

.ekp-content-flow h3 {
  margin-top: var(--space-xl);
}

.ekp-content-flow p,
.ekp-content-flow ul,
.ekp-content-flow ol {
  max-width: var(--content-max-width);
  color: var(--ekp-text);
}

.ekp-content-flow ul,
.ekp-content-flow ol {
  padding-left: var(--space-lg);
  margin-bottom: var(--space-md);
}

.ekp-content-flow li {
  margin-bottom: var(--space-xs);
}

.ekp-content-flow a {
  color: var(--ekp-cyan);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ekp-content-flow a:hover {
  color: var(--ekp-cyan-hi);
}

/* Media & Table Containers */
.ekp-tablewrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-block: var(--space-lg);
}

.ekp-mediawrap {
  margin-block: var(--space-xl);
  max-width: 100%;
}

.ekp-media {
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-rule);
  max-width: 100%;
  height: auto;
}

.ekp-cta-box {
  background-color: var(--color-panel);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-card);
  padding: var(--space-xl);
  margin-block: var(--space-2xl);
  text-align: center;
  position: relative;
}

/* Section Headers & Tag Labels */
.ekp-section-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-bottom: var(--space-xl);
}

.ekp-section-tag {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  margin-bottom: var(--space-xs);
  line-height: 1;
}

.ekp-tag-label {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ekp-cyan);
}

.ekp-tag-slash {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 800;
  color: var(--ekp-gold);
  letter-spacing: -0.05em;
}

.ekp-section-title {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3.5vw, 2.25rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.1;
  color: var(--color-ink);
  margin: 0;
  overflow-wrap: anywhere;
  min-width: 0;
}

/* HUD Corner Bracket Frames & Anchors */
.ekp-corner-frame {
  position: relative;
  border: 1px solid var(--color-rule);
  background-color: var(--color-panel);
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.ekp-corner-tl,
.ekp-corner-tr,
.ekp-corner-bl,
.ekp-corner-br {
  position: absolute;
  width: 10px;
  height: 10px;
  pointer-events: none;
  z-index: var(--z-raised);
}

.ekp-corner-tl {
  top: -1px;
  left: -1px;
  border-top: 2px solid var(--ekp-cyan);
  border-left: 2px solid var(--ekp-cyan);
}

.ekp-corner-tr {
  top: -1px;
  right: -1px;
  border-top: 2px solid var(--ekp-cyan);
  border-right: 2px solid var(--ekp-cyan);
}

.ekp-corner-bl {
  bottom: -1px;
  left: -1px;
  border-bottom: 2px solid var(--ekp-cyan);
  border-left: 2px solid var(--ekp-cyan);
}

.ekp-corner-br {
  bottom: -1px;
  right: -1px;
  border-bottom: 2px solid var(--ekp-cyan);
  border-right: 2px solid var(--ekp-cyan);
}

/* Section 1: Hero Component */
.ekp-hero {
  padding-block-start: var(--space-2xl);
  padding-block-end: calc(var(--space-2xl) * 1.3);
  position: relative;
  background: radial-gradient(circle at 80% 20%, rgba(41, 163, 220, 0.08) 0%, transparent 60%);
}

.ekp-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-xl);
  align-items: center;
}

@media (min-width: 900px) {
  .ekp-hero-grid {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  }
}

.ekp-hero-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.ekp-hero-title {
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 4.5vw, 3rem);
  font-weight: 700;
  text-transform: uppercase;
  line-height: 1.08;
  letter-spacing: 0.02em;
  color: var(--color-ink);
  margin-top: 0;
  margin-bottom: var(--space-md);
  overflow-wrap: anywhere;
  min-width: 0;
}

.ekp-hero-lede {
  font-size: clamp(0.9375rem, 1.5vw, 1.0625rem);
  color: var(--color-neutral);
  line-height: 1.6;
  margin-bottom: var(--space-lg);
  max-width: var(--content-max-width);
}

.ekp-hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-md);
  margin-bottom: var(--space-xl);
}

.ekp-hero-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
  padding-top: var(--space-lg);
  border-top: 1px solid var(--color-rule);
  width: 100%;
}

@media (max-width: 480px) {
  .ekp-hero-meta {
    grid-template-columns: repeat(auto-fit, minmax(85px, 1fr));
    gap: var(--space-sm);
  }
}

.ekp-meta-item {
  display: flex;
  flex-direction: column;
  gap: var(--space-3xs);
}

.ekp-meta-num {
  font-family: var(--font-display);
  font-size: clamp(1.125rem, 2.2vw, 1.375rem);
  font-weight: 800;
  color: var(--ekp-gold);
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}

.ekp-meta-txt {
  font-size: 0.75rem;
  color: var(--color-muted);
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-family: var(--font-mono);
}

.ekp-hero-media {
  position: relative;
  width: 100%;
}

.ekp-hero-banner {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}

/* Section 2: Security & Trust Bar */
.ekp-trust-bar {
  background-color: var(--color-paper-2);
  border-block: 1px solid var(--color-rule);
  padding-block: var(--space-lg);
}

.ekp-trust-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-lg);
  flex-wrap: wrap;
}

.ekp-trust-info {
  display: flex;
  flex-direction: column;
  gap: var(--space-3xs);
}

.ekp-trust-heading {
  font-family: var(--font-display);
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ekp-cyan);
}

.ekp-trust-sub {
  font-size: 0.8125rem;
  color: var(--color-neutral);
  margin: 0;
}

.ekp-trust-badge-wrap {
  flex-shrink: 0;
}

.ekp-trust-badge {
  width: 300px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

@media (max-width: 640px) {
  .ekp-trust-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-md);
  }
}

/* Section 3: Game Categories Grid */
.ekp-games-section {
  padding-block: var(--space-2xl);
}

.ekp-game-grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: var(--space-md);
}

@media (min-width: 640px) {
  .ekp-game-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 960px) {
  .ekp-game-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1180px) {
  .ekp-game-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

.ekp-game-card {
  background-color: var(--color-panel);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-card);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  transition: border-color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}

.ekp-game-card:hover {
  border-color: var(--ekp-cyan);
  background-color: var(--ekp-panel-hover);
}

.ekp-card-media {
  width: 72px;
  height: 72px;
  margin-bottom: var(--space-md);
  flex-shrink: 0;
}

.ekp-game-icon {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.ekp-card-body {
  display: flex;
  flex-direction: column;
  flex: 1 0 auto;
}

.ekp-card-title {
  font-family: var(--font-display);
  font-size: 1.125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--color-ink);
  margin-top: 0;
  margin-bottom: var(--space-xs);
}

.ekp-card-desc {
  font-size: 0.875rem;
  color: var(--color-neutral);
  line-height: 1.5;
  margin-top: 0;
  margin-bottom: var(--space-md);
  flex: 1 0 auto;
}

.ekp-card-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ekp-cyan);
  text-decoration: none;
  margin-top: auto;
  transition: color var(--dur-short) var(--ease-out);
}

.ekp-card-link:hover {
  color: var(--ekp-cyan-hi);
}

/* Section 4: Promotions Component */
.ekp-promo-section {
  padding-block: var(--space-2xl);
  position: relative;
}

.ekp-promo-rail {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--space-lg);
}

@media (max-width: 960px) {
  .ekp-promo-rail {
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    padding-bottom: var(--space-sm);
    scrollbar-width: thin;
    scrollbar-color: var(--ekp-line) transparent;
  }
}

.ekp-promo-card {
  display: flex;
  flex-direction: column;
  background-color: var(--color-panel);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-card);
  overflow: hidden;
  text-decoration: none;
  transition: border-color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}

@media (max-width: 960px) {
  .ekp-promo-card {
    flex: 0 0 290px;
    scroll-snap-align: start;
  }
}

.ekp-promo-card:hover {
  border-color: var(--ekp-cyan);
}

.ekp-promo-banner-wrap {
  width: 100%;
  aspect-ratio: 2 / 1;
  background-color: var(--color-paper-2);
  overflow: hidden;
}

.ekp-promo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--dur-med) var(--ease-out);
}

.ekp-promo-card:hover .ekp-promo-img {
  transform: scale(1.03);
}

.ekp-promo-content {
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  flex: 1 0 auto;
}

.ekp-promo-name {
  font-family: var(--font-display);
  font-size: 1.0625rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--color-ink);
  margin-top: 0;
  margin-bottom: var(--space-xs);
  line-height: 1.2;
}

.ekp-promo-sub {
  font-size: 0.875rem;
  color: var(--color-neutral);
  line-height: 1.5;
  margin: 0;
}

/* Section 5: Process Steps & Hexagonal Badges */
.ekp-process-section {
  padding-block: var(--space-2xl);
  background-color: var(--color-paper-2);
  border-block: 1px solid var(--color-rule);
}

.ekp-steps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--space-lg);
  margin-bottom: var(--space-xl);
}

.ekp-step-card {
  background-color: var(--color-panel);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-card);
  padding: var(--space-lg);
  display: flex;
  align-items: flex-start;
  gap: var(--space-md);
  transition: border-color var(--dur-short) var(--ease-out);
}

.ekp-step-card:hover {
  border-color: var(--ekp-line-hi);
}

.ekp-hex-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background-color: var(--color-paper-2);
  border: 1px solid var(--ekp-cyan);
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  color: var(--ekp-gold);
  font-family: var(--font-mono);
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1;
  flex-shrink: 0;
}

.ekp-hex-num {
  display: block;
}

.ekp-step-body {
  display: flex;
  flex-direction: column;
}

.ekp-step-title {
  font-family: var(--font-display);
  font-size: 1.125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--color-ink);
  margin-top: 0;
  margin-bottom: var(--space-xs);
}

.ekp-step-desc {
  font-size: 0.875rem;
  color: var(--color-neutral);
  line-height: 1.5;
  margin: 0;
}

.ekp-process-cta {
  text-align: center;
  margin-top: var(--space-xl);
}

/* Section 6: Verified Providers Grid */
.ekp-providers-section {
  padding-block: var(--space-2xl);
}

.ekp-providers-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-sm);
}

@media (min-width: 480px) {
  .ekp-providers-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-md);
  }
}

@media (min-width: 768px) {
  .ekp-providers-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .ekp-providers-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: var(--space-md);
  }
}

.ekp-provider-tile {
  background-color: var(--color-panel);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-sm);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs);
  text-align: center;
  transition: border-color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}

.ekp-provider-tile:hover {
  border-color: var(--ekp-cyan);
  background-color: var(--ekp-panel-hover);
}

.ekp-provider-logo {
  width: 64px;
  height: 64px;
  object-fit: contain;
  filter: brightness(0.95);
  transition: filter var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);
}

.ekp-provider-tile:hover .ekp-provider-logo {
  filter: brightness(1.1);
  transform: scale(1.05);
}

.ekp-provider-name {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ekp-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

/* Section 7: Longform Read-More Content */
.ekp-longform-section {
  padding-block: var(--space-2xl);
  background-color: var(--color-paper-2);
  border-block: 1px solid var(--color-rule);
}

.ekp-longform-intro {
  max-width: var(--content-max-width);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ekp-text);
  margin-bottom: var(--space-lg);
}

.ekp-longform-intro a {
  color: var(--ekp-cyan);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ekp-longform-intro a:hover {
  color: var(--ekp-cyan-hi);
}

.ekp-longform-body {
  max-width: var(--content-max-width);
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--ekp-text);
}

.ekp-longform-body h3 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ekp-cyan);
  margin-top: var(--space-xl);
  margin-bottom: var(--space-xs);
}

.ekp-longform-body ul,
.ekp-longform-body ol {
  padding-left: var(--space-lg);
  margin-bottom: var(--space-md);
}

.ekp-longform-body li {
  margin-bottom: var(--space-xs);
  color: var(--color-neutral);
}

.ekp-longform-body li strong {
  color: var(--ekp-text);
}

/* Read-More Clamp for .ekp-more container */
.ekp-more {
  position: relative;
  max-height: 280px;
  overflow: hidden;
  transition: max-height var(--dur-med) var(--ease-out);
}

.ekp-more::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 120px;
  background: linear-gradient(180deg, rgba(11, 20, 34, 0) 0%, var(--ekp-bg-2) 100%);
  pointer-events: none;
  transition: opacity var(--dur-short) var(--ease-out);
}

.ekp-more.is-expanded,
[data-readmore-content].is-expanded {
  max-height: 12000px;
}

.ekp-more.is-expanded::after,
[data-readmore-content].is-expanded::after {
  opacity: 0;
  pointer-events: none;
}

.ekp-more-trigger-wrap {
  text-align: center;
  margin-top: var(--space-lg);
  position: relative;
  z-index: var(--z-raised);
}

.ekp-more-btn-text {
  font-family: var(--font-body);
  font-weight: 600;
}

.ekp-more-icon {
  display: inline-block;
  font-size: 1rem;
  line-height: 1;
  transition: transform var(--dur-short) var(--ease-out);
}

.ekp-more.is-expanded ~ .ekp-more-trigger-wrap .ekp-more-icon,
[aria-expanded="true"] .ekp-more-icon {
  transform: rotate(180deg);
}

/* Section 8: FAQ Accordion Components */
.ekp-faq-section,
.ekp-faq-wrap {
  padding-block: var(--space-2xl);
  width: 100%;
}

.ekp-faq-list,
.ekp-faq {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  max-width: var(--site-max-width);
}

.ekp-faq-item {
  background-color: var(--color-panel);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-sm);
  overflow: hidden;
  transition: border-color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out);
}

.ekp-faq-item[open] {
  border-color: var(--ekp-line-hi);
  background-color: var(--color-panel);
}

.ekp-faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding: var(--space-md) var(--space-lg);
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-ink);
  cursor: pointer;
  list-style: none;
  user-select: none;
  line-height: 1.3;
}

.ekp-faq-question::-webkit-details-marker {
  display: none;
}

.ekp-faq-question:hover {
  color: var(--ekp-cyan-hi);
}

.ekp-faq-question:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: -2px;
}

.ekp-faq-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: var(--radius-xs);
  background-color: var(--color-paper-2);
  border: 1px solid var(--color-rule);
  color: var(--ekp-cyan);
  font-family: var(--font-mono);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1;
  flex-shrink: 0;
  transition: transform var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out);
}

.ekp-faq-item[open] .ekp-faq-toggle {
  background-color: var(--ekp-cyan);
  color: var(--color-accent-ink);
  border-color: var(--ekp-cyan);
  transform: rotate(45deg);
}

.ekp-faq-answer {
  padding: 0 var(--space-lg) var(--space-md) var(--space-lg);
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--color-neutral);
  border-top: 1px solid transparent;
}

.ekp-faq-answer p {
  margin-bottom: 0;
}

/* Section 9: Final Bottom CTA Section */
.ekp-final-cta-section {
  padding-block: var(--space-3xl);
  position: relative;
}

.ekp-final-cta-box {
  position: relative;
  background-color: var(--color-panel);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-card);
  padding: var(--space-2xl) var(--space-lg);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: hidden;
  background-image: radial-gradient(circle at 50% 0%, rgba(41, 163, 220, 0.12) 0%, transparent 70%);
}

@media (min-width: 768px) {
  .ekp-final-cta-box {
    padding: var(--space-3xl) var(--space-2xl);
  }
}

.ekp-final-cta-title {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--color-ink);
  margin-top: 0;
  margin-bottom: var(--space-sm);
  line-height: 1.1;
  overflow-wrap: anywhere;
  min-width: 0;
}

.ekp-final-cta-desc {
  font-size: 1rem;
  color: var(--color-neutral);
  line-height: 1.6;
  max-width: 58ch;
  margin-top: 0;
  margin-bottom: var(--space-xl);
}

.ekp-final-cta-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.ekp-btn-lg {
  padding: 0.85rem 1.85rem;
  font-size: 1rem;
  min-height: 48px;
  font-weight: 700;
}

/* --- Fix QA: .ekp-content-flow a de mau nut CTA (agy fix2, 25/08) --- */
.ekp-content-flow a.ekp-btn {
  text-decoration: none;
}
.ekp-content-flow a.ekp-btn-primary,
.ekp-content-flow a.ekp-btn-primary:hover,
.ekp-content-flow a.ekp-btn-gold,
.ekp-content-flow a.ekp-btn-gold:hover {
  color: var(--color-accent-ink);
}
.ekp-content-flow a.ekp-btn-ghost {
  color: var(--color-ink);
}
.ekp-content-flow a.ekp-btn-ghost:hover {
  color: var(--ekp-cyan-hi);
}

/* ===== LAYOUT FIX LAYER (Claude, 25/08) ===== */
/* GOC RE: .ekp-content-flow h2{margin-top:4rem} va h3{margin-top:2.5rem} ro vao MOI heading
   cua component (card, promo, step, section-header, cta) -> khoang trang khong lo + gap trong card.
   Chi giu nhip doc cho heading CUA VAN BAN. */
.ekp-content-flow .ekp-section-title,
.ekp-content-flow .ekp-card-title,
.ekp-content-flow .ekp-step-title,
.ekp-content-flow .ekp-promo-name,
.ekp-content-flow .ekp-hero-title,
.ekp-content-flow .ekp-main-title,
.ekp-content-flow .ekp-article-title,
.ekp-content-flow .ekp-final-cta-title,
.ekp-content-flow .ekp-faq-question {
  margin-top: 0;
  border-bottom: 0;
  padding-bottom: 0;
}

/* Link cua COMPONENT khong an gach chan cua link van ban */
.ekp-content-flow a.ekp-btn,
.ekp-content-flow a.ekp-card,
.ekp-content-flow a.ekp-card-link,
.ekp-content-flow a.ekp-promo-card,
.ekp-content-flow a.ekp-blog-card,
.ekp-content-flow a.ekp-article-layout,
.ekp-content-flow a.ekp-trust-link,
.ekp-content-flow a.ekp-skip-link {
  text-decoration: none;
}
.ekp-content-flow a.ekp-card-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.ekp-content-flow a.ekp-promo-card,
.ekp-content-flow a.ekp-blog-card,
.ekp-content-flow a.ekp-card { color: inherit; }

/* Nhip doc: 64+64=128px giua cac section la qua thua -> siet lai, van con thoang */
.ekp-hero { padding-block: var(--space-xl) var(--space-2xl); }
.ekp-games-section,
.ekp-promo-section,
.ekp-providers-section,
.ekp-process-section,
.ekp-longform-section,
.ekp-faq-section,
.ekp-faq-wrap,
.ekp-final-cta-section,
.ekp-content-flow { padding-block: clamp(2rem, 4vw, 3.25rem); }
.ekp-section-header { margin-bottom: var(--space-lg); }

/* Card: bo flex:1 0 auto lam card cao gia + can deu chieu cao */
.ekp-card-desc { flex: 1 1 auto; margin-bottom: var(--space-sm); }
.ekp-card-body { flex: 1 1 auto; }
.ekp-game-card { padding: var(--space-md); }
.ekp-card-media { width: 56px; height: 56px; margin-bottom: var(--space-sm); }
@media (min-width: 960px) { .ekp-card-media { width: 64px; height: 64px; } }

/* Longform h3 van can nhip doc, nhung 2.5rem trong khoi da siet la thua */
.ekp-longform-body h3 { margin-top: var(--space-lg); }
.ekp-content-flow h2 { margin-top: var(--space-xl); }
.ekp-content-flow h3 { margin-top: var(--space-lg); }

/* Hero: anh phai lap day cot, khong de void; H1 bot 1 dong */
.ekp-hero-title { font-size: clamp(1.75rem, 3.4vw, 2.6rem); }
.ekp-hero-media .ekp-corner-frame { width: 100%; }
.ekp-hero-banner { aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius-card); }
@media (min-width: 900px) { .ekp-hero-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: var(--space-2xl); } }

/* ===== LAYOUT FIX v2 (Claude) ===== */
/* Banner dau trang: bo max-width 1280 (lech 80px so voi luoi) -> full-bleed, KHONG cat anh */
.ekp-page-banner { max-width: none; }

/* Cot van ban trang con/blog: gioi han be ngang de gach chan h2 khop chu.
   Trang chu dung `.ekp-home-flow` (assemble doi class) nen khong bi anh huong. */
.ekp-content-flow > .ekp-prose { max-width: 88ch; }
.ekp-content-flow > .ekp-prose p,
.ekp-content-flow > .ekp-prose ul,
.ekp-content-flow > .ekp-prose ol { max-width: none; }
.ekp-home-flow { width: 100%; }

/* Mobile: 3 cot so lieu bi vo chu -> 2 cot; 2 nut CTA rong deu */
@media (max-width: 560px) {
  .ekp-hero-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-md) var(--space-lg); }
  .ekp-hero-actions { flex-direction: column; align-items: stretch; gap: var(--space-sm); }
  .ekp-hero-actions .ekp-btn { width: 100%; }
}


/* ===== LAYOUT FIX v3 (Claude) ===== */
/* Da bo anh hero + banner dau trang -> hero 1 cot, gioi han be ngang cho de doc */
.ekp-hero-content { max-width: 60rem; }
.ekp-hero { padding-block: var(--space-xl) var(--space-2xl); }
/* Trang con: khong con banner -> khoi tieu de can khoang thoang phia tren */
.ekp-hero-intro { padding-block: var(--space-xl) var(--space-lg); }


/* ===== LAYOUT FIX v4 (Claude) ===== */
/* Hero 2 cot tro lai, anh giu DUNG ti le goc 1024x500 (khong crop) */
.ekp-hero-grid { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) {
  .ekp-hero-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--space-2xl); }
}
.ekp-hero-content { max-width: none; }
.ekp-hero-banner { aspect-ratio: auto; object-fit: contain; width: 100%; height: auto; border-radius: var(--radius-card); }
/* Nut read-more phai nam NGOAI vung bi clamp, khong thi bi che mat */
.ekp-more-wrap { position: relative; }


/* ===== LAYOUT FIX v5 (Claude) ===== */
/* Long-form: can le TRAI KHOP voi H1/luoi chung — GIU max-width cua container
   (dat max-width:none tung lam cot van ban tran ra sat mep, lech so voi title) */
.ekp-content-flow > .ekp-prose { max-width: var(--site-max-width); }
.ekp-content-flow > .ekp-prose > :is(p, ul, ol, h2, h3, h4, h5, blockquote),
.ekp-content-flow > .ekp-prose > div > :is(p, ul, ol, h2, h3, h4, h5, blockquote) {
  max-width: 88ch;
  margin-inline-start: 0;
}

/* <figure> mac dinh cua trinh duyet co margin-inline: 40px -> bang va anh bi lech phai 40px */
figure.ekp-tablewrap,
figure.ekp-media-card,
figure.ekp-mediawrap,
.ekp-content-flow figure { margin-inline: 0; }
figure.ekp-tablewrap, figure.ekp-media-card { max-width: 88ch; }

/* Bang: dang co 2 lop cuon long nhau (figure + table:block) -> chi giu 1, cot chia deu */
figure.ekp-tablewrap { overflow-x: auto; }
table.ekp-table { display: table; width: 100%; min-width: 34rem; overflow: visible; table-layout: fixed; }
table.ekp-table thead { display: table-header-group; min-width: 0; }
table.ekp-table tbody { display: table-row-group; min-width: 0; }
table.ekp-table th,
table.ekp-table td { overflow-wrap: anywhere; vertical-align: top; }

/* Anh trong bai: khong vuot cot van ban, giu ti le */
.ekp-content-flow img { max-width: 100%; height: auto; }


/* ===== CSS BU 22 CLASS CHUA CO STYLE (Claude, 25/08) ===== */
/* --- Khung bai blog --- */
.ekp-main-blog { width: 100%; }
.ekp-article-header { padding-block: var(--space-xl) var(--space-lg); border-bottom: 1px solid var(--color-rule); }
.ekp-article-body { padding-block: clamp(1.75rem, 3.5vw, 2.75rem); }
.ekp-article-layout { display: block; }

/* Dong meta tac gia / ngay cap nhat: GON 1 HANG */
.ekp-article-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-xs) var(--space-lg);
  margin-block: var(--space-sm) var(--space-md);
  font-size: 0.8125rem;
  color: var(--color-neutral);
}
.ekp-article-meta .ekp-meta-item { flex-direction: row; align-items: center; gap: var(--space-2xs); }
.ekp-meta-label { color: var(--color-neutral); text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.6875rem; font-family: var(--font-mono); }
.ekp-meta-val { color: var(--ekp-text); font-weight: 600; }
.ekp-article-meta .ekp-meta-item + .ekp-meta-item::before {
  content: "";
  width: 1px; height: 12px;
  background-color: var(--color-rule);
  margin-right: var(--space-lg);
  margin-left: calc(var(--space-lg) * -1 / 2);
}

/* --- Luoi the bai viet --- */
.ekp-blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
  gap: var(--space-lg);
  align-items: stretch;
}
.ekp-blog-card { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.ekp-blog-card > img {
  width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block;
  border-bottom: 1px solid var(--color-rule);
}
.ekp-blog-card > h3 {
  font-family: var(--font-display); font-size: 1rem; font-weight: 700; line-height: 1.3;
  margin: var(--space-md) var(--space-md) var(--space-2xs);
}
.ekp-blog-card > h3 a { color: var(--color-ink); text-decoration: none; }
.ekp-blog-card:hover > h3 a { color: var(--ekp-cyan-hi); }
.ekp-blog-card > p {
  font-size: 0.8125rem; line-height: 1.55; color: var(--color-neutral);
  margin: 0 var(--space-md) var(--space-md); flex: 1 1 auto;
}

/* --- Khoi tac gia cuoi bai --- */
.ekp-author-section { padding-block: clamp(1.5rem, 3vw, 2.5rem); border-top: 1px solid var(--color-rule); background-color: var(--color-paper-2); }

/* --- Doan mo dau, chu thich, khung anh --- */
.ekp-lead { font-size: clamp(0.9375rem, 1.4vw, 1.0625rem); line-height: 1.65; color: var(--ekp-text); }
.ekp-figure, .ekp-media-frame {
  margin-inline: 0; margin-block: var(--space-lg); max-width: 88ch;
  border: 1px solid var(--color-rule); border-radius: var(--radius-card);
  overflow: hidden; background-color: var(--color-panel);
}
.ekp-figure > img, .ekp-media-frame > img { width: 100%; height: auto; display: block; }
.ekp-caption {
  font-size: 0.75rem; color: var(--color-neutral); font-family: var(--font-mono);
  padding: var(--space-xs) var(--space-md); border-top: 1px solid var(--color-rule);
}
.ekp-quotable {
  background-color: var(--color-panel); border-left: 3px solid var(--ekp-cyan);
  border-radius: var(--radius-sm); padding: var(--space-md) var(--space-lg);
  margin-block: var(--space-lg); max-width: 88ch;
}
.ekp-quotable p:last-child { margin-bottom: 0; }

/* --- Khoi CTA trong bai --- */
.ekp-cta-wrap {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: var(--space-md); max-width: 88ch;
  margin-block: var(--space-lg); padding: var(--space-lg);
  background-color: var(--color-panel); border: 1px solid var(--ekp-line-hi);
  border-radius: var(--radius-card);
}
.ekp-cta-text { font-size: 0.9375rem; color: var(--ekp-text); margin: 0; flex: 1 1 18rem; }
.ekp-btn-cta { flex-shrink: 0; }

/* --- Luoi nha cung cap trong bai --- */
.ekp-provider-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
  gap: var(--space-sm); margin-block: var(--space-lg); max-width: 88ch;
}
.ekp-provider-card {
  background-color: var(--color-panel); border: 1px solid var(--color-rule);
  border-radius: var(--radius-sm); padding: var(--space-sm);
  display: flex; flex-direction: column; align-items: center; gap: var(--space-2xs);
  font-size: 0.75rem; text-align: center; color: var(--color-neutral);
}
.ekp-provider-card img { width: 100%; height: auto; display: block; }

/* --- Danh sach buoc trong bai --- */
.ekp-steps { display: grid; gap: var(--space-sm); margin-block: var(--space-lg); max-width: 88ch; padding-left: 0; list-style: none; counter-reset: ekpstep; }
.ekp-steps > li {
  position: relative; padding: var(--space-sm) var(--space-md) var(--space-sm) 3rem;
  background-color: var(--color-panel); border: 1px solid var(--color-rule);
  border-radius: var(--radius-sm); font-size: 0.9375rem; line-height: 1.55; margin: 0;
}
.ekp-steps > li::before {
  counter-increment: ekpstep; content: counter(ekpstep);
  position: absolute; left: var(--space-md); top: var(--space-sm);
  width: 1.5rem; height: 1.5rem; border-radius: var(--radius-xs);
  display: inline-flex; align-items: center; justify-content: center;
  background-color: var(--ekp-cyan); color: var(--color-accent-ink);
  font-family: var(--font-mono); font-size: 0.75rem; font-weight: 700;
}


/* ===== BLOG GRID 3 COT (Claude) ===== */
.ekp-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-sm); }
@media (min-width: 640px)  { .ekp-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-lg); } }
@media (min-width: 1024px) { .ekp-blog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* MB: the nho gon, bo doan trich cho khoi qua cao */
@media (max-width: 639px) {
  .ekp-blog-card > h3 { font-size: 0.8125rem; line-height: 1.25; margin: var(--space-sm) var(--space-sm) var(--space-3xs); }
  .ekp-blog-card > p { display: none; }
  .ekp-blog-card > img { aspect-ratio: 16 / 10; }
}


/* ===== FIX DRAWER MOBILE (Claude) ===== */
/* .ekp-header co `backdrop-filter: blur(12px)` -> tao CONTAINING BLOCK moi cho con
   `position: fixed`. Vi vay `top: 72px; bottom: 0` cua drawer duoc tinh theo HOP CUA HEADER
   (cao 72px) -> drawer chi cao 48px, menu bi cat mat. Do duoc: rect [0,72,390,48].
   Khac phuc: dat chieu cao tuong minh, khong phu thuoc `bottom` cua containing block. */
.ekp-drawer {
  top: var(--header-height);
  bottom: auto;
  height: calc(100dvh - var(--header-height));
  max-height: calc(100dvh - var(--header-height));
}
@supports not (height: 100dvh) {
  .ekp-drawer { height: calc(100vh - var(--header-height)); max-height: calc(100vh - var(--header-height)); }
}
/* khoa cuon trang khi drawer mo + nen DAC (0.98 alpha van lo chu trang phia sau) */
.ekp-drawer-checkbox:checked ~ .ekp-drawer { overscroll-behavior: contain; }
.ekp-drawer { background-color: #060b14; }


/* ===== DMCA BADGE FOOTER (Claude) ===== */
.ekp-footer-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs) var(--space-md); }
.ekp-footer-bottom .dmca-badge { display: inline-flex; align-items: center; line-height: 0; flex-shrink: 0; }
.ekp-footer-bottom .dmca-badge img { height: 24px; width: auto; display: block; opacity: 0.85; }
.ekp-footer-bottom .dmca-badge:hover img { opacity: 1; }
.ekp-footer-bottom .ekp-footer-support-link { margin-left: auto; }
@media (max-width: 560px) { .ekp-footer-bottom .ekp-footer-support-link { margin-left: 0; } }

/* --- ngay tren card blog + thanh phan trang (them 09/09/2026) --- */
.ekp-blog-card > p.ekp-card-date {
  margin: 0 var(--space-sm) calc(var(--space-xs) * -1);
  font-size: .78rem; letter-spacing: .04em; text-transform: uppercase;
  color: var(--color-ink-dim); font-weight: 600;
}
.ekp-pagination {
  display: flex; flex-wrap: wrap; gap: .5rem; align-items: center;
  justify-content: center; margin-top: var(--space-md);
}
.ekp-pagination a, .ekp-pagination span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 2.5rem; min-height: 2.5rem; padding: 0 .7rem;
  border: 1px solid var(--color-line); border-radius: var(--radius-sm);
  font-size: .9rem; font-weight: 600; text-decoration: none;
  color: var(--color-ink); background: var(--color-surface);
}
.ekp-pagination a:hover { border-color: var(--ekp-cyan-hi); color: var(--ekp-cyan-hi); }
.ekp-pagination .is-current {
  background: var(--ekp-cyan-hi); border-color: var(--ekp-cyan-hi); color: #04131b; cursor: default;
}
/* --- BANG: dep + responsive PC/MB (them 09/09/2026) ---------------------
   Bai blog moi sinh <table> tron; assemble.py boc ve figure.ekp-tablewrap.
   3 van de phai giai: (1) tran ngang tren mobile, (2) table-layout:fixed lam
   cot nhieu chu bi bop, (3) khong co dau hieu cho biet bang con cuon duoc. */
figure.ekp-tablewrap {
  margin: var(--space-md) 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  /* bong mo ben phai khi con noi dung bi che -> nguoi dung biet co the cuon */
  background-image: linear-gradient(to left, rgba(0,0,0,.28), rgba(0,0,0,0));
  background-position: right center;
  background-repeat: no-repeat;
  background-size: 2rem 100%;
  background-attachment: local, scroll;
}
figure.ekp-tablewrap:focus-visible { outline: 2px solid var(--ekp-cyan-hi); outline-offset: 2px; }
figure.ekp-tablewrap > table.ekp-table {
  margin: 0;
  border: 0;
  border-radius: 0;
  /* auto thay vi fixed: cot tu gian theo noi dung, khong bop cot dai */
  table-layout: auto;
  width: 100%;
  min-width: 42rem;
  max-width: 100%;
  border-collapse: collapse;
  font-size: .93rem;
  line-height: 1.5;
}
figure.ekp-tablewrap > table.ekp-table th,
figure.ekp-tablewrap > table.ekp-table td {
  padding: .7rem .85rem;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--color-line);
  /* KHONG dung hyphens:auto — no cat tu thanh "per-sonal", "ac-count" (nhin xau).
     break-word du de khong tran o. */
  overflow-wrap: break-word;
  word-break: normal;
}
figure.ekp-tablewrap > table.ekp-table thead th {
  position: sticky; top: 0; z-index: 1;
  background: var(--color-surface-2, #101a24);
  font-size: .8rem; letter-spacing: .03em; text-transform: uppercase;
  font-weight: 700;
  /* KHONG nowrap: nhan cot dai (5 cot) se ep bang rong ~1950px tren PC,
     phai cuon ngang ca o desktop. De nhan tu xuong dong. */
  white-space: normal;
  border-bottom: 2px solid var(--color-line);
}
/* cot dau la nhan hang -> giu de doc khi cuon ngang */
figure.ekp-tablewrap > table.ekp-table tbody td:first-child { font-weight: 600; }
/* Tran cot: bang 5 cot van doc duoc thay vi phinh ra 1900px */
figure.ekp-tablewrap > table.ekp-table th,
figure.ekp-tablewrap > table.ekp-table td { max-width: 22rem; min-width: 6rem; }
figure.ekp-tablewrap > table.ekp-table tbody tr:nth-child(even) { background: rgba(255,255,255,.022); }
figure.ekp-tablewrap > table.ekp-table tbody tr:last-child td { border-bottom: 0; }

@media (max-width: 760px) {
  figure.ekp-tablewrap > table.ekp-table {
    min-width: 34rem;
    font-size: .86rem;
  }
  figure.ekp-tablewrap > table.ekp-table th,
  figure.ekp-tablewrap > table.ekp-table td { padding: .55rem .6rem; }
  figure.ekp-tablewrap > table.ekp-table thead th { white-space: normal; }
}
@media (prefers-reduced-motion: no-preference) {
  figure.ekp-tablewrap { scroll-behavior: smooth; }
}