/* ==========================================================
   Lasnav icon visibility patch
   Keeps Crafto components intact while restoring each icon
   font and making icons inherit the correct foreground colour.
========================================================== */

/* Restore the intended icon font. This prevents typography rules
   from replacing icon glyphs with Red Hat Display/Text. */
i.bi,
.bi::before,
[class^="bi-"]::before,
[class*=" bi-"]::before {
    font-family: "bootstrap-icons" !important;
    font-style: normal !important;
    font-weight: normal !important;
}

i.feather,
.feather,
[class^="icon-feather-"],
[class*=" icon-feather-"] {
    font-family: "feather" !important;
    font-style: normal !important;
    font-weight: normal !important;
}

i.fa-solid,
i.fas {
    font-family: "Font Awesome 7 Free" !important;
    font-style: normal !important;
    font-weight: 900 !important;
}

i.fa-regular,
i.far {
    font-family: "Font Awesome 7 Free" !important;
    font-style: normal !important;
    font-weight: 400 !important;
}

i.fa-brands,
i.fab {
    font-family: "Font Awesome 7 Brands" !important;
    font-style: normal !important;
    font-weight: 400 !important;
}

i[class^="line-icon-"],
i[class*=" line-icon-"] {
    font-family: "icomoon" !important;
    font-style: normal !important;
    font-weight: normal !important;
}

i[class^="ti-"],
i[class*=" ti-"] {
    font-family: "themify" !important;
    font-style: normal !important;
    font-weight: normal !important;
}

/* Do not force every icon to blue. Icons should follow the text or
   component colour they sit inside. */
.bi,
.feather,
.fa-solid,
.fa-regular,
.fa-brands,
.fas,
.far,
.fab,
[class^="line-icon-"],
[class*=" line-icon-"],
[class^="ti-"],
[class*=" ti-"] {
    color: currentColor !important;
    opacity: 1 !important;
    visibility: visible !important;
    line-height: 1;
}

/* White icons on filled/dark controls. */
.bg-base-color > i,
.bg-dark-gray > i,
.bg-blue-whale > i,
.bg-blue-licorice > i,
.bg-charcoal-blue > i,
.bg-black > i,
.btn.btn-base-color i,
.btn.btn-dark-gray i,
.btn.btn-black i,
.btn.btn-blue-whale i,
.btn.with-rounded > span i,
.header-icon .bg-base-color i,
.swiper-button-next i,
.swiper-button-prev i,
.slider-navigation-style-01 i,
.slider-navigation-style-04 i,
.social-icon-style-02 a:hover i,
.text-white i,
a.text-white i {
    color: #ffffff !important;
}

/* Brand icons on light icon holders/cards. */
.feature-box-icon.bg-white i,
.feature-box-icon:not(.bg-base-color):not(.bg-dark-gray):not(.bg-blue-whale):not(.bg-blue-licorice) i,
.icon-with-text-style-08 .feature-box-icon.bg-white i,
.accordion .accordion-toggle i,
.text-base-color i,
i.text-base-color {
    color: var(--brand-blue) !important;
}

/* Header mail/phone remain readable in both transparent and sticky states. */
.header-button .btn-transparent-white i,
.navbar.header-transparent .header-button .btn i {
    color: #ffffff !important;
}
header.sticky .header-button .btn-transparent-white i,
header.header-always-fixed-scroll .header-button .btn-transparent-white i,
.header-reverse-scroll .header-button .btn-transparent-white i {
    color: currentColor !important;
}

/* Service dropdown SVG icons: explicit dimensions and contrast. */
.navbar .navbar-nav .dropdown.dropdown-with-icon-style02 .dropdown-menu li a > img,
.navbar .navbar-nav .dropdown-menu img[src*="icon-"] {
    display: block !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    object-fit: contain !important;
    opacity: 1 !important;
    visibility: visible !important;
    filter: none !important;
}

/* Ensure icon circles and arrow controls are never transparent. */
.feature-box-icon,
.btn.with-rounded > span,
.swiper-button-next,
.swiper-button-prev {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Inline icons need a predictable box so they do not collapse. */
.btn i,
.navbar i,
.feature-box i,
.accordion i,
footer i,
.icon-with-text-style-08 i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
}
