/*
 * Neve integration.
 */

body.vdm-site .header,
body.vdm-site .site-header {
    font-family: var(--vdm-font-body);
}

/*
 * Main header row.
 * Neve Customizer can generate a ::before overlay for every row. The VDM
 * header uses a solid navy background, so the overlay is disabled here.
 */
body.vdm-site header.header .header-main,
body.vdm-site header.header .header-main-inner {
    --rowbcolor: var(--vdm-color-navy) !important;
    --color: var(--vdm-color-surface) !important;
    --bgcolor: var(--vdm-color-navy) !important;
    --overlaycolor: transparent !important;
    --bgoverlayopacity: 0 !important;

    color: var(--vdm-color-surface);
    background-color: var(--vdm-color-navy) !important;
}

body.vdm-site header.header .header-main-inner::before {
    display: none !important;
    content: none !important;
    opacity: 0 !important;
    background: transparent !important;
}

body.vdm-site header.header .header-main-inner {
    transition: box-shadow 250ms ease, background-color 250ms ease;
}

/* Main navigation and utility icons on the dark header. */
body.vdm-site header.header .header-main .nav-ul > li > a,
body.vdm-site header.header .header-main .nav-menu-primary > li > a,
body.vdm-site header.header .header-main .menu-item-nav-search,
body.vdm-site header.header .header-main .cart-icon-wrapper,
body.vdm-site header.header .header-main .builder-item a:not(.button),
body.vdm-site header.header .header-main button:not(.button) {
    color: var(--vdm-color-surface) !important;
}

body.vdm-site header.header .header-main .nav-ul > li > a:hover,
body.vdm-site header.header .header-main .nav-ul > li.current-menu-item > a,
body.vdm-site header.header .header-main .nav-menu-primary > li > a:hover,
body.vdm-site header.header .header-main .nav-menu-primary > li.current-menu-item > a,
body.vdm-site header.header .header-main .builder-item a:not(.button):hover {
    color: var(--vdm-color-brass) !important;
}

/* Neve header button component. */
body.vdm-site header.header .header-main .button,
body.vdm-site header.header .header-main .button.button-primary,
body.vdm-site header.header .header-main .builder-item--button_base .button {
    border-color: var(--vdm-color-brass) !important;
    color: var(--vdm-color-surface) !important;
    background-color: var(--vdm-color-brass) !important;
}

body.vdm-site header.header .header-main .button:hover,
body.vdm-site header.header .header-main .button.button-primary:hover,
body.vdm-site header.header .header-main .builder-item--button_base .button:hover {
    border-color: var(--vdm-color-brass-dark) !important;
    color: var(--vdm-color-surface) !important;
    background-color: var(--vdm-color-brass-dark) !important;
}

body.vdm-site header.header .site-description {
    color: var(--vdm-color-brass) !important;
}

/*
 * Custom sticky header for Neve Free.
 */
body.vdm-site header.header {
    position: sticky !important;
    top: 0;
    z-index: 9999;
    isolation: isolate;
}

body.admin-bar.vdm-site header.header {
    top: 32px;
}

/*
 * Reserve a fixed, left-aligned slot for the logo. The image itself becomes
 * smaller in the sticky state, but its left edge and the remaining header
 * columns do not move.
 */
body.vdm-site header.header {
    --vdm-header-logo-width: 170px;
    --vdm-header-logo-width-scrolled: 130px;
    --vdm-header-logo-slot: 170px;
}

body.vdm-site header.header .builder-item--logo {
    --maxwidth: var(--vdm-header-logo-slot) !important;

    width: var(--vdm-header-logo-slot) !important;
    min-width: var(--vdm-header-logo-slot) !important;
    max-width: var(--vdm-header-logo-slot) !important;
    justify-content: flex-start !important;
    text-align: left !important;
}

body.vdm-site header.header .builder-item--logo .site-logo {
    width: 100% !important;
    max-width: none !important;
    display: flex !important;
    flex-direction: column;
    align-items: flex-start !important;
    justify-content: center !important;
    text-align: left !important;
}

body.vdm-site header.header .builder-item--logo .site-logo img {
    width: var(--vdm-header-logo-width) !important;
    max-width: var(--vdm-header-logo-width) !important;
    height: auto !important;
    margin-inline: 0 auto !important;
    transform-origin: left center;
    transition: width 250ms ease, max-width 250ms ease;
}

html.vdm-header-scrolled body.vdm-site header.header .builder-item--logo .site-logo img,
body.vdm-site.vdm-header-scrolled header.header .builder-item--logo .site-logo img {
    width: var(--vdm-header-logo-width-scrolled) !important;
    max-width: var(--vdm-header-logo-width-scrolled) !important;
}

html.vdm-header-scrolled body.vdm-site header.header .header-main-inner,
body.vdm-site.vdm-header-scrolled header.header .header-main-inner {
    box-shadow: 0 4px 16px rgb(19 38 52 / 18%) !important;
}

@media (max-width: 782px) {
    body.admin-bar.vdm-site header.header {
        top: 46px;
    }
}

body.vdm-site footer,
body.vdm-site .site-footer {
    color: var(--vdm-color-surface);
    background: var(--vdm-color-navy);
}

/*
 * VDM global header and footer frame, v0.8.
 */

body.vdm-site header.header .header-main .container,
body.vdm-site header.header .header-main .row,
body.vdm-site .site-footer .footer--row-inner .container {
    width: min(calc(100% - (2 * var(--vdm-page-gutter))), var(--vdm-width-content));
    max-width: var(--vdm-width-content);
    margin-inline: auto;
}

body.vdm-site header.header .header-main .nav-ul,
body.vdm-site header.header .header-main .nav-menu-primary {
    align-items: center;
    gap: clamp(18px, 2.2vw, 34px);
}

body.vdm-site header.header .header-main .nav-ul > li > a,
body.vdm-site header.header .header-main .nav-menu-primary > li > a {
    padding-inline: 0 !important;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

body.vdm-site header.header .header-main .builder-item--button_base .button {
    min-height: 40px;
    padding: 0.65rem 1.05rem;
    font-size: 0.8125rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

body.vdm-site header.header .site-description {
    margin-top: 3px;
    font-size: 0.75rem;
    line-height: 1.2;
    letter-spacing: 0.02em;
    transition: opacity 180ms ease, transform 180ms ease;
}

html.vdm-header-scrolled body.vdm-site header.header .site-description,
body.vdm-site.vdm-header-scrolled header.header .site-description {
    opacity: 0.72;
}

/* Footer row */
body.vdm-site .site-footer,
body.vdm-site footer.site-footer {
    color: var(--vdm-color-surface);
    background: var(--vdm-color-navy);
}

body.vdm-site .site-footer .footer--row-inner,
body.vdm-site footer.site-footer .footer--row-inner {
    --bgcolor: var(--vdm-color-navy) !important;
    --color: var(--vdm-color-surface) !important;
    --overlaycolor: transparent !important;
    --bgoverlayopacity: 0 !important;

    color: var(--vdm-color-surface);
    border-top: 1px solid rgb(255 255 255 / 10%);
    background: var(--vdm-color-navy) !important;
}

body.vdm-site .site-footer .footer--row-inner::before,
body.vdm-site footer.site-footer .footer--row-inner::before {
    display: none !important;
    content: none !important;
}

body.vdm-site .site-footer .footer--row-inner .container {
    padding-block: clamp(52px, 6vw, 76px) clamp(34px, 4vw, 52px);
}

body.vdm-site .site-footer .footer--row .builder-item,
body.vdm-site .site-footer .footer-widget-area {
    align-self: stretch;
}

body.vdm-site .site-footer .widget,
body.vdm-site .site-footer .widget_block {
    height: 100%;
    margin: 0;
}

body.vdm-site .site-footer .widget + .widget,
body.vdm-site .site-footer .widget_block + .widget_block {
    margin-top: var(--vdm-space-4);
}

body.vdm-site .site-footer p,
body.vdm-site .site-footer li,
body.vdm-site .site-footer address,
body.vdm-site .site-footer dt,
body.vdm-site .site-footer dd {
    color: rgb(255 255 255 / 74%);
    font-family: var(--vdm-font-body);
    font-size: 0.9375rem;
    line-height: 1.65;
}

body.vdm-site .site-footer a {
    color: var(--vdm-color-surface);
    text-decoration: none;
}

body.vdm-site .site-footer a:hover,
body.vdm-site .site-footer a:focus-visible {
    color: var(--vdm-color-brass);
}

.vdm-footer-block {
    display: flex;
    height: 100%;
    flex-direction: column;
    align-items: flex-start;
}

body.vdm-site .site-footer .vdm-footer-title {
    margin: 0 0 var(--vdm-space-4);
    color: var(--vdm-color-surface);
    font-family: var(--vdm-font-display);
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}

.vdm-footer-company__logo {
    margin-bottom: var(--vdm-space-4);
}

.vdm-footer-company__logo .custom-logo-link {
    display: inline-block;
}

.vdm-footer-company__logo img {
    width: 170px;
    max-width: 100%;
    height: auto;
}

body.vdm-site .site-footer .vdm-footer-company > p:not(.vdm-footer-title) {
    max-width: 38ch;
}

body.vdm-site .site-footer .vdm-footer-copyright {
    margin-top: auto;
    padding-top: var(--vdm-space-5);
    color: rgb(255 255 255 / 46%);
    font-size: 0.8125rem;
}

.vdm-footer-contact address {
    margin: 0;
    font-style: normal;
}

.vdm-footer-contact address p {
    margin: 0 0 var(--vdm-space-3);
}

.vdm-footer-hours dl {
    width: 100%;
    margin: 0;
}

.vdm-footer-hours dl > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--vdm-space-4);
    padding-block: 0.65rem;
    border-bottom: 1px solid rgb(255 255 255 / 10%);
}

.vdm-footer-hours dl > div:first-child {
    padding-top: 0;
}

.vdm-footer-hours dt,
.vdm-footer-hours dd {
    margin: 0;
}

.vdm-footer-hours dd {
    color: var(--vdm-color-surface) !important;
    font-weight: 600;
    text-align: right;
}

@media (max-width: 959px) {
    body.vdm-site header.header {
        --vdm-header-logo-slot: 150px;
        --vdm-header-logo-width: 150px;
        --vdm-header-logo-width-scrolled: 120px;
    }
}

@media (max-width: 767px) {
    body.vdm-site header.header .header-main .container,
    body.vdm-site header.header .header-main .row,
    body.vdm-site .site-footer .footer--row-inner .container {
        width: min(calc(100% - 40px), var(--vdm-width-content));
    }

    body.vdm-site header.header {
        --vdm-header-logo-slot: 132px;
        --vdm-header-logo-width: 132px;
        --vdm-header-logo-width-scrolled: 112px;
    }

    body.vdm-site .site-footer .footer--row-inner .container {
        padding-block: 44px 34px;
    }

    .vdm-footer-block {
        padding-block: var(--vdm-space-2);
    }

    body.vdm-site .site-footer .vdm-footer-copyright {
        margin-top: var(--vdm-space-4);
    }
}
