/* =========================================
   /help/assets/css/help.css
   Concept Lab Knowledge Base (KB-only)
   - Scoped: does NOT touch global navbar/footer/header styling
   - Dynamic hero mesh (cursor + ambient drift via help.js)
   - Sub-hero for category/article pages (smaller + calmer)
   - Responsive fixes (padding, overflow, spacing)
   ========================================= */

/* -----------------------------------------
   Support strip (fixed for both light + dark)
   - Avoids low contrast issues regardless of page/theme
------------------------------------------ */
.kb-support-strip{
  background: rgba(255,255,255,.92);
  border-bottom: 1px solid rgba(0,0,0,.08);
  backdrop-filter: blur(10px);
}

.dark-mode .kb-support-strip{
  background: rgba(18,18,18,.92);
  border-bottom: 1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(10px);
}

.kb-support-inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: 14px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  text-align: left;
}

.kb-support-left{
  display: flex;
  align-items: center;
  gap: 12px;
}

.kb-support-left i{
  color: var(--primary-color);
  font-size: 18px;
}

.kb-support-text{
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.kb-support-text strong{
  font-size: 14px;
  color: #111;
}

.kb-support-text span{
  font-size: 13px;
  color: #444;
}

.dark-mode .kb-support-text strong{
  color: #fff;
}

.dark-mode .kb-support-text span{
  color: rgba(255,255,255,.75);
}

/* Prominent ticket button */
.kb-ticket-btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--primary-color);
  color: #000;
  padding: 11px 16px;
  border-radius: 10px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(255,204,0,.25);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  white-space: nowrap;
}

.kb-ticket-btn:hover{
  transform: translateY(-1px) scale(1.02);
  box-shadow: 0 14px 30px rgba(255,204,0,.35);
  background: var(--highlight-dark);
}

.kb-ticket-btn i{
  font-size: 15px;
}

/* -----------------------------------------
   Hero: Dynamic "mesh" layer + KB mode look
------------------------------------------ */
.hero.kb-hero{
  height: 78vh;
  min-height: 560px;
  position: relative;
  overflow: hidden;
  overflow-x: hidden;

  background:
    radial-gradient(circle at 20% 20%, rgba(255,204,0,.20), transparent 45%),
    radial-gradient(circle at 80% 35%, rgba(255,153,0,.16), transparent 42%),
    linear-gradient(180deg, rgba(0,0,0,.72), rgba(0,0,0,.94)) !important;

  --kb-x: 50%;
  --kb-y: 30%;
  --kb-x2: 70%;
  --kb-y2: 65%;
  --kb-drift: 0px;
}

.hero.kb-hero::before{
  content: "";
  position: absolute;
  inset: -60px;
  pointer-events: none;
  z-index: 0;

  background:
    radial-gradient(circle at var(--kb-x) var(--kb-y), rgba(255,204,0,.22), transparent 46%),
    radial-gradient(circle at var(--kb-x2) var(--kb-y2), rgba(255,153,0,.18), transparent 52%),
    radial-gradient(circle at calc(var(--kb-x) + 12%) calc(var(--kb-y2) - 10%), rgba(255,204,0,.08), transparent 60%),
    linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.85));

  transform: translate3d(0, calc(var(--kb-drift) * 1), 0);
  filter: saturate(1.08);
  opacity: .95;
}

.hero.kb-hero::after{
  height: 60% !important;
  background: linear-gradient(to top, rgba(0,0,0,.92), transparent) !important;
}

.hero.kb-hero > *{
  position: relative;
  z-index: 1;
}

.hero.kb-hero h1,
.hero.kb-hero p{
  color: #fff !important;
  text-shadow: 1px 1px 10px rgba(0,0,0,.65) !important;
}

/* KB badge */
.kb-badge{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.25);
  color: rgba(255,255,255,.90);
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 14px;
}

.kb-badge i{ color: var(--primary-color); }

/* Sub-hero (category/article): smaller + calmer */
.hero.kb-hero.kb-hero-sub{
  height: 46vh;
  min-height: 360px;
}

.hero.kb-hero.kb-hero-sub::before{
  opacity: .70;
  filter: saturate(1.0);
}

.hero.kb-hero.kb-hero-sub::after{
  height: 70% !important;
}

/* -----------------------------------------
   Search block — overflow-safe
------------------------------------------ */
.kb-search-wrap{
  width: 100%;
  max-width: 860px;
  margin: 18px auto 0;
  position: relative;
  box-sizing: border-box;
  padding-left: 8px;
  padding-right: 8px;
}

.kb-search{
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  width: 100%;
  box-sizing: border-box;
}

.kb-search input{
  flex: 1;
  min-width: 260px;
  max-width: 680px;
  width: 100%;
  box-sizing: border-box;

  padding: 14px 16px;
  border-radius: 8px;
  border: 2px solid rgba(255,204,0,.65);
  background: rgba(0,0,0,.30);
  color: #fff;
  outline: none;
  font-family: 'Montserrat', sans-serif !important;
}

.kb-search input::placeholder{
  color: rgba(255,255,255,.6);
}

.kb-search button{
  box-sizing: border-box;
  padding: 14px 18px;
  border-radius: 8px;
  border: none;
  background: var(--primary-color);
  color: #000;
  font-weight: 800;
  opacity: .75;
  cursor: pointer;
  min-height: 48px;
  font-family: 'Montserrat', sans-serif !important;
}

.kb-note{
  margin-top: 10px;
  margin-bottom: 18px;
  font-size: 13px;
  color: rgba(255,255,255,.75);
}

.hero.kb-hero .kb-cta{ margin-top: 18px; }

/* -----------------------------------------
   HELP ID pill — ALWAYS readable (light + dark)
------------------------------------------ */
.kb-help-id{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;

  background: #0c0c0c;
  border: 1px solid rgba(255,204,0,.55);
  color: #ffffff;
}

.kb-help-id i{
  font-size: 12px;
  color: var(--primary-color);
}

/* Article meta bar */
.kb-article-meta{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-top: 10px;
}

/* -----------------------------------------
   Article section background FIX
   Make the section full width, keep card centered
------------------------------------------ */
.kb-article-shell{
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 40px 20px;
  background: var(--bg-color);
  box-sizing: border-box;
}

.kb-article-card{
  max-width: 1100px;
  margin: 18px auto 0;
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 20px;
  text-align: left;
}

.kb-article-card h2{ margin-top: 0; }

.kb-article-card p{
  color: var(--secondary-text);
  line-height: 1.7;
}

.kb-article-footer{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.10);
  flex-wrap: wrap;
}

/* KB categories/listing tweaks */
.kb-categories-section{ margin-top: -40px; }

.kb-cats .service-feature:nth-child(odd),
.kb-cats .service-feature:nth-child(even){
  background: var(--card-bg) !important;
  color: var(--text-color) !important;
  border: 1px solid var(--border-color);
}

.kb-cats .service-feature i{
  color: var(--primary-color) !important;
}

.kb-cats .service-feature:hover{
  transform: translateY(-8px);
  border-color: rgba(255,204,0,.55);
  box-shadow: 0 10px 20px rgba(0,0,0,.14);
}

/* Floating ticket CTA */
.kb-float-ticket{
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 9999;

  display: inline-flex;
  align-items: center;
  gap: 10px;

  background: var(--primary-color);
  color: #000;
  padding: 12px 16px;
  border-radius: 999px;
  font-weight: 900;
  text-decoration: none;

  box-shadow: 0 14px 34px rgba(255,204,0,.30);
  animation: kbPulse 2.2s infinite;
  transform: translateZ(0);
}

.kb-float-ticket:hover{
  animation: none;
  background: var(--highlight-dark);
  transform: translateY(-2px);
}

.kb-float-ticket i{ font-size: 16px; }

.kb-float-ticket.kb-float-hide{
  opacity: 0;
  transform: translateY(120%);
  pointer-events: none;
}

@keyframes kbPulse{
  0%   { box-shadow: 0 14px 34px rgba(255,204,0,.24); }
  50%  { box-shadow: 0 16px 44px rgba(255,204,0,.45); }
  100% { box-shadow: 0 14px 34px rgba(255,204,0,.24); }
}

/* Responsive */
@media (max-width: 768px){
  .kb-support-inner{ padding: 14px 16px; }
  .kb-ticket-btn{ width: 100%; justify-content: center; }
  .kb-float-ticket{ right: 14px; bottom: 14px; }

  .hero.kb-hero{
    height: auto !important;
    min-height: 0 !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    padding-top: 110px !important;
    padding-bottom: 60px !important;
  }

  .hero.kb-hero.kb-hero-sub{
    height: auto !important;
    min-height: 0 !important;
    padding-top: 95px !important;
    padding-bottom: 46px !important;
  }

  .hero.kb-hero::after{ height: 72% !important; }

  .kb-search{
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .kb-search-wrap{
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }

  .kb-search input,
  .kb-search button{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .kb-cta{ width: 100%; }
  .kb-cta a{ display: block; width: 100%; }
  .kb-cta button{ width: 100%; max-width: 420px; margin: 0 auto; }

  .kb-article-card{ padding: 16px; }
}

@media (max-width: 520px){
  .kb-float-ticket{ padding: 12px 14px; }
  .kb-float-text{ display: none; }
}

@media (prefers-reduced-motion: reduce){
  .kb-float-ticket{ animation: none; }
  .hero.kb-hero::before{ opacity: .85; }
}

/* ============================
   CLICK FIX + HERO BOTTOM BLOCK FIX
   (keeps the same style, just removes harsh band + ensures buttons work)
============================ */

/* Never let overlays steal clicks */
.hero.kb-hero::before,
.hero.kb-hero::after{
  pointer-events: none !important;
}

/* Ensure KB hero content sits above overlays */
.hero.kb-hero > *{
  position: relative;
  z-index: 5 !important;
}

/* Soften the bottom fade (removes the harsh dark block) */
.hero.kb-hero::after{
  height: 24% !important;
  background: linear-gradient(
    to top,
    rgba(0,0,0,.45) 0%,
    rgba(0,0,0,.12) 55%,
    rgba(0,0,0,0) 100%
  ) !important;
}

/* Sub-hero (category/article) should be even lighter */
.hero.kb-hero.kb-hero-sub::after{
  height: 18% !important;
}

/* Safety: ensure the CTA + search areas can receive clicks */
.hero.kb-hero .kb-cta,
.hero.kb-hero .kb-cta *,
.kb-search,
.kb-search *{
  pointer-events: auto !important;
}

/* ============================
   KB HERO BLOCK FIX
   The global site CSS pulls .services-section up into the hero (margin-top:-60px)
   KB pages use .services-section, so we neutralize it ONLY for KB sections.
============================ */

.kb-cats.services-section,
.kb-categories-section {
  margin-top: 0 !important;
}