/* Elementor Pro: allow the menu widget to span its column/container.
   Ancestor containers must use Overflow: Default or Visible in Elementor. */
.elementor-widget-katoula-category-menu,
.elementor-widget-katoula-category-menu > .elementor-widget-container { width:100%; min-width:0; }

/* Katoula: three-level WooCommerce category navigation */
.katoula-categories, .katoula-categories * { box-sizing: border-box; }
.katoula-categories { --kt-ink:#202126; --kt-muted:#777b83; --kt-hover:#f5f7f9; --kt-border:#e6e8ec; --kt-accent:#087f78; position:relative; width:100%; z-index:1001; color:var(--kt-ink); background:#fff; border-top:1px solid var(--kt-border); border-bottom:1px solid var(--kt-border); font-family:inherit; font-size:14px; line-height:1.4; }
.katoula-categories ul { margin:0; padding:0; list-style:none; }
.katoula-categories a { text-decoration:none; color:inherit; }
.katoula-categories button { appearance:none; border:0; background:transparent; font:inherit; color:inherit; cursor:pointer; }
.katoula-categories a:focus-visible, .katoula-categories button:focus-visible { outline:2px solid var(--kt-accent); outline-offset:2px; border-radius:3px; }
.katoula-categories .kt-mobile-toggle { display:none; }
.kt-roots { display:flex; align-items:stretch; justify-content:space-between; gap:0; width:100%; }
.kt-root { position:static; flex:0 0 auto; }
.kt-root-head { display:flex; align-items:center; height:48px; white-space:nowrap; }
.kt-root-link { display:inline-flex; align-items:center; height:100%; padding:0 8px 0 11px; font-weight:550; }
.kt-root-toggle { height:100%; display:flex; align-items:center; padding:0 9px 0 1px; }
.kt-chevron { display:block; width:7px; height:7px; transform:rotate(45deg); border-right:1.8px solid currentColor; border-bottom:1.8px solid currentColor; transition:transform .15s ease; margin-top:-4px; }
.kt-root:hover > .kt-root-head, .kt-root:focus-within > .kt-root-head, .kt-root.kt-open > .kt-root-head { color:var(--kt-accent); background:var(--kt-hover); }
.kt-root:hover .kt-root-toggle .kt-chevron, .kt-root.kt-open .kt-root-toggle .kt-chevron { transform:rotate(225deg); margin-top:3px; }
.kt-panel { display:none; position:absolute; top:100%; left:0; width:100%; background:#fff; border:1px solid var(--kt-border); box-shadow:0 16px 30px rgba(20,29,36,.12); border-radius:0 0 9px 9px; padding:18px 23px 23px; max-height:min(75vh,750px); overflow-y:auto; overscroll-behavior:contain; z-index:1002; }
.kt-root:hover > .kt-panel, .kt-root:focus-within > .kt-panel, .kt-root.kt-open > .kt-panel { display:block; }
.kt-all { display:block; padding:10px 12px; background:var(--kt-hover); border-radius:5px; margin-bottom:16px; }
.kt-all:hover { color:var(--kt-accent); }
.kt-count { color:var(--kt-muted); font-size:.9em; font-weight:400; white-space:nowrap; }
.kt-sections { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px 30px; }
.kt-section { min-width:0; break-inside:avoid; }
.kt-section-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:5px; }
.kt-section-link { font-weight:700; font-size:14px; }
.kt-section-toggle { display:none; }
.kt-leaves li { line-height:1.5; }
.kt-leaves a { display:inline-block; width:100%; padding:3px 0; overflow-wrap:break-word; color:#444b53; }
.kt-leaves a:hover, .kt-section-link:hover { color:var(--kt-accent); text-decoration:underline; }
.kt-all-leaf { display:none; }
@media (max-width:1150px) {
  .katoula-categories { border:1px solid var(--kt-border); border-radius:8px; }
  .katoula-categories .kt-mobile-toggle { display:flex; align-items:center; gap:10px; justify-content:flex-start; width:100%; min-height:48px; padding:12px 16px; font-weight:650; }
  .kt-hamburger { font-size:18px; font-weight:400; line-height:1; }
  .kt-mobile-toggle .kt-chevron { margin-left:auto; }
  .kt-mobile-toggle[aria-expanded="true"] .kt-chevron { transform:rotate(225deg); margin-top:3px; }
  .kt-menu { display:none; position:absolute; left:0; right:0; top:100%; max-height:75vh; overflow-y:auto; background:#fff; border:1px solid var(--kt-border); box-shadow:0 15px 24px rgba(20,29,36,.12); z-index:1002; }
  .katoula-categories.kt-mobile-open .kt-menu { display:block; }
  .kt-roots { display:block; }
  .kt-root { border-bottom:1px solid var(--kt-border); }
  .kt-root-head { height:auto; min-height:47px; }
  .kt-root-link { flex:1; padding:12px 16px; }
  .kt-root-toggle { min-width:48px; min-height:46px; justify-content:center; border-left:1px solid var(--kt-border) !important; }
  .kt-panel, .kt-root:hover > .kt-panel, .kt-root:focus-within > .kt-panel { display:none; position:static; width:auto; max-height:none; overflow:visible; box-shadow:none; border:0; border-radius:0; padding:8px 13px 13px; background:#fbfbfc; }
  .kt-root.kt-open > .kt-panel { display:block; }
  .kt-all { background:#eef3f2; margin:4px 0 8px; }
  .kt-sections { display:block; }
  .kt-section { border-top:1px solid var(--kt-border); }
  .kt-section-head { min-height:42px; margin:0; }
  .kt-section-link { flex:1; padding:11px 6px 11px 10px; font-weight:600; }
  .katoula-categories .kt-section-toggle { display:flex; width:44px; min-height:42px; align-items:center; justify-content:center; }
  .kt-section.kt-open .kt-section-toggle .kt-chevron { transform:rotate(225deg); margin-top:3px; }
  .kt-leaves { display:none; padding:1px 8px 10px 18px !important; }
  .kt-section.kt-open > .kt-leaves { display:block; }
  .kt-leaves a { padding:7px 3px; }
  .kt-all-leaf { display:block; font-weight:650; }
}
@media (prefers-reduced-motion:reduce) { .katoula-categories .kt-chevron { transition:none; } }
