/**
 * KH Core V4.5 — Platform UI (header, search, sidebar, footer, mobile)
 * Replaces legacy sidebar/footer/header patches.
 */

/* ─── GeneratePress suppression ─── */
body.kh-v45.kh-has-custom-header #masthead,
body.kh-v45.kh-has-custom-header .site-header,
body.kh-v45.kh-has-custom-header #site-navigation,
body.kh-v45.kh-has-custom-header .main-navigation,
body.kh-v45.kh-has-custom-header .inside-header,
body.kh-v45.kh-has-custom-header .mobile-menu-control-wrapper,
body.kh-v45.kh-has-custom-header nav.toggled {
  display: none !important;
  height: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
}

body.kh-v45 .sidebar .widget,
body.kh-v45 .sidebar .inner-padding > .widget {
  display: none !important;
}

body.kh-v45.kh-has-custom-footer .site-footer:not(.kh-ft-v45) {
  display: none !important;
}

/* ─── Sticky header (FAZ 1: layout-elite.css overrides z-index) ─── */
body.kh-has-custom-header {
  padding-top: 0;
}

.kh-hd-v45 {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 9999;
  box-sizing: border-box;
  overflow: visible;
  background: rgba(11, 16, 33, 0.96);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

/* ─── SON ticker — horizontal strip only ─── */
.kh-ticker--elite {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: var(--kh-space-16);
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  position: sticky;
  top: var(--kh-header-fixed-h, 72px);
  z-index: 450;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  padding: var(--kh-space-8) var(--kh-space-24);
}

.kh-ticker--elite .kh-ticker__viewport {
  flex: 1;
  min-width: 0;
  overflow: hidden !important;
}

.kh-ticker--elite .kh-ticker__track,
.kh-ticker--elite [data-kh-ticker-track] {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  width: max-content !important;
  white-space: nowrap !important;
}

.kh-ticker--elite .kh-ticker__item {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  margin-right: var(--kh-space-32);
  padding: var(--kh-space-8) 0;
  font-size: 13px;
  color: var(--muted);
  text-decoration: none;
}

.kh-ticker--elite .kh-ticker__label {
  flex-shrink: 0;
  font-weight: 800;
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--accent);
}

.kh-hd-v45__inner {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  min-height: 72px;
  max-height: 72px;
  padding: 0 var(--kh-space-24);
  max-width: var(--kh-elite-container, 1500px);
  margin: 0 auto;
  box-sizing: border-box;
}

.kh-hd-v45__brand {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--kh-space-16);
  text-decoration: none;
  color: inherit;
}

.kh-hd-v45__logo {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 2.25rem;
  line-height: 1;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.kh-hd-v45__name {
  display: block;
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.kh-hd-v45__tagline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--muted);
  line-height: 1.3;
}

.kh-hd-v45__tagline-ico {
  flex-shrink: 0;
  font-size: 9px;
  color: var(--accent);
  opacity: 0.9;
}

.kh-hd-v45__tagline-text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 220px;
}

.kh-hd-v45__nav {
  display: flex;
  justify-content: center;
  min-width: 0;
  overflow: visible;
}

.kh-hd-v45__nav .kh-nav__list {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--kh-space-8);
  list-style: none;
  margin: 0;
  padding: 0;
}

.kh-hd-v45__nav .kh-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: var(--kh-space-8) var(--kh-space-16);
  border-radius: var(--kh-radius-sm);
  color: var(--muted);
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}

.kh-hd-v45__nav .kh-nav__link:hover {
  color: var(--text);
  background: rgba(255, 255, 255, 0.05);
}

/* Mega / dropdown: see layout-elite.css (FAZ 1 authoritative) */
.kh-hd-v45__nav-wrap {
  position: relative;
  overflow: visible;
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  justify-content: center;
}

.kh-hd-v45__actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-left: 2rem;
  isolation: isolate;
  z-index: 2;
}

.kh-hd-v45__search {
  flex: 0 1 320px;
  width: min(320px, 36vw);
  min-width: 200px;
}

/* ─── Search V4.5 — 52px glass ─── */
.kh-search-v45 {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--kh-space-8);
  width: 100%;
  min-height: 52px;
  padding: 0 var(--kh-space-16);
  border-radius: 16px;
  background: rgba(15, 23, 42, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.kh-search-v45__input {
  flex: 1;
  min-width: 0;
  border: none;
  background: transparent;
  color: var(--text);
  font-size: 14px;
  padding: var(--kh-space-8) 0;
  outline: none;
}

.kh-search-v45__input::placeholder {
  color: var(--muted);
}

.kh-search-v45__clear {
  border: none;
  background: rgba(255, 255, 255, 0.08);
  color: var(--text);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
}

.kh-search-v45__panel {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  right: 0;
  z-index: 600;
  max-height: 380px;
  overflow-y: auto;
  padding: var(--kh-space-8);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--kh-radius-md);
  box-shadow: var(--kh-shadow-soft);
}

.kh-search-v45__hit {
  display: flex;
  gap: var(--kh-space-16);
  padding: var(--kh-space-8);
  border-radius: var(--kh-radius-sm);
  text-decoration: none;
  color: inherit;
}

.kh-search-v45__hit:hover {
  background: rgba(59, 130, 246, 0.12);
}

.kh-search-v45__hit strong {
  display: block;
  font-size: 14px;
}

.kh-search-v45__hit small {
  display: block;
  color: var(--muted);
  font-size: 12px;
}

.kh-search-v45__empty {
  padding: var(--kh-space-16);
  color: var(--muted);
  font-size: 13px;
  text-align: center;
}

/* ─── Sidebar V4.5 — 320px sticky ─── */
.kh-sb-v45 {
  display: flex;
  flex-direction: column;
  gap: var(--kh-space-16);
  width: 100%;
}

.kh-sb-v45__card {
  background: rgba(15, 23, 42, 0.55);
  border: 1px solid var(--border);
  border-radius: var(--kh-radius-md);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: var(--kh-shadow-soft);
  overflow: hidden;
}

.kh-sb-v45__title {
  display: flex;
  align-items: center;
  gap: var(--kh-space-8);
  margin: 0;
  padding: var(--kh-space-16);
  border-bottom: 1px solid var(--border);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.kh-sb-v45__list {
  list-style: none;
  margin: 0;
  padding: var(--kh-space-8);
}

.kh-sb-v45__item {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: var(--kh-space-8);
  padding: var(--kh-space-8);
  border-radius: var(--kh-radius-sm);
  text-decoration: none;
  color: inherit;
  transition: background var(--kh-ease);
}

.kh-sb-v45__item:hover {
  background: rgba(59, 130, 246, 0.1);
}

.kh-sb-v45__thumb {
  border-radius: var(--kh-radius-sm);
  overflow: hidden;
  aspect-ratio: 1;
}

.kh-sb-v45__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.kh-sb-v45__text strong {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 13px;
  line-height: 1.35;
}

.kh-sb-v45__text small {
  color: var(--muted);
  font-size: 11px;
}

.kh-sb-v45__empty {
  padding: var(--kh-space-16);
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

body.kh-layout-elite .kh-layout-shell__aside .kh-sb-v45,
body.kh-layout-elite .sidebar .kh-sb-v45,
body.kh-layout-elite #right-sidebar .kh-sb-v45 {
  position: relative;
  top: 0;
}

/* ─── Footer V4.5 — full bleed ─── */
.kh-ft-v45-wrap {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: auto;
  flex-shrink: 0;
}

.kh-ft-v45 {
  width: 100%;
  background: var(--surface);
  border-top: 1px solid var(--border);
  padding: var(--kh-space-48) 0 var(--kh-space-24);
}

.kh-ft-v45__inner {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: var(--kh-space-32);
  max-width: var(--kh-elite-container, 1500px);
  margin: 0 auto;
  padding: 0 var(--kh-space-24);
}

.kh-ft-v45__nav {
  display: none !important;
}

.kh-ft-v45__mark {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 2rem;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.kh-ft-v45__name {
  margin: var(--kh-space-8) 0;
  font-weight: 700;
  letter-spacing: 0.08em;
  font-size: 13px;
}

.kh-ft-v45__tagline {
  color: var(--muted);
  font-size: 12px;
}

.kh-ft-v45 h4 {
  margin: 0 0 var(--kh-space-16);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.kh-ft-v45 ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.kh-ft-v45 li + li {
  margin-top: var(--kh-space-8);
}

.kh-ft-v45 a {
  color: var(--muted);
  text-decoration: none;
  font-size: 13px;
}

.kh-ft-v45 a:hover {
  color: var(--accent);
}

.kh-ft-v45__bottom {
  max-width: var(--kh-elite-container, 1500px);
  margin: var(--kh-space-32) auto 0;
  padding: var(--kh-space-16) var(--kh-space-24) 0;
  border-top: 1px solid var(--border);
  text-align: center;
  color: var(--muted);
  font-size: 12px;
}

/* ─── Homepage sliders — no scrollbar, autoplay ─── */
.kh-slider-v46,
.kh-row-slider {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  gap: var(--kh-space-16);
  padding-bottom: var(--kh-space-8);
}

.kh-slider-v46::-webkit-scrollbar,
.kh-row-slider::-webkit-scrollbar {
  display: none;
  height: 0;
}

.kh-slider-v46 > *,
.kh-row-slider > * {
  scroll-snap-align: start;
  flex: 0 0 auto;
}

.kh-block__nav--slider,
.kh-block__head + .kh-block__nav--slider {
  display: flex;
  justify-content: flex-end;
  gap: var(--kh-space-8);
  margin-bottom: var(--kh-space-16);
}

/* ─── Reading bar ─── */
.kh-reading-v45 {
  position: fixed;
  top: 0;
  left: 0;
  height: 4px;
  width: 0;
  z-index: 9999;
  background: linear-gradient(90deg, var(--primary), var(--accent));
  box-shadow: 0 0 12px rgba(0, 212, 255, 0.45);
  pointer-events: none;
  will-change: width;
}

/* ─── Floating actions (contact + scroll top) ─── */
.kh-floating-actions {
  position: fixed;
  right: var(--kh-space-24);
  bottom: var(--kh-space-24);
  z-index: 800;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--kh-space-16);
}

.kh-fab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--kh-space-8);
  min-width: 48px;
  min-height: 48px;
  padding: 0 var(--kh-space-16);
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(15, 23, 42, 0.92);
  color: var(--text);
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  box-shadow: var(--kh-shadow-soft);
  cursor: pointer;
  transition: transform var(--kh-ease), box-shadow var(--kh-ease);
}

.kh-fab:hover {
  transform: translateY(-3px);
  box-shadow: 0 0 20px rgba(59, 130, 246, 0.35);
}

.kh-fab--top[hidden] {
  display: none;
}

.kh-fab--contact span {
  white-space: nowrap;
}

/* ─── Ads fixed footprint ─── */
.kh-ad {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: var(--kh-space-16) auto;
  overflow: hidden;
}

.kh-ad__inner {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.kh-ad__inner iframe,
.kh-ad__inner img {
  max-width: 100%;
  height: auto;
  display: block;
}

.kh-hd-v45__nav .kh-ad--header_nav {
  margin: var(--kh-space-8) 0 0;
  max-width: 100%;
}

/* ─── Comments block ─── */
.kh-comments {
  margin-top: var(--kh-space-48);
  padding-top: var(--kh-space-32);
  border-top: 1px solid var(--border);
}

.kh-reactions.is-busy {
  opacity: 0.85;
  pointer-events: none;
}

/* ─── Drawer ─── */
.kh-drawer {
  position: fixed;
  inset: 0;
  z-index: 800;
  pointer-events: none;
  visibility: hidden;
}

.kh-drawer.is-open {
  pointer-events: auto;
  visibility: visible;
}

.kh-drawer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  opacity: 0;
  transition: opacity var(--kh-ease);
}

.kh-drawer.is-open .kh-drawer__overlay {
  opacity: 1;
}

.kh-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  width: min(320px, 92vw);
  height: 100%;
  background: var(--surface);
  border-left: 1px solid var(--border);
  transform: translateX(100%);
  transition: transform var(--kh-ease);
  overflow-y: auto;
}

.kh-drawer.is-open .kh-drawer__panel {
  transform: translateX(0);
}

.kh-hd-v45__burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: var(--kh-space-8);
  border: 1px solid var(--border);
  border-radius: var(--kh-radius-sm);
  background: transparent;
  cursor: pointer;
}

.kh-hd-v45__burger span {
  display: block;
  width: 20px;
  height: 2px;
  background: var(--text);
}

/* ─── Mobile ─── */
@media (max-width: 1024px) {
  .kh-hd-v45__inner {
    flex-wrap: wrap;
    gap: 1rem;
    min-height: auto;
    max-height: none;
    padding-block: var(--kh-space-16);
  }

  .kh-hd-v45__brand {
    flex: 1 1 auto;
    min-width: 0;
  }

  .kh-hd-v45__tagline-text {
    max-width: 140px;
  }

  .kh-hd-v45__nav-wrap {
    display: none;
  }

  .kh-hd-v45__actions {
    margin-left: auto;
    flex: 0 0 auto;
  }

  .kh-hd-v45__search {
    width: min(240px, 52vw);
    min-width: 160px;
  }

  .kh-hd-v45__burger {
    display: flex;
  }

  .kh-ft-v45__inner {
    grid-template-columns: 1fr 1fr;
  }

  .kh-archive-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  body.kh-layout-elite .sidebar .kh-sb-v45 {
    position: static;
    top: auto;
  }
}

@media (max-width: 640px) {
  .kh-ft-v45__inner {
    grid-template-columns: 1fr;
  }

  .kh-search-v45 {
    min-height: 48px;
  }
}
