/* FontAwesome icon replacement — SVG mask-image technique */

i[class*="fa-"],
i.fas {
    display: inline-block;
    width: 1em;
    height: 1em;
    background-color: currentColor;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-mode: alpha;
    mask-mode: alpha;
    vertical-align: -0.125em;
    font-style: normal;
    line-height: 1;
    margin-right: 0.3em;
}

/* size modifiers */
i.fa-lg  { width: 1.25em; height: 1.25em; }
i.fa-2x  { width: 2em;    height: 2em;    }
i.fa-2xl { width: 2.5em;  height: 2.5em;  }

/* ── solid ── */
.fa-solid.fa-angle-right              { -webkit-mask-image: url('../img/icons/solid/angle-right.svg');             mask-image: url('../img/icons/solid/angle-right.svg');             }
.fa-solid.fa-arrow-right              { -webkit-mask-image: url('../img/icons/solid/arrow-right.svg');             mask-image: url('../img/icons/solid/arrow-right.svg');             }
.fa-solid.fa-chart-line-up            { -webkit-mask-image: url('../img/icons/solid/chart-line-up.svg');           mask-image: url('../img/icons/solid/chart-line-up.svg');           }
.fa-solid.fa-check                    { -webkit-mask-image: url('../img/icons/solid/check.svg');                   mask-image: url('../img/icons/solid/check.svg');                   }
.fa-solid.fa-circle-arrow-right       { -webkit-mask-image: url('../img/icons/solid/circle-arrow-right.svg');      mask-image: url('../img/icons/solid/circle-arrow-right.svg');      }
.fa-solid.fa-circle-caret-right       { -webkit-mask-image: url('../img/icons/solid/circle-caret-right.svg');      mask-image: url('../img/icons/solid/circle-caret-right.svg');      }
.fa-solid.fa-cloud                    { -webkit-mask-image: url('../img/icons/solid/cloud.svg');                   mask-image: url('../img/icons/solid/cloud.svg');                   }
.fa-solid.fa-crown                    { -webkit-mask-image: url('../img/icons/solid/crown.svg');                   mask-image: url('../img/icons/solid/crown.svg');                   }
.fa-solid.fa-down-to-line             { -webkit-mask-image: url('../img/icons/solid/down-to-line.svg');            mask-image: url('../img/icons/solid/down-to-line.svg');            }
.fa-solid.fa-fax                      { -webkit-mask-image: url('../img/icons/solid/fax.svg');                     mask-image: url('../img/icons/solid/fax.svg');                     }
.fa-solid.fa-file-lines               { -webkit-mask-image: url('../img/icons/solid/file-lines.svg');              mask-image: url('../img/icons/solid/file-lines.svg');              }
.fa-solid.fa-file-pen                 { -webkit-mask-image: url('../img/icons/solid/file-pen.svg');                mask-image: url('../img/icons/solid/file-pen.svg');                }
.fa-solid.fa-landmark                 { -webkit-mask-image: url('../img/icons/solid/landmark.svg');                mask-image: url('../img/icons/solid/landmark.svg');                }
.fa-solid.fa-lightbulb-exclamation-on { -webkit-mask-image: url('../img/icons/solid/lightbulb-exclamation-on.svg'); mask-image: url('../img/icons/solid/lightbulb-exclamation-on.svg'); }
.fa-solid.fa-lock                     { -webkit-mask-image: url('../img/icons/solid/lock.svg');                    mask-image: url('../img/icons/solid/lock.svg');                    }
.fa-solid.fa-microchip                { -webkit-mask-image: url('../img/icons/solid/microchip.svg');               mask-image: url('../img/icons/solid/microchip.svg');               }
.fa-solid.fa-microscope               { -webkit-mask-image: url('../img/icons/solid/microscope.svg');              mask-image: url('../img/icons/solid/microscope.svg');              }
.fa-solid.fa-pen-to-square            { -webkit-mask-image: url('../img/icons/solid/pen-to-square.svg');           mask-image: url('../img/icons/solid/pen-to-square.svg');           }
.fa-solid.fa-sun                      { -webkit-mask-image: url('../img/icons/solid/sun.svg');                     mask-image: url('../img/icons/solid/sun.svg');                     }

/* ── brands ── */
.fa-brands.fa-x-twitter   { -webkit-mask-image: url('../img/icons/brands/x-twitter.svg'); mask-image: url('../img/icons/brands/x-twitter.svg'); }
.fa-brands.fa-youtube      { -webkit-mask-image: url('../img/icons/brands/youtube.svg');   mask-image: url('../img/icons/brands/youtube.svg');   }

/* ── regular ── */
.fa-regular.fa-folder-open { -webkit-mask-image: url('../img/icons/regular/folder-open.svg'); mask-image: url('../img/icons/regular/folder-open.svg'); }

/* ── duotone ── */
.fa-duotone.fa-phone       { -webkit-mask-image: url('../img/icons/duotone/phone.svg'); mask-image: url('../img/icons/duotone/phone.svg'); }

/* ── sharp-solid (3-class selectors win over solid above) ── */
.fa-sharp.fa-solid.fa-crown    { -webkit-mask-image: url('../img/icons/sharp-solid/crown.svg');    mask-image: url('../img/icons/sharp-solid/crown.svg');    }
.fa-sharp.fa-solid.fa-envelope { -webkit-mask-image: url('../img/icons/sharp-solid/envelope.svg'); mask-image: url('../img/icons/sharp-solid/envelope.svg'); }

/* ── sharp-light ── */
.fa-sharp.fa-light.fa-atom { -webkit-mask-image: url('../img/icons/sharp-light/atom.svg'); mask-image: url('../img/icons/sharp-light/atom.svg'); }

/* ── legacy v5 class (fas) ── */
.fas.fa-chevron-circle-up { -webkit-mask-image: url('../img/icons/solid/chevron-circle-up.svg'); mask-image: url('../img/icons/solid/chevron-circle-up.svg'); }

/* ── site search input ── */
.site-search { width: 260px; }
.site-search__input {
    width: 100%;
    padding: 6px 12px;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.35);
    border-radius: 3px;
    color: #fff;
    font-size: 0.875em;
    outline: none;
    box-sizing: border-box;
    transition: border-color 0.2s, background 0.2s;
}
.site-search__input::placeholder { color: rgba(255,255,255,0.5); }
.site-search__input:focus {
    background: rgba(255,255,255,0.2);
    border-color: rgba(255,255,255,0.7);
}

/* ── site search modal ── */
#site-search-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 10000;
    align-items: center;
    justify-content: center;
}
#site-search-modal.is-open { display: flex; }
.ssm__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.55);
}
.ssm__box {
    position: relative;
    background: #fff;
    border-radius: 6px;
    width: 90%;
    max-width: 640px;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 8px 32px rgba(0,0,0,0.25);
    overflow: hidden;
}
.ssm__head {
    display: flex;
    align-items: center;
    gap: 0.4em;
    padding: 14px 16px;
    border-bottom: 1px solid #eee;
    font-size: 0.9em;
    color: #555;
    flex-shrink: 0;
}
.ssm__query { color: #111; font-weight: 700; }
.ssm__close {
    margin-left: auto;
    background: none;
    border: none;
    font-size: 1.2em;
    cursor: pointer;
    color: #888;
    line-height: 1;
    padding: 2px 4px;
}
.ssm__close:hover { color: #333; }
.ssm__results {
    list-style: none;
    margin: 0;
    padding: 0;
    overflow-y: auto;
}
.ssm__item { border-bottom: 1px solid #f0f0f0; }
.ssm__item:last-child { border-bottom: none; }
.ssm__link {
    display: block;
    padding: 12px 16px;
    text-decoration: none;
    color: #333;
    transition: background 0.15s;
}
.ssm__link:hover { background: #f5f5f5; }
.ssm__title {
    display: block;
    font-size: 0.9em;
    font-weight: 600;
    color: #111;
    line-height: 1.4;
}
.ssm__desc {
    display: block;
    font-size: 0.78em;
    color: #666;
    margin-top: 3px;
    line-height: 1.4;
}
.ssm__noresult {
    padding: 20px 16px;
    color: #888;
    font-size: 0.9em;
    text-align: center;
    list-style: none;
}
