/* i-Light horizontal menu accessibility v1.0.0. The legacy mobile menu is untouched. */
:root { --il-site-access-v100-ready: 1; }
header#header#header .ilhnav-disclosure-v100 { display: none !important; }
@media (min-width: 992px) {
  /* Use the actual SO wrapper chain. Natural-width items wrap only if space runs out. */
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .megamenu-pattern > .container { width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box; }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .megamenu-pattern > .container > ul.megamenu {
    display: flex !important; flex-wrap: wrap !important; align-items: stretch; justify-content: flex-start;
    width: 100% !important; min-width: 0 !important; max-width: 100% !important; box-sizing: border-box;
    column-gap: 12px; row-gap: 4px; margin: 0 !important; padding: 0 !important; white-space: normal !important;
  }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .megamenu-pattern > .container > ul.megamenu > li {
    float: none !important; flex: 0 1 auto !important; min-width: 0 !important; max-width: 100% !important;
    box-sizing: border-box; margin: 0 !important;
  }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .megamenu-pattern > .container > ul.megamenu > li > a,
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .megamenu-pattern > .container > ul.megamenu > li > a strong,
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .megamenu-pattern > .container > ul.megamenu > li > a .description {
    white-space: normal !important; overflow-wrap: anywhere; box-sizing: border-box; min-width: 0 !important;
  }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] ul.megamenu > li[data-ilhnav-item-v100] { position: relative !important; }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] ul.megamenu > li[data-ilhnav-item-v100] > a { padding-right: 44px !important; min-height: 44px; }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] ul.megamenu > li[data-ilhnav-item-v100] > a > .caret { display: none !important; }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .ilhnav-disclosure-v100 {
    display: inline-flex !important; position: absolute; right: 0; top: 0; align-items: center; justify-content: center;
    width: 44px; min-width: 44px; height: 100%; min-height: 44px; margin: 0; padding: 0; border: 0;
    background: transparent; color: inherit; border-radius: 3px; cursor: pointer; font: 22px/1 Arial, sans-serif; z-index: 2;
  }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .ilhnav-disclosure-v100:hover { background: rgba(255,255,255,.16); }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .ilhnav-disclosure-v100[aria-expanded="true"] > span { transform: rotate(180deg); }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] a:focus-visible,
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] button:focus-visible { outline: 3px solid #005fcc !important; outline-offset: 2px; box-shadow: 0 0 0 4px #fff !important; }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] ul.megamenu > li[data-ilhnav-item-v100] > .sub-menu {
    display: none !important;
  }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] ul.megamenu > li.ilhnav-open-v100 > .sub-menu {
    display: block !important; visibility: visible !important; opacity: 1 !important;
    position: fixed !important; left: var(--ilhnav-left) !important; top: var(--ilhnav-top) !important; right: auto !important; bottom: auto !important;
    width: var(--ilhnav-width) !important; max-width: calc(100vw - 16px) !important; min-width: 0 !important;
    height: auto !important; max-height: var(--ilhnav-height) !important; box-sizing: border-box !important;
    margin: 0 !important; padding: 0 !important; transform: none !important; transition: none !important; animation: none !important;
    overflow-x: hidden !important; overflow-y: auto !important; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
    background: #fff; color: #333; box-shadow: 0 5px 18px rgba(0,0,0,.2); z-index: 2147480900 !important;
  }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] ul.megamenu > li.ilhnav-open-v100 > .sub-menu > .content {
    display: block !important; visibility: visible !important; opacity: 1 !important; height: auto !important; max-height: none !important;
    overflow: visible !important; transform: none !important; transition: none !important; animation: none !important; box-sizing: border-box !important;
  }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .sub-menu .hover-menu .menu > ul > li > ul {
    display: block !important; position: static !important; visibility: visible !important; opacity: 1 !important;
    left: auto !important; right: auto !important; top: auto !important; bottom: auto !important; transform: none !important;
    width: auto !important; min-width: 0 !important; max-width: 100% !important; height: auto !important; max-height: none !important;
    margin: 0 0 10px 10px !important; padding: 0 0 0 10px !important; border: 0 !important; border-left: 2px solid #ddd !important;
    box-shadow: none !important; float: none !important; background: transparent !important; overflow: visible !important;
  }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .sub-menu .hover-menu .menu a { white-space: normal !important; overflow-wrap: anywhere; }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .sub-menu .hover-menu .menu a > .fa-angle-right { display: none !important; }
  /* Card/column count follows the actual panel width, not only the window width. */
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .sub-menu[data-ilhnav-columns-v100="1"] .categories.item-style99 > .row > [class*="col-"] { width: 100% !important; }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .sub-menu[data-ilhnav-columns-v100="2"] .categories.item-style99 > .row > .col-sm-4 { width: 50% !important; }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .sub-menu[data-ilhnav-columns-v100="1"] .ilight-technical-menu-v1 .ilt-cards { grid-template-columns: minmax(0,1fr) !important; }
  header#header#header .container-megamenu.horizontal[data-ilhnav-desktop-v100] .sub-menu[data-ilhnav-columns-v100="2"] .ilight-technical-menu-v1 .ilt-cards { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}

/* i-Light information access 1.0.1: server-rendered links remain usable without JavaScript. */
.footer-content .il-access-info-v101,
.footer-content .il-access-info-v101 * { box-sizing: border-box; }
.footer-content .il-access-info-v101 {
    display: block;
    clear: both;
    width: 100%;
    min-width: 0;
    margin: 0 0 20px;
    padding: 20px;
    border: 1px solid #dde4ec;
    border-top: 3px solid #ff8618;
    border-radius: 14px;
    background: #fff;
    color: #223142;
    text-align: left;
}
.footer-content .il-access-info-v101 h2 {
    margin: 0 0 8px;
    padding: 0;
    color: #223142;
    font-size: 18px;
    line-height: 1.4;
    font-weight: 700;
    text-transform: none;
}
.footer-content .il-access-info-v101 ul {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.footer-content .il-access-info-v101 li { min-width: 0; margin: 0; padding: 0; }
.footer-content .il-access-info-v101 a {
    display: flex;
    align-items: center;
    min-height: 44px;
    width: 100%;
    margin: 0;
    padding: 11px 0;
    border-bottom: 1px solid #e1e6ed;
    background: transparent;
    color: #223142 !important;
    font-size: 14px;
    line-height: 1.55;
    text-align: left;
    text-decoration: underline;
    text-decoration-color: #b8c1cb;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
}
.footer-content .il-access-info-v101 a:hover { color: #944100 !important; text-decoration-color: currentColor; }
.footer-content .il-access-info-v101 a:focus-visible {
    outline: 3px solid #a64700;
    outline-offset: 2px;
    border-radius: 2px;
}
@media (min-width: 576px) {
    .footer-content .il-access-info-v101 ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Tablet desktop-theme footer: original links stay in place, with usable touch targets. */
@media (max-width: 991px) {
    footer.footer-container.il-footer-desktop-ready .footer-info-clean a {
        min-height: 44px;
        padding-top: 11px;
        padding-bottom: 11px;
    }
}
/* The EN content uses .footer-contacts, while LV uses .footer-contacts-clean.
   Theme list-item colors override the EN parent's light color on its dark footer. */
html[lang|="en"] footer.footer-container.typefooter-1 .footer-contacts,
html[lang|="en"] footer.footer-container.typefooter-1 .footer-contacts .contacts-list,
html[lang|="en"] footer.footer-container.typefooter-1 .footer-contacts .contacts-list li {
    color: #f2f2f2 !important;
}
html[lang|="en"] footer.footer-container.typefooter-1 .footer-contacts .contacts-list a {
    color: #f2f2f2 !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}
/* The EN footer is not enhanced by mobile-footer-v102. Keep its native information
   links visible on tablet/mobile desktop-theme pages even without JavaScript. */
html[lang|="en"] footer.footer-container.typefooter-1 #collapse-footer {
    display: block !important;
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
}
html[lang|="en"] footer.footer-container.typefooter-1 > .button-toggle { display: none !important; }
@media (max-width: 991px) {
    html[lang|="en"] footer.footer-container.typefooter-1 .footer-info-clean a {
        display: inline-block;
        min-height: 44px;
        padding-top: 11px;
        padding-bottom: 11px;
    }
    html[lang|="en"] footer.footer-container.typefooter-1 .footer-info-clean .container { max-width: 100%; }
}
html[lang|="en"] footer.footer-container.typefooter-1 .footer-info-clean a:focus-visible,
html[lang|="en"] footer.footer-container.typefooter-1 .footer-contacts a:focus-visible {
    outline: 3px solid #ffad65;
    outline-offset: 3px;
}

/* i-Light v1.0.39 homepage: reserve the enhanced row geometry in the first paint.
   The native wrapper chain is deliberately matched; disclosure controls retain
   their 44px targets and existing keyboard/hover behavior. Other routes and the
   <=991px native drawer keep their original stylesheet rules. */
@media (min-width: 992px) {
  body.common-home header#header#header .container-megamenu.horizontal .megamenu-pattern > .container {
    width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box;
  }
  body.common-home header#header#header .container-megamenu.horizontal .megamenu-pattern > .container > ul.megamenu {
    display: flex !important; flex-wrap: nowrap !important; align-items: stretch; justify-content: flex-start;
    width: 100% !important; min-width: 0 !important; max-width: 100% !important; box-sizing: border-box;
    column-gap: 4px; row-gap: 4px; margin: 0 !important; padding: 0 !important; white-space: normal !important;
  }
  body.common-home header#header#header .container-megamenu.horizontal .megamenu-pattern > .container > ul.megamenu > li {
    float: none !important; flex: 0 1 auto !important; min-width: min-content !important; max-width: 100% !important;
    box-sizing: border-box; margin: 0 !important;
  }
  body.common-home header#header#header .container-megamenu.horizontal .megamenu-pattern > .container > ul.megamenu > li > a,
  body.common-home header#header#header .container-megamenu.horizontal .megamenu-pattern > .container > ul.megamenu > li > a strong,
  body.common-home header#header#header .container-megamenu.horizontal .megamenu-pattern > .container > ul.megamenu > li > a .description {
    white-space: normal !important; overflow-wrap: normal; box-sizing: border-box; min-width: 0 !important;
  }
  body.common-home header#header#header .container-megamenu.horizontal .megamenu-pattern > .container > ul.megamenu > li.with-sub-menu {
    position: relative !important;
  }
  body.common-home header#header#header .container-megamenu.horizontal .megamenu-pattern > .container > ul.megamenu > li.with-sub-menu > a {
    position: relative; padding-right: 44px !important; min-height: 44px;
  }
  body.common-home header#header#header .container-megamenu.horizontal .megamenu-pattern > .container > ul.megamenu > li > a { padding: 8px 6px !important; min-height: 44px; }
  body.common-home header#header#header .container-megamenu.horizontal .megamenu-pattern > .container > ul.megamenu > li:not(.with-sub-menu) { flex-shrink: 0 !important; }
  body.common-home header#header#header .container-megamenu.horizontal .megamenu-pattern > .container > ul.megamenu > li:not(.with-sub-menu) > a { padding-right: 6px !important; }
  /* Before enhancement, retain the native arrow inside the reserved control slot.
     The existing active-state rule hides it when the real button is attached. */
  body.common-home header#header#header .container-megamenu.horizontal .megamenu-pattern > .container > ul.megamenu > li.with-sub-menu > a > .caret {
    position: absolute; right: 18px; top: 50%; margin: 0;
  }
}
