/* *****************************************************

    ** Custom Stylesheet **

    Any custom styling you want to apply should be
    defined here.

***************************************************** */

:root {
    --hostdss-primary: #181d7e;
    --hostdss-primary-dark: #14177c;
    --hostdss-primary-soft: #1f3ca6;
    --hostdss-primary-light: #e8edff;
}

/* Popup templates must stay hidden until Magnific Popup opens them. */
.mfp-hide {
    display: none !important;
}

body a {
    color: var(--hostdss-primary);
}

body a:hover,
body a:focus {
    color: var(--hostdss-primary-dark);
}

.bg-green,
.btn-default-green-fill,
.btn-default-green,
.btn-default-green:hover,
.btn-default-fill:hover,
.cart .payment-form .btn.btn-submit,
.cd-top {
    background-color: var(--hostdss-primary) !important;
    border-color: var(--hostdss-primary) !important;
    color: #ffffff !important;
}

.btn-default-grad-purple-fill,
.btn-default-grad-purple-fill:hover,
.overlay-grad:before {
    background-image: linear-gradient(to right, var(--hostdss-primary-soft), var(--hostdss-primary) 40%, var(--hostdss-primary) 40%, var(--hostdss-primary-soft)) !important;
}

.btn-default-purple,
.btn-default-green,
.btn-default-blue-fill,
.btn-default-purple-fill,
.btn-default-white:hover,
.c-green,
.rebutton:hover,
.blog-section .btn-primary,
.blog-single-section .btn-outline-primary:hover {
    color: #ffffff !important;
    background-color: var(--hostdss-primary) !important;
    border-color: var(--hostdss-primary) !important;
}

.btn-default-purple:hover,
.btn-default-green-fill:hover,
.btn-default-blue-fill:hover,
.btn-default-purple-fill:hover,
.cart .payment-form .btn.btn-submit:hover,
.blog-section .btn-primary:hover,
.blog-single-section .btn-outline-primary {
    color: var(--hostdss-primary) !important;
    background-color: var(--hostdss-primary-light) !important;
    border-color: var(--hostdss-primary) !important;
}

.golink {
    color: #a3d133 !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    font-weight: 600;
}

.golink:hover,
.golink:focus {
    color: #93be2d !important;
    text-decoration: underline;
}

/* Mail plans page: remove legacy diagonal overlay and keep brand-consistent hero colors */
#owl-demo .total-grad-purple {
  background: linear-gradient(135deg, #14177c 0%, #1d226f 55%, #16224d 100%) !important;
}

.bb-green,
.form-control:focus,
.btn-outline-primary,
.blog-single-section blockquote {
    border-color: var(--hostdss-primary) !important;
}

.owl-theme .owl-dots .owl-dot.active span,
.owl-theme .owl-dots .owl-dot:hover span,
.pagination .page-item.active .page-link,
.cart .cart-header i,
.main-menu .menu-item.active > a,
.main-menu .menu-item > a:hover {
    background-color: var(--hostdss-primary) !important;
    color: #ffffff !important;
}

.cart .item-pricing,
.table .price {
    color: var(--hostdss-primary) !important;
}

/* Match dsswebhost behavior: simple text hover for links without submenus */
.menu-wrap .main-menu > .menu-item:not(.menu-item-has-children) > a:hover,
.menu-wrap .main-menu > .menu-item:not(.menu-item-has-children).active > a {
    background: transparent !important;
    color: #a3d133 !important;
}

/* Submenu parent items should hover like normal menu text (no blue block) */
.menu-wrap .main-menu > .menu-item.menu-item-has-children:not(.menu-item-account) > a:hover,
.menu-wrap .main-menu > .menu-item.menu-item-has-children:not(.menu-item-account).active > a,
.menu-wrap .main-menu > .menu-item.menu-item-has-children:not(.menu-item-account).open > a {
    background: transparent !important;
    color: #a3d133 !important;
}

/* Submenu links should follow green text hover, not blue block hover */
.menu-wrap .main-menu > .menu-item > .sub-menu > .menu-item > a:hover,
.menu-wrap .main-menu > .menu-item > .sub-menu > .menu-item > a:focus,
.menu-wrap .main-menu > .menu-item > .sub-menu > .menu-item.active > a {
    background: transparent !important;
    color: #a3d133 !important;
}

/* Top menu account button contrast */
.menu-wrap .main-menu .client-area-btn {
    border: 1px solid #ffffff !important;
    color: #ffffff !important;
    border-radius: 28px;
    padding: 10px 20px !important;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.menu-wrap .main-menu .client-area-btn:hover,
.menu-wrap .main-menu .client-area-btn:focus {
    background: #ffffff !important;
    color: var(--hostdss-primary-dark) !important;
    border-color: #ffffff !important;
}

.menu-wrap .main-menu > .menu-item.menu-item-cart > a,
.menu-wrap .main-menu > .menu-item.menu-item-account > a {
    padding-left: 20px !important;
    padding-right: 20px !important;
}

.menu-wrap .main-menu > .menu-item.menu-item-account > a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-width: 1px !important;
    border-style: solid !important;
}

.menu-wrap .main-menu > .menu-item.menu-item-has-children.menu-item-account > a {
    border-color: rgba(255, 255, 255, 0.92) !important;
}

.menu-wrap .main-menu > .menu-item.menu-item-has-children.menu-item-account > a:hover,
.menu-wrap .main-menu > .menu-item.menu-item-has-children.menu-item-account > a:focus {
    color: var(--hostdss-primary-dark) !important;
    border-color: #ffffff !important;
}

.menu-wrap.mobile .client-area-btn-mobile .btn {
    width: 100%;
    border: 1px solid var(--hostdss-primary) !important;
    color: var(--hostdss-primary) !important;
    background: #ffffff !important;
}

.menu-wrap.mobile .client-area-btn-mobile .btn:hover {
    background: var(--hostdss-primary) !important;
    color: #ffffff !important;
}

/* Global de-blueing for consistency with reference theme */
.sec-grad-blue-to-blue,
.sec-grad-blue-to-purple,
.sec-grad-grey-to-blue,
.bg-blue,
.plans.badge.feat.bg-blue,
.menu.badge.feat.bg-blue {
    background: linear-gradient(120deg, var(--hostdss-primary-dark) 70%, var(--hostdss-primary) 0%) !important;
    color: #ffffff !important;
}

.btn-default-blue-fill,
.pricing .table thead,
.ControlPanel .col-box figure,
.PricingTable {
    background-color: var(--hostdss-primary-dark) !important;
    border-color: var(--hostdss-primary-dark) !important;
}

/* Homepage hero parity with dsswebhost */
#owl-demo .hero-home-slide {
    background: var(--hostdss-primary-dark);
    min-height: 92vh;
}

#owl-demo .hero-home-slide .vc-parent,
#owl-demo .hero-home-slide .vc-child,
#owl-demo .hero-home-slide .top-banner {
    min-height: 92vh;
}

#owl-demo .hero-home-slide .top-banner .container {
    position: relative;
    padding-top: 180px;
    padding-bottom: 120px;
}

#owl-demo .total-grad-purple .opa-purple {
        display: none !important;
}

#owl-demo .top-banner .btn-primary,
#owl-demo .top-banner .btn-success {
        background: #a3d133 !important;
        border-color: #a3d133 !important;
        color: #122157 !important;
}

#owl-demo .top-banner .btn-primary:hover,
#owl-demo .top-banner .btn-success:hover {
        background: #93be2d !important;
        border-color: #93be2d !important;
        color: #122157 !important;
}

#owl-demo .hero-home-slide .heading {
    color: #ffffff;
    font-size: 52px;
    line-height: 1.1;
    max-width: 620px;
    margin-bottom: 22px;
}

#owl-demo .hero-home-slide .subheading {
    color: #ffffff;
    max-width: 620px;
    font-size: 36px;
    line-height: 1.35;
    margin-bottom: 34px;
}

#owl-demo .hero-home-slide .subheading b {
    color: #ffffff;
    font-weight: 700;
}

#owl-demo .hero-home-slide .custom-img-right {
    position: absolute;
    right: 48px;
    bottom: 78px;
    width: min(28vw, 360px);
    max-width: 34%;
    height: auto;
    opacity: 1;
    z-index: 1;
}

/* Inline-style cleanup: menu/header/login shared classes */
.main-loader-hidden {
    display: none;
}

.menu-cart-icon-wrap {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    line-height: 1;
}

.menu-cart-icon {
    font-size: 18px;
}

.menu-cart-badge,
.mobile-cart-badge {
    background: #181d7e;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    border-radius: 50%;
    width: 17px;
    height: 17px;
    align-items: center;
    justify-content: center;
}

.menu-cart-badge {
    position: absolute;
    top: -6px;
    right: -8px;
    display: flex;
    line-height: 1;
}

.account-summary-item {
    padding: 8px 20px;
    font-weight: 600;
    border-bottom: 1px solid #eee;
}

.account-summary-name {
    display: block;
    font-size: 13px;
    font-weight: 700;
}

.account-summary-email {
    display: block;
    font-size: 11px;
    color: #888;
}

.mobile-cart-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.mobile-cart-badge {
    display: inline-flex;
}

/* Ensure cart count badge always renders as a solid bubble above cart icon */
.menu-wrap .main-menu .menu-item-cart .cart-nav-badge,
.menu-wrap .main-menu .menu-item-cart .menu-cart-badge,
.menu-wrap.mobile .main-menu .mobile-cart-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 999px;
    background: #a3d133 !important;
    color: #122157 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    box-shadow: 0 0 0 1px rgba(18, 33, 87, 0.18);
}

.menu-wrap .main-menu .menu-item-cart .menu-cart-badge,
.menu-wrap .main-menu .menu-item-cart .cart-nav-badge {
    position: absolute;
    top: -6px;
    right: -8px;
}

/* Fallback: in case wrapper classes differ, keep cart count as a visible bubble */
.cart-nav-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 17px !important;
    height: 17px !important;
    padding: 0 4px !important;
    border-radius: 999px !important;
    background: #a3d133 !important;
    color: #122157 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

.remember-label {
    cursor: pointer;
}

#owl-demo .hero-home-slide .btn-default-white {
    border: 1px solid rgba(255, 255, 255, 0.7);
    color: #ffffff !important;
    background: transparent;
}

#owl-demo .hero-home-slide .btn-default-white:hover {
    background: #ffffff !important;
    border-color: #ffffff !important;
    color: var(--hostdss-primary-dark) !important;
}

@media (max-width: 1199px) {
    #owl-demo .hero-home-slide .heading {
        font-size: 46px;
    }

    #owl-demo .hero-home-slide .subheading {
        font-size: 28px;
    }
}

@media (max-width: 991px) {
    #owl-demo .hero-home-slide .top-banner .container {
        padding-top: 130px;
        padding-bottom: 70px;
        text-align: center;
    }

    #owl-demo .hero-home-slide .heading,
    #owl-demo .hero-home-slide .subheading {
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    #owl-demo .hero-home-slide .custom-img-right {
        position: static;
        display: block !important;
        width: min(76vw, 420px);
        max-width: 100%;
        margin: 28px auto 0;
    }
}

/* Blog search: make icon and action button visually balanced */
.blog-search-bar .input-group-prepend .input-group-text.blog-search-icon,
.blog-search-bar .input-group-append .blog-search-btn,
.blog-search-bar .blog-search-input {
    height: 52px;
}

.blog-search-bar .input-group-prepend .input-group-text.blog-search-icon {
    min-width: 52px;
    padding: 0;
    justify-content: center;
}

.blog-search-bar .input-group-append .blog-search-btn {
    min-width: 112px;
    padding-left: 20px;
    padding-right: 20px;
    font-weight: 600;
}

/* Reduce top navbar height consistently across breakpoints */
.menu-wrap,
.menu-wrap.fixed {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}

.menu-wrap .nav-menu .main-menu a,
.navigation-menu .nav-menu .main-menu > .menu-item > a,
.navigation-menu.top .nav-menu .main-menu > .menu-item > a,
.navigation-menu.top.fixed .nav-menu .main-menu > .menu-item > a {
    padding-top: 11px !important;
    padding-bottom: 11px !important;
}

.menu-wrap.fixed.navigation-menu,
.menu-wrap.navigation-menu.fixed {
    min-height: 56px !important;
    height: 56px !important;
}

.menu-wrap .main-menu .client-area-btn {
    padding-top: 7px !important;
    padding-bottom: 7px !important;
}

/* Desktop nav alignment: keep text links vertically centered with logo/account/cart */
@media (min-width: 992px) {
    .menu-wrap .nav-menu > .container > .row > nav.col-10,
    .menu-wrap .nav-menu > .container > .row > nav.col-md-10 {
        display: flex;
        align-items: center;
    }

    .menu-wrap .nav-menu .navigation {
        float: none;
        margin-left: auto;
        height: auto !important;
        padding-top: 0 !important;
        display: flex;
        align-items: center;
    }

    .menu-wrap .nav-menu .main-menu {
        display: flex;
        align-items: center;
    }

    .menu-wrap .nav-menu .main-menu > .menu-item {
        display: flex;
        align-items: center;
    }

    .menu-wrap .nav-menu .main-menu > .menu-item > a {
        display: inline-flex;
        align-items: center;
        line-height: 1.15;
        min-height: 40px;
    }
}

@media (max-width: 991px) {
    .menu-wrap,
    .menu-wrap.fixed {
        padding-top: 7px !important;
        padding-bottom: 7px !important;
    }

    .menu-wrap .nav-menu .main-menu a,
    .navigation-menu .nav-menu .main-menu > .menu-item > a,
    .navigation-menu.top .nav-menu .main-menu > .menu-item > a,
    .navigation-menu.top.fixed .nav-menu .main-menu > .menu-item > a {
        padding-top: 9px !important;
        padding-bottom: 9px !important;
    }

    .menu-wrap.fixed.navigation-menu,
    .menu-wrap.navigation-menu.fixed {
        min-height: 54px !important;
        height: 54px !important;
    }
}

@media (max-width: 767px) {
    .menu-wrap,
    .menu-wrap.fixed {
        padding-top: 6px !important;
        padding-bottom: 6px !important;
    }

    .menu-wrap .nav-menu .main-menu a {
        padding-top: 8px !important;
        padding-bottom: 8px !important;
    }

    .menu-wrap.fixed.navigation-menu,
    .menu-wrap.navigation-menu.fixed {
        min-height: 52px !important;
        height: 52px !important;
    }

    .menu-wrap.fixed .menu-toggle.top,
    .menu-wrap.navigation-menu .menu-toggle.top {
        top: 2px !important;
    }
}

/* Keep submenu carets centered after compact navbar adjustments */
@media (min-width: 768px) {
    .menu-wrap .nav-menu .main-menu > .menu-item.menu-item-has-children > a:after,
    .navigation-menu .nav-menu .main-menu > .menu-item.menu-item-has-children > a:after {
        content: "\25BE" !important;
        font: 700 11px/1 "Open Sans", sans-serif !important;
        border: 0 !important;
        width: auto !important;
        height: auto !important;
        position: relative !important;
        top: auto !important;
        right: auto !important;
        transform: none !important;
        margin-left: 8px !important;
        vertical-align: middle;
    }
}

/* Footer links should not show list bullets */
.footer .footer-menu,
.footer .footer-menu li {
    list-style: none !important;
    list-style-type: none !important;
}

.footer .footer-menu {
    padding-left: 0 !important;
}

/* Add a clear edge to desktop dropdown menus so they stand out from page content */
@media (min-width: 991px) {
    .menu-wrap .nav-menu .main-menu > .menu-item > .sub-menu,
    .menu-wrap .nav-menu .main-menu > .menu-item > .sub-menu.menu-large {
        border: 1px solid rgba(18, 33, 87, 0.22) !important;
        box-shadow: 0 8px 20px rgba(18, 33, 87, 0.12) !important;
    }
}
