/*
Theme Name: Neve KSL Mediation Child
Description: Custom child theme for KSL Mediation.
Author: Knauf Santos Law
Template: neve
Version: 0.12.0
Text Domain: neve-ksl-mediation-child
*/


/* =========================================================
   KSL MEDIATION — GLOBAL HEADER
   ========================================================= */

/* Desktop header row */
@media (min-width: 960px) {

    .site-header .header-top {
        background: #ffffff;
        border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    }

    .site-header .header-top-inner .container {
        max-width: 1200px;
    }

    .site-header .header-top-inner .row {
        min-height: 100px;
        align-items: center;
    }

    /* Mediation logo */
    .site-header .builder-item--logo {
        --maxwidth: 240px;
        padding: 0;
        margin: 0;
    }

    .site-header .site-logo img.neve-site-logo {
        display: block;
        width: 240px;
        max-width: 100%;
        height: auto;
    }

    /* Main navigation */
    .site-header .builder-item--primary-menu {
        --spacing: 24px;
        --height: auto;
        --fontsize: 13px;
        --lineheight: 1.25;
        --fontweight: 600;
        --letterspacing: 0.01em;
        --texttransform: none;
    }

    .site-header .nav-menu-primary > .primary-menu-ul {
        display: flex;
        align-items: center;
        gap: 0;
    }

    .site-header .nav-menu-primary .menu-item > .wrap {
        padding: 0;
    }

    .site-header .nav-menu-primary .menu-item > .wrap > a {
        padding: 14px 12px;
        white-space: nowrap;
        text-decoration: none;
    }
}


/* =========================================================
   KSL MEDIATION — MOBILE / TABLET HEADER
   ========================================================= */

@media (max-width: 959px) {

    .site-header .header-main {
        background: #ffffff;
        border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    }

    .site-header .header-main-inner .row {
        min-height: 78px;
        align-items: center;
    }

    .site-header .builder-item--logo {
        --maxwidth: 220px;
        padding: 0;
    }

    .site-header .site-logo img.neve-site-logo {
        display: block;
        width: 220px;
        max-width: 70vw;
        height: auto;
    }

    .site-header .builder-item--nav-icon {
        padding: 8px;
    }

    .site-header .navbar-toggle {
        border: 0;
        background: transparent;
        padding: 10px;
    }

    .header-menu-sidebar {
        width: min(360px, 88vw);
    }

    .header-menu-sidebar .primary-menu-ul {
        padding: 16px 0;
    }

    .header-menu-sidebar .primary-menu-ul > li > .wrap > a {
        padding: 14px 24px;
        font-size: 15px;
        font-weight: 600;
        text-transform: none;
    }
}


/* =========================================================
   KSL MEDIATION — GLOBAL FOOTER
   ========================================================= */

.kslm-footer {
background: #101820;
color: #f5f3ee;
border-top: 1px solid rgba(255,255,255,.10);
}

.kslm-footer__inner {
width: min(1200px, calc(100% - 48px));
margin: 0 auto;
padding: 64px 0 28px;
}

.kslm-footer a {
color: inherit;
text-decoration: none;
}

.kslm-footer a:hover,
.kslm-footer a:focus-visible {
text-decoration: underline;
text-underline-offset: 4px;
}

.kslm-footer__brand {
max-width: 700px;
margin-bottom: 48px;
}

.kslm-footer__eyebrow {
font-size: 12px;
font-weight: 700;
letter-spacing: .14em;
text-transform: uppercase;
margin-bottom: 12px;
}

.kslm-footer__identity {
font-size: 22px;
line-height: 1.35;
margin: 0 0 8px;
}

.kslm-footer__brand p:last-child {
max-width: 620px;
margin-bottom: 0;
color: rgba(255,255,255,.76);
}

.kslm-footer__nav {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 48px;
padding: 40px 0;
border-top: 1px solid rgba(255,255,255,.12);
border-bottom: 1px solid rgba(255,255,255,.12);
}

.kslm-footer__column h2 {
color: #ffffff;
font-size: 14px;
font-weight: 700;
letter-spacing: .08em;
text-transform: uppercase;
margin: 0 0 18px;
}

.kslm-footer__column ul {
list-style: none;
margin: 0;
padding: 0;
}

.kslm-footer__column li {
margin: 0 0 10px;
color: rgba(255,255,255,.78);
font-size: 15px;
line-height: 1.5;
}

.kslm-footer__lower {
display: grid;
grid-template-columns: minmax(240px, .8fr) minmax(0, 1.5fr);
gap: 64px;
padding: 36px 0;
}

.kslm-footer__address {
font-size: 14px;
line-height: 1.7;
}

.kslm-footer__legal {
max-width: 700px;
color: rgba(255,255,255,.62);
font-size: 12px;
line-height: 1.65;
}

.kslm-footer__legal p {
margin: 0;
}

.kslm-footer__bottom {
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
padding-top: 22px;
border-top: 1px solid rgba(255,255,255,.10);
color: rgba(255,255,255,.58);
font-size: 12px;
}

.kslm-footer__bottom nav {
display: flex;
flex-wrap: wrap;
gap: 20px;
}


/* Tablet / mobile */

@media (max-width: 767px) {

.kslm-footer__inner {
width: min(100% - 32px, 1200px);
padding-top: 48px;
}

.kslm-footer__brand {
margin-bottom: 34px;
}

.kslm-footer__identity {
font-size: 19px;
}

.kslm-footer__nav {
grid-template-columns: 1fr;
gap: 30px;
padding: 32px 0;
}

.kslm-footer__lower {
grid-template-columns: 1fr;
gap: 28px;
padding: 30px 0;
}

.kslm-footer__bottom {
align-items: flex-start;
flex-direction: column;
gap: 12px;
}

}


/* =========================================================
   KSL MEDIATION — HEADER CTA
   ========================================================= */

@media (min-width: 960px) {

.site-header .nav-menu-primary .primary-menu-ul > li:last-child > .wrap > a {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 42px;
padding: 0 18px;
margin-left: 8px;
border: 1px solid #101820;
border-radius: 2px;
background: #101820;
color: #ffffff;
font-weight: 700;
line-height: 1;
transition:
background-color .18s ease,
color .18s ease,
border-color .18s ease;
}

.site-header .nav-menu-primary .primary-menu-ul > li:last-child > .wrap > a:hover,
.site-header .nav-menu-primary .primary-menu-ul > li:last-child > .wrap > a:focus-visible {
background: #ffffff;
color: #101820;
border-color: #101820;
text-decoration: none;
}

}

@media (max-width: 959px) {

.header-menu-sidebar .primary-menu-ul > li:last-child {
padding: 10px 24px 18px;
}

.header-menu-sidebar .primary-menu-ul > li:last-child > .wrap > a {
display: flex;
align-items: center;
justify-content: center;
padding: 14px 18px;
background: #101820;
color: #ffffff;
font-weight: 700;
text-align: center;
}

}

/* ==========================================================================
   KSL MEDIATION — KSL HEADER PARITY
   2026-09-03
   ========================================================================== */

/*
 * Governing visual reference:
 * main Knauf Santos Law header.
 *
 * Mediation keeps Neve's native menu/off-canvas mechanics,
 * but adopts KSL typography, proportions, CTA treatment,
 * and zero-animation navigation behavior.
 */

#header-grid.site-header,
#header-grid.site-header * {
    font-family:
        Roboto,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Oxygen-Sans,
        Ubuntu,
        Cantarell,
        "Helvetica Neue",
        sans-serif;
}


/* Remove Neve decorative/animated menu treatments. */

.site-header .nav-menu-primary,
.site-header .nav-menu-primary *,
.header-menu-sidebar,
.header-menu-sidebar * {
    transition: none !important;
    animation: none !important;
}

.site-header .nav-menu-primary.style-border-top
.primary-menu-ul
> li
> .wrap::before,
.site-header .nav-menu-primary.style-border-top
.primary-menu-ul
> li
> .wrap::after,
.site-header .nav-menu-primary
.primary-menu-ul
> li
> .wrap
> a::before,
.site-header .nav-menu-primary
.primary-menu-ul
> li
> .wrap
> a::after {
    display: none !important;
    content: none !important;
}


/* --------------------------------------------------------------------------
   DESKTOP
   -------------------------------------------------------------------------- */

@media (min-width: 960px) {

    body {
        padding-top: 100px !important;
    }

    #header-grid.site-header {
        height: 100px !important;
        min-height: 100px !important;
        max-height: 100px !important;

        background: #ffffff !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    .site-header .header-top,
    .site-header .header-top-inner,
    .site-header .header-top-inner .container,
    .site-header .header-top-inner .row {
        height: 100px !important;
        min-height: 100px !important;
        max-height: 100px !important;
    }

    .site-header .header-top {
        background: #ffffff !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    .site-header .header-top-inner .container {
        width: 100% !important;
        max-width: 1200px !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .site-header .header-top-inner .row {
        position: relative !important;
        display: flex !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
    }

    .site-header .hfg-slot.left {
        width: 100% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 30px !important;
    }

    /* Logo */

    .site-header .builder-item--logo {
        flex: 0 0 280px !important;
        width: 280px !important;
        max-width: 280px !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .site-header .site-logo img.neve-site-logo {
        width: 280px !important;
        max-width: 280px !important;
        height: auto !important;
        max-height: 55px !important;
        object-fit: contain !important;
    }
/* Nav */

    .site-header .builder-item--primary-menu {
        flex: 1 1 auto !important;
        width: auto !important;

        --spacing: 0;
        --height: auto;
        --fontsize: 13px;
        --lineheight: 1;
        --fontweight: 600;
        --letterspacing: 0;
        --texttransform: none;
    }

    .site-header
    .nav-menu-primary
    > .primary-menu-ul {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        flex-wrap: nowrap !important;

        gap: 24px !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li
    > .wrap {
        padding: 0 !important;
        margin: 0 !important;
    }

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li
    > .wrap
    > a {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;

        min-height: auto !important;

        padding: 6px 0 !important;
        margin: 0 !important;

        color: #111111 !important;

        font-size: 13px !important;
        font-weight: 600 !important;
        line-height: 1 !important;
        letter-spacing: 0 !important;

        text-transform: none !important;
        text-decoration: none !important;

        white-space: nowrap !important;

        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li
    > .wrap
    > a:hover,
    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li
    > .wrap
    > a:focus-visible {
        color: #111111 !important;
        text-decoration: none !important;
    }


    /*
     * Existing WordPress menu item 117:
     * Schedule Mediation.
     *
     * KSL-style outlined CTA.
     */

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li.menu-item-143
    > .wrap
    > a {
        height: 38px !important;
        min-height: 38px !important;

        padding: 10px 18px !important;

        border: 1px solid #777777 !important;
        border-radius: 2px !important;

        background: #ffffff !important;
        color: #111111 !important;

        font-size: 11px !important;
        font-weight: 400 !important;
        letter-spacing: 0.06em !important;
        text-transform: uppercase !important;
    }

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li.menu-item-143
    > .wrap
    > a:hover,
    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li.menu-item-143
    > .wrap
    > a:focus-visible {
        background: #ffffff !important;
        color: #111111 !important;
        border-color: #111111 !important;
    }


    /*
     * Cross-property link.
     *
     * Keep visually subordinate to the service navigation.
     */

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li.kslm-nav-main-site
    > .wrap
    > a {
        color: #555555 !important;
        font-size: 11px !important;
        font-weight: 600 !important;
    }


    /* Phone CTA */

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li.kslm-nav-phone
    > .wrap
    > a {
        height: 36px !important;
        min-height: 36px !important;

        padding: 9px 14px !important;

        background: #1e7b1e !important;
        color: #ffffff !important;

        border: 0 !important;
        border-radius: 2px !important;

        font-size: 12px !important;
        font-weight: 700 !important;
        line-height: 1 !important;
    }

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li.kslm-nav-phone
    > .wrap
    > a:hover,
    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li.kslm-nav-phone
    > .wrap
    > a:focus-visible {
        background: #1e7b1e !important;
        color: #ffffff !important;
    }

}


/* --------------------------------------------------------------------------
   MOBILE / TABLET
   -------------------------------------------------------------------------- */

@media (max-width: 959px) {

    body {
        padding-top: 70px !important;
    }

    #header-grid.site-header {
        height: 70px !important;
        min-height: 70px !important;
        max-height: 70px !important;

        top: 0 !important;

        background: #ffffff !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    .site-header .header-main,
    .site-header .header-main-inner,
    .site-header .header-main-inner .container,
    .site-header .header-main-inner .row {
        height: 70px !important;
        min-height: 70px !important;
        max-height: 70px !important;
    }

    .site-header .header-main {
        background: #ffffff !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    .site-header .header-main-inner .container {
        width: 100% !important;
        max-width: none !important;

        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .site-header .header-main-inner .row {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
    }


    /* Mobile logo */

    .site-header .builder-item--logo {
        width: clamp(150px, 45.35vw, 195px) !important;
        max-width: clamp(150px, 45.35vw, 195px) !important;

        padding: 0 !important;
        margin: 0 !important;
    }

    .site-header .site-logo img.neve-site-logo {
        width: 100% !important;
        max-width: 100% !important;
        max-height: 38px !important;

        object-fit: contain !important;
    }


    /* Hamburger */

    .site-header .builder-item--nav-icon {
        width: 38px !important;
        height: 70px !important;

        padding: 0 !important;
        margin: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .site-header .navbar-toggle {
        width: 38px !important;
        height: 38px !important;

        padding: 6px !important;

        border: 0 !important;
        background: transparent !important;

        box-shadow: none !important;
    }


    /*
     * Off-canvas
     *
     * Keep Neve's proven native drawer mechanics,
     * normalize presentation to KSL.
     */

    .header-menu-sidebar {
        width: 100vw !important;
        max-width: 100vw !important;

        top: 70px !important;
        bottom: 0 !important;

        background: #ffffff !important;

        box-shadow: none !important;
    }

    .header-menu-sidebar-bg {
        background: #ffffff !important;
    }

    .header-menu-sidebar-inner {
        padding: 20px 24px 85px !important;
    }

    .header-menu-sidebar
    .primary-menu-ul {
        margin: 0 !important;
        padding: 0 !important;
    }

    .header-menu-sidebar
    .primary-menu-ul
    > li {
        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;
    }

    .header-menu-sidebar
    .primary-menu-ul
    > li
    > .wrap {
        margin: 0 !important;
        padding: 0 !important;
    }

    .header-menu-sidebar
    .primary-menu-ul
    > li
    > .wrap
    > a {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;

        width: 100% !important;
        min-height: 54px !important;

        padding: 15px 4px !important;

        color: #111827 !important;

        font-size: 16px !important;
        font-weight: 700 !important;
        line-height: 1.35 !important;

        text-transform: none !important;
        text-decoration: none !important;

        border: 0 !important;
        border-bottom: 1px solid #e5e7eb !important;

        background: transparent !important;
    }


    /* Schedule CTA */

    .header-menu-sidebar
    .primary-menu-ul
    > li.menu-item-143 {
        margin-top: 18px !important;
    }

    .header-menu-sidebar
    .primary-menu-ul
    > li.menu-item-143
    > .wrap
    > a {
        justify-content: center !important;

        min-height: 42px !important;
        padding: 10px 14px !important;

        border: 1px solid #777777 !important;
        border-radius: 2px !important;

        background: #ffffff !important;
        color: #111111 !important;

        font-size: 12px !important;
        font-weight: 700 !important;
    }


    /* Cross-property utility item */

    .header-menu-sidebar
    .primary-menu-ul
    > li.kslm-nav-main-site
    > .wrap
    > a {
        margin-top: 16px !important;

        color: #555555 !important;

        font-size: 13px !important;
        font-weight: 600 !important;
    }


    /* Green phone CTA */

    .header-menu-sidebar
    .primary-menu-ul
    > li.kslm-nav-phone {
        margin-top: 10px !important;
    }

    .header-menu-sidebar
    .primary-menu-ul
    > li.kslm-nav-phone
    > .wrap
    > a {
        justify-content: center !important;

        min-height: 42px !important;
        padding: 10px 14px !important;

        background: #1e7b1e !important;
        color: #ffffff !important;

        border: 0 !important;
        border-radius: 2px !important;

        font-size: 13px !important;
        font-weight: 700 !important;
    }

}


/* ==========================================================================
   KSL MEDIATION — NAV CTA GROUP + MOBILE ACTION BAR
   2026-09-03
   ========================================================================== */


/* --------------------------------------------------------------------------
   DESKTOP CTA ORDER
   -------------------------------------------------------------------------- */

@media (min-width: 960px) {

    /*
     * Navigation order:
     *
     * normal mediation navigation
     * Family Law Representation
     * Schedule Mediation
     * phone
     */

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li.kslm-nav-main-site {
        order: 10;
    }

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li.menu-item-143 {
        order: 20;
    }

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li.kslm-nav-phone {
        order: 30;
    }


    /*
     * Use standard KSL spacing between normal nav items,
     * but tighten the two CTA buttons into a pair.
     */

    .site-header
    .nav-menu-primary
    > .primary-menu-ul {
        gap: 0 !important;
    }

    .site-header
    .nav-menu-primary
    > .primary-menu-ul
    > li + li {
        margin-left: 24px !important;
    }

    .site-header
    .nav-menu-primary
    > .primary-menu-ul
    > li.kslm-nav-phone {
        margin-left: 10px !important;
    }

}


/* --------------------------------------------------------------------------
   MOBILE HEADER
   -------------------------------------------------------------------------- */

@media (max-width: 959px) {

    /*
     * Header remains intentionally minimal:
     * mediation logo + hamburger only.
     *
     * Schedule/phone CTAs live at bottom viewport.
     */

    .site-header .header-main-inner .hfg-slot.left {
        flex: 1 1 auto !important;
    }

    .site-header .header-main-inner .hfg-slot.right {
        flex: 0 0 auto !important;
    }

}


/* --------------------------------------------------------------------------
   MOBILE FIXED ACTION BAR
   -------------------------------------------------------------------------- */

.kslm-mobile-action-bar {
    display: none;
}


@media (max-width: 959px) {

    /*
     * Reserve space so the fixed action bar does not cover
     * the last portion of page/footer content.
     */

    body {
        padding-bottom: 64px !important;
    }


    .kslm-mobile-action-bar {
        position: fixed;

        left: 0;
        right: 0;
        bottom: 0;

        z-index: 999998;

        display: grid;
        grid-template-columns: 1fr 1fr;

        width: 100%;
        height: 64px;

        padding: 10px 12px;

        background: #ffffff;

        border-top: 1px solid #d7d7d7;

        box-shadow: none;

        font-family:
            Roboto,
            -apple-system,
            BlinkMacSystemFont,
            "Segoe UI",
            Oxygen-Sans,
            Ubuntu,
            Cantarell,
            "Helvetica Neue",
            sans-serif;
    }


    .kslm-mobile-action-bar a {
        display: flex;
        align-items: center;
        justify-content: center;

        height: 44px;

        padding: 8px 10px;

        font-size: 12px;
        font-weight: 700;
        line-height: 1;

        text-align: center;
        text-decoration: none;

        text-transform: uppercase;

        transition: none !important;
        animation: none !important;
    }


    /*
     * Schedule CTA:
     * dark KSL-style action.
     */

    .kslm-mobile-action-bar__schedule {
        background: #101820;
        color: #ffffff !important;

        border: 1px solid #101820;
        border-radius: 2px 0 0 2px;
    }


    /*
     * Phone CTA:
     * same green visual language as KSL.
     */

    .kslm-mobile-action-bar__phone {
        background: #1e7b1e;
        color: #ffffff !important;

        border: 1px solid #1e7b1e;
        border-radius: 0 2px 2px 0;
    }


    .kslm-mobile-action-bar a:hover,
    .kslm-mobile-action-bar a:focus-visible {
        color: #ffffff !important;
        text-decoration: none !important;
    }


    /*
     * Keep Neve scroll-to-top control above the CTA bar.
     */

    #scroll-to-top {
        bottom: 78px !important;
    }

}


/* ==========================================================================
   KSL MEDIATION — MOBILE NAV / CTA GEOMETRY
   2026-09-03
   ========================================================================== */


/* Mobile-only header phone CTA */

.kslm-mobile-header-phone {
    display: none;
}


@media (max-width: 959px) {

    /*
     * Header:
     * logo | green phone | hamburger
     */

    .kslm-mobile-header-phone {
        position: fixed;

        top: 17px;
        right: 62px;

        z-index: 1000001;

        display: inline-flex;
        align-items: center;
        justify-content: center;

        height: 36px;

        padding: 0 13px;

        background: #1e7b1e;
        color: #ffffff !important;

        border: 0;
        border-radius: 2px;

        font-family:
            Roboto,
            -apple-system,
            BlinkMacSystemFont,
            "Segoe UI",
            sans-serif;

        font-size: 11px;
        font-weight: 700;
        line-height: 1;

        text-decoration: none !important;

        transition: none !important;
        animation: none !important;
    }


    /*
     * Keep hamburger visually above surrounding elements.
     */

    .site-header .builder-item--nav-icon {
        position: relative;
        z-index: 1000002;
    }


    /*
     * Off-canvas ordering:
     *
     * Mediation
     * How It Works
     * For Attorneys
     * Mediators
     * Resources
     * About
     * Family Law Representation
     * Schedule Mediation
     * Phone
     */

    .header-menu-sidebar
    .primary-menu-ul {
        display: flex !important;
        flex-direction: column !important;
    }

    .header-menu-sidebar
    .primary-menu-ul
    > li.kslm-nav-main-site {
        order: 10 !important;
    }

    .header-menu-sidebar
    .primary-menu-ul
    > li.menu-item-143 {
        order: 20 !important;
    }

    .header-menu-sidebar
    .primary-menu-ul
    > li.kslm-nav-phone {
        order: 30 !important;
    }


    /*
     * Family Law Representation:
     * directly after About, before CTAs.
     */

    .header-menu-sidebar
    .primary-menu-ul
    > li.kslm-nav-main-site
    > .wrap
    > a {
        margin-top: 0 !important;

        min-height: 54px !important;

        padding: 15px 4px !important;

        border-bottom: 1px solid #e5e7eb !important;

        color: #555555 !important;

        font-size: 13px !important;
        font-weight: 600 !important;
    }


    /*
     * White Schedule CTA.
     */

    .header-menu-sidebar
    .primary-menu-ul
    > li.menu-item-143 {
        margin-top: 18px !important;
    }

    .header-menu-sidebar
    .primary-menu-ul
    > li.menu-item-143
    > .wrap
    > a {
        min-height: 42px !important;

        border: 1px solid #777777 !important;
        border-radius: 2px !important;

        background: #ffffff !important;
        color: #111111 !important;
    }


    /*
     * Green phone CTA:
     * 8px below Schedule Mediation.
     */

    .header-menu-sidebar
    .primary-menu-ul
    > li.kslm-nav-phone {
        margin-top: 8px !important;
    }

    .header-menu-sidebar
    .primary-menu-ul
    > li.kslm-nav-phone
    > .wrap
    > a {
        min-height: 42px !important;

        background: #1e7b1e !important;
        color: #ffffff !important;

        border: 1px solid #1e7b1e !important;
        border-radius: 2px !important;
    }


    /*
     * Bottom viewport CTA bar:
     * match KSL's separated-button geometry.
     */

    .kslm-mobile-action-bar {
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;

        padding: 10px 14px !important;
    }

    .kslm-mobile-action-bar__schedule,
    .kslm-mobile-action-bar__phone {
        border-radius: 2px !important;
    }

}


/* ==========================================================================
   KSL MEDIATION — OFF-CANVAS FULL VIEWPORT
   2026-09-03
   ========================================================================== */

@media (max-width: 959px) {

    /*
     * When open, the off-canvas drawer owns the whole viewport.
     * Do not expose the fixed site header behind it.
     */

    .header-menu-sidebar {
        top: 0 !important;
        bottom: 0 !important;

        width: 100vw !important;
        max-width: 100vw !important;

        min-height: 100dvh !important;

        background: #ffffff !important;

        z-index: 1000003 !important;
    }

    .header-menu-sidebar-bg {
        min-height: 100dvh !important;
        background: #ffffff !important;
    }

    /*
     * Give the drawer its own top breathing room.
     */

    .header-menu-sidebar-inner {
        padding-top: 86px !important;
    }

    /*
     * Drawer close control.
     */

    .header-menu-sidebar .close-sidebar-panel {
        position: absolute !important;

        top: 18px !important;
        right: 18px !important;

        z-index: 1000004 !important;
    }

    .header-menu-sidebar .close-sidebar-panel .navbar-toggle {
        width: 40px !important;
        height: 40px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        background: #ffffff !important;

        border: 1px solid #777777 !important;
        border-radius: 2px !important;

        box-shadow: none !important;
    }

    /*
     * Hide the fixed bottom conversion bar while navigation
     * is open so it does not compete with the drawer.
     */

    body.is-menu-sidebar .kslm-mobile-action-bar {
        visibility: hidden !important;
        pointer-events: none !important;
    }

}


/* ==========================================================================
   KSL MEDIATION — HIDE MOBILE HEADER CTA WHILE NAV OPEN
   2026-09-03
   ========================================================================== */

@media (max-width: 959px) {

    body.is-menu-sidebar .kslm-mobile-header-phone {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

}


/* ==========================================================================
   KSL MEDIATION — LEGACY CROSS-SITE NAV RETIREMENT
   Native Legal Representation menu item now replaces the older
   PHP-injected Family Law Representation navigation element.
   ========================================================================== */

.kslm-nav-main-site {
    display: none !important;
}



/* KSLM-DNH-DESKTOP-NAV-V1
   Observed target: desktop header-top primary navigation only.
   No mobile/header-height/logo/CTA styling changes.
*/

@media (min-width: 960px) {

    /*
     * Main KSL-style navigation typography.
     */
    .site-header
    .header-top-inner
    .nav-menu-primary
    > .primary-menu-ul
    > li:not(.menu-item-143):not(.kslm-nav-phone):not(.kslm-nav-main-site)
    > .wrap
    > a {
        font-family: Arial, Helvetica, sans-serif !important;
        font-size: 11px !important;
        font-weight: 400 !important;
        line-height: 1 !important;
        letter-spacing: 0.12em !important;
        text-transform: uppercase !important;
    }


    /*
     * Stop forcing the whole menu cluster against the
     * right edge.
     */
    .site-header
    .header-top-inner
    .nav-menu-primary
    > .primary-menu-ul {
        justify-content: flex-start !important;
    }


    /*
     * Use flexible whitespace on each side of the
     * three informational navigation items.
     *
     * Schedule + phone remain their existing right-side
     * CTA pair.
     */
    .site-header
    .header-top-inner
    .nav-menu-primary
    > .primary-menu-ul
    > li.menu-item-111 {
        margin-left: auto !important;
    }


    .site-header
    .header-top-inner
    .nav-menu-primary
    > .primary-menu-ul
    > li.menu-item-143 {
        margin-left: auto !important;
    }


    /*
     * Preserve the deliberately tight CTA pair.
     */
    .site-header
    .header-top-inner
    .nav-menu-primary
    > .primary-menu-ul
    > li.kslm-nav-phone {
        margin-left: 10px !important;
    }

}



/* KSLM-DNH-DESKTOP-NAV-V2
   Geometry only.
   Centers Mediation Services / Resources / About
   between logo and Schedule Mediation.
*/

@media (min-width: 960px) {

    .site-header
    .header-top-inner
    .nav-menu-primary
    > .primary-menu-ul {

        display: grid !important;

        grid-template-columns:
            minmax(0, 1fr)
            auto
            auto
            auto
            minmax(0, 1fr)
            auto
            auto;

        align-items: center !important;
        column-gap: 36px !important;

        width: 100% !important;
    }


    /* Core navigation */

    .site-header
    .header-top-inner
    .primary-menu-ul
    > li.menu-item-111 {
        grid-column: 2;
        margin-left: 0 !important;
    }

    .site-header
    .header-top-inner
    .primary-menu-ul
    > li.menu-item-115 {
        grid-column: 3;
        margin-left: 0 !important;
    }

    .site-header
    .header-top-inner
    .primary-menu-ul
    > li.menu-item-116 {
        grid-column: 4;
        margin-left: 0 !important;
    }


    /* CTA pair */

    .site-header
    .header-top-inner
    .primary-menu-ul
    > li.menu-item-143 {
        grid-column: 6;
        margin-left: 0 !important;
    }

    .site-header
    .header-top-inner
    .primary-menu-ul
    > li.kslm-nav-phone {
        grid-column: 7;
        margin-left: -14px !important;
    }

}


/* KSLM-DNH-DESKTOP-DROPDOWN-V1
   Compact editorial submenu treatment.
   Desktop only. No menu structure, mobile, or color changes.
*/

@media (min-width: 960px) {

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li
    > .sub-menu {
        min-width: 220px !important;
        width: max-content !important;
        max-width: 300px !important;

        padding: 4px 0 !important;
        margin: 0 !important;

        left: 0 !important;
        right: auto !important;
        transform: none !important;

        background: #ffffff !important;
        border: 0 !important;
        border-radius: 0 !important;

        box-shadow:
            0 12px 28px rgba(17, 17, 17, 0.08) !important;
    }


    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li
    > .sub-menu
    > li {
        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;
        background: transparent !important;
    }


    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li
    > .sub-menu
    > li
    > .wrap {
        margin: 0 !important;
        padding: 0 !important;
    }


    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li
    > .sub-menu
    > li
    > .wrap
    > a {
        display: block !important;

        min-height: 0 !important;

        padding: 7px 16px !important;
        margin: 0 !important;

        color: #2b2f33 !important;
        background: transparent !important;

        font-size: 12px !important;
        font-weight: 400 !important;
        line-height: 1.2 !important;
        letter-spacing: 0.01em !important;
        text-transform: none !important;

        text-decoration: none !important;

        border: 0 !important;
        border-radius: 0 !important;

        box-shadow: none !important;
    }


    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li
    > .sub-menu
    > li
    > .wrap
    > a:hover,
    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li
    > .sub-menu
    > li
    > .wrap
    > a:focus-visible {
        color: #111111 !important;
        background: #f7f5ef !important;
        text-decoration: none !important;
    }

}

/* ==========================================================================
   KSLM-DNH-HEADER-POSITION-V2
   Outer Neve header wrapper is the sticky owner.
   ========================================================================== */

@media (min-width: 960px) {

    header.header {
        position: sticky !important;
        top: 0 !important;
        width: 100% !important;
        z-index: 999999 !important;
        background: #ffffff !important;
    }

    #header-grid.site-header {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
    }

    body {
        padding-top: 0 !important;
    }
}


/* ==========================================================================
   KSLM-DNH-SCROLL-LOGO-V2
   Crossfade wordmark -> compact mark and compress sticky header.
   Scrolled state: 72px header, 44px mark, 14px vertical padding.
   ========================================================================== */

@media (min-width: 960px) {

    header.header,
    #header-grid.site-header,
    .site-header .header-top,
    .site-header .header-top-inner,
    .site-header .header-top-inner .container,
    .site-header .header-top-inner .row {
        transition:
            height 220ms ease,
            min-height 220ms ease,
            max-height 220ms ease !important;
    }

    .site-header .builder-item--logo {
        flex: 0 0 280px !important;
        width: 280px !important;
        max-width: 280px !important;
    }

    .site-header .site-logo,
    .site-header .site-logo a {
        position: relative !important;
        display: block !important;
        width: 280px !important;
        max-width: 280px !important;
        height: 55px !important;
    }

    .site-header
    .site-logo
    img.kslm-logo-wordmark {
        position: absolute !important;
        left: 0 !important;
        top: 50% !important;

        width: 280px !important;
        max-width: 280px !important;
        height: auto !important;
        max-height: 55px !important;

        transform: translateY(-50%) !important;

        opacity: 1 !important;

        transition:
            opacity 180ms ease,
            transform 220ms ease !important;
    }

    .site-header
    .site-logo
    img.kslm-logo-mark {
        position: absolute !important;
        left: 0 !important;
        top: 50% !important;

        width: 44px !important;
        height: 44px !important;
        max-width: 44px !important;
        max-height: 44px !important;

        object-fit: contain !important;

        transform:
            translateY(-50%)
            scale(.94) !important;

        opacity: 0 !important;
        pointer-events: none !important;

        transition:
            opacity 180ms ease,
            transform 220ms ease !important;
    }

    body.kslm-scrolled-logo
    header.header,
    body.kslm-scrolled-logo
    #header-grid.site-header,
    body.kslm-scrolled-logo
    .site-header .header-top,
    body.kslm-scrolled-logo
    .site-header .header-top-inner,
    body.kslm-scrolled-logo
    .site-header .header-top-inner .container,
    body.kslm-scrolled-logo
    .site-header .header-top-inner .row {
        height: 72px !important;
        min-height: 72px !important;
        max-height: 72px !important;
    }

    body.kslm-scrolled-logo
    .site-header
    .site-logo,
    body.kslm-scrolled-logo
    .site-header
    .site-logo a {
        height: 44px !important;
    }

    body.kslm-scrolled-logo
    .site-header
    .site-logo
    img.kslm-logo-wordmark {
        opacity: 0 !important;

        transform:
            translateY(-50%)
            scale(.97) !important;

        pointer-events: none !important;
    }

    body.kslm-scrolled-logo
    .site-header
    .site-logo
    img.kslm-logo-mark {
        opacity: 1 !important;

        transform:
            translateY(-50%)
            scale(1) !important;
    }
}




/* ==========================================================================
   KSLM-DNH-NAV-LEFT-V1
   Shift editorial nav cluster left; keep CTA right.
   ========================================================================== */

@media (min-width: 960px) {

    .site-header
    .nav-menu-primary
    > .primary-menu-ul {
        transform: translateX(-90px) !important;
    }

    .site-header
    .nav-menu-primary
    > .primary-menu-ul
    > li.menu-item-143 {
        transform: translateX(90px) !important;
    }
}




/* ==========================================================================
   KSLM-DNH-FOOTER-GEOMETRY-FINAL
   Derived directly from locked desktop header geometry.

   Header:
   container = 1200px
   container left = 340
   logo/content left = 360
   CTA right = 1484

   Footer therefore uses:
   1200px centered outer container
   20px left inset
   56px right inset
   usable field = 1124px
   ========================================================================== */

@media (min-width: 960px) {

    .kslm-footer__inner {
        box-sizing: border-box !important;

        width: 100% !important;
        max-width: 1200px !important;

        margin-left: auto !important;
        margin-right: auto !important;

        padding-top: 56px !important;
        padding-bottom: 30px !important;

        /* Exact locked header-derived rails */
        padding-left: 20px !important;
        padding-right: 56px !important;

        display: grid !important;
        grid-template-columns:
            260px
            minmax(0, 1fr)
            190px !important;

        column-gap: 44px !important;
        align-items: start !important;
    }


    /* ----------------------------------------------------------
       LEFT RAIL
       x = same as header logo: 360px in measured viewport
       ---------------------------------------------------------- */

    .kslm-footer__rail--left {
        box-sizing: border-box !important;

        width: 260px !important;
        max-width: 260px !important;

        margin: 0 !important;
        padding: 0 !important;

        justify-self: start !important;
        align-self: start !important;

        overflow: visible !important;
        border: 0 !important;
    }

    .kslm-footer__logo-link {
        display: block !important;

        width: 240px !important;
        max-width: 240px !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .kslm-footer__logo,
    .kslm-footer__rail--left img {
        display: block !important;

        width: 240px !important;
        max-width: 240px !important;
        height: auto !important;
        max-height: none !important;

        margin: 0 !important;
        padding: 0 !important;

        object-fit: contain !important;

        filter: none !important;
        background: transparent !important;
    }

    .kslm-footer__summary {
        max-width: 240px !important;

        margin: 22px 0 0 !important;

        color: rgba(255,255,255,.78) !important;

        font-size: 14px !important;
        line-height: 1.6 !important;
    }


    /* ----------------------------------------------------------
       CENTER
       ---------------------------------------------------------- */

    .kslm-footer__center {
        width: 100% !important;
        min-width: 0 !important;
    }

    .kslm-footer__center .kslm-footer__brand {
        display: none !important;
    }

    .kslm-footer__nav {
        display: grid !important;

        grid-template-columns:
            repeat(3, minmax(0, 1fr)) !important;

        column-gap: 38px !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;
    }

    .kslm-footer__column h2 {
        margin: 0 0 18px !important;
    }

    .kslm-footer__column li {
        margin: 0 0 10px !important;
    }

    /* Keep simplified Gryphon-style structure */
    .kslm-footer__lower {
        display: none !important;
    }


    /* ----------------------------------------------------------
       RIGHT RAIL
       CTA right edge = same as locked header CTA: 1484px
       ---------------------------------------------------------- */

    .kslm-footer__rail--right {
        box-sizing: border-box !important;

        width: 190px !important;
        max-width: 190px !important;

        margin: 0 !important;
        padding: 0 !important;

        justify-self: end !important;
        align-self: start !important;

        border: 0 !important;
    }

    .kslm-footer__action-eyebrow {
        margin: 0 0 18px !important;
    }

    .kslm-footer__action-copy {
        display: none !important;
    }

    .kslm-footer__action {
        box-sizing: border-box !important;

        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: 190px !important;
        max-width: 190px !important;
        min-height: 46px !important;

        margin: 0 !important;
        padding: 0 12px !important;

        white-space: nowrap !important;
    }

    .kslm-footer__phone {
        display: block !important;

        margin-top: 16px !important;
    }


    /* ----------------------------------------------------------
       BOTTOM BAR
       ---------------------------------------------------------- */

    .kslm-footer__bottom {
        grid-column: 1 / -1 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;

        margin-top: 44px !important;
        padding-top: 22px !important;

        border-top:
            1px solid rgba(255,255,255,.12) !important;
    }

    .kslm-footer__bottom nav {
        margin-left: auto !important;
    }
}


/* ==========================================================================
   KSLM-DNH-FOOTER-GRYPHON-FINAL
   Outer geometry inherited from locked header.
   Internal columns distributed evenly.
   ========================================================================== */

@media (min-width: 960px) {

    /*
     * LOCKED OUTER GEOMETRY
     *
     * Header measured:
     * outer container = 1200px
     * content left    = +20px
     * CTA right       = -56px
     */
    .kslm-footer__inner {
        box-sizing: border-box !important;

        width: 100% !important;
        max-width: 1200px !important;

        margin: 0 auto !important;

        padding:
            58px
            56px
            28px
            20px !important;

        /*
         * Brand + three existing nav columns + action.
         *
         * The existing .kslm-footer__nav occupies the middle
         * three tracks internally.
         */
        display: grid !important;
        grid-template-columns:
            240px
            minmax(0, 1fr)
            190px !important;

        column-gap: 52px !important;
        align-items: start !important;
    }


    /* =========================================================
       BRAND COLUMN
       ========================================================= */

    .kslm-footer__final-brand {
        width: 240px !important;
        min-width: 0 !important;
    }

    .kslm-footer__logo-link {
        display: block !important;

        width: 240px !important;
        max-width: 240px !important;

        margin: 0 0 24px !important;
    }

    .kslm-footer__logo {
        display: block !important;

        width: 240px !important;
        max-width: 240px !important;
        height: auto !important;

        margin: 0 !important;

        background: transparent !important;
        filter: none !important;
    }

    .kslm-footer__final-brand
    .kslm-footer__address {
        color: rgba(255,255,255,.84) !important;

        font-size: 13px !important;
        line-height: 1.65 !important;
    }

    .kslm-footer__final-brand
    .kslm-footer__address strong {
        color: #ffffff !important;
        text-transform: uppercase !important;

        font-size: 12px !important;
        letter-spacing: .035em !important;
    }


    /* =========================================================
       THREE CENTER COLUMNS
       ========================================================= */

    .kslm-footer__nav {
        display: grid !important;

        grid-template-columns:
            repeat(3, minmax(0, 1fr)) !important;

        column-gap: 52px !important;

        min-width: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;
    }

    .kslm-footer__column {
        min-width: 0 !important;
    }

    .kslm-footer__column h2,
    .kslm-footer__final-action h2 {
        margin: 0 0 18px !important;

        color: #ffffff !important;

        font-size: 12px !important;
        font-weight: 700 !important;
        line-height: 1 !important;
        letter-spacing: .08em !important;
        text-transform: uppercase !important;
    }

    .kslm-footer__column ul {
        margin: 0 !important;
        padding: 0 !important;
    }

    .kslm-footer__column li {
        margin: 0 0 10px !important;

        font-size: 14px !important;
        line-height: 1.5 !important;
    }


    /* =========================================================
       ACTION COLUMN
       ========================================================= */

    .kslm-footer__final-action {
        width: 190px !important;

        justify-self: end !important;
    }

    .kslm-footer__action {
        box-sizing: border-box !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: 190px !important;
        min-height: 46px !important;

        padding: 0 12px !important;

        border:
            1px solid rgba(255,255,255,.75) !important;

        color: #ffffff !important;

        font-size: 11px !important;
        font-weight: 700 !important;
        letter-spacing: .08em !important;
        text-transform: uppercase !important;
        text-decoration: none !important;

        white-space: nowrap !important;
    }

    .kslm-footer__phone {
        display: inline-block !important;

        margin-top: 16px !important;

        color: rgba(255,255,255,.86) !important;

        font-size: 14px !important;
        text-decoration: none !important;
    }


    /* =========================================================
       LOWER RULE + LEGAL/UTILITY LINE
       ========================================================= */

    .kslm-footer__final-bottom {
        grid-column: 1 / -1 !important;

        display: grid !important;

        grid-template-columns:
            220px
            minmax(0, 1fr)
            auto !important;

        column-gap: 38px !important;
        align-items: start !important;

        margin-top: 52px !important;

        padding-top: 24px !important;

        border-top:
            1px solid rgba(255,255,255,.12) !important;

        color: rgba(255,255,255,.60) !important;

        font-size: 11px !important;
        line-height: 1.55 !important;
    }

    .kslm-footer__copyright {
        white-space: nowrap !important;
    }

    .kslm-footer__disclaimer {
        max-width: 520px !important;
    }

    .kslm-footer__disclaimer p {
        margin: 0 !important;
    }

    .kslm-footer__utility-links {
        display: flex !important;
        flex-wrap: wrap !important;

        justify-content: flex-end !important;

        gap: 8px 18px !important;
    }

    .kslm-footer__utility-links a {
        color: rgba(255,255,255,.72) !important;

        text-decoration: none !important;
        white-space: nowrap !important;
    }

    .kslm-footer__utility-links a:hover,
    .kslm-footer__utility-links a:focus-visible {
        color: #ffffff !important;
    }
}


/* ==========================================================================
   KSLM-DNH-FOOTER-COLOR-FINAL
   Locked mediation footer background.
   ========================================================================== */

#site-footer.kslm-footer {
    background: #3D0C02 !important;
}

#site-footer.kslm-footer .kslm-footer__inner {
    background: transparent !important;
}


/* ==========================================================================
   KSLM-DNH-PRIMARY-GOLD-V1
   Primary Gold: #C39A36
   Geometry unchanged.
   ========================================================================== */

/* Site horizontal rules */
hr {
    border: 0 !important;
    border-top: 1px solid #C39A36 !important;
    background: transparent !important;
}


/* Desktop editorial navigation */
@media (min-width: 960px) {

    .site-header
    .nav-menu-primary
    > .primary-menu-ul
    > li:not(.menu-item-143)
    > .wrap
    > a {
        color: #C39A36 !important;
    }

    .site-header
    .nav-menu-primary
    > .primary-menu-ul
    > li:not(.menu-item-143)
    > .wrap
    > a svg,
    .site-header
    .nav-menu-primary
    > .primary-menu-ul
    > li:not(.menu-item-143)
    > .wrap
    > a path {
        color: #C39A36 !important;
        fill: currentColor !important;
    }


    /* Schedule Mediation */
    .site-header
    .nav-menu-primary
    > .primary-menu-ul
    > li.menu-item-143
    > .wrap
    > a {
        color: #C39A36 !important;
        border-color: #C39A36 !important;
        background: transparent !important;
    }

    .site-header
    .nav-menu-primary
    > .primary-menu-ul
    > li.menu-item-143
    > .wrap
    > a:hover,
    .site-header
    .nav-menu-primary
    > .primary-menu-ul
    > li.menu-item-143
    > .wrap
    > a:focus-visible {
        background: #C39A36 !important;
        color: #3D0C02 !important;
        border-color: #C39A36 !important;
    }
}


/* Footer firm name */
.kslm-footer__final-brand
.kslm-footer__address strong {
    color: #C39A36 !important;
}


/* Phone directly beneath address */
.kslm-footer__brand-phone {
    display: inline-block !important;

    margin-top: 6px !important;

    color: rgba(255,255,255,.86) !important;

    font-size: 13px !important;
    line-height: 1.5 !important;

    text-decoration: none !important;
}

.kslm-footer__brand-phone:hover,
.kslm-footer__brand-phone:focus-visible {
    color: #C39A36 !important;
}


/* Gryphon-style footer divider, now KSL gold */
.kslm-footer__final-bottom {
    border-top-color: rgba(195,154,54,.55) !important;
}


/* ==========================================================================
   KSLM-DNH-PRIMARY-GOLD-V2
   Complete footer accent pass.
   Primary Gold: #C39A36
   Geometry unchanged.
   ========================================================================== */

/* Footer navigation headings */
#site-footer.kslm-footer
.kslm-footer__column h2,

/* Begin Mediation heading */
#site-footer.kslm-footer
.kslm-footer__final-action h2 {
    color: #C39A36 !important;
}


/* Footer Schedule Mediation CTA */
#site-footer.kslm-footer
.kslm-footer__action {
    color: #C39A36 !important;
    border-color: #C39A36 !important;
    background: transparent !important;
}

#site-footer.kslm-footer
.kslm-footer__action:hover,
#site-footer.kslm-footer
.kslm-footer__action:focus-visible {
    color: #3D0C02 !important;
    background: #C39A36 !important;
    border-color: #C39A36 !important;
}


/* Footer firm name */
#site-footer.kslm-footer
.kslm-footer__address strong {
    color: #C39A36 !important;
}


/* Full footer logo — native gold asset */
#site-footer.kslm-footer
.kslm-footer__logo {
    filter: none !important;
    background: transparent !important;
}


/* Footer horizontal divider */
#site-footer.kslm-footer
.kslm-footer__final-bottom {
    border-top-color: rgba(195,154,54,.60) !important;
}


/* Any literal HR throughout site */
hr {
    border: 0 !important;
    border-top: 1px solid #C39A36 !important;
    background: transparent !important;
}


/* ==========================================================================
   KSLM FOOTER IA + RESPONSIVE ACCORDION FINAL
   ========================================================================== */


/* --------------------------------------------------------------------------
   DESKTOP
   Brand stays left. Navigation field moves right.
   -------------------------------------------------------------------------- */

@media (min-width: 960px) {

    .kslm-footer__inner {
        grid-template-columns:
            250px
            minmax(0,1fr)
            190px !important;

        column-gap: 64px !important;
    }

    .kslm-footer__center {
        min-width: 0 !important;
    }

    .kslm-footer__nav--accordion {
        display: grid !important;

        grid-template-columns:
            minmax(190px,1fr)
            minmax(190px,1fr) !important;

        column-gap: 72px !important;

        width: 100% !important;
        max-width: 500px !important;

        margin-left: auto !important;
        margin-right: 0 !important;

        padding: 0 !important;

        border: 0 !important;
    }

    .kslm-footer__nav-group {
        display: block !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;
    }

    .kslm-footer__nav-group > summary {
        display: block !important;

        margin: 0 0 16px !important;
        padding: 0 !important;

        color: #C39A36 !important;

        font-size: 13px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        letter-spacing: .04em !important;
        text-transform: uppercase !important;

        cursor: default !important;

        list-style: none !important;
    }

    .kslm-footer__nav-group > summary::-webkit-details-marker {
        display: none !important;
    }

    .kslm-footer__accordion-mark {
        display: none !important;
    }

    .kslm-footer__nav-links {
        display: grid !important;

        gap: 11px !important;
    }

    .kslm-footer__nav-links a {
        display: block !important;

        width: max-content !important;
        max-width: 100% !important;

        margin: 0 !important;

        color: #FFFFFF !important;

        font-size: 14px !important;
        font-weight: 400 !important;
        line-height: 1.35 !important;

        text-decoration: none !important;
    }

    .kslm-footer__nav-links a:hover,
    .kslm-footer__nav-links a:focus-visible {
        color: #C39A36 !important;
    }

    .kslm-footer__nowrap {
        white-space: nowrap !important;
    }
}


/* --------------------------------------------------------------------------
   TABLET / MOBILE — KSL-style accordion
   -------------------------------------------------------------------------- */

@media (max-width: 959px) {

    .kslm-footer__nav--accordion {
        display: block !important;

        width: 100% !important;
        max-width: none !important;

        margin: 0 !important;
        padding: 0 !important;

        border-top:
            1px solid rgba(195,154,54,.42) !important;
    }

    .kslm-footer__nav-group {
        display: block !important;

        margin: 0 !important;
        padding: 0 !important;

        border-bottom:
            1px solid rgba(195,154,54,.42) !important;
    }

    .kslm-footer__nav-group > summary {
        display: flex !important;

        align-items: center !important;
        justify-content: space-between !important;

        gap: 20px !important;

        width: 100% !important;

        padding: 17px 0 !important;

        color: #C39A36 !important;

        font-size: 12px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        letter-spacing: .08em !important;

        text-transform: uppercase !important;

        cursor: pointer !important;

        list-style: none !important;
    }

    .kslm-footer__nav-group > summary::-webkit-details-marker {
        display: none !important;
    }

    .kslm-footer__accordion-mark {
        display: inline-block !important;

        flex: 0 0 auto !important;

        color: #C39A36 !important;

        font-size: 18px !important;
        font-weight: 300 !important;
        line-height: 1 !important;

        transition: transform .18s ease !important;
    }

    .kslm-footer__nav-group[open]
    .kslm-footer__accordion-mark {
        transform: rotate(45deg) !important;
    }

    .kslm-footer__nav-links {
        display: grid !important;

        gap: 0 !important;

        padding: 0 0 14px !important;
    }

    .kslm-footer__nav-links a {
        display: block !important;

        padding: 8px 0 !important;

        color: #FFFFFF !important;

        font-size: 14px !important;
        font-weight: 400 !important;
        line-height: 1.35 !important;

        text-decoration: none !important;
    }

    .kslm-footer__nav-links a:hover,
    .kslm-footer__nav-links a:focus-visible {
        color: #C39A36 !important;
    }

    .kslm-footer__nowrap {
        white-space: nowrap !important;
    }
}


/* ==========================================================================
   KSL MEDIATION — GLOBAL BOXED CTA ALIGNMENT
   All button-style CTAs center text horizontally + vertically.
   ========================================================================== */

a.elementor-button,
button.elementor-button,
.wp-block-button__link,
.kslm-page__button,
.kslm-routing-button,
.kslm-footer__cta,
.kslm-footer__cta a,
a[class*="kslm"][class*="button"],
button[class*="kslm"] {
    display: inline-flex !important;

    align-items: center !important;
    justify-content: center !important;

    text-align: center !important;
    vertical-align: middle !important;

    line-height: 1.15 !important;
}


/* Elementor has an inner wrapper that can otherwise remain off-center. */

.elementor-button .elementor-button-content-wrapper {
    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;

    text-align: center !important;
}

.elementor-button .elementor-button-text {
    text-align: center !important;
}


/* Native form/button CTAs */

input[type="submit"],
input[type="button"],
button[type="submit"] {
    text-align: center !important;
}


/* Prevent inherited paragraph margins from visually shifting CTA copy. */

.kslm-page__button p,
.kslm-routing-button p,
.elementor-button p {
    margin: 0 !important;
}


/* ==========================================================================
   KSL MEDIATION — GLOBAL BOXED CTA ALIGNMENT FINAL
   WordPress wpautop inserts BR elements inside some anchor buttons.
   Those BRs become flex children and destroy true vertical centering.
   ========================================================================== */


/* --------------------------------------------------------------------------
   REMOVE WPAUTOP LINE BREAKS FROM BOXED CTA ELEMENTS
   -------------------------------------------------------------------------- */

.kslm-page__button > br,
.kslm-routing-button > br,
.kslm-footer__action > br,
.elementor-button > br,
.wp-block-button__link > br,
a[class*="button"] > br,
a[class*="cta"] > br,
button[class*="button"] > br,
button[class*="cta"] > br {
    display: none !important;
}


/* --------------------------------------------------------------------------
   SHARED BOXED CTA GEOMETRY
   -------------------------------------------------------------------------- */

.kslm-page__button,
.kslm-routing-button,
.kslm-footer__action,
.elementor-button,
.wp-block-button__link,
a[class*="kslm"][class*="button"],
a[class*="kslm"][class*="action"],
button[class*="kslm"] {
    display: inline-flex !important;

    align-items: center !important;
    justify-content: center !important;

    text-align: center !important;
    vertical-align: middle !important;

    line-height: 1 !important;

    box-sizing: border-box !important;
}


/* --------------------------------------------------------------------------
   HEADER — SCHEDULE MEDIATION
   Known Neve CTA menu item.
   -------------------------------------------------------------------------- */

header.header li.menu-item-143 > .wrap > a,
header.header li.menu-item-143 > a {
    display: inline-flex !important;

    align-items: center !important;
    justify-content: center !important;

    text-align: center !important;

    line-height: 1 !important;
}


/* Any wpautop-like breaks that ever appear in the header CTA */

header.header li.menu-item-143 a > br {
    display: none !important;
}


/* --------------------------------------------------------------------------
   FOOTER CTA
   -------------------------------------------------------------------------- */

.kslm-footer__action {
    display: inline-flex !important;

    align-items: center !important;
    justify-content: center !important;

    text-align: center !important;

    line-height: 1 !important;
}


/* --------------------------------------------------------------------------
   ELEMENTOR INNER BUTTON STRUCTURE
   -------------------------------------------------------------------------- */

.elementor-button-content-wrapper {
    display: flex !important;

    width: 100% !important;

    align-items: center !important;
    justify-content: center !important;

    text-align: center !important;
}

.elementor-button-text {
    display: block !important;

    width: 100% !important;

    text-align: center !important;

    line-height: 1 !important;
}


/* --------------------------------------------------------------------------
   BUTTON CONTENT SHOULD NEVER CARRY TYPOGRAPHIC MARGINS
   -------------------------------------------------------------------------- */

.kslm-page__button p,
.kslm-routing-button p,
.kslm-footer__action p,
.elementor-button p,
.wp-block-button__link p {
    margin: 0 !important;
    padding: 0 !important;
}


/* ==========================================================================
   KSL MEDIATION — MOBILE HEADER TIGHTENING
   Reduce excess vertical air above/below logo + hamburger.
   ========================================================================== */

@media (max-width: 767px) {

    header.header,
    #header-grid.site-header {
        min-height: 0 !important;
    }

    #header-grid .header-main-inner,
    #header-grid .header-main-inner .container,
    #header-grid .row {
        min-height: 0 !important;
    }

    #header-grid .header-main-inner {
        padding-top: 8px !important;
        padding-bottom: 8px !important;
    }

    #header-grid .container {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    #header-grid .row {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        align-items: center !important;
    }

    #header-grid .site-logo,
    #header-grid .site-logo a,
    #header-grid .builder-item--logo {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }
}

/* KSL MEDIATION — MOBILE HEADER SIDE GUTTERS */

@media (max-width: 767px) {

    #header-grid .header-main-inner .container,
    #header-grid .row {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

}

/* ==========================================================================
   KSL MEDIATION — MOBILE HEADER TRUE VISUAL GUTTER
   Neve outer builder item begins ~9px from edge and adds 15px internally.
   Reduce internal spacing to 3px => ~12px visible logo/menu gutter.
   ========================================================================== */

@media (max-width: 767px) {

    #header-grid .header-main .builder-item {
        padding-left: 3px !important;
        padding-right: 3px !important;
    }

}

/* ==========================================================================
   KSL MEDIATION — MOBILE HEADER TOP OFFSET FIX
   Body had 70px top padding, pushing the entire header/wrapper down.
   ========================================================================== */

@media (max-width: 767px) {

    body {
        padding-top: 0 !important;
    }

}

/* ==========================================================================
   KSL MEDIATION — MOBILE HEADER TOP OFFSET FIX
   Body had 70px top padding, pushing the entire header/wrapper down.
   ========================================================================== */

@media (max-width: 767px) {

    body {
        padding-top: 0 !important;
    }

}

/* ==========================================================================
   KSL MEDIATION — MOBILE STICKY HEADER + CONTENT GUTTER
   ========================================================================== */

@media (max-width: 767px) {

    /* Sticky header */
    header.header {
        position: sticky !important;
        top: 0 !important;
        z-index: 99999 !important;
        background: #fff !important;
    }

    #header-grid {
        position: relative !important;
        z-index: 99999 !important;
    }

    /* Keep the body from reintroducing the old 70px offset */
    body {
        padding-top: 0 !important;
    }

    /* Real page-content gutter */
    .kslm-page {
        padding-left: 12px !important;
        padding-right: 12px !important;
        box-sizing: border-box !important;
    }

    /* Let section backgrounds still span the usable page width */
    .kslm-page > section {
        box-sizing: border-box !important;
    }

}

/* =========================================================
   KSL MEDIATION — DESKTOP NAV CONTRAST
   Dark primary text; oxblood interaction state.
   Schedule CTA excluded.
   ========================================================= */

@media (min-width: 960px) {

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li:not(.menu-item-143)
    > .wrap
    > a {
        color: #2B2F33 !important;
    }

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li:not(.menu-item-143)
    > .wrap
    > a:hover,

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li:not(.menu-item-143)
    > .wrap
    > a:focus-visible,

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li.current-menu-item:not(.menu-item-143)
    > .wrap
    > a,

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li.current-menu-ancestor:not(.menu-item-143)
    > .wrap
    > a {
        color: #3D0C02 !important;
    }
}

/* END KSL MEDIATION — DESKTOP NAV CONTRAST */

/* =========================================================
   KSL MEDIATION — MEDIATOR HERO CRITICAL GEOMETRY
   Prevent first-paint portrait layout shift.
   Full visual styling remains in mediators.css.
   ========================================================= */

.kslm-mediator__hero-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(300px, 390px);
    gap: 76px;
    align-items: end;
}

.kslm-mediator__hero-copy {
    align-self: center;
    max-width: 700px;
}

.kslm-mediator__portrait {
    position: relative;
    align-self: end;

    width: 100%;
    max-width: 365px;

    margin-left: auto;
    margin-right: 0;

    aspect-ratio: 509 / 768;
}

.kslm-mediator__portrait img {
    display: block;

    width: 100%;
    height: auto;

    aspect-ratio: 509 / 768;

    margin: 0;
}

@media (max-width: 959px) {

    .kslm-mediator__hero-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .kslm-mediator__portrait {
        max-width: 390px;
        margin-left: 0;
        margin-right: auto;
    }
}

/* END KSL MEDIATION — MEDIATOR HERO CRITICAL GEOMETRY */

/* KSL MEDIATION — DESKTOP NAV CONTRAST */
@media (min-width: 960px) {

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li:not(.menu-item-143)
    > .wrap
    > a {
        color: #2B2F33 !important;
    }

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li:not(.menu-item-143)
    > .wrap
    > a:hover,

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li:not(.menu-item-143)
    > .wrap
    > a:focus-visible,

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li.current-menu-item:not(.menu-item-143)
    > .wrap
    > a,

    .site-header
    .nav-menu-primary
    .primary-menu-ul
    > li.current-menu-ancestor:not(.menu-item-143)
    > .wrap
    > a {
        color: #3D0C02 !important;
    }
}
/* END KSL MEDIATION — DESKTOP NAV CONTRAST */
