/**
 * DS Universal WordPress Platform
 * Header foundation - Version 0.8.0
 */

:root {
    --ds-content-width: 1200px;
    --ds-spacing: 1.5rem;
    --ds-text: #172033;
    --ds-bg: #ffffff;
    --ds-border: #d9dee8;
    --ds-header-height: 82px;
    --ds-header-bg: rgba(255, 255, 255, 0.98);
    --ds-header-text: #172033;
    --ds-header-shadow: 0 6px 24px rgba(23, 32, 51, 0.08);
    --ds-button-bg: #172033;
    --ds-button-text: #ffffff;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    color: var(--ds-text);
    background: var(--ds-bg);
    font-family: Arial, Helvetica, sans-serif;
}

img {
    max-width: 100%;
    height: auto;
}

a {
    color: inherit;
}

.ds-container {
    width: min(100% - 2rem, var(--ds-content-width));
    margin-inline: auto;
}

.ds-site-header {
    position: relative;
    z-index: 1000;
    background: var(--ds-header-bg);
    color: var(--ds-header-text);
    border-bottom: 1px solid var(--ds-border);
}

.ds-header-sticky {
    position: sticky;
    top: 0;
    box-shadow: var(--ds-header-shadow);
}

.admin-bar .ds-header-sticky {
    top: 32px;
}

.ds-header-transparent {
    position: absolute;
    top: 0;
    width: 100%;
    background: var(--ds-header-bg);
    border-bottom-color: rgba(255, 255, 255, 0.25);
    box-shadow: none;
    color: var(--ds-header-text);
}

.admin-bar .ds-header-transparent {
    top: 32px;
}

.ds-header-inner {
    min-height: var(--ds-header-height);
    display: flex;
    align-items: center;
    gap: 2rem;
}

.ds-branding {
    flex: 0 0 auto;
}

.ds-branding .custom-logo {
    display: block;
    max-height: 64px;
    width: auto;
}

.ds-site-title {
    text-decoration: none;
    font-size: 1.4rem;
    font-weight: 700;
}

.ds-header-navigation {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.ds-primary-nav ul {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--ds-nav-spacing, 20px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.ds-primary-nav a {
    color: var(--ds-header-text);
    text-decoration: none;
    transition: color 0.2s ease;
    font-size: var(--ds-nav-font-size, 16px);
    font-weight: var(--ds-nav-font-weight, 500);
}

.ds-primary-nav a:hover,
.ds-primary-nav a:focus {
    color: var(--ds-header-hover);
}

.ds-header-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0.65rem 1rem;
    background: var(--ds-button-bg);
    color: var(--ds-button-text);
    border-radius: 6px;
    text-decoration: none;
    white-space: nowrap;
}

.ds-header-transparent .ds-header-cta {
    background: var(--ds-button-bg);
    color: var(--ds-button-text);
}

.ds-menu-toggle {
    display: none;
    margin-left: auto;
    border: 1px solid currentColor;
    border-radius: 6px;
    background: transparent;
    color: inherit;
    padding: 0.55rem 0.8rem;
    font: inherit;
}

.ds-hero-slider {
    position: relative;
    z-index: 1;
}

.ds-content {
    padding-block: 2.5rem;
}

.ds-entry + .ds-entry {
    margin-top: 2.5rem;
}

.ds-site-footer {
    border-top: 1px solid var(--ds-border);
    margin-top: 3rem;
}

.ds-site-footer .ds-container {
    padding-block: 2rem;
}

.ds-site-footer ul {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

@media (max-width: 782px) {
    .admin-bar .ds-header-sticky,
    .admin-bar .ds-header-transparent {
        top: 46px;
    }
}

@media (max-width: 900px) {
    .ds-header-inner {
        flex-wrap: wrap;
        min-height: 72px;
        padding-block: 0.75rem;
    }

    .ds-menu-toggle {
        display: inline-flex;
    }

    .ds-header-navigation {
        display: none;
        flex-basis: 100%;
        width: 100%;
        margin-left: 0;
        padding-bottom: 0.75rem;
        align-items: stretch;
        flex-direction: column;
    }

    .ds-header-navigation.is-open {
        display: flex;
    }

    .ds-primary-nav ul {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    .ds-primary-nav li {
        border-top: 1px solid var(--ds-border);
    }

    .ds-primary-nav a {
        display: block;
        padding: 0.8rem 0;
    }

    .ds-header-transparent .ds-primary-nav li {
        border-top-color: rgba(255, 255, 255, 0.25);
    }

    .ds-header-cta {
        align-self: flex-start;
    }
}


/* Branding */
.ds-site-logo-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.ds-logo-image {
    display: block;
    width: auto;
    height: auto;
    max-height: 64px;
}

.ds-logo-mobile {
    display: none;
}

.ds-site-title-text {
    display: block;
    font-size: 1.4rem;
    font-weight: 700;
}

@media (max-width: 900px) {
    .ds-branding:has(.ds-logo-mobile) .ds-logo-primary,
    .ds-branding:has(.ds-logo-mobile) .ds-logo-transparent,
    .ds-branding:has(.ds-logo-mobile) .ds-site-title-text {
        display: none;
    }

    .ds-logo-mobile {
        display: block;
    }
}


/* Page Headers */
.ds-page-header {
    position: relative;
    display: flex;
    align-items: center;
    background-position: center;
    background-size: cover;
    overflow: hidden;
}

.ds-page-header__overlay {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.ds-page-header__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    padding-block: 2rem;
}

.ds-page-header__title {
    margin: 0;
    color: inherit;
    font-size: clamp(2rem, 4vw, 3.5rem);
    line-height: 1.1;
}

.ds-breadcrumbs {
    margin-bottom: .75rem;
    font-size: .9rem;
}

.ds-breadcrumbs a {
    color: inherit;
}


/* DS Page Header owns the H1 on standard pages when enabled. */
body.ds-has-page-header main.ds-site-main .entry-title {
    display: none;
}

/* DS Universal Mega Menu */
.ds-primary-nav .ds-mega-menu{position:static}
.ds-primary-nav .ds-mega-menu>.sub-menu{left:50%;right:auto;width:min(1200px,calc(100vw - 40px));max-width:1200px;padding:24px;transform:translateX(-50%);display:grid;gap:20px;visibility:hidden;opacity:0;pointer-events:none;background:#fff;box-shadow:0 12px 35px rgba(0,0,0,.14);z-index:9999}
.ds-primary-nav .ds-mega-menu:hover>.sub-menu,.ds-primary-nav .ds-mega-menu:focus-within>.sub-menu{visibility:visible;opacity:1;pointer-events:auto}
.ds-primary-nav .ds-mega-columns-2>.sub-menu{grid-template-columns:repeat(2,minmax(0,1fr))}
.ds-primary-nav .ds-mega-columns-3>.sub-menu{grid-template-columns:repeat(3,minmax(0,1fr))}
.ds-primary-nav .ds-mega-columns-4>.sub-menu{grid-template-columns:repeat(4,minmax(0,1fr))}
.ds-primary-nav .ds-mega-columns-5>.sub-menu{grid-template-columns:repeat(5,minmax(0,1fr))}
.ds-primary-nav .ds-mega-columns-6>.sub-menu{grid-template-columns:repeat(6,minmax(0,1fr))}
.ds-primary-nav .ds-mega-menu>.sub-menu>li{width:auto;min-width:0}
.ds-primary-nav .ds-mega-menu>.sub-menu>li>a{display:flex;flex-direction:column;align-items:flex-start;gap:7px;white-space:normal}
.ds-mega-item-image{width:100%;height:auto;max-height:150px;object-fit:cover;border-radius:4px}
.ds-mega-item-description{display:block;font-size:.85em;line-height:1.4;opacity:.72;font-weight:400}
@media(max-width:900px){.ds-primary-nav .ds-mega-menu>.sub-menu{position:static;width:100%;max-width:none;transform:none;display:block;padding:0;box-shadow:none;visibility:visible;opacity:1;pointer-events:auto}.ds-primary-nav .ds-mega-menu>.sub-menu>li{width:100%}.ds-mega-item-image{max-width:100px}}


/* ---------------------------------------------------------
   DS Universal Navigation Dropdown / Mega Menu Fixes
   --------------------------------------------------------- */

/* Normal top-level menu items anchor their dropdowns. */
.ds-primary-nav .menu > li {
    position: relative;
}

/* Base dropdown behavior for standard WordPress submenus. */
.ds-primary-nav .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 9999;
    min-width: 220px;
    margin: 0;
    padding: 8px 0;
    list-style: none;
    background: #ffffff;
    color: #172033;
    border: 1px solid rgba(0,0,0,.08);
    box-shadow: 0 12px 30px rgba(0,0,0,.14);
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.ds-primary-nav li:hover > .sub-menu,
.ds-primary-nav li:focus-within > .sub-menu {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.ds-primary-nav .sub-menu li {
    position: relative;
    width: 100%;
}

.ds-primary-nav .sub-menu a {
    display: block;
    width: 100%;
    padding: 10px 16px;
    color: inherit;
    white-space: nowrap;
}

/* Third-level standard dropdowns fly out to the right. */
.ds-primary-nav .sub-menu .sub-menu {
    top: 0;
    left: 100%;
}

/* Mega menu parent uses the header/navigation area, not the LI width. */
.ds-primary-nav .ds-mega-menu {
    position: static;
}

/* Mega menu first-level submenu becomes a grid panel. */
.ds-primary-nav .ds-mega-menu > .sub-menu {
    top: 100%;
    left: 50%;
    right: auto;
    width: min(1200px, calc(100vw - 40px));
    max-width: 1200px;
    min-width: 0;
    padding: 24px;
    transform: translate(-50%, 8px);
    display: grid;
    gap: 20px;
    white-space: normal;
}

.ds-primary-nav .ds-mega-menu:hover > .sub-menu,
.ds-primary-nav .ds-mega-menu:focus-within > .sub-menu {
    transform: translate(-50%, 0);
}

/* Mega-menu children should not behave like flyout dropdown anchors. */
.ds-primary-nav .ds-mega-menu > .sub-menu > li {
    position: static;
}

.ds-primary-nav .ds-mega-menu > .sub-menu > li > a {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
    padding: 0;
    white-space: normal;
}

/* If a mega-menu column itself has children, keep them inside that column. */
.ds-primary-nav .ds-mega-menu > .sub-menu > li > .sub-menu {
    position: static;
    display: block;
    min-width: 0;
    padding: 8px 0 0;
    border: 0;
    box-shadow: none;
    background: transparent;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: none;
}

.ds-primary-nav .ds-mega-menu > .sub-menu > li > .sub-menu a {
    padding: 6px 0;
    white-space: normal;
}

/* Mobile: all dropdowns become part of the normal stacked menu flow. */
@media (max-width: 900px) {
    .ds-primary-nav .sub-menu,
    .ds-primary-nav .sub-menu .sub-menu,
    .ds-primary-nav .ds-mega-menu > .sub-menu {
        position: static;
        top: auto;
        left: auto;
        right: auto;
        width: 100%;
        max-width: none;
        min-width: 0;
        margin: 0;
        padding: 0 0 0 16px;
        border: 0;
        box-shadow: none;
        background: transparent;
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        transform: none;
        display: block;
    }

    .ds-primary-nav .sub-menu a {
        white-space: normal;
    }
}


/* Custom Content / WPBakery Mega Menu */
.ds-primary-nav .ds-mega-type-custom {
    position: static;
}

.ds-mega-custom-panel {
    position: absolute;
    top: 100%;
    left: 50%;
    width: min(1200px, calc(100vw - 40px));
    max-width: 1200px;
    transform: translate(-50%, 8px);
    background: #ffffff;
    color: #172033;
    box-shadow: 0 12px 35px rgba(0,0,0,.14);
    border: 1px solid rgba(0,0,0,.08);
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
    z-index: 10000;
}

.ds-mega-type-custom:hover > .ds-mega-custom-panel,
.ds-mega-type-custom:focus-within > .ds-mega-custom-panel {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

.ds-mega-custom-inner {
    padding: 24px;
}

.ds-mega-custom-inner > *:first-child {
    margin-top: 0;
}

.ds-mega-custom-inner > *:last-child {
    margin-bottom: 0;
}

/* Let WPBakery rows use the panel width without theme content-width constraints. */
.ds-mega-custom-inner .vc_row,
.ds-mega-custom-inner .wpb_content_element {
    max-width: 100%;
}

@media (max-width: 900px) {
    .ds-mega-custom-panel {
        position: static;
        width: 100%;
        max-width: none;
        transform: none;
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        box-shadow: none;
        border: 0;
        background: transparent;
    }

    .ds-mega-custom-inner {
        padding: 12px 0 12px 16px;
    }
}


/* ---------------------------------------------------------
   DS Universal 0.6.7
   First-level dropdowns anchor to the full header bottom.
   --------------------------------------------------------- */

/*
 * Top-level menu items must NOT be positioning containers.
 * This makes their first-level dropdowns use .ds-site-header
 * as the positioned ancestor instead of the individual menu item.
 */
.ds-primary-nav .menu > li {
    position: static;
}

/*
 * Every first-level submenu starts at the bottom edge of the
 * entire header, regardless of logo height or menu text height.
 */
.ds-primary-nav .menu > li > .sub-menu {
    top: 100%;
}

/*
 * Normal submenu children remain positioning containers so
 * third-level flyout menus still open relative to their parent.
 */
.ds-primary-nav .menu > li > .sub-menu > li {
    position: relative;
}

/*
 * Custom-content mega panels follow the exact same rule.
 * Since the top-level LI is static, top:100% resolves against
 * the complete DS site header.
 */
.ds-primary-nav .menu > li > .ds-mega-custom-panel {
    top: 100%;
}

/*
 * Structured mega menus also begin at the full header bottom.
 */
.ds-primary-nav .menu > li.ds-mega-menu > .sub-menu {
    top: 100%;
}

/* Mobile menus stay in normal document flow. */
@media (max-width: 900px) {
    .ds-primary-nav .menu > li {
        position: relative;
    }

    .ds-primary-nav .menu > li > .sub-menu,
    .ds-primary-nav .menu > li > .ds-mega-custom-panel {
        top: auto;
    }
}


/* ---------------------------------------------------------
   DS Universal 0.6.8
   Preserve hover path from top-level item to submenu panel.
   --------------------------------------------------------- */

/*
 * Stretch the navigation and top-level items through the full
 * header height. This removes the "dead zone" between a menu
 * label and a first-level dropdown that is anchored to the
 * bottom of the complete header.
 */
@media (min-width: 901px) {
    .ds-header-navigation,
    .ds-primary-nav,
    .ds-primary-nav .menu {
        align-self: stretch;
        height: 100%;
    }

    .ds-primary-nav {
        display: flex;
        align-items: stretch;
    }

    .ds-primary-nav .menu {
        align-items: stretch;
    }

    .ds-primary-nav .menu > li {
        display: flex;
        align-items: center;
    }

    .ds-primary-nav .menu > li > a {
        display: flex;
        align-items: center;
        height: 100%;
    }

    /*
     * Pull first-level panels one pixel upward so the stretched
     * parent and submenu physically touch with no hover gap.
     */
    .ds-primary-nav .menu > li > .sub-menu,
    .ds-primary-nav .menu > li > .ds-mega-custom-panel {
        top: calc(100% - 1px);
    }
}


/* ---------------------------------------------------------
   DS Universal 0.6.9
   Explicit submenu open state controlled by JavaScript.
   --------------------------------------------------------- */

@media (min-width: 901px) {
    .ds-primary-nav .menu > li.ds-menu-open > .sub-menu,
    .ds-primary-nav .menu > li.ds-menu-open > .ds-mega-custom-panel {
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    .ds-primary-nav .menu > li.ds-menu-open > .sub-menu {
        transform: translateY(0) !important;
    }

    .ds-primary-nav .menu > li.ds-mega-menu.ds-menu-open > .sub-menu {
        transform: translate(-50%, 0) !important;
    }

    .ds-primary-nav .menu > li.ds-mega-type-custom.ds-menu-open > .ds-mega-custom-panel {
        transform: translate(-50%, 0) !important;
    }
}


/* ---------------------------------------------------------
   DS Universal 0.7.0
   Mobile WPBakery Mega Menu containment / stacking fix.
   --------------------------------------------------------- */

@media (max-width: 900px) {

    /*
     * Give custom mega-menu content its own visual surface.
     * This prevents WPBakery text from visually blending into
     * the page/header content underneath the transparent header.
     */
    .ds-mega-custom-panel {
        background: #ffffff;
        color: #172033;
        border-top: 1px solid rgba(0,0,0,.08);
        border-bottom: 1px solid rgba(0,0,0,.08);
    }

    .ds-mega-custom-inner {
        display: flow-root;
        width: 100%;
        padding: 18px 16px 20px;
        overflow: hidden;
    }

    /*
     * WPBakery desktop column rules can leave floated columns or
     * negative row margins inside a narrow mobile mega menu.
     * Force rows to become contained, single-column mobile stacks.
     */
    .ds-mega-custom-inner .vc_row,
    .ds-mega-custom-inner .wpb_row {
        display: flex !important;
        flex-wrap: wrap !important;
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .ds-mega-custom-inner .vc_column_container,
    .ds-mega-custom-inner .wpb_column {
        float: none !important;
        clear: both !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }

    .ds-mega-custom-inner .vc_column_container > .vc_column-inner {
        width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .ds-mega-custom-inner .wpb_content_element,
    .ds-mega-custom-inner .vc_single_image-wrapper,
    .ds-mega-custom-inner .wpb_single_image,
    .ds-mega-custom-inner img {
        max-width: 100%;
    }

    .ds-mega-custom-inner img {
        height: auto;
    }

    /*
     * Remove common WPBakery negative/large spacing at the edges
     * of a compact mobile menu panel.
     */
    .ds-mega-custom-inner .wpb_content_element {
        margin-bottom: 16px;
    }

    .ds-mega-custom-inner > *:last-child,
    .ds-mega-custom-inner .wpb_content_element:last-child {
        margin-bottom: 0;
    }
}


/* ---------------------------------------------------------
   DS Universal 0.7.1
   Unified dropdown / mega-menu panel surfaces.
   --------------------------------------------------------- */

/* Regular dropdowns */
.ds-primary-nav .sub-menu {
    background: var(--ds-submenu-bg, #ffffff);
    color: var(--ds-submenu-text, #172033);
    border-color: var(--ds-submenu-border, #d9dee8);
    box-shadow: var(--ds-submenu-shadow, 0 12px 30px rgba(0,0,0,.14));
}

.ds-primary-nav .sub-menu a {
    color: var(--ds-submenu-text, #172033);
}

.ds-primary-nav .sub-menu a:hover,
.ds-primary-nav .sub-menu a:focus {
    color: var(--ds-submenu-hover, #2f7fd6);
}

/* Structured mega menu */
.ds-primary-nav .ds-mega-menu > .sub-menu {
    background: var(--ds-submenu-bg, #ffffff);
    color: var(--ds-submenu-text, #172033);
    border: 1px solid var(--ds-submenu-border, #d9dee8);
    box-shadow: var(--ds-submenu-shadow, 0 12px 30px rgba(0,0,0,.14));
}

/* Custom Content / WPBakery mega menu outer panel */
.ds-mega-custom-panel {
    background: var(--ds-submenu-bg, #ffffff);
    color: var(--ds-submenu-text, #172033);
    border-color: var(--ds-submenu-border, #d9dee8);
    box-shadow: var(--ds-submenu-shadow, 0 12px 30px rgba(0,0,0,.14));
}

.ds-mega-custom-panel a {
    color: var(--ds-submenu-text, #172033);
}

.ds-mega-custom-panel a:hover,
.ds-mega-custom-panel a:focus {
    color: var(--ds-submenu-hover, #2f7fd6);
}

/* Keep the same surface treatment on mobile. */
@media (max-width: 900px) {
    .ds-primary-nav .sub-menu,
    .ds-primary-nav .ds-mega-menu > .sub-menu,
    .ds-mega-custom-panel {
        background: var(--ds-submenu-bg, #ffffff);
        color: var(--ds-submenu-text, #172033);
        border-color: var(--ds-submenu-border, #d9dee8);
    }
}


/* ---------------------------------------------------------
   DS Universal 0.7.2
   Desktop dropdown alignment + complete mobile menu surfaces
   --------------------------------------------------------- */

/*
 * Desktop standard dropdown horizontal placement is calculated by JS.
 * Mega menus keep their centered wide-panel behavior.
 */
@media (min-width: 901px) {
    .ds-primary-nav .menu > li:not(.ds-mega-menu) > .sub-menu {
        transform: translateY(8px);
    }

    .ds-primary-nav .menu > li:not(.ds-mega-menu).ds-menu-open > .sub-menu,
    .ds-primary-nav .menu > li:not(.ds-mega-menu):hover > .sub-menu,
    .ds-primary-nav .menu > li:not(.ds-mega-menu):focus-within > .sub-menu {
        transform: translateY(0);
    }
}

/*
 * Mobile menu is one coherent surface, including top-level items,
 * normal dropdown children, structured mega menus, and custom WPBakery panels.
 */
@media (max-width: 900px) {
    .ds-header-navigation {
        background: var(--ds-mobile-menu-bg, #ffffff);
        color: var(--ds-mobile-menu-text, #172033);
        border-top: 1px solid var(--ds-mobile-menu-border, #d9dee8);
        overflow: hidden;
    }

    .ds-primary-nav,
    .ds-primary-nav .menu,
    .ds-primary-nav .menu > li,
    .ds-primary-nav .sub-menu,
    .ds-primary-nav .ds-mega-menu > .sub-menu,
    .ds-mega-custom-panel {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .ds-primary-nav .menu > li,
    .ds-primary-nav .sub-menu li {
        background: var(--ds-mobile-menu-bg, #ffffff);
        color: var(--ds-mobile-menu-text, #172033);
        border-top: 1px solid var(--ds-mobile-menu-border, #d9dee8);
    }

    .ds-primary-nav .menu > li:first-child {
        border-top: 0;
    }

    .ds-primary-nav .menu a,
    .ds-primary-nav .sub-menu a,
    .ds-mega-custom-panel,
    .ds-mega-custom-panel a {
        color: var(--ds-mobile-menu-text, #172033) !important;
    }

    .ds-primary-nav .menu a:hover,
    .ds-primary-nav .menu a:focus,
    .ds-primary-nav .sub-menu a:hover,
    .ds-primary-nav .sub-menu a:focus,
    .ds-mega-custom-panel a:hover,
    .ds-mega-custom-panel a:focus {
        color: var(--ds-mobile-menu-hover, #2f7fd6) !important;
    }

    .ds-primary-nav .sub-menu,
    .ds-primary-nav .sub-menu .sub-menu,
    .ds-primary-nav .ds-mega-menu > .sub-menu,
    .ds-mega-custom-panel {
        position: static !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        transform: none !important;
        margin: 0 !important;
        padding-left: 16px !important;
        box-shadow: none !important;
        border-left: 0 !important;
        border-right: 0 !important;
        background: var(--ds-mobile-menu-bg, #ffffff) !important;
        color: var(--ds-mobile-menu-text, #172033) !important;
        overflow: hidden !important;
    }

    .ds-mega-custom-inner {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        padding: 16px !important;
        overflow: hidden !important;
    }

    .ds-mega-custom-inner .vc_row,
    .ds-mega-custom-inner .wpb_row,
    .ds-mega-custom-inner [class*="vc_col-"],
    .ds-mega-custom-inner .vc_column_container,
    .ds-mega-custom-inner .wpb_column,
    .ds-mega-custom-inner .vc_column-inner,
    .ds-mega-custom-inner .wpb_wrapper {
        float: none !important;
        clear: both !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box !important;
    }

    .ds-mega-custom-inner .vc_row,
    .ds-mega-custom-inner .wpb_row {
        display: block !important;
    }

    .ds-mega-custom-inner img {
        display: block;
        max-width: 100% !important;
        height: auto !important;
    }

    .ds-mega-custom-inner p,
    .ds-mega-custom-inner div,
    .ds-mega-custom-inner span {
        overflow-wrap: anywhere;
        word-break: normal;
    }
}


/* ---------------------------------------------------------
   DS Universal 0.8.0 Footer System
   --------------------------------------------------------- */

.ds-site-footer {
    margin-top: 3rem;
    border-top: 0;
    background: var(--ds-footer-bg, #172033);
    color: var(--ds-footer-text, #ffffff);
}

.ds-footer-main {
    background: var(--ds-footer-bg, #172033);
}

.ds-footer-main > .ds-container,
.ds-footer-main > .ds-footer-full {
    padding-block: 42px;
}

.ds-footer-full {
    width: 100%;
    padding-inline: 32px;
}

.ds-footer-grid {
    display: grid;
    gap: var(--ds-footer-gap, 32px);
}

.ds-footer-columns-1 { grid-template-columns: minmax(0, 1fr); }
.ds-footer-columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ds-footer-columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ds-footer-columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ds-footer-column {
    min-width: 0;
}

.ds-footer-logo {
    display: block;
    max-width: 220px;
    width: auto;
    height: auto;
    margin-bottom: 18px;
}

.ds-footer-site-name,
.ds-site-footer .widget-title {
    margin-top: 0;
    color: inherit;
}

.ds-footer-description,
.ds-footer-contact {
    margin: 0 0 10px;
}

.ds-site-footer a {
    color: var(--ds-footer-link, #ffffff);
}

.ds-site-footer a:hover,
.ds-site-footer a:focus {
    color: var(--ds-footer-hover, #8fd15a);
}

.ds-site-footer ul {
    display: block;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ds-site-footer li + li {
    margin-top: 8px;
}

.ds-footer-copyright {
    background: var(--ds-footer-copy-bg, #0f1726);
    color: var(--ds-footer-copy-text, #ffffff);
}

.ds-footer-copyright > .ds-container,
.ds-footer-copyright > .ds-footer-full {
    padding-block: 16px;
}

.ds-footer-copyright p {
    margin: 0;
}

.ds-footer-custom-content {
    width: 100%;
}

.ds-footer-custom-content .vc_row,
.ds-footer-custom-content .wpb_row {
    max-width: 100%;
}

/* Responsive footer columns */
@media (max-width: 900px) {
    .ds-footer-columns-3,
    .ds-footer-columns-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .ds-footer-grid,
    .ds-footer-columns-2,
    .ds-footer-columns-3,
    .ds-footer-columns-4 {
        grid-template-columns: 1fr;
    }

    .ds-footer-full {
        padding-inline: 20px;
    }
}


/* DS Universal 0.8.1 Social Media System */
.ds-social-links { display:flex; align-items:center; flex-wrap:wrap; gap:12px; color:var(--ds-social-color,#fff); }
.ds-social-links a { width:var(--ds-social-size,20px); height:var(--ds-social-size,20px); display:inline-flex; align-items:center; justify-content:center; color:inherit; text-decoration:none; line-height:1; transition:color .2s ease, transform .2s ease; }
.ds-social-links a:hover,.ds-social-links a:focus { color:var(--ds-social-hover,#8fd15a); transform:translateY(-1px); }
.ds-social-links svg { width:100%; height:100%; display:block; }
.ds-social-align-left{justify-content:flex-start}.ds-social-align-center{justify-content:center}.ds-social-align-right{justify-content:flex-end}
.ds-footer-copyright-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%; }
.ds-header-navigation > .ds-social-links { margin-left:16px; }
@media(max-width:900px){ .ds-header-navigation > .ds-social-links { margin:12px 0 0; } }
@media(max-width:600px){ .ds-footer-copyright-inner { flex-direction:column; justify-content:center; text-align:center; gap:12px; } .ds-footer-copyright-inner .ds-social-links{justify-content:center;} }


/* ---------------------------------------------------------
   DS Universal 0.8.2
   Social persistence + header/footer social alignment fixes
   --------------------------------------------------------- */

/*
 * Keep the overall header navigation centered vertically.
 * Only the primary navigation itself needs full-header height for
 * the dropdown hover bridge; social icons and CTA should not stretch.
 */
@media (min-width: 901px) {
    .ds-header-navigation {
        align-self: center !important;
        height: auto !important;
        align-items: center !important;
    }

    .ds-primary-nav {
        align-self: stretch;
        min-height: var(--ds-header-height);
        height: auto;
        display: flex;
        align-items: stretch;
    }

    .ds-primary-nav .menu {
        min-height: var(--ds-header-height);
        height: auto;
        align-items: stretch;
    }

    .ds-header-social {
        flex: 0 0 auto;
        display: flex;
        align-items: center;
        align-self: center;
        margin-left: 0;
    }

    .ds-header-social .ds-social-links {
        margin: 0;
        align-items: center;
        flex-wrap: nowrap;
    }

    .ds-header-cta {
        align-self: center;
    }
}

@media (max-width: 900px) {
    .ds-header-social {
        width: 100%;
        padding: 10px 0;
    }

    .ds-header-social .ds-social-links {
        margin: 0;
    }
}

/* Copyright/social layout */
.ds-footer-copyright-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
}

.ds-footer-copyright-inner > p {
    margin: 0;
}

@media (max-width: 600px) {
    .ds-footer-copyright-inner {
        flex-direction: column;
        justify-content: center;
        text-align: center;
        gap: 12px;
    }

    .ds-footer-copyright-inner .ds-social-links {
        justify-content: center;
    }
}


/* ---------------------------------------------------------
   DS Universal 0.8.3
   Desktop header social links occupy the right-side action zone.
   Mobile social links remain centered in the expanded menu.
   --------------------------------------------------------- */
@media (min-width: 901px) {
    .ds-header-navigation {
        flex: 1 1 auto;
        min-width: 0;
    }

    .ds-header-social {
        margin-left: auto !important;
        justify-content: flex-end;
        text-align: right;
    }

    .ds-header-social .ds-social-links {
        justify-content: flex-end;
    }
}

@media (max-width: 900px) {
    .ds-header-social {
        margin-left: 0 !important;
        justify-content: center;
        text-align: center;
    }

    .ds-header-social .ds-social-links {
        justify-content: center;
    }
}


/* ---------------------------------------------------------
   DS Universal Button Component
   --------------------------------------------------------- */
.ds-button-wrap {
    display: flex;
    width: 100%;
}

.ds-button-align-left {
    justify-content: flex-start;
}

.ds-button-align-center {
    justify-content: center;
}

.ds-button-align-right {
    justify-content: flex-end;
}

.ds-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    border: 1px solid transparent;
    text-decoration: none;
    cursor: pointer;
    line-height: 1.2;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}

.ds-button:hover,
.ds-button:focus {
    text-decoration: none;
}

.ds-button:focus-visible {
    outline-offset: 3px;
}

/* DS Universal 1.2.0 Blog & Posts */
.ds-archive-header{margin-bottom:28px}.ds-blog-archive{min-width:0}.ds-blog-layout-cards{display:grid;gap:28px}.ds-blog-layout-cards.ds-blog-columns-1{grid-template-columns:1fr}.ds-blog-layout-cards.ds-blog-columns-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-blog-layout-cards.ds-blog-columns-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ds-blog-layout-cards.ds-blog-columns-4{grid-template-columns:repeat(4,minmax(0,1fr))}.ds-post-card{overflow:hidden;background:var(--ds-surface,#fff);border:1px solid var(--ds-border,#d9dee8);border-radius:8px}.ds-post-card__image{display:block;overflow:hidden;background:var(--ds-surface-alt,#f6f7f7)}.ds-post-card__image img{display:block;width:100%;height:100%;object-fit:cover}.ds-post-card__body{padding:22px}.ds-post-card__title{margin:8px 0 12px}.ds-post-card__title a{color:inherit;text-decoration:none}.ds-post-card__read-more{display:inline-block;margin-top:16px;font-weight:600}.ds-post-meta{display:flex;flex-wrap:wrap;gap:7px;font-size:.9em;opacity:.72}.ds-post-meta-sep{opacity:.55}.ds-blog-layout-list{display:grid;gap:24px}.ds-blog-layout-list .ds-post-card{display:grid;grid-template-columns:minmax(220px,34%) minmax(0,1fr)}.ds-pagination{grid-column:1/-1;margin-top:10px}.ds-blog-sidebar .widget+.widget{margin-top:28px}.ds-single-post-no-sidebar .ds-single-post{max-width:var(--ds-single-post-width,860px);margin-inline:auto}.ds-single-post__header{margin-bottom:24px}.ds-single-post__featured{margin-bottom:30px}.ds-single-post__featured img{display:block;width:100%;height:auto}.ds-single-post__tags{margin-top:30px}.ds-single-post__tags a{display:inline-block;margin:4px 6px 4px 0;padding:5px 9px;border:1px solid var(--ds-border,#d9dee8);border-radius:999px;text-decoration:none}@media(max-width:1024px){.ds-blog-layout-cards.ds-blog-columns-3,.ds-blog-layout-cards.ds-blog-columns-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.ds-blog-layout-cards,.ds-blog-layout-cards.ds-blog-columns-2,.ds-blog-layout-cards.ds-blog-columns-3,.ds-blog-layout-cards.ds-blog-columns-4{grid-template-columns:1fr}.ds-blog-layout-list .ds-post-card{grid-template-columns:1fr}}


/* ---------------------------------------------------------
   DS Universal 1.2.5 Blog polish
   --------------------------------------------------------- */

.ds-single-post__content {
    font-size: 1em;
}

.ds-single-post__content > *:first-child {
    margin-top: 0;
}

.ds-single-post__content img {
    max-width: 100%;
    height: auto;
}

.ds-author-box {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    margin-top: 34px;
    padding: 22px;
    background: var(--ds-surface-alt, #f6f7f7);
    border: 1px solid var(--ds-border, #d9dee8);
    border-radius: 8px;
}

.ds-author-box__avatar img {
    display: block;
    border-radius: 50%;
}

.ds-author-box__name {
    margin: 0 0 8px;
}

.ds-author-box__bio {
    margin: 0;
}

.ds-post-navigation {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 34px;
    padding-top: 24px;
    border-top: 1px solid var(--ds-border, #d9dee8);
}

.ds-post-navigation__next {
    text-align: right;
}

.ds-post-navigation__label {
    display: block;
    margin-bottom: 6px;
    font-size: .82em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    opacity: .65;
}

.ds-post-navigation a {
    text-decoration: none;
    font-weight: 600;
}

.comments-area {
    margin-top: 42px;
    padding-top: 28px;
    border-top: 1px solid var(--ds-border, #d9dee8);
}

.comments-title,
.comment-reply-title {
    margin-top: 0;
}

.comment-list {
    margin: 24px 0 0;
    padding: 0;
    list-style: none;
}

.comment-list .comment {
    margin: 0 0 22px;
    padding: 20px;
    background: var(--ds-surface, #fff);
    border: 1px solid var(--ds-border, #d9dee8);
    border-radius: 8px;
}

.comment-list .children {
    margin: 18px 0 0 26px;
    padding: 0;
    list-style: none;
}

.comment-author {
    display: flex;
    gap: 10px;
    align-items: center;
}

.comment-author .avatar {
    border-radius: 50%;
}

.comment-metadata {
    margin: 6px 0 12px;
    font-size: .88em;
    opacity: .7;
}

.comment-content p:last-child {
    margin-bottom: 0;
}

.reply {
    margin-top: 10px;
}

.comment-respond {
    margin-top: 28px;
}

.comment-form {
    display: grid;
    gap: 16px;
}

.comment-form p {
    margin: 0;
}

.comment-form label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
}

.comment-form textarea,
.comment-form input[type='text'],
.comment-form input[type='email'],
.comment-form input[type='url'] {
    width: 100%;
    box-sizing: border-box;
}

.comment-form .form-submit {
    margin-top: 4px;
}

@media (max-width: 700px) {
    .ds-post-navigation {
        grid-template-columns: 1fr;
    }

    .ds-post-navigation__next {
        text-align: left;
    }

    .ds-author-box {
        grid-template-columns: 1fr;
    }

    .comment-list .children {
        margin-left: 12px;
    }
}


/* ---------------------------------------------------------
   DS Universal 1.2.6 Post Authors
   --------------------------------------------------------- */

.ds-post-author-link {
    color: inherit;
    text-decoration: none;
}

.ds-post-author-link:hover,
.ds-post-author-link:focus {
    text-decoration: underline;
}

.ds-author-box__role {
    margin-bottom: 10px;
    font-size: .92em;
    opacity: .72;
}

.ds-author-box__links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin-top: 14px;
}

.ds-author-box__links a {
    text-decoration: none;
    font-weight: 600;
}

.ds-post-author-profile__header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 28px;
    align-items: center;
    margin-bottom: 28px;
}

.ds-post-author-profile__photo img {
    display: block;
    width: 180px;
    height: 180px;
    object-fit: cover;
    border-radius: 50%;
}

.ds-post-author-profile__header h1 {
    margin-bottom: 8px;
}

.ds-post-author-profile__role {
    margin: 0 0 12px;
    font-size: 1.05em;
    opacity: .75;
}

.ds-post-author-profile__links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
}

.ds-post-author-profile__links a {
    text-decoration: none;
    font-weight: 600;
}

.ds-post-author-profile__bio {
    max-width: 900px;
    margin-bottom: 42px;
}

.ds-post-author-profile__posts h2 {
    margin-bottom: 22px;
}

@media (max-width: 700px) {
    .ds-post-author-profile__header {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .ds-post-author-profile__photo img {
        margin-inline: auto;
    }

    .ds-post-author-profile__links {
        justify-content: center;
    }
}


/* ---------------------------------------------------------
   DS Universal 1.3.0 Modern Post Author Profiles
   --------------------------------------------------------- */

.ds-author-detail {
    padding-block: 46px;
}

.ds-author-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, 0.9fr);
    gap: 34px;
    align-items: start;
}

.ds-author-detail__layout--single {
    grid-template-columns: minmax(0, 1fr);
}

.ds-author-card,
.ds-author-panel {
    background: var(--ds-surface, #fff);
    border: 1px solid var(--ds-border, #d9dee8);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(23, 32, 51, 0.06);
}

.ds-author-card--main {
    padding: clamp(28px, 4vw, 52px);
}

.ds-author-card__eyebrow,
.ds-author-panel__eyebrow {
    margin-bottom: 18px;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--ds-accent, #8fd15a);
}

.ds-author-card__header h1 {
    margin: 0 0 8px;
}

.ds-author-card__role {
    margin: 0 0 22px;
    opacity: .72;
}

.ds-author-card__bio > :first-child {
    margin-top: 0;
}

.ds-author-card__bio > :last-child {
    margin-bottom: 0;
}

.ds-author-detail__sidebar {
    display: grid;
    gap: 24px;
}

.ds-author-panel {
    overflow: hidden;
}

.ds-author-panel__photo img {
    display: block;
    width: 100%;
    max-height: 360px;
    object-fit: cover;
}

.ds-author-panel__content {
    padding: 24px;
}

.ds-author-panel__name {
    margin: 0 0 6px;
}

.ds-author-panel__role {
    margin: 0 0 16px;
    opacity: .7;
}

.ds-author-panel__contact,
.ds-author-panel__socials {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
}

.ds-author-panel__socials {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--ds-border, #d9dee8);
}

.ds-author-panel__contact a,
.ds-author-panel__socials a {
    text-decoration: none;
    font-weight: 600;
}

.ds-author-panel--gallery {
    padding: 24px;
}

.ds-author-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.ds-author-gallery a {
    display: block;
    overflow: hidden;
    border-radius: 8px;
    background: var(--ds-surface-alt, #f6f7f7);
}

.ds-author-gallery img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    transition: transform .2s ease;
}

.ds-author-gallery a:hover img,
.ds-author-gallery a:focus img {
    transform: scale(1.035);
}

.ds-author-articles {
    margin-top: 48px;
}

.ds-author-articles__heading {
    margin-bottom: 22px;
}

.ds-author-articles__heading h2 {
    margin: 0;
}

/* Native DS lightbox */
html.ds-lightbox-open {
    overflow: hidden;
}

.ds-lightbox {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 28px 72px;
    background: rgba(7, 10, 18, .92);
}

.ds-lightbox.is-open {
    display: flex;
}

.ds-lightbox__figure {
    margin: 0;
    max-width: min(1200px, 90vw);
    max-height: 88vh;
    text-align: center;
    color: #fff;
}

.ds-lightbox__image {
    display: block;
    max-width: 100%;
    max-height: 78vh;
    width: auto;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
}

.ds-lightbox__caption {
    margin-top: 12px;
    font-size: .95rem;
}

.ds-lightbox__counter {
    margin-top: 8px;
    font-size: .82rem;
    opacity: .7;
}

.ds-lightbox__close,
.ds-lightbox__prev,
.ds-lightbox__next {
    position: absolute;
    border: 0;
    background: rgba(255,255,255,.10);
    color: #fff;
    cursor: pointer;
}

.ds-lightbox__close {
    top: 20px;
    right: 20px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    font-size: 2rem;
    line-height: 1;
}

.ds-lightbox__prev,
.ds-lightbox__next {
    top: 50%;
    width: 48px;
    height: 62px;
    margin-top: -31px;
    border-radius: 8px;
    font-size: 1.7rem;
}

.ds-lightbox__prev { left: 18px; }
.ds-lightbox__next { right: 18px; }

@media (max-width: 900px) {
    .ds-author-detail__layout {
        grid-template-columns: 1fr;
    }

    .ds-author-detail__sidebar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .ds-author-detail {
        padding-block: 28px;
    }

    .ds-author-detail__sidebar {
        grid-template-columns: 1fr;
    }

    .ds-author-card--main,
    .ds-author-panel--gallery,
    .ds-author-panel__content {
        padding: 20px;
    }

    .ds-lightbox {
        padding: 64px 14px 24px;
    }

    .ds-lightbox__prev,
    .ds-lightbox__next {
        top: auto;
        bottom: 18px;
        width: 44px;
        height: 44px;
        margin-top: 0;
    }

    .ds-lightbox__prev { left: calc(50% - 54px); }
    .ds-lightbox__next { right: calc(50% - 54px); }

    .ds-lightbox__image {
        max-height: 72vh;
    }
}


/* ---------------------------------------------------------
   DS Universal 1.3.1 Modern Single Posts
   --------------------------------------------------------- */

.ds-post-detail {
    padding-block: 46px;
}

.ds-post-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, .9fr);
    gap: 34px;
    align-items: start;
}

.ds-post-detail__layout--single {
    grid-template-columns: minmax(0, 1fr);
}

.ds-post-detail__layout--sidebar-left {
    grid-template-columns: minmax(280px, .9fr) minmax(0, 2fr);
}

.ds-post-detail__main,
.ds-post-detail__sidebar {
    min-width: 0;
}

.ds-post-detail-card,
.ds-post-panel,
.ds-post-sidebar-widgets .widget {
    background: var(--ds-surface, #fff);
    border: 1px solid var(--ds-border, #d9dee8);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(23, 32, 51, .06);
}

.ds-post-detail-card {
    overflow: hidden;
    padding: clamp(28px, 4vw, 52px);
}

.ds-post-detail-card__eyebrow,
.ds-post-panel__eyebrow {
    margin-bottom: 16px;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--ds-accent, #8fd15a);
}

.ds-post-detail-card__header h1 {
    margin: 0 0 14px;
}

.ds-post-detail-card__featured {
    margin: 28px calc(clamp(28px, 4vw, 52px) * -1) 32px;
}

.ds-post-detail-card__featured img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 620px;
    object-fit: cover;
}

.ds-post-detail-card__content > :first-child {
    margin-top: 0;
}

.ds-post-detail-card__content > :last-child {
    margin-bottom: 0;
}

.ds-post-detail__sidebar {
    display: grid;
    gap: 24px;
}

.ds-post-panel {
    overflow: hidden;
}

.ds-post-panel__author-photo img,
.ds-post-panel__author-photo .avatar {
    display: block;
    width: 100%;
    height: auto;
    max-height: 360px;
    object-fit: cover;
    border-radius: 0;
}

.ds-post-panel__content {
    padding: 24px;
}

.ds-post-panel__author-name {
    margin: 0 0 6px;
}

.ds-post-panel__author-name a {
    color: inherit;
    text-decoration: none;
}

.ds-post-panel__author-role {
    margin: 0 0 14px;
    opacity: .7;
}

.ds-post-panel__author-bio {
    line-height: 1.65;
}

.ds-post-panel__links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid var(--ds-border, #d9dee8);
}

.ds-post-panel__links a {
    text-decoration: none;
    font-weight: 600;
}

.ds-post-sidebar-widgets {
    display: grid;
    gap: 24px;
}

.ds-post-sidebar-widgets .widget {
    margin: 0;
    padding: 24px;
}

.ds-post-detail-card .comments-area {
    margin-top: 42px;
}

@media (max-width: 900px) {
    .ds-post-detail__layout,
    .ds-post-detail__layout--sidebar-left {
        grid-template-columns: 1fr;
    }

    .ds-post-detail__layout--sidebar-left .ds-post-detail__sidebar {
        order: 2;
    }

    .ds-post-detail__layout--sidebar-left .ds-post-detail__main {
        order: 1;
    }
}

@media (max-width: 650px) {
    .ds-post-detail {
        padding-block: 28px;
    }

    .ds-post-detail-card {
        padding: 22px;
    }

    .ds-post-detail-card__featured {
        margin: 24px -22px 28px;
    }

    .ds-post-panel__content,
    .ds-post-sidebar-widgets .widget {
        padding: 20px;
    }
}


/* ---------------------------------------------------------
   DS Universal 1.3.4 Single Post Supporting Sidebar
   --------------------------------------------------------- */

.ds-post-details-list {
    margin: 0;
}

.ds-post-details-list > div {
    padding: 13px 0;
    border-bottom: 1px solid var(--ds-border, #d9dee8);
}

.ds-post-details-list > div:first-child {
    padding-top: 0;
}

.ds-post-details-list > div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.ds-post-details-list dt {
    margin-bottom: 4px;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    opacity: .65;
}

.ds-post-details-list dd {
    margin: 0;
}

.ds-post-details-list a {
    text-decoration: none;
}

.ds-post-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.ds-post-gallery a {
    display: block;
    overflow: hidden;
    border-radius: 8px;
    background: var(--ds-surface-alt, #f6f7f7);
}

.ds-post-gallery img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    transition: transform .2s ease;
}

.ds-post-gallery a:hover img,
.ds-post-gallery a:focus img {
    transform: scale(1.035);
}


/* DS Universal 1.4.0 Slider Revolution / Hero */
.ds-hero-slider {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: hidden;
}


/* ---------------------------------------------------------
   DS Universal 1.4.0.2
   Slider hero / mobile transparent-header integration
   --------------------------------------------------------- */

/*
 * A transparent header over a working slider must overlay the slider at every
 * viewport size. The explicit class prevents sticky/mobile rules from putting
 * the header back into normal document flow.
 */
.ds-site-header.ds-header-transparent.ds-header-over-slider {
    position: absolute !important;
    top: 0 !important;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 10000;
    background: var(--ds-header-bg);
    box-shadow: none;
}

/* Logged-in WordPress admin bar offsets. */
.admin-bar .ds-site-header.ds-header-transparent.ds-header-over-slider {
    top: 32px !important;
}

@media (max-width: 782px) {
    .admin-bar .ds-site-header.ds-header-transparent.ds-header-over-slider {
        top: 46px !important;
    }
}

/*
 * Keep the slider itself at the top of normal content flow so it begins
 * underneath the absolute overlay header rather than below it.
 */
.ds-site-header.ds-header-over-slider + .ds-hero-slider {
    margin-top: 0 !important;
}


/* ---------------------------------------------------------
   DS Universal 1.5.0 News / Announcement Ticker
   --------------------------------------------------------- */

.ds-news-ticker {
    position: relative;
    z-index: 20;
    width: 100%;
    overflow: hidden;
    background: var(--ds-ticker-bg);
    color: var(--ds-ticker-text);
    font-size: .94rem;
}

.ds-news-ticker__inner {
    display: flex;
    min-height: 42px;
    align-items: stretch;
}

.ds-news-ticker__label {
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    padding: 0 20px;
    background: var(--ds-ticker-label-bg);
    color: #fff;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
}

.ds-news-ticker__viewport {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
}

.ds-news-ticker__track {
    display: flex;
    width: max-content;
    min-width: 100%;
    animation: none;
    will-change: transform;
}

.ds-news-ticker__group {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}

.ds-news-ticker__item {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    padding: 0 24px;
}

.ds-news-ticker__item + .ds-news-ticker__item::before {
    content: "•";
    margin-right: 24px;
    opacity: .55;
}

.ds-news-ticker__item a {
    color: var(--ds-ticker-link);
    text-decoration: none;
}

.ds-news-ticker__item a:hover,
.ds-news-ticker__item a:focus {
    text-decoration: underline;
}

.ds-news-ticker--pause-hover:hover .ds-news-ticker__track,
.ds-news-ticker--pause-hover:focus-within .ds-news-ticker__track {
    animation-play-state: paused;
}

/* Ticker motion is handled by the Web Animations API in 1.5.4. */

@media (max-width: 700px) {
    .ds-news-ticker {
        font-size: .88rem;
    }

    .ds-news-ticker__inner {
        min-height: 40px;
    }

    .ds-news-ticker__label {
        padding-inline: 12px;
        font-size: .8rem;
    }

    .ds-news-ticker__item {
        padding-inline: 18px;
    }

    .ds-news-ticker__item + .ds-news-ticker__item::before {
        margin-right: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ds-news-ticker__track {
        animation: none;
        transform: none;
    }

    .ds-news-ticker__group[aria-hidden="true"] {
        display: none;
    }

    .ds-news-ticker__viewport {
        overflow-x: auto;
    }
}


/* ---------------------------------------------------------
   DS Universal 1.7.2
   Reliable sticky-header state
   --------------------------------------------------------- */

.ds-sticky-header-placeholder {
    height: 0;
    width: 100%;
    pointer-events: none;
}

.ds-site-header.ds-header-is-stuck {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 100000 !important;
    box-shadow: var(--ds-header-shadow);
}

.admin-bar .ds-site-header.ds-header-is-stuck {
    top: 32px !important;
}

@media (max-width: 782px) {
    .admin-bar .ds-site-header.ds-header-is-stuck {
        top: 46px !important;
    }
}

/* Once stuck, the fixed state must override transparent/slider absolute rules. */
.ds-site-header.ds-header-transparent.ds-header-over-slider.ds-header-is-stuck,
.ds-site-header.ds-header-transparent.ds-header-is-stuck {
    position: fixed !important;
}
