/* =====================================================================
   TitanCrafts – Mobiel menu (Elementor popup)  ·  CSS-ONLY versie
   Drill-down navigatie: root -> submenu schuift in, terug-knop terug.
   Werkt met verborgen radio-inputs (geen JavaScript nodig).
   Zelfde merk-taal als de desktop mega-menu, maar mobiel-vriendelijk.
   Alles scoped onder .tcm zodat het niet lekt in de rest van het thema.
   Plak deze CSS in  Popup → Advanced → Custom CSS  (of tussen <style> in
   dezelfde HTML-widget als de markup).
   ===================================================================== */

.tcm {
  --tc-ink:        #272922;
  --tc-ink-2:      #30322a;
  --tc-gold:       #fcaf17;
  --tc-gold-soft:  #ffd77a;
  --tc-gold-deep:  #a06f00;
  --tc-gold-tint:  #fff6e0;
  --tc-cream:      #f7f3ec;
  --tc-cream-2:    #e8ddce;
  --tc-paper:      #efe9df;
  --tc-text:       #272922;
  --tc-muted:      #4f4a41;
  --tc-muted-2:    #8a8175;
  --tc-muted-3:    #b7ab99;
  --tc-line:       rgba(32, 7, 7, .09);
  --tc-line-soft:  rgba(32, 7, 7, .08);
  --tc-line-2:     rgba(32, 7, 7, .12);
  --tc-line-3:     rgba(32, 7, 7, .14);
  --tc-line-dark:  rgba(247, 243, 236, .14);
  --tc-dur:        .34s;
  --tc-ease:       cubic-bezier(.4, 0, .2, 1);

  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: 420px;
  background: #fff;
  overflow: hidden;
  font-family: "Inter", system-ui, -apple-system, sans-serif;
  color: var(--tc-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.tcm *,
.tcm *::before,
.tcm *::after { box-sizing: border-box; }
.tcm a { color: inherit; text-decoration: none; }

/* verborgen navigatie-radios: sturen de drill-down aan, uit beeld maar
   nog focusbaar voor toetsenbord. */
.tcm__nav {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  clip: rect(0 0 0 0);
  overflow: hidden;
  white-space: nowrap;
}

/* ---------------------------------------------------------------------
   Defensive reset: het thema / WooCommerce stylet soms elk <label>/<button>
   (goud, padding, radius). Neutraliseren voor onze eigen controls.
   --------------------------------------------------------------------- */
.tcm .tcm__cat,
.tcm .tcm__back {
  font: inherit;
  color: inherit;
  background: transparent;
  border: 0;
  margin: 0;
  box-shadow: none;
  text-transform: none;
  cursor: pointer;
  text-align: left;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

/* re-assert merk-kleuren tegen thema-!important links */
.tcm .tcm__link,
.tcm .tcm__cat { color: var(--tc-text) !important; }
.tcm .tcm__pill { color: var(--tc-text) !important; }
.tcm .tcm__pill:active { color: var(--tc-gold-deep) !important; }
.tcm .tcm__bbq-link { color: var(--tc-gold) !important; }
.tcm .tcm__cta-btn { color: var(--tc-ink) !important; }
.tcm .tcm__all { color: var(--tc-gold-deep) !important; }

/* =====================================================================
   STAGE + PANELS
   ===================================================================== */
.tcm__stage {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.tcm__panel {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  background: #fff;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  transition: transform var(--tc-dur) var(--tc-ease),
              opacity var(--tc-dur) var(--tc-ease);
  will-change: transform;
}
.tcm__panel--root { transform: translateX(0); }
.tcm__panel--sub  { transform: translateX(100%); }

/* ---- CSS-only drill-down ---------------------------------------------
   Een submenu-radio is aangevinkt -> bijbehorend paneel schuift in,
   het root-paneel schuift half weg. De radios staan als sibling vóór
   .tcm__stage, dus de ~ selector bereikt de panelen.
   --------------------------------------------------------------------- */
#tcm-buiten:checked ~ .tcm__stage .tcm__panel--buitenkeukens,
#tcm-tuin:checked   ~ .tcm__stage .tcm__panel--tuinmeubelen { transform: translateX(0); }

#tcm-buiten:checked ~ .tcm__stage .tcm__panel--root,
#tcm-tuin:checked   ~ .tcm__stage .tcm__panel--root {
  transform: translateX(-24%);
  opacity: 0;
  pointer-events: none;
}

/* toetsenbord-focus zichtbaar maken op de knop die bij de radio hoort */
.tcm__nav:focus-visible + .tcm__stage .tcm__panel--root .tcm__cat,
.tcm__cat:focus-visible { outline: 2px solid var(--tc-gold); outline-offset: -2px; border-radius: 6px; }

/* =====================================================================
   ROOT PANEL
   ===================================================================== */
.tcm__rootlist { padding: 6px 0 20px; }

.tcm .tcm__cat,
.tcm .tcm__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
  padding: 17px 22px;
  border-bottom: 1px solid var(--tc-line-soft);
  font: 600 16.5px/1.2 "Inter", sans-serif;
  color: var(--tc-text);
  background: transparent;
  transition: background .16s ease, color .16s ease;
}
.tcm__cat:active,
.tcm__link:active { background: var(--tc-gold-tint); color: var(--tc-gold-deep) !important; }

.tcm__cat-label { display: inline-flex; align-items: baseline; gap: 10px; }
.tcm__cat-tag {
  font: 600 10px/1 "Inter", sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--tc-gold-deep);
}
.tcm__chev { flex: none; color: var(--tc-muted-2); opacity: .8; }

/* =====================================================================
   SUB PANEL HEADER (terug-knop)
   ===================================================================== */
.tcm__subhead {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 12px 16px;
  background: #fff;
  border-bottom: 1px solid var(--tc-line-2);
}
.tcm .tcm__back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px 8px 6px;
  font: 600 15px/1 "Inter", sans-serif;
  color: var(--tc-text);
  border-radius: 10px;
}
.tcm__back:active { background: var(--tc-cream); }
.tcm__back:focus-visible { outline: 2px solid var(--tc-gold); outline-offset: 2px; }
.tcm__back svg { color: var(--tc-gold-deep); }

.tcm__subbody {
  padding: 18px 18px 22px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

/* eyebrow labels (zelfde als desktop) */
.tcm__eyebrow {
  font: 600 11px/1 "Inter", sans-serif;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--tc-gold-deep);
  margin-bottom: 12px;
}

/* =====================================================================
   BBQ BLOK "Kies je vuur" (donker, compacte kaarten)
   ===================================================================== */
.tcm__bbq {
  background: var(--tc-ink);
  color: var(--tc-cream);
  border-radius: 16px;
  padding: 18px 16px 18px;
}
.tcm__bbq .tcm__eyebrow { color: var(--tc-gold); margin-bottom: 6px; }
.tcm__bbq-title {
  margin: 0 0 14px;
  font: 500 22px/1.05 "Bebas Neue", "Inter", sans-serif;
  letter-spacing: .02em;
  color: var(--tc-cream);
}
.tcm__fires { display: flex; flex-direction: column; gap: 10px; }
.tcm__fire {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 10px;
  border-radius: 13px;
  border: 1px solid var(--tc-line-dark);
  background: var(--tc-ink);
  transition: background .16s ease, border-color .16s ease;
}
.tcm__fire:active { background: var(--tc-ink-2); border-color: var(--tc-gold); }
.tcm__fire-thumb {
  width: 62px;
  height: 62px;
  flex: none;
  border-radius: 10px;
  overflow: hidden;
  background: var(--tc-paper) center / cover no-repeat;
}
.tcm__fire-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tcm__fire-body { min-width: 0; }
.tcm__fire-name { display: block; font: 600 16px/1.1 "Inter", sans-serif; color: var(--tc-cream); }
.tcm__fire-desc { display: block; font: 400 12px/1.35 "Inter", sans-serif; color: var(--tc-muted-3); margin-top: 3px; }

.tcm__bbq-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  font: 600 13px/1 "Inter", sans-serif;
  color: var(--tc-gold) !important;
}
.tcm__bbq-link:active { color: var(--tc-gold-soft) !important; }

/* =====================================================================
   FILTER-PILLS
   ===================================================================== */
.tcm__group { }
.tcm__pills { display: flex; flex-wrap: wrap; gap: 8px; }
.tcm__pill {
  padding: 8px 14px;
  border: 1px solid var(--tc-line-3);
  border-radius: 999px;
  font: 600 14px/1 "Inter", sans-serif;
  color: var(--tc-text);
  background: #fff;
  transition: border-color .16s ease, color .16s ease, background .16s ease;
}
.tcm__pill:active {
  border-color: var(--tc-gold);
  color: var(--tc-gold-deep) !important;
  background: var(--tc-gold-tint);
}

/* =====================================================================
   DROP-ITEMS (Tuinmeubelen)
   ===================================================================== */
.tcm__items { display: flex; flex-direction: column; gap: 4px; }
.tcm__item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px;
  border-radius: 13px;
  transition: background .16s ease;
}
.tcm__item:active { background: var(--tc-gold-tint); }
.tcm__item-thumb {
  width: 58px;
  height: 58px;
  flex: none;
  border-radius: 10px;
  overflow: hidden;
  background: var(--tc-paper) center / cover no-repeat;
}
.tcm__item-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tcm__item-body { min-width: 0; }
.tcm__item-title { display: block; font: 600 16px/1.15 "Inter", sans-serif; color: var(--tc-text); }
.tcm__item-desc { display: block; font: 400 12.5px/1.3 "Inter", sans-serif; color: var(--tc-muted-2); margin-top: 2px; }

.tcm__all {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
  padding: 14px 10px 4px;
  border-top: 1px solid var(--tc-line-soft);
  font: 600 13.5px/1 "Inter", sans-serif;
  color: var(--tc-gold-deep) !important;
}

/* =====================================================================
   CTA – prominent, blijft onderin plakken tijdens scrollen
   ===================================================================== */
.tcm__cta {
  /* staat gewoon onderaan de inhoud (niet vastgeplakt), zodat zichtbaar
     is dat je kunt scrollen. */
  margin: 8px -18px -22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 18px calc(16px + env(safe-area-inset-bottom, 0px));
  background: var(--tc-ink);
  border-top: 1px solid var(--tc-line-dark);
}
.tcm__cta-title { font: 600 14.5px/1.2 "Inter", sans-serif; color: var(--tc-cream); }
.tcm__cta-sub { font: 400 12px/1.3 "Inter", sans-serif; color: var(--tc-muted-3); margin-top: 3px; }
.tcm__cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: none;
  padding: 12px 18px;
  background: var(--tc-gold);
  color: var(--tc-ink) !important;
  border-radius: 999px;
  font: 600 13.5px/1 "Inter", sans-serif;
  white-space: nowrap;
  transition: background .16s ease, transform .16s ease;
}
.tcm__cta-btn:active { background: var(--tc-gold-soft); transform: translateY(1px); }

/* reduced motion */
@media (prefers-reduced-motion: reduce) {
  .tcm__panel { transition: none; }
}

/* =====================================================================
   VOLLEDIGE SCHERMHOOGTE binnen de Elementor-popup
   ---------------------------------------------------------------------
   Eén minimale regel: het menu vult de volledige schermhoogte, zodat de
   CTA onderaan het scherm komt. Alleen actief binnen een Elementor-popup,
   dus het testbestand en andere plekken blijven ongemoeid.
   We gebruiken 'svh' (small viewport height): die blijft STABIEL als de
   mobiele adresbalk in/uitschuift -> geen gespring. 100vh is de fallback.
   De popup-box zelf groeit vanzelf mee; we vechten niet met !important.
   ===================================================================== */
.elementor-popup-modal .tcm {
  /* hoogte van alles BOVEN het menu in de popup dat van de schermhoogte af
     moet (logo + padding). Pas dit getal aan als je header verandert. */
  --tc-chrome: 58.4px;            /* 32px padding + 26.4px logo */
  min-height: calc(100vh - var(--tc-chrome));   /* fallback */
  min-height: calc(100svh - var(--tc-chrome));  /* stabiel op mobiel */
}
