/* =========================================================
   LACE HEADER CTA BUTTON
   Compact logo-inspired button for navigation/header
   ========================================================= */

.lace-header-cta {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 40px !important;
    padding: 0 20px !important;

    background: #0c8281 !important;
    border: 1px solid #0c8281 !important;
    border-radius: 0 !important;

    outline: 1px solid rgba(12,130,129,.36) !important;
    outline-offset: 3px !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.16) !important;

    color: #ffffff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    text-decoration: none !important;

    cursor: pointer !important;

    transition:
        background .25s ease,
        border-color .25s ease,
        color .25s ease,
        transform .25s ease,
        outline-color .25s ease,
        outline-offset .25s ease,
        box-shadow .25s ease !important;
}

.lace-header-cta:hover,
.lace-header-cta:focus {
    background: #08706f !important;
    border-color: #08706f !important;
    color: #ffffff !important;
    text-decoration: none !important;

    transform: translateY(-1px) !important;
    outline-color: rgba(12,130,129,.68) !important;
    outline-offset: 5px !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.22) !important;
}

/* Prevent theme menu styles from overriding the CTA */

.lace-header-cta span,
.lace-header-cta b,
.lace-header-cta strong {
    color: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    letter-spacing: inherit !important;
    text-transform: inherit !important;
}

/* Mobile header */

@media (max-width: 900px) {
    .lace-header-cta {
        width: 100% !important;
        min-height: 44px !important;
        padding: 0 22px !important;
        outline-offset: 3px !important;
    }

    .lace-header-cta:hover,
    .lace-header-cta:focus {
        outline-offset: 4px !important;
    }
}





/* =========================================================
   LACE MEGA MENU - FULL WIDTH IMAGE CARDS INSIDE DNNGO
   Services + Markets
   ========================================================= */

.dnngo_menuslide .pane_space {
    padding: 0 !important;
}

.dnngo_menuslide .menucontent {
    width: 100% !important;
    display: block !important;
}

.lace-mm,
.lace-mm * {
    box-sizing: border-box !important;
}

.lace-mm {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 30px 40px !important;

    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    font-family: inherit !important;
}

/* Header */

.lace-mm-head {
    display: block !important;
    max-width: none !important;
    margin-bottom: 22px !important;
}

.lace-mm-eyebrow,
.lace-mm-title,
.lace-mm-text {
    display: block !important;
}

.lace-mm-eyebrow {
    margin-bottom: 8px !important;
    color: #0c8281 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: .14em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
}

.lace-mm-title {
    margin-bottom: 8px !important;
    color: #1f2f32 !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
}

.lace-mm-text {
    display: block !important;
    max-width: 760px !important;
    color: #657174 !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.6 !important;
}

/* Grid */

.lace-mm-grid {
    display: grid !important;
    gap: 22px !important;
    width: 100% !important;
}

.lace-mm-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.lace-mm-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

/* Image Cards */

.lace-mm-card {
    width: 100% !important;
    height: 100% !important;
    min-height: 270px !important;

    display: flex !important;
    flex-direction: column !important;

    overflow: hidden !important;
    background: rgba(255,255,255,.55) !important;
    border: 1px solid rgba(31,47,50,.08) !important;
    color: inherit !important;
    text-decoration: none !important;

    transition:
        background .25s ease,
        border-color .25s ease,
        color .25s ease,
        transform .25s ease,
        box-shadow .25s ease !important;
}

.lace-mm-card:hover,
.lace-mm-card:focus {
    background: #0c8281 !important;
    border-color: #0c8281 !important;
    color: #ffffff !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 14px 34px rgba(12,130,129,.22) !important;
    text-decoration: none !important;
}

.lace-mm-image {
    display: block !important;
    width: 100% !important;
    height: 145px !important;
    margin: 0 0 20px 0 !important;

    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;

    transition:
        opacity .25s ease,
        transform .35s ease,
        filter .25s ease !important;
}

.lace-mm-card:hover .lace-mm-image,
.lace-mm-card:focus .lace-mm-image {
    opacity: .55 !important;
    transform: scale(1.04) !important;
    filter: grayscale(20%) !important;
}

.lace-mm-card-title {
    display: block !important;
    min-width: 0 !important;
    margin: 0 0 8px 0 !important;
    padding: 0 22px !important;

    color: #1f2f32 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;

    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}

.lace-mm-card-text {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 22px 24px 22px !important;

    color: #657174 !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;

    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}

.lace-mm-card:hover .lace-mm-card-title,
.lace-mm-card:focus .lace-mm-card-title,
.lace-mm-card:hover .lace-mm-card-text,
.lace-mm-card:focus .lace-mm-card-text {
    color: #ffffff !important;
}

/* Link cleanup */

.dnngo_menuslide .lace-mm a,
.dnngo_menuslide .lace-mm a:hover,
.dnngo_menuslide .lace-mm a:focus,
.dnngo_menuslide .lace-mm a span {
    text-decoration: none !important;
}

/* Mobile */

@media (max-width: 900px) {
    .lace-mm {
        width: 100% !important;
        padding: 20px !important;
        box-shadow: none !important;
    }

    .lace-mm-grid-3,
    .lace-mm-grid-4 {
        grid-template-columns: 1fr !important;
    }

    .lace-mm-card {
        min-height: auto !important;
    }

    .lace-mm-image {
        height: 170px !important;
    }
}





/* =========================================================
   LACE FOOTER
   Theme controls background color
   ========================================================= */

.lace-footer,
.lace-footer *{
    box-sizing:border-box;
}

.lace-footer{
    width:100%;
    color:#fff;
    padding:70px 0 28px;
}

.lace-footer-inner{
    width:calc(100% - 80px);
    max-width:1440px;
    margin:0 auto;
}

/*==================================================
TOP
==================================================*/

.lace-footer-top{
    display:grid;
    grid-template-columns:
        200px
        minmax(420px,1fr)
        290px
        auto;

    gap:42px;
    align-items:center;
}

.lace-footer-logo{
    display:block;
    width:190px;
}

.lace-footer-logo img{
    width:100%;
    display:block;
    height:auto;

    filter:brightness(0) invert(1);
}

.lace-footer-statement span{
    display:block;

    margin-bottom:10px;

    font-size:clamp(26px,2vw,30px);
    font-weight:600;
    line-height:1.12;
    letter-spacing:-.02em;
}

.lace-footer-statement p{
    margin:0;

    color:rgba(255,255,255,.80);

    font-size:15px;
    line-height:1.75;
}

/*==================================================
BUILDING
==================================================*/

.lace-footer-building{
    width:100%;
    height:185px;

    overflow:hidden;

    border:1px solid rgba(255,255,255,.18);
}

.lace-footer-building img{

    width:100%;
    height:100%;

    display:block;

    object-fit:cover;

    transition:
        transform .45s ease,
        opacity .25s ease;
}

.lace-footer-building:hover img{
    transform:scale(1.05);
    opacity:.92;
}

/*==================================================
CTA
==================================================*/

.lace-footer-cta{

    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-height:46px;

    padding:0 26px;

    background:#fff;

    border:1px solid #fff;

    outline:1px solid rgba(255,255,255,.30);
    outline-offset:3px;

    color:#0c8281 !important;

    font-size:11px;
    font-weight:800;

    letter-spacing:.08em;

    text-transform:uppercase;

    text-decoration:none !important;

    white-space:nowrap;

    transition:
        background .25s,
        color .25s,
        outline-offset .25s,
        transform .25s;
}

.lace-footer-cta:hover{

    background:transparent;

    color:#fff !important;

    outline-offset:5px;

    transform:translateY(-2px);
}

/*==================================================
RULE
==================================================*/

.lace-footer-rule{

    height:1px;

    margin:48px 0;

    background:
        linear-gradient(
            to right,
            rgba(255,255,255,.45),
            rgba(255,255,255,.18),
            rgba(255,255,255,0)
        );
}

/*==================================================
LINK GRID
==================================================*/

.lace-footer-grid{

    display:grid;

    grid-template-columns:
        repeat(4,minmax(0,1fr));

    gap:55px;
}

.lace-footer-col{

    display:flex;
    flex-direction:column;

    gap:11px;
}

.lace-footer-heading{

    margin-bottom:8px;

    font-size:11px;

    font-weight:800;

    letter-spacing:.14em;

    text-transform:uppercase;

    color:#fff;
}

.lace-footer-col a,
.lace-footer-col span:not(.lace-footer-heading){

    color:rgba(255,255,255,.78);

    font-size:14px;

    line-height:1.6;

    text-decoration:none !important;

    transition:color .2s;
}

.lace-footer-col a:hover{

    color:#fff;
}

/*==================================================
BOTTOM
==================================================*/

.lace-footer-bottom{

    margin-top:46px;

    padding-top:24px;

    border-top:1px solid rgba(255,255,255,.16);

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

    color:rgba(255,255,255,.65);

    font-size:12px;
}

.lace-footer-bottom a{

    display:flex;

    align-items:center;

    gap:10px;

    color:rgba(255,255,255,.82) !important;

    text-decoration:none !important;

    font-size:12px;

    font-weight:700;

    letter-spacing:.06em;

    text-transform:uppercase;
}

.lace-footer-bottom a:hover{

    color:#fff !important;
}

.lace-footer-bottom i{

    font-size:16px;
}

/*==================================================
DNN RESET
==================================================*/

.footer .lace-footer a,
.footer .lace-footer p,
.footer .lace-footer span{

    text-decoration:none !important;
}

/*==================================================
RESPONSIVE
==================================================*/

@media(max-width:1200px){

    .lace-footer-top{

        grid-template-columns:
            200px
            1fr
            260px;

        gap:34px;
    }

    .lace-footer-cta{

        grid-column:2 / span 2;

        justify-self:start;

        margin-top:8px;
    }

}

@media(max-width:900px){

    .lace-footer-inner{

        width:calc(100% - 48px);
    }

    .lace-footer-top{

        grid-template-columns:1fr;

        gap:28px;
    }

    .lace-footer-building{

        max-width:520px;

        height:240px;
    }

    .lace-footer-grid{

        grid-template-columns:repeat(2,1fr);

        gap:40px;
    }

    .lace-footer-cta{

        grid-column:auto;

        width:max-content;
    }

}

@media(max-width:650px){

    .lace-footer{

        padding:55px 0 24px;
    }

    .lace-footer-inner{

        width:calc(100% - 32px);
    }

    .lace-footer-grid{

        grid-template-columns:1fr;
    }

    .lace-footer-building{

        max-width:100%;

        height:190px;
    }

    .lace-footer-cta{

        width:100%;
    }

    .lace-footer-bottom{

        flex-direction:column;

        align-items:flex-start;

        gap:14px;
    }

}

