/* filtersMobileV2.css — val 1, UX filtre pe mobil (libris.ro V2)
 * v1.01, 8 oct 2026 (v1.00: header sticky → fixed). Se încarcă DUPĂ bundle-base.min.css (care conține rebranding.min.css, unde .overflow-class-y
 * are max-height:165px global): <link> în body, imediat după include-ul de header, doar în template-urile V2.
 * Doar CSS, doar @media (max-width:768px) — același breakpoint ca rebrandingCateg-1.min.css.
 * Zero markup, zero JS, zero server. Rollback = scoaterea <link>-ului (sau enabled=false pe V2).
 *
 * Markup real (categorie, 7 oct 2026):
 *   div.hiden.d-none.d-lg-block.filters
 *     section.filter-categ > div.categ-filter-desk
 *       div.close-categ-filter-desk (header "Filtre" + div.close-btn-categ-filter > p "x")
 *       h3.filter-titles.filter-categ-title + ul.overflow-class-y.overflow-class-special (subcategorii)
 *     div.widget-filters__actions > a.widget-filters__actions_custom "Reseteaza filtrele" (doar cu filtru activ)
 *     section.border-bottom-section-filter.filter-colectii > div.popup-colectii-mob
 *       h3.filter-titles.filter-colectii-title + ul.overflow-class-y > li > label[.cc-pg-checked-label] > a > input[type=checkbox]
 *   JS (iv.main.min.js 2.84): deschidere = scoate .hiden și .d-none de pe .filters; închidere = le pune la loc.
 *   Nimic nu atinge <body>. body.mobile-menu-open există în rebranding.min.css dar e nefolosit.
 *
 * Specificitate: toate regulile sunt prefixate cu .filters (0,2,x) ca să bată regulile existente (0,1,x–0,3,x)
 * fără !important, cu o singură excepție: scrollbar-color (originalul are !important).
 */
@media (max-width: 768px) {

  /* ---------- 1. Overlay: fixed pe viewport, un singur scroll, fundal pe tot ecranul ----------
   * ÎNAINTE (rebrandingCateg-1, @768): .filters{position:absolute;top:0;left:0;height:100%;width:100%;padding:0;z-index:1031;background:#fff}
   * DUPĂ: fixed + inset 0 + overflow-y:auto; padding lateral 16px (era 0, lista lipită la x=0); safe-area jos. */
  .filters {
    position: fixed;
    top: 0; right: 0; bottom: 0; left: 0;
    height: auto;
    width: auto;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;          /* nu propagă scroll-ul la pagină (fallback când :has nu există) */
    padding: calc(60px + env(safe-area-inset-top, 0px)) 16px calc(24px + env(safe-area-inset-bottom, 0px)) 16px; /* 60px = loc pentru header-ul fixed */
    box-sizing: border-box;
  }

  /* Scroll-lock pe body cât overlay-ul e deschis. Fără JS, deci pe :has() (iOS 15.4+, Chrome 105+, FF 121+).
   * Browserele fără :has() ignoră regula; rămân cu overscroll-behavior de mai sus.
   * ÎNAINTE: nimic (body derulează sub overlay). */
  body:has(.filters:not(.d-none):not(.hiden)) {
    overflow: hidden;
    height: 100vh;
  }

  /* ---------- 2. Header "Filtre / x": fixed pe viewport (ca originalul), x ≥ 44px ----------
   * ÎNAINTE: .close-categ-filter-desk{position:fixed;top:0;width:100%;padding:20px;z-index:2}  .close-btn-categ-filter{width:26px;height:26px}
   * v1.00 avea sticky: greșit, sticky ține doar în părintele lui (div.categ-filter-desk) și header-ul dispărea după
   * subcategorii (văzut pe device, 8 oct 11:38). v1.01: fixed, cu padding-top pe .filters ca să nu acopere conținutul. */
  .filters .close-categ-filter-desk {
    position: fixed;
    top: 0; left: 0; right: 0;
    width: auto;
    margin: 0;
    padding: 12px 16px;
    padding-top: calc(12px + env(safe-area-inset-top, 0px));
    min-height: 56px;
    z-index: 2;
  }
  .filters .close-btn-categ-filter {
    width: 44px;
    height: 44px;
    margin: -6px -6px -6px 0;            /* zona de tap crește, desenul rămâne la locul lui */
    background-color: #fff;              /* era #e6f0ff pe fundal #e6f0ff = invizibil */
  }
  .filters .close-categ-filter-desk p { top: 0; }  /* era top:-4px (reglaj optic pentru 26px) */

  /* Titlurile: ÎNAINTE .filter-titles{margin:65px 0 0 20px} (loc pentru header); locul vine acum din padding-top pe .filters. */
  .filters .filter-titles { margin: 8px 0 0 0; }
  .filters .filter-colectii-title { margin: 8px 0 4px 0; padding: 14px 0 10px 0; }   /* era margin:20px 0 15px; padding:10px 0 15px */

  /* Padding-urile interne care dublau marginea: le aducem la 0, .filters poartă cei 16px.
   * ÎNAINTE: .border-bottom-section-filter{padding:0 40px 0 20px}  .filter-categ ul{padding:0 20px;margin:0 40px 0 0} */
  .filters .border-bottom-section-filter { padding: 0; }
  .filters .filter-categ ul { padding: 0; margin: 0; }
  .filters .filter-categ { margin: 0 0 8px 0; }                       /* era margin:20px 0 */

  /* ---------- 3. Grupurile de fațete: fără scroll-în-scroll ----------
   * ÎNAINTE (rebranding.min.css global + Categ-1 @768): .overflow-class-y{max-height:165px;overflow:scroll;overflow-x:hidden}
   * DUPĂ: grupul întreg; un singur scroll (al overlay-ului). Lista de SUBCATEGORII (.overflow-class-special, 340px)
   * rămâne plafonată intenționat: nu e fațetă, poate avea 50 de intrări și ar împinge fațetele sub ~2000px.
   * Decizie de confirmat cu lead-ul; val 2 o rezolvă cu <details>. */
  .filters .overflow-class-y {
    max-height: none;
    overflow: visible;
    scrollbar-color: auto !important;    /* originalul are !important pe scrollbar-color; îl neutralizăm la fel */
  }
  .filters .overflow-class-y.overflow-class-special {
    max-height: 50vh;                    /* era 340px fix; 50vh ≈ 330–460px pe 667–926px înălțime */
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }

  /* ---------- 4. Rândul de valoare ≥ 44px, zona de tap = tot <label>, checkbox 22px ----------
   * ÎNAINTE: .filter-colectii ul li{font-size:14px;padding-bottom:8px;width:270px} (rând ≈ 29px, țintă = textul, ≈21px)
   *          .filter-colectii ul li label{margin:0;padding:0} ; bootstrap label{display:inline-block;margin-bottom:.5rem}
   *          input[type=checkbox]: nicio regulă (nativ ≈ 13px)
   * DUPĂ: li fără padding, width:auto; label flex, min-height 44px, padding 10px 8px; a umple label-ul; checkbox 22px. */
  .filters .filter-colectii ul li,
  .filters .filter-editura ul li,
  .filters .filter-recomandari ul li,
  .filters .filter-varsta ul li {
    width: auto;
    padding: 0;
    margin: 0;
    display: block;
  }
  .filters .filter-colectii ul li label,
  .filters .filter-editura ul li label,
  .filters .filter-recomandari ul li label,
  .filters .filter-varsta ul li label {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 44px;
    margin: 0 -8px;                      /* fundalul stării bifate iese ușor în afara textului */
    padding: 10px 8px;
    border-radius: 8px;
    box-sizing: border-box;
    cursor: pointer;
  }
  .filters .filter-colectii ul li label a,
  .filters .filter-editura ul li label a,
  .filters .filter-recomandari ul li label a,
  .filters .filter-varsta ul li label a {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 24px;
    color: #00205b;
    text-decoration: none;
    font-size: 14px;                     /* neschimbat intenționat: înălțimea vine din padding */
    line-height: 1.3;
  }
  .filters .filter-colectii ul li input[type="checkbox"],
  .filters .filter-editura ul li input[type="checkbox"],
  .filters .filter-recomandari ul li input[type="checkbox"],
  .filters .filter-varsta ul li input[type="checkbox"] {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    margin: 0;
    accent-color: #00205b;
  }

  /* Stare bifată: ÎNAINTE .cc-pg-checked-label{font-weight:800} (Lato n-are 800 → cade pe 700, invizibil).
   * DUPĂ: fundal + bold 700. */
  .filters .cc-pg-checked-label {
    background-color: #e6f0ff;
    font-weight: 700;
  }
  /* Valorile bifate urcă primele în grup (văzut pe device, 8 oct: UNIVERSUL JURIDIC bifat era a 5-a, ascunsă sub
   * plafonul de 165px; utilizatorul n-a știut că filtrul e aplicat). ul-ul e deja display:flex;flex-direction:column
   * în rebrandingCateg-1, deci `order` reordonează doar vizual: DOM-ul și link-urile rămân identice. Cere :has(). */
  .filters .filter-colectii ul li:has(> label.cc-pg-checked-label),
  .filters .filter-editura ul li:has(> label.cc-pg-checked-label),
  .filters .filter-recomandari ul li:has(> label.cc-pg-checked-label),
  .filters .filter-varsta ul li:has(> label.cc-pg-checked-label) { order: -1; }

  /* Link vizitat lua culoarea implicită a:visited (văzut pe device: „UNIVERSUL JURIDIC" albastru deschis). */
  .filters .filter-colectii ul li label a:visited,
  .filters .filter-categ ul li a:visited { color: #00205b; }

  /* Subcategoriile (.filter-categ ul li > a): ÎNAINTE font 14px/1.2, padding-bottom 10px → țintă ≈17px.
   * DUPĂ: link-ul umple rândul, min 44px. */
  .filters .filter-categ ul li { padding: 0; width: 100%; }
  .filters .filter-categ ul li a {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 44px;
    padding: 8px 0;
    box-sizing: border-box;
  }

  /* ---------- 5. Butoane ≥ 44px ----------
   * ÎNAINTE: .filtreaza-ordoneaza-item-mob a / .ordoneaza-list-btn {padding:3px 15px;font-size:20px (16px ≤455px)} → ~32px / 29,5px
   *          .widget-filters__actions_custom{padding:3px 15px;font-size:16px} → 32px
   *          li.ordoneaza-item a{padding-bottom:10px;padding-left:22px} (primul și padding-top:10px) */
  .filtreaza-ordoneaza-item-mob a,
  .ordoneaza-list-btn {
    min-height: 44px;
    padding: 8px 15px;
    box-sizing: border-box;
  }
  .filters .widget-filters__actions_custom,
  .widget-filters__actions_custom {
    min-height: 44px;
    padding: 8px 15px;
    box-sizing: border-box;
  }
  .filters .widget-filters__actions { margin: 8px 0; }
  li.ordoneaza-item a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 10px 22px;
    box-sizing: border-box;
  }
  li.ordoneaza-item a:first-child { padding-top: 10px; }
}
