.ici-site-footer {
    --ici-footer-black: #090909;
    --ici-footer-bottom: #050505;
    --ici-footer-panel: #090909;
    --ici-footer-white: #f4f1ea;
    --ici-footer-muted: #8d8a83;
    --ici-footer-gold: #c79a3b;
    --ici-footer-line: rgba(199, 154, 59, 0.28);
    position: relative;
    width: 100%;
    max-width: none;
    margin: 0;
    clear: both;
    overflow: hidden;
    color: var(--ici-footer-white);
    background: var(--ici-footer-black);
    border: 0;
    font-family: inherit;
    text-align: left;
}

html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
}

.ici-site-footer *,
.ici-site-footer *::before,
.ici-site-footer *::after {
    box-sizing: border-box;
}

.ici-footer__inner {
    width: min(calc(100% - 80px), 1400px);
    max-width: 1400px;
    margin: 0 auto;
    padding-right: 0;
    padding-left: 0;
}

.ici-footer__panels {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 0;
}

.ici-footer__panel {
    min-width: 0;
    padding: 56px clamp(28px, 3.4vw, 58px) 54px;
    background: var(--ici-footer-panel);
}

.ici-footer__panel:first-child {
    padding-left: clamp(28px, 3.4vw, 58px);
}

.ici-footer__panel:last-child {
    padding-right: 0;
}

/*
 * v1.7.7 — Match the Explore divider to the other desktop panel dividers.
 * The final panel intentionally has no outer-right padding for grid alignment,
 * so restore that same inset on its title rule only.
 */
@media (min-width: 981px) {
    .ici-site-footer .ici-footer__panel:last-child .ici-footer__panel-title {
        margin-right: clamp(28px, 3.4vw, 58px);
    }
}

.ici-footer__panel-title {
    margin: 0 0 25px;
    padding: 0 0 13px;
    color: var(--ici-footer-gold);
    border-bottom: 1px solid var(--ici-footer-line);
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.2em;
    line-height: 1.4;
}

.ici-footer__links {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ici-footer__links li {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ici-footer__links li::before,
.ici-footer__links li::marker {
    display: none !important;
    content: none !important;
}

.ici-footer__links a {
    position: relative;
    display: inline-block;
    padding: 8px 0;
    color: var(--ici-footer-white);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.45;
}

.ici-footer__links a::after,
.ici-footer__utilities a::after {
    position: absolute;
    right: 100%;
    bottom: 4px;
    left: 0;
    height: 1px;
    background: var(--ici-footer-gold);
    content: "";
    transition: right 180ms ease;
}

.ici-footer__links a:hover::after,
.ici-footer__links a:focus-visible::after,
.ici-footer__links a[aria-current="page"]::after,
.ici-footer__utilities a:hover::after,
.ici-footer__utilities a:focus-visible::after {
    right: 0;
}

.ici-footer__links a[aria-current="page"] {
    color: var(--ici-footer-gold);
}

.ici-footer__brand-bar {
    position: relative;
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(300px, 1.6fr) minmax(230px, 1fr);
    align-items: center;
    gap: 32px;
    min-height: 168px;
    padding: 34px clamp(28px, 3.4vw, 58px);
    background: var(--ici-footer-bottom);
    box-shadow: 0 0 0 100vmax var(--ici-footer-bottom);
    clip-path: inset(0 -100vmax);
}

/*
 * The footer shortcode can live inside a standard-width Divi Code module.
 * Front-end JavaScript marks only that module, row, and section so the footer
 * can become genuinely full width without viewport math or horizontal scroll.
 */
.et_pb_section.ici-footer-host-section {
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: clip !important;
}

.et-l--footer.ici-footer-host-theme,
.et-l--footer .ici-footer-host-builder,
.et-l--footer .et_pb_section.ici-footer-host-section,
.et-l--footer .et_pb_row.ici-footer-host-row,
.et-l--footer .et_pb_column.ici-footer-host-column,
.et-l--footer .et_pb_module.ici-footer-host-module,
.et-l--footer .ici-footer-host-module .et_pb_code_inner {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

.et_pb_section.ici-footer-host-section,
.et_pb_row.ici-footer-host-row,
.et_pb_column.ici-footer-host-column,
.et_pb_module.ici-footer-host-module {
    overflow-x: hidden !important;
}

html:has(body.ici-footer-present),
body.ici-footer-present,
body.ici-footer-present #page-container {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
}

.ici-footer__brand {
    display: inline-flex;
    align-items: center;
    justify-self: start;
    gap: 14px;
    color: var(--ici-footer-white);
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.ici-footer__logo {
    display: block;
    width: auto;
    max-width: var(--ici-footer-logo-width, 76px);
    max-height: var(--ici-footer-logo-width, 76px);
    object-fit: contain;
}

.ici-footer__identity {
    text-align: center;
}

.ici-footer__identity p {
    margin: 0;
    padding: 0;
}

.ici-footer__copyright {
    color: var(--ici-footer-muted);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.ici-footer__motto {
    margin-top: 9px !important;
    color: var(--ici-footer-white);
    font-size: 11px;
    letter-spacing: 0.16em;
    line-height: 1.5;
}

.ici-footer__utilities {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 18px;
}

.ici-footer__utilities a,
.ici-footer__top {
    position: relative;
    color: var(--ici-footer-muted);
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 7px 0;
    text-decoration: none;
    font: inherit;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    line-height: 1.4;
    text-transform: uppercase;
    cursor: pointer;
}

.ici-footer__top {
    color: var(--ici-footer-gold);
}

.ici-footer__top span {
    display: inline-block;
    margin-left: 6px;
    font-size: 14px;
}

.ici-site-footer a:focus-visible,
.ici-site-footer button:focus-visible {
    outline: 2px solid var(--ici-footer-gold);
    outline-offset: 5px;
}

@media (max-width: 980px) {
    .ici-footer__inner {
        width: 100%;
        padding-right: 36px;
        padding-left: 36px;
    }

    .ici-footer__panel {
        padding: 42px 30px 40px;
    }

    .ici-footer__panel:first-child {
        padding-left: 30px;
    }

    .ici-footer__panel:last-child {
        padding-right: 30px;
    }

    .ici-footer__brand-bar {
        grid-template-columns: 1fr 1.4fr;
        gap: 24px;
    }

    .ici-footer__utilities {
        grid-column: 1 / -1;
        justify-content: center;
    }
}

@media (max-width: 767px) {
    .ici-footer__inner {
        width: 100%;
        padding-right: 18px;
        padding-left: 18px;
    }

    .ici-footer__panels {
        grid-template-columns: 1fr;
    }

    .ici-footer__panel {
        padding: 34px 24px 32px;
    }

    .ici-footer__panel:first-child {
        padding-left: 24px;
    }

    .ici-footer__panel:last-child {
        padding-right: 24px;
    }

    .ici-footer__panel + .ici-footer__panel {
        border-top: 1px solid var(--ici-footer-line);
    }

    .ici-footer__brand-bar {
        grid-template-columns: 1fr;
        gap: 24px;
        min-height: 0;
        padding: 38px 24px 42px;
    }

    .ici-footer__brand,
    .ici-footer__utilities {
        justify-self: center;
        justify-content: center;
    }

    .ici-footer__identity {
        order: 2;
    }

    .ici-footer__utilities {
        order: 3;
        grid-column: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ici-footer__links a::after,
    .ici-footer__utilities a::after {
        transition: none;
    }
}

/*
 * v1.7.0 — Divi-resistant navigation alignment.
 * Divi applies an inherited inline-start indent to content-module lists.
 * Keep every title, divider, list item, and link on the same left edge.
 */
.ici-site-footer .ici-footer__panel .ici-footer__panel-title,
.ici-site-footer .ici-footer__panel .ici-footer__links,
.ici-site-footer .ici-footer__panel .ici-footer__links > li,
.ici-site-footer .ici-footer__panel .ici-footer__links > li > a {
    margin-left: 0 !important;
    padding-left: 0 !important;
    text-indent: 0 !important;
}

.ici-site-footer .ici-footer__panel .ici-footer__links {
    margin: 0 !important;
    padding: 0 !important;
    padding-inline-start: 0 !important;
    list-style: none !important;
}

.ici-site-footer .ici-footer__panel .ici-footer__links > li {
    margin: 0 !important;
    padding: 0 !important;
    padding-inline-start: 0 !important;
    list-style: none !important;
}

.ici-site-footer .ici-footer__panel .ici-footer__links > li::before,
.ici-site-footer .ici-footer__panel .ici-footer__links > li::marker {
    display: none !important;
    width: 0 !important;
    content: none !important;
}

.ici-site-footer .ici-footer__panel .ici-footer__links > li > a {
    left: auto !important;
    transform: none !important;
}

/*
 * v1.7.2 — Preserve full-width Divi hosting even if deferred JavaScript is
 * delayed or blocked by an optimization cache. The proven v1.6.0 script
 * remains the primary mechanism; :has() is a modern-browser safety net.
 */
.et_pb_section:has(.ici-site-footer) {
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: clip !important;
}

.et_pb_row:has(.ici-site-footer),
.et_pb_column:has(.ici-site-footer),
.et_pb_module:has(.ici-site-footer),
.et_pb_code_inner:has(.ici-site-footer) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.et-l--footer:has(.ici-site-footer),
.et-l--footer .et_builder_inner_content:has(.ici-site-footer) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
