/* =============================================================
   LEARNLLM.NL — HEADER.CSS
   Custom header styling. Laden via functions.php sitewide.

   Versie: 1.6.0
   Changelog in 1.6.0:
   1. Header compact (76px) maar logo groot (110px) via overflow visible
   2. Logo steekt bewust uit de balk (modern design-patroon)
   3. Emoji-vlaggen ipv CSS-gradients (werkt overal correct)
   4. Custom statische taalwisselaar (geen TP shortcode meer)
      → Geen layout-shift, geen flash bij laden
      → Server-side gerenderd, direct in positie
      → Eigen dropdown-animatie via JS toggle
      → Mobiele versie toont altijd alle talen als lijst

   Versie 1.1.0 changelog:
   1. Logo witte achtergrond weg (mix-blend-mode: multiply)
   2. Logo past binnen header-hoogte (max-height sluit aan)
   3. Taalwisselaar: witte achtergrond weg, transparant
   4. CTA "Leeromgeving" tekst expliciet geforceerd
   5. Icons (account, cart): zwart i.p.v. oranje
   ============================================================= */


/* -----------------------------------------------------------------
   0. VARIABLES
----------------------------------------------------------------- */
:root {
  --llm-header-height: 72px;
  --llm-header-bg: #ffebe3;
  --llm-header-fg: #2D3436;
  --llm-header-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
}

body {
  /* Header is 76px maar logo steekt uit tot 110px.
     We gebruiken de hoogte van de header zelf als offset, niet
     van het logo — want het logo steekt boven én onder uit,
     dus per saldo is de visuele onderkant gelijk aan de balk. */
  padding-top: var(--llm-header-height) !important;
}

body.admin-bar .llm-header {
  top: 32px;
}
@media (max-width: 782px) {
  body.admin-bar .llm-header {
    top: 46px;
  }
}


/* -----------------------------------------------------------------
   1. HEADER CONTAINER
----------------------------------------------------------------- */
.llm-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 999;
  background: var(--llm-header-bg);
  box-shadow: var(--llm-header-shadow);
  height: var(--llm-header-height);
  display: flex;
  align-items: center;
  box-sizing: border-box;
  /* Zorgen dat hele header + alle children Quicksand gebruiken */
  font-family: 'Quicksand', sans-serif;
  /* Logo mag uit de balk steken: overflow visible op container */
  overflow: visible;
}

.llm-header *,
.llm-mobile-menu * {
  font-family: 'Quicksand', sans-serif !important;
}

.llm-header__inner {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 clamp(16px, 3vw, 32px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, 2vw, 24px);
  box-sizing: border-box;
  height: 100%;
  /* Nooit wrappen: alle elementen blijven op één regel */
  flex-wrap: nowrap;
  min-width: 0;
}


/* -----------------------------------------------------------------
   2. LOGO
   FIX: groter max-height, geen mix-blend-mode meer (die verprutst
   bij hover). We gebruiken filter om witte achtergrond weg te vegen,
   wat stabieler is en niet reageert op parent-state.
   Grotere max-width zodat logo niet wegvalt.
----------------------------------------------------------------- */
.llm-header__logo {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none !important;
  /* Niet meer 100% hoog maken - het logo bepaalt zelf zijn hoogte */
  height: auto;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  background: transparent !important;
  /* Logo mag uitsteken boven/onder de header */
  overflow: visible;
  position: relative;
  z-index: 2;
}

.llm-header__logo:hover,
.llm-header__logo:focus-visible {
  background: transparent !important;
  transform: none !important;
  box-shadow: none !important;
}

.llm-header__logo img {
  display: block;
  height: auto;
  /* Logo groter dan header-hoogte (72px) — steekt uit onder de header.
     Dit laat de header compact ogen terwijl het logo prominent is. */
  max-height: 130px;
  width: auto;
  max-width: clamp(220px, 36vw, 400px);
  object-fit: contain;
  background: transparent !important;
  transition: none !important;
}

.llm-header__logo:hover img,
.llm-header__logo:focus-visible img {
  background: transparent !important;
  opacity: 1 !important;
}

/* Mobile: logo iets kleiner zodat het niet disproportioneel groot wordt */
@media (max-width: 767px) {
  .llm-header__logo img {
    max-height: 90px;
    max-width: clamp(150px, 48vw, 220px);
  }
}


/* -----------------------------------------------------------------
   3. DESKTOP NAVIGATIE
----------------------------------------------------------------- */
.llm-header__nav {
  flex: 1;
  display: none;
  justify-content: center;
}

@media (min-width: 1024px) {
  .llm-header__nav {
    display: flex;
  }
}

.llm-menu {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.5vw, 28px);
}

.llm-menu > li {
  position: relative;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.llm-menu > li > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 2px !important;
  color: var(--llm-header-fg) !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  text-decoration: none !important;
  line-height: 1.2 !important;
  transition: color .15s ease;
  white-space: nowrap;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-transform: none !important;
}

.llm-menu > li > a:hover,
.llm-menu > li > a:focus-visible,
.llm-menu > li.current-menu-item > a,
.llm-menu > li.current-menu-parent > a,
.llm-menu > li.current-menu-ancestor > a {
  color: #FF8066 !important;
  background: transparent !important;
  transform: none !important;
}

.llm-menu-chevron {
  transition: transform .2s ease;
  flex-shrink: 0;
}

.llm-menu > li:hover > a .llm-menu-chevron,
.llm-menu > li:focus-within > a .llm-menu-chevron {
  transform: rotate(180deg);
}


/* Submenu
   FIX: dropdown start aan de LINKERKANT onder de parent, niet gecentreerd.
   Zo lijnt hij netjes uit met het menu-item erboven. */
.llm-menu .sub-menu {
  list-style: none !important;
  margin: 0 !important;
  padding: 8px 0 !important;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  transform: translateY(8px);
  min-width: 200px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index: 10;
}

.llm-menu > li:hover > .sub-menu,
.llm-menu > li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.llm-menu .sub-menu li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.llm-menu .sub-menu li a {
  display: block !important;
  padding: 10px 20px !important;
  color: var(--llm-header-fg) !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  text-decoration: none !important;
  white-space: nowrap;
  transition: color .12s ease, background .12s ease;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-transform: none !important;
}

.llm-menu .sub-menu li a:hover,
.llm-menu .sub-menu li a:focus-visible {
  color: #FF8066 !important;
  background: rgba(255, 128, 102, 0.06) !important;
  transform: none !important;
}


/* -----------------------------------------------------------------
   4. DESKTOP ACTIES RECHTS
----------------------------------------------------------------- */
.llm-header__actions {
  display: none;
  align-items: center;
  gap: clamp(8px, 1vw, 14px);
  flex-shrink: 0;
}

@media (min-width: 1024px) {
  .llm-header__actions {
    display: flex;
  }
}


/* Icon buttons (account, cart)
   FIX: expliciet zwart, nooit coral. Hover heeft lichte tint. */
.llm-header__icon-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0 !important;
  border-radius: 999px !important;
  color: #2D3436 !important;
  text-decoration: none !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  transition: background .15s ease, color .15s ease;
}

.llm-header__icon-btn:hover,
.llm-header__icon-btn:focus-visible {
  background: rgba(0, 0, 0, 0.06) !important;
  color: #2D3436 !important;
  transform: none !important;
  box-shadow: none !important;
}

.llm-header__icon-btn svg {
  color: #2D3436 !important;
  stroke: #2D3436 !important;
}


/* Cart badge
   FIX: badge in de rechterbovenhoek, zichtbaar BUITEN het icoon.
   De container (icon-btn) heeft overflow: visible zodat de badge
   niet wordt afgekapt. */
.llm-header__cart {
  overflow: visible !important;
}

.llm-cart-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  background: #E53935;
  color: #ffffff !important;
  border: 2px solid var(--llm-header-bg);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  opacity: 0;
  transform: scale(0);
  transition: opacity .2s ease, transform .2s ease;
  pointer-events: none;
  z-index: 3;
}

.llm-cart-badge.is-visible {
  opacity: 1;
  transform: scale(1);
}


/* CTA knop "Leeromgeving"
   FIX: tekstkleur wit expliciet forceren, font-size 14px forceren,
   padding 10px 22px. Geen globale button-override laten doorslaan. */
.llm-header__cta,
a.llm-header__cta {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 10px 22px !important;
  background: #FF8066 !important;
  background-color: #FF8066 !important;
  color: #ffffff !important;
  border: 2px solid #FF8066 !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap;
  box-shadow: 0 6px 16px rgba(255, 128, 102, 0.20);
  transition: transform .15s ease, box-shadow .15s ease;
  text-transform: none !important;
  font-family: inherit;
  cursor: pointer;
  /* Voorkom dat tekst onzichtbaar wordt door globale knop-styling */
  visibility: visible !important;
  opacity: 1 !important;
}

.llm-header__cta:hover,
.llm-header__cta:focus-visible,
a.llm-header__cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(255, 128, 102, 0.28);
  color: #ffffff !important;
  background: #FF8066 !important;
  background-color: #FF8066 !important;
}


/* -----------------------------------------------------------------
   5. TAALWISSELAAR (custom, geen TranslatePress shortcode)
   Server-side gerenderd dus GEEN layout-shift meer.
   Dropdown klapt uit bij klik op JS event.
----------------------------------------------------------------- */
.llm-header__lang {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

.llm-lang-switcher {
  position: relative;
  display: inline-block;
}

.llm-lang-switcher__trigger {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid rgba(0, 0, 0, 0.15) !important;
  border-radius: 999px !important;
  padding: 6px 12px 6px 10px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  font-family: 'Quicksand', sans-serif !important;
  color: var(--llm-header-fg) !important;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
  box-shadow: none !important;
  line-height: 1;
  white-space: nowrap;
  text-transform: none !important;
  min-width: 96px;
  justify-content: center;
}

.llm-lang-switcher__trigger:hover,
.llm-lang-switcher__trigger:focus-visible {
  border-color: #FF8066 !important;
  background: rgba(255, 128, 102, 0.06) !important;
  transform: none !important;
  box-shadow: none !important;
  color: var(--llm-header-fg) !important;
}

/* Vlaggen: inline SVG voor perfect rendering op elk platform.
   Geen emoji (renderen als letters op Windows) en geen CSS-gradients
   (kunnen fout renderen door complexe layer-stacking). */
.llm-lang-switcher__flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  line-height: 0;
}

.llm-lang-switcher__flag svg {
  display: block;
  width: 20px;
  height: 14px;
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.llm-lang-switcher__label {
  font-weight: 700;
  line-height: 1;
}

.llm-lang-switcher__chevron {
  transition: transform .2s ease;
  flex-shrink: 0;
  opacity: 0.6;
}

.llm-lang-switcher.is-open .llm-lang-switcher__chevron {
  transform: rotate(180deg);
}

.llm-lang-switcher__dropdown {
  list-style: none !important;
  margin: 0 !important;
  padding: 6px !important;
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 140px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index: 100;
}

.llm-lang-switcher.is-open .llm-lang-switcher__dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.llm-lang-switcher__dropdown li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.llm-lang-switcher__option {
  display: flex !important;
  align-items: center;
  gap: 10px;
  padding: 8px 12px !important;
  color: var(--llm-header-fg) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  border-radius: 8px !important;
  transition: background .12s ease, color .12s ease;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  white-space: nowrap;
}

.llm-lang-switcher__option:hover,
.llm-lang-switcher__option:focus-visible {
  background: rgba(255, 128, 102, 0.08) !important;
  color: #FF8066 !important;
  transform: none !important;
}


/* -----------------------------------------------------------------
   6. MOBILE ACTIES (cart + hamburger)
----------------------------------------------------------------- */
.llm-header__mobile-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

@media (min-width: 1024px) {
  .llm-header__mobile-actions {
    display: none;
  }
}


/* Hamburger
   FIX: transparante achtergrond, alleen lijntjes zwart.
   Niet de volle oranje pill van globale button-override. */
.llm-header__hamburger {
  -webkit-appearance: none !important;
  appearance: none !important;
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  padding: 8px !important;
  width: 44px !important;
  height: 44px !important;
  cursor: pointer;
  display: inline-flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border-radius: 999px !important;
  transition: background .15s ease;
  box-shadow: none !important;
  color: #2D3436 !important;
}

.llm-header__hamburger:hover,
.llm-header__hamburger:focus-visible {
  background: rgba(0, 0, 0, 0.06) !important;
  transform: none !important;
  box-shadow: none !important;
}

.llm-header__hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: #2D3436 !important;
  border-radius: 2px;
  transition: transform .25s ease, opacity .2s ease;
  transform-origin: center;
}

.llm-header__hamburger.is-active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.llm-header__hamburger.is-active span:nth-child(2) {
  opacity: 0;
}

.llm-header__hamburger.is-active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}


/* -----------------------------------------------------------------
   7. MOBILE SLIDE-IN MENU
----------------------------------------------------------------- */
.llm-mobile-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
  z-index: 998;
}

.llm-mobile-overlay.is-open {
  opacity: 1;
  visibility: visible;
}

.llm-mobile-menu {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(320px, 85vw);
  background: #ffffff;
  z-index: 1000;
  transform: translateX(100%);
  transition: transform .3s cubic-bezier(0.4, 0, 0.2, 1);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  box-shadow: -10px 0 30px rgba(0, 0, 0, 0.15);
}

.llm-mobile-menu.is-open {
  transform: translateX(0);
}

.llm-mobile-menu__inner {
  padding: 24px;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 20px;
  box-sizing: border-box;
}

.llm-mobile-menu__close {
  -webkit-appearance: none !important;
  appearance: none !important;
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  padding: 8px !important;
  cursor: pointer;
  width: 40px;
  height: 40px;
  border-radius: 999px !important;
  align-self: flex-end;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  color: #2D3436 !important;
  transition: background .15s ease;
  box-shadow: none !important;
}

.llm-mobile-menu__close:hover,
.llm-mobile-menu__close:focus-visible {
  background: rgba(0, 0, 0, 0.05) !important;
  transform: none !important;
}

.llm-mobile-menu__close svg {
  stroke: #2D3436 !important;
  color: #2D3436 !important;
}


/* Mobile menu list */
.llm-mobile-menu__list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.llm-mobile-menu__list > li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.llm-mobile-menu__list > li > a {
  display: block !important;
  padding: 12px 16px !important;
  color: var(--llm-header-fg) !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  text-decoration: none !important;
  border-radius: 10px !important;
  transition: background .12s ease, color .12s ease;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.llm-mobile-menu__list > li > a:hover,
.llm-mobile-menu__list > li.current-menu-item > a,
.llm-mobile-menu__list > li.current-menu-parent > a {
  background: rgba(255, 128, 102, 0.1) !important;
  color: #FF8066 !important;
  transform: none !important;
}

/* Submenu mobile */
.llm-mobile-menu__list .sub-menu {
  list-style: none !important;
  margin: 4px 0 8px !important;
  padding: 0 0 0 16px !important;
  display: flex;
  flex-direction: column;
  gap: 2px;
  border-left: 2px solid rgba(0, 0, 0, 0.06);
}

.llm-mobile-menu__list .sub-menu li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.llm-mobile-menu__list .sub-menu li a {
  display: block !important;
  padding: 10px 16px !important;
  color: rgba(45, 52, 54, 0.75) !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  text-decoration: none !important;
  border-radius: 8px !important;
  transition: background .12s ease, color .12s ease;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.llm-mobile-menu__list .sub-menu li a:hover,
.llm-mobile-menu__list .sub-menu li.current-menu-item a {
  background: rgba(255, 128, 102, 0.08) !important;
  color: #FF8066 !important;
  transform: none !important;
}


/* Mobile menu footer-acties */
.llm-mobile-menu__actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 20px;
  margin-top: auto;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.llm-mobile-menu__account {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px !important;
  color: #2D3436 !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  text-decoration: none !important;
  border-radius: 10px !important;
  transition: background .12s ease, color .12s ease;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.llm-mobile-menu__account svg {
  stroke: #2D3436 !important;
  color: #2D3436 !important;
}

.llm-mobile-menu__account:hover {
  background: rgba(0, 0, 0, 0.04) !important;
  color: #FF8066 !important;
  transform: none !important;
}

.llm-mobile-menu__lang {
  padding: 4px 16px;
  display: flex;
  justify-content: flex-start;
}

.llm-mobile-menu__lang .llm-lang-switcher {
  display: inline-block;
  width: auto;
}

.llm-mobile-menu__lang .llm-lang-switcher__trigger {
  width: auto;
  justify-content: flex-start;
  padding: 6px 14px !important;
  gap: 8px;
}

/* Mobile: dropdown gedraagt zich als desktop (klik om te openen),
   niet permanent uitgeklapt. Houdt het menu compact. */
.llm-mobile-menu__lang .llm-lang-switcher__dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: auto;
  transform: translateY(8px);
  min-width: 110px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
  padding: 6px !important;
  opacity: 0;
  visibility: hidden;
  margin-top: 0 !important;
}

.llm-mobile-menu__lang .llm-lang-switcher.is-open .llm-lang-switcher__dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.llm-mobile-menu__lang .llm-lang-switcher {
  position: relative;
}

.llm-mobile-menu__lang .llm-lang-switcher__trigger .llm-lang-switcher__chevron {
  display: inline-block;
}

.llm-mobile-menu__cta {
  width: 100% !important;
  padding: 14px 22px !important;
  font-size: 15px !important;
}


/* Body scroll lock wanneer menu open */
body.llm-menu-open {
  overflow: hidden;
}


/* -----------------------------------------------------------------
   8. OUDE ELEMENTOR HEADER VERBERGEN
----------------------------------------------------------------- */
body:not(.elementor-editor-active) .elementor-location-header {
  display: none !important;
}
