@charset "UTF-8";/**from 400-900**/
.font-cinzel {
    /*font-family: "Cinzel", serif;*/
    font-family: "Poppins", "Poppins Fallback", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
}

.cinzel-bold {
    /*font-family: "Cinzel", serif;*/
    font-family: "Poppins", "Poppins Fallback", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
 }


.open-sans-normal {
    font-family: "Open Sans", "Open Sans Fallback", sans-serif!important;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-variation-settings:"wdth" 100;
}
:root {
    /*h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {font-family: "Cinzel", serif;font-weight: 400;text-transform:uppercase;}*/
    h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {font-family: "Poppins", "Poppins Fallback", sans-serif;font-weight:300!important;text-transform:uppercase;}
    --bs-border-radius: 0;
    --bs-border-radius-sm: 0;
    --bs-border-radius-lg: 0;
    --bs-border-radius-xl: 0;
    --bs-border-radius-xxl: 0;
    --bs-border-radius-2xl: var(--bs-border-radius-xxl);
    --bs-gray-500: #282829;
    --fa-family-sharp: "Font Awesome 7 Sharp";
    --fa-font-sharp-light: normal 300 1em / 1 var(--fa-family-sharp);
    --fa-style-family-sharp: var(--fa-family-sharp);
    --fa-family: var(--fa-family-sharp);
    --_fa-family: var(--fa-family, var(--fa-style-family-sharp, "Font Awesome 7 Pro"));

}
/** PERF/CLS: reserve a fixed inline-block box for every icon-font glyph so
    its arrival (Font Awesome kit woff2s load after first paint) cannot
    change the line box around it. Do not touch the FA kit files themselves
    (owner is deciding on a licensed self-hosted subset separately). **/
.fa-solid, .fa-regular, .fa-light, .fa-sharp, .fa-brands,
[class^="fa-"], [class*=" fa-"] {
    display: inline-block;
    width: 1.25em;
    height: 1em;
    text-align: center;
    line-height: 1;
}

.ls-1 {letter-spacing: 0.125rem!important;}
.ls-2 {letter-spacing: 0.2rem!important;}
.ls-3 {letter-spacing: 0.25rem!important;}
.ls-4 {letter-spacing: 0.5rem!important;}
/** A11Y-06 round 2: single sticky header, no Headhesive DOM clone.
    .navbar-light pages are already in normal flow, so pure CSS sticky is
    enough (zero JS, zero CLS). .navbar-transparent pages start position:
    absolute (overlaying the hero, unchanged) and only gain
    .navbar-fixed-stuck (position:fixed) once custom.js's scroll listener
    passes the same 400px offset Headhesive used to use. scroll-padding-top
    keeps a keyboard-focused element from landing under the fixed header
    (2.4.11) — approx. nav height (50px logo + 2x0.5rem padding + border). **/
.navbar-light {
    position: sticky;
    top: 0;
    z-index: 1020;
}
.navbar-fixed-stuck {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1030;
}
html {
    scroll-padding-top: 75px;
}
.navbar .dropdown-menu {border-radius:var(--bs-border-radius-sm);}

.navbar .dropdown .dropdown-toggle:after, .dropdown-toggle-split.dropdown-toggle::after {font-family:var(--fa-family)!important;font-size: 0.825rem;line-height: 1.25rem;}
.dropdown-toggle-split.dropdown-toggle::after {font-size: 0.725rem;}

/*
 * Main-nav dropdown submenus: keep long submenus from running off the
 * viewport by wrapping their links into columns above the navbar collapse
 * breakpoint (lg / 992px). Columns are assigned server-side in
 * templates/block/html/mod_menu/megamenu.php based on link count:
 * --cols-2 for 7-12 links, --cols-3 for 13+. Below lg the offcanvas menu
 * stays a single column regardless of class (no @media wrapper needed).
 */
/*
 * Bootstrap's .dropdown-item default is white-space:nowrap (theme.css) and
 * cascades to the title/description via inheritance. That's usually masked
 * on a single-column menu that grows to fit its content, but it overflows
 * wherever this item's container has a FIXED width instead: the CSS-columns
 * layout below 1200px+ (nowrap text bleeds into the next column instead of
 * wrapping) AND the mobile offcanvas panel (fixed ~400px Bootstrap default
 * width - nowrap text there just makes .offcanvas-body scroll horizontally
 * instead, which is exactly as broken as it sounds). Not gated to any
 * breakpoint on purpose - text wrapping is correct at every width this menu
 * can render at. Force normal wrapping, and treat the icon + text block as
 * a real flex media object so the text side can actually shrink.
 */
.navbar .dropdown-menu--cols-2 .dropdown-item,
.navbar .dropdown-menu--cols-3 .dropdown-item {
    white-space: normal;
    max-width: 100%;
}

.navbar .dropdown-menu--cols-2 .dropdown-item > .d-flex,
.navbar .dropdown-menu--cols-3 .dropdown-item > .d-flex {
    max-width: 100%;
}

.navbar .dropdown-menu--cols-2 .dropdown-item > .d-flex > i,
.navbar .dropdown-menu--cols-3 .dropdown-item > .d-flex > i {
    flex-shrink: 0;
}

/* The icon's text-block sibling: flex items default to min-width:auto
   (= their content's full width), which is what let nowrap text force
   the item wider than its column. min-width:0 lets it shrink. */
.navbar .dropdown-menu--cols-2 .dropdown-item > .d-flex > div,
.navbar .dropdown-menu--cols-3 .dropdown-item > .d-flex > div {
    min-width: 0;
    flex: 1 1 auto;
}

.navbar .dropdown-menu--cols-2 .dropdown-item .h4,
.navbar .dropdown-menu--cols-3 .dropdown-item .h4,
.navbar .dropdown-menu--cols-2 .dropdown-item p,
.navbar .dropdown-menu--cols-3 .dropdown-item p {
    white-space: normal;
    overflow-wrap: break-word;
    hyphens: manual;
    max-width: 100%;
}

/* d-inline-block sizes to its own content's preferred width; make it a
   block so it wraps to the available width like the paragraph below it. */
.navbar .dropdown-menu--cols-2 .dropdown-item .h4.d-inline-block,
.navbar .dropdown-menu--cols-3 .dropdown-item .h4.d-inline-block {
    display: block;
}

/* Dividers: no explicit width rule exists upstream, so this is belt-
   and-suspenders to guarantee they always span the full column/panel. */
.navbar .dropdown-menu--cols-2 .dropdown-divider,
.navbar .dropdown-menu--cols-3 .dropdown-divider {
    width: 100%;
}

/*
 * Desktop: multi-column menus are a full-width mega menu anchored to the
 * navbar's .container (not to their toggle), so they always span the
 * container edge to edge and can never leave the viewport.
 */
@media (min-width: 992px) {
    .navbar > .container {
        position: relative;
    }

    .navbar .navbar-nav .nav-item.dropdown:has(> .dropdown-menu--cols-2),
    .navbar .navbar-nav .nav-item.dropdown:has(> .dropdown-menu--cols-3) {
        position: static;
    }

    .navbar .navbar-nav .dropdown > .dropdown-menu.dropdown-menu--cols-2,
    .navbar .navbar-nav .dropdown > .dropdown-menu.dropdown-menu--cols-3 {
        left: 0;
        right: 0;
        width: auto;
        max-width: none;
        transform: translateY(10px);
        column-count: 2;
        column-gap: 2rem;
        padding: 1.5rem 2rem;
    }

    .navbar .dropdown-menu--cols-2 > li,
    .navbar .dropdown-menu--cols-3 > li {
        break-inside: avoid;
    }

    /* Right-edge single-column menus open toward the left so they stay on screen. */
    .navbar-nav .nav-item.dropdown:nth-last-of-type(-n+2) > .dropdown-menu:not(.dropdown-menu--cols-2):not(.dropdown-menu--cols-3) {
        --bs-position: end;
        right: 0;
        left: auto;
        transform: translateY(10px);
    }
}

@media (min-width: 1200px) {
    .navbar .navbar-nav .dropdown > .dropdown-menu.dropdown-menu--cols-3 {
        column-count: 3;
    }
}
.block--header .navbar-brand img, .offcanvas-header img {height:50px;}
.navbar-clone .navbar-brand img {height:50px;}



@media screen and (min-width: 568px) {
    .block--header .navbar-brand img, .offcanvas-header img {height:50px;}
    .navbar-clone .navbar-brand img {height:50px;}
}

.navbar-dark .navbar-brand {
    filter: brightness(0) invert(1);
}

.navbar-dark.fixed.navbar-stick {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity));
    border-bottom: none;
}

.navbar .navbar-nav .nav-item .nav-link {font-size:1.125rem;letter-spacing:1px!important;text-transform:uppercase!important;color:var(--bs-black);}
.navbar.navbar-unstick .navbar-nav .nav-item .nav-link {font-weight:500!important;}
.navbar.navbar-stick .navbar-nav .nav-item .nav-link {font-weight:500!important;}
.navbar .navbar-nav .nav-item .nav-link.nav-link-icon {position:relative;top:-2px;}
.btn.btn-bs-tertiary-color {background-color: var(--bs-tertiary-color)!important;border-color: var(--bs-tertiary-color)!important;}
.white-filter {filter: brightness(0) invert(1);}
.black-filter {filter: brightness(0);}

.cursor-pointer {cursor: pointer;}
.no-scroll {overflow: hidden;position: fixed;width: 100%;}

.navbar .navbar-toggler {border-radius:0;margin-left:auto;}


.hover-effect-scale {
    --nl-transition-duration: .35s;
    --nl-transform-scale: 1.06;
}
.ratio::before {
    display: block;
    padding-top: var(--nl-aspect-ratio, var(--bs-aspect-ratio));
    content: "";
}
.ratio {
    position: relative;
    width: 100%;
}

.ratio > * {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.hover-effect-scale .hover-effect-target {
    transition: transform var(--nl-transition-duration)
    ease-in-out;
}

.underline-effect {
    text-decoration: none;
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0 2px;
    transition: background-size .3s;
}
.underline-effect:hover {
    text-decoration: none;
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    transition: background-size .3s;
    background-size: 100% 2px;
}

/**FORM FIELDS**/
.form-floating > textarea:not(.form-control-plaintext) {height:125px!important;}
.rsform-block-topic-description .form-floating > textarea {height:200px!important;}
.form-control {border-radius:4px;}
.form-control:focus {box-shadow: none;}
.form-check.form-check-inline {margin-right:5px;}
.form-check.form-check-inline + label {position:relative;top:-9px;}
.form-control-feedback {color:#db1436;font-size:0.825rem;}

.position-relative .password-group {position:absolute;right:0;top: 8px;}
.position-relative .password-group .input-password-toggle {background:transparent;border-color:transparent;}
#token-copy {display:none;}


meter {width:100%;border-radius:2px;}

joomla-tab {margin-bottom:20px;}
joomla-tab>joomla-tab-element {padding:20px 0 0;background:transparent;border-radius:0;border:none;}
joomla-tab[view=tabs]>div[role=tablist] {background:#fff;border-color:#fff;border-radius:0;}
joomla-tab button[role=tab] {box-shadow:none;text-transform:capitalize;border-radius:0;}

joomla-tab button[aria-expanded=true] {background-color:var(--bs-gray-100)!important;box-shadow:none!important;}
joomla-tab button[aria-expanded=true]:after {background-color:var(--bs-primary);}

.form-select {border-radius: 2px;}
.form-floating .editor.wf-editor-container + label {display:none;}
joomla-field-fancy-select .choices__inner {border: var(--bs-border-width) solid var(--bs-border-color);border-radius: 4px;}
joomla-field-fancy-select .choices.is-focused, .form-select:focus {box-shadow:none;}
joomla-field-fancy-select, .form-select {cursor:pointer;}

.hidden {display:none;}

joomla-field-media .field-media-preview {max-width:none!important;width:100%!important;}

joomla-dialog.joomla-dialog-media-field dialog, joomla-dialog dialog {border: none;width: 80%;height: 80vh;}
.field-media-wrapper {width: 100%;max-width: calc(50vw - 5rem);display: block;}
.acf-video-previewer-wrapper video {position:relative;}

.form-control.disabled.faux-control ~ label {color: #475569;}
.form-control.disabled.faux-control ~ label:after {background-color: var(--bs-input-disabled-bg);}

#fieldset-fields-1 .social-icon-form .form-floating, #fieldset-fields-1 .social-icon-form .form-floating + .mb-4 {margin-left:0.5rem;}

#fieldset-details .wf-media-upload-button {--bs-btn-color:#020617;color:var(--bs-btn-color)!important;cursor:pointer;}
#fieldset-details .wf-media-upload-button .icon-upload{--_fa-family: var(--fa-family, var(--fa-style-family, "Font Awesome 7 Pro"));
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    display: var(--fa-display, inline-block);
    font-family: var(--_fa-family);
    font-feature-settings: normal;
    font-style: normal;
    font-synthesis: none;
    font-variant: normal;
    font-weight: var(--fa-style, 900);
    line-height: 1;
    text-align: center;
    text-rendering: auto;
    width: var(--fa-width, 1.25em);}

#fieldset-details .wf-media-upload-button .icon-upload:before {--fa: "\f093";content: var(--fa) / "";--fa-style: 900;}

/**END FORM FIELDS**/
#modId210 .module-title-col .section__title--box:before {
    content: "Blog";
    display: block;
    position: relative;
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing:0.5px;
    margin-bottom: 0.5rem;
    font-size:0.725rem;
}
#collapseCoreProfile .form-group[data-field_type="Tag"] .form-floating label, #collapseCoreProfile .form-group[data-field_type="CategoryEdit"] .form-floating label {color: rgba(var(--bs-body-color-rgb), 0.65);transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);}
#collapseCoreProfile .form-group[data-field_type="Tag"] .form-floating .choices[data-type*=select-multiple] .choices__input, #collapseCoreProfile .form-group[data-field_type="CategoryEdit"] .form-floating .choices__list.choices__list--single{padding:0;}

.mod-ultimatecontacts .card-body .avatar-xxl, .com-contact-category__items .card-body .avatar-xxl {width: 100%!important;height: auto!important;border-radius: 0 !important;}
.btn-scroll-top:after {font-family: var(--fa-family) !important;}
/* A11Y: .btn-scroll-top is now a real <button> (was a div) so it's natively
   keyboard-operable; strip the UA button chrome so the look is unchanged,
   and draw an explicit focus-visible ring (3:1 against the button's white/
   dark background per WCAG 1.4.11) since it has no .btn class to inherit one. */
button.btn-scroll-top {
    border: 0;
    padding: 0;
    -webkit-appearance: none;
    appearance: none;
}
button.btn-scroll-top:focus-visible {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}
/* This site's navy.css sets --bs-primary: #043673, which only reaches 1.24:1
   against the dark-mode button background (#1e293b) -- swap to white (14.6:1)
   in dark mode, matching this element's existing dark-mode color override below. */
[data-bs-theme=dark] button.btn-scroll-top:focus-visible {
    outline-color: #fff;
}

.animate-underline.animate-target, .animate-underline .animate-target {
    position: relative;
    text-decoration: none;
}
.animate-underline.animate-target::after, .animate-underline .animate-target::after {
    --nl-underline-thickness: 1px;
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 100%;
    height: var(--nl-underline-thickness);
    content: "";
    background-color: currentcolor;
    transform: scaleX(0);
    transform-origin: right bottom;
    transition: transform 0.3s ease-out;
}
.animate-underline:hover.animate-target::after, .animate-underline:hover .animate-target::after, .animate-underline.show.animate-target::after, .animate-underline.show .animate-target::after, .animate-underline.active.animate-target::after, .animate-underline.active .animate-target::after, .animate-underline:focus-visible.animate-target::after, .animate-underline:focus-visible .animate-target::after {
    transform: scaleX(1);
    transform-origin: left bottom;
}









/**COLORS**/


.spinner-lg {width:3rem;height:3rem;}
.spinner-xl {width:4rem;height:4rem;}
.spinner-xxl {width:5rem;height:5rem;}
.spinner-grow-speed-1 {animation: spinner-grow 0.75s linear infinite;}
.spinner-grow-speed-2 {animation: spinner-grow 1s linear infinite;}
.spinner-grow-speed-3 {animation: spinner-grow 1.5s linear infinite;}
.spinner-grow-speed-4 {animation: spinner-grow 2s linear infinite;}

.spinner-border-speed-1 {animation: spinner-border 0.5s linear infinite;}
.spinner-border-speed-2 {animation: spinner-border 1s linear infinite;}
.spinner-border-speed-3 {animation: spinner-border 1.5s linear infinite;}
.spinner-border-speed-4 {animation: spinner-border 2s linear infinite;}
/**END COLORS**/

.nav-account .nav-item .nav-link {border-radius:0;}

.card {border-radius: 0.25rem;}

.block--latest_item + .block--latest_item {padding-top:10px;}
.block--latest_item + .block--latest_item:before {content:"";display:block;position:relative;width:100%;height:1px;background:#e2e8f0;top:-15px;}

.block--support_item img {max-height:200px;width:auto;}

.download--icon img {width:60px;height:60px;}

.blockquote:before {content: "\f10d";font-family: "Font Awesome 6 Pro";-moz-osx-font-smoothing: grayscale;-webkit-font-smoothing: antialiased;font-style: normal;font-variant: normal;line-height: 1;text-rendering: auto;font-weight:900;}

.navbar-transparent .btn-link {color: #fff;}
.navbar-light.navbar-clone .btn-link {color: var(--bs-heading-color);}

.max-height-100 {max-height:100px!important;}
.max-height-125 {max-height:125px!important;}
.max-height-300 {max-height:300px;width:auto;}
.max-height-400 {max-height:400px;width:auto;}

.ht-100 {height:100%!important;}

.min-height-100 {min-height:100px;}
.min-height-200 {min-height:200px;}
.min-height-300 {min-height:300px;}
.min-height-400 {min-height:400px;}
.min-height-450 {min-height:450px;}
.min-height-500 {min-height:500px;}


.height-24 {height:24px!important;}
.height-32 {height:32px!important;}
.height-40 {height:40px!important;}
.height-48 {height:48px!important;}
.height-60 {height:60px!important;}
.height-70 {height:70px!important;}
.height-80 {height:80px!important;}
.height-90 {height:90px!important;}
.height-100 {height:100px!important;}
.height-125 {height:125px!important;}
.height-150 {height:150px!important;}
.height-200 {height:200px;width:auto;}
.height-300 {height:300px;width:auto;}
.height-400 {height:400px;width:auto;}

.width-24 {width:24px!important;}
.width-32 {width:32px!important;}
.width-40 {width:40px!important;}
.width-48 {width:48px!important;}
.width-60 {width:60px!important;}
.width-70 {width:70px!important;}
.width-80 {width:80px!important;}
.width-90 {width:90px!important;}
.width-100 {width:100px!important;}
.width-125 {width:125px!important;}
.width-150 {width:150px!important;}
.width-200 {width:200px;}
.width-300 {width:300px;}
.width-400 {width:400px;}
.width-500 {width:500px;}

.max-width-600 {max-width:600px;}
.max-width-700 {max-width:700px;}
.max-width-800 {max-width:800px;}

.font-10 {font-size:10px;}
.font-11 {font-size:11px;}
.font-12 {font-size:12px;}

.session-page .position-lg-absolute.video-box {margin-top:-70px;transform: translate(-50%);}
.session-page .position-lg-absolute.block-full-video.video-box {}

.icon-link-hover-left:hover i {transform: translate3d(-0.25em, 0, 0)!important;}

.block--latest_items .block--latest_item.active {display:none;}

.com-content-article__body img {max-width:100%;height: auto;}
.partner--item + .partner--item:after {content:"";display:block;position:absolute;top:-30px;left:0;width:100%;height:1px;background:var(--bs-border-color);}

.com-content-category__children .card-hover:hover {box-shadow:none!important;}

.filterCompany {min-height:42px;}

#system-message-container .alert {border-radius:0!important;}
.offcanvas .form-floating > .form-control:not(:placeholder-shown) ~ label::after {background:transparent!important;}
@media screen and (min-width: 768px) {
    .offcanvas.offcanvas-end {--bs-offcanvas-width: 460px;padding-left: 15px;padding-right: 15px;}
}


/** Sticky Sidebar **/
.block--sidebar {position:relative;}
.sidebar-content.sticky--sidebar {position: sticky;top:100px;}
/** End Sticky Sidebar **/

[data-bs-theme=light]
{
/*    --bs-success: #7AC043;
    --bs-success-rgb: 122, 192, 67;
    --bs-info: #4f91cd;
    --bs-info-rgb: 79, 145, 205;
    --bs-warning: #ff9d0f;
    --bs-warning-rgb: 255, 157, 15;
    --bs-danger: #EE4035;
    --bs-danger-rgb: 238, 64, 53;*/
    --bs-input-disabled-bg: var(--bs-gray-100);
}

.right-start-box figure {padding:2rem;}

@media screen and (min-width: 992px) {
    .right-start-box figure {padding:5rem;}
}

[data-bs-theme=dark]
{
    --bs-body-color: #fff;
    --bs-newline-link-color: var(--bs-btn-active-bg);
    --bs-newline-link-hover-color: #b41125;
    .footer-logo-link, #swiper-1 figure {
        filter: brightness(0) invert(1);
    }
    .text-body-tertiary {color:#eee!important;}
    .text-bg-dark {background:transparent!important;}
    .navbar .navbar-nav .nav-item .nav-link {color:#fff;}
    .navbar .dropdown .dropdown-toggle:after {color:var(--bs-newline-link-color) !important;}
    .swiper-pagination-bullet {border-color:#eee!important;opacity:1;}
    .swiper-pagination-bullet-active {border-color:#5ea7ff!important;}
}


.top-1 {top:1px;}
.top-2 {top:2px;}
.top-3 {top:3px;}
.top-4 {top:4px;}
.top-5 {top:5px;}
.bottom-1 {bottom:1px;}
.bottom-2 {bottom:2px;}
.bottom-3 {bottom:3px;}
.bottom-4 {bottom:4px;}
.bottom-5 {bottom:5px;}
/*.btn-success {
    --bs-btn-color: #fff;
    --bs-btn-bg: #7AC043;
    --bs-btn-border-color: #7AC043;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #4f9716;
    --bs-btn-hover-border-color: #4f9716;
    --bs-btn-focus-shadow-rgb: 38, 147, 45;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #4f9716;
    --bs-btn-active-border-color: #4f9716;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(2, 6, 23, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #008008;
    --bs-btn-disabled-border-color: #008008;
}

.btn-info {
    --bs-btn-color: #020617;
    --bs-btn-bg: #0dcaf0;
    --bs-btn-border-color: #0dcaf0;
    --bs-btn-hover-color: #020617;
    --bs-btn-hover-bg: #31d2f2;
    --bs-btn-hover-border-color: #25cff2;
    --bs-btn-focus-shadow-rgb: 11, 173, 207;
    --bs-btn-active-color: #020617;
    --bs-btn-active-bg: #3dd5f3;
    --bs-btn-active-border-color: #25cff2;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(2, 6, 23, 0.125);
    --bs-btn-disabled-color: #020617;
    --bs-btn-disabled-bg: #0dcaf0;
    --bs-btn-disabled-border-color: #0dcaf0;
}

.btn-warning {
    --bs-btn-color: #020617;
    --bs-btn-bg: #ffc107;
    --bs-btn-border-color: #ffc107;
    --bs-btn-hover-color: #020617;
    --bs-btn-hover-bg: #ffca2c;
    --bs-btn-hover-border-color: #ffc720;
    --bs-btn-focus-shadow-rgb: 217, 165, 9;
    --bs-btn-active-color: #020617;
    --bs-btn-active-bg: #ffcd39;
    --bs-btn-active-border-color: #ffc720;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(2, 6, 23, 0.125);
    --bs-btn-disabled-color: #020617;
    --bs-btn-disabled-bg: #ffc107;
    --bs-btn-disabled-border-color: #ffc107;
}*/

.text-bg-platinum {background:#E5E4E2!important;color:#000!important;}
.text-bg-gold {background:#FFD700!important;/*color:#000!important;*/}
.text-bg-silver {background:#C0C0C0!important;/*color:#000!important;*/}

.text-gray-700 {color:var(--bs-gray-700); }

.navbar-dark .navbar-nav .nav-link, .navbar-dark .btn-icon {color: #fff !important;}
.navbar-light .navbar-nav .nav-item .nav-link {color: var(--bs-heading-color);}
.choices__list--multiple .choices__item {background-color:var(--bs-primary);}
.choices__list--multiple .choices__item.is-highlighted {background-color:var(--bs-primary);opacity:.9}

.hero-video-overlay {background: rgba(0, 0, 0, 0.65);}
.text-white-75 {--bs-text-opacity: 1;color: rgba(255, 255, 255, 0.75) !important;}
.form-group[data-field_type="MediaJce"] > label {
    display: none;
}

.j2commerce-count-input.count-input {background-color: #fff; border: 1px solid #cad0d9;border-radius: 0.375rem;display: inline-flex;overflow: hidden;transform: translateZ(0);}
.j2commerce-count-input.count-input .btn {border: 0;border-radius: 0;}
.j2commerce-count-input.count-input .btn.btn-lg span:before {line-height: 3rem;}
.j2commerce-count-input.count-input .btn:not(.btn-primary) {--bs-btn-hover-color: #181d25;--bs-btn-hover-bg: #eef1f6;--bs-btn-active-bg:#eef1f6;}
.j2commerce-count-input.count-input .form-control {-moz-appearance: textfield;-webkit-appearance: textfield;appearance: textfield;background-color: transparent;border: 0;border-radius: 0;font-weight: 500;padding: 0 .25rem;text-align: center;width: 2.5rem;}
.j2commerce-count-input.count-input .btn-group-lg>.btn+.form-control, .j2commerce-count-input.count-input .btn-lg+.form-control {width: 3rem;text-align:center;}
.j2commerce-count-input .btn-icon.btn-lg {--bs-btn-size: 3rem;}

.j2commerce-count-input .btn-next.btn-icon:hover,.j2commerce-count-input .btn-prev.btn-icon:hover {--bs-btn-hover-color: #181d25;}
.border-dashed {--bs-border-style: dashed;}
.text-dark-emphasis {--bs-dark-text-emphasis:#181d25;}


[data-bs-theme=dark] .black-filter {filter: brightness(0) invert(1);}
[data-bs-theme=dark] footer .text-reset:not(.btn) {color:#fff!important;}
[data-bs-theme=dark] footer .text-reset:hover {color: #5ea7ff !important;}
[data-bs-theme=dark] .btn-scroll-top:after, [data-bs-theme=dark] .line-pattern.bg-primary-gradient .text-white, [data-bs-theme=dark] .icon-link:not(.btn) {color:#fff !important;}

[data-bs-theme=dark] a:not(.btn) {color:var(--bs-newline-link-color);}
[data-bs-theme=dark] a:hover {color:#fff;}
[data-bs-theme=dark] .text-gray-700, [data-bs-theme=dark] .countdown-circle .countdown-title {color:#eee;}
[data-bs-theme=dark] .btn-outline-white {--bs-btn-color: #fff;}
[data-bs-theme=dark] .btn-outline-primary {color:#fff!important;}
[data-bs-theme=dark] .pattern-square.custom-pattern-square:after {display: none;}
[data-bs-theme=dark] .breadcrumb {--bs-breadcrumb-item-active-color: #ddd;}
[data-bs-theme=dark] .nav-line-bottom .nav-item .nav-link {color: #ddd;}
[data-bs-theme=dark] .nav-line-bottom .nav-item .nav-link:hover {color: #fff;}
[data-bs-theme=dark] .text-primary {color: var(--bs-newline-link-color)!important;}
[data-bs-theme=dark] .nav-line-bottom .nav-item .nav-link.active, [data-bs-theme=dark] .nav-line-bottom .nav-item .nav-link:hover {color: #fff!important;border-bottom-color:var(--bs-newline-link-color);}
[data-bs-theme=dark] .text-reset:hover {color: var(--bs-newline-link-color)!important;}
[data-bs-theme=dark] .btn-link {--bs-btn-color: var(--bs-newline-link-color);}


:root {
    --hue: 214;
    --template-bg-light: #f0f4fb;
    --template-text-dark: #495057;
    --template-text-light: #ffffff;
    --template-bg-dark-20: hsl(var(--hue), 40%, 80%);
    --options-form-color: var(--template-text-dark);
    --options-form-bg: unset;
    --options-form-border: 1px solid var(--template-bg-dark-20);
    --options-form-legend-color: var(--template-text-dark);
    --options-form-legend-bg: inherit;
    --bs-dark-rgb: 51,65,85;
    --bs-bg-gray-700: #334155;


    --bs-text-opacity: ;
    --bs-purple: #8b3dff;
    --bs-purple-rgb: 139, 61, 255;
    --bs-purple-bg-subtle: #e8d8ff;
    --bs-purple-text-emphasis: #381866;
}

.bg-blue-gradient {
    background: linear-gradient(180deg, var(--bs-bg-blue), var(--bs-blue-text-emphasis) 47.92%, var(--bs-bg-blue));
}

.text-blue {color: var(--bs-blue);}
.btn.btn-white:hover {
    color: var(--bs-primary);
    background-color: #f1f5f9;
    border-color: #f1f5f9;
}
.bg-blue {--bs-bg-opacity: 1;background-color: rgba(var(--bs-blue-rgb), var(--bs-bg-opacity));}
.bg-purple {--bs-bg-opacity: 1;background-color: rgba(var(--bs-purple-rgb), var(--bs-bg-opacity));}
.text-purple {--bs-text-opacity: 1;color:rgba(var(--bs-purple-rgb), var(--bs-text-opacity));}

.bg-opacity-10 {
    --bs-bg-opacity: 0.1;
}
.bg-opacity-20 {
    --bs-bg-opacity: 0.2;
}
.alert-info {
    --bs-info-text-emphasis: #052c65;
    --bs-info-bg-subtle: #cfe2ff;
    --bs-info-border-subtle: #9ec5fe;

    --bs-alert-color: var(--bs-info-text-emphasis);
    --bs-alert-bg: var(--bs-info-bg-subtle);
    --bs-alert-border-color: var(--bs-info-border-subtle);
    --bs-alert-link-color: var(--bs-info-text-emphasis);
}

.form-group[data-field_type="File"] {
    font-size: 0.8rem;
}

.form-group[data-field_type="File"] > .form-control {
    font-size: 0.8rem;
}

.form-group[data-field_type="File"] > label {
    font-size: 1rem;
    color: rgba(var(--bs-body-color-rgb), 0.65);
    transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
    transform-origin: 0 0;
}

.options-form {
    width: 100%;
    color: var(--options-form-color);
    margin-bottom: 1rem;
    background: var(--options-form-bg);
    border: var(--options-form-border);
    padding: 1vw 2vw;
}
.options-form > legend {
    float: none;
    width: auto;
    color: var(--bs-heading-color);
    background-color: var(--options-form-legend-bg);
    font-weight: 500;
    padding: 0 1rem;
    font-size: 1rem;
    font-family:"Cinzel", serif;
    text-transform:uppercase;
}

.sidebar-content .options-form {
    position:relative;
    padding: 2rem 1rem 1rem;
}

.sidebar-content .options-form > legend {
    --options-form-legend-bg:#fff;
    position: absolute;
    top: -12px;
    background-color: var(--options-form-legend-bg);
}


.header-opacity {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    display: block;
    z-index: 0;
}

.btn-dark {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-gray-600);
    --bs-btn-border-color: var(--bs-gray-600);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #333a4a;
    --bs-btn-hover-border-color: #272e3f;
    --bs-btn-focus-shadow-rgb: 51, 58, 74;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #3f4555;
    --bs-btn-active-border-color: #272e3f;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(2, 6, 23, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-gray-600);
    --bs-btn-disabled-border-color: var(--bs-gray-600);
}


.no-container > .row {--bs-gutter-x: 0;}
.no-container > .row > .col-lg-12 {padding-left: 0;padding-right: 0;}
.bg-dark {background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;}
.icon-link-hover > .hover-icon {transition: 0.2s ease-in-out transform;}
.icon-link-hover:hover > .hover-icon, .icon-link-hover:focus-visible > .hover-icon {transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0));}


.com-content__filter #filter-search {max-width:250px;}

.press-item .list-edit {position:relative;top:-2px;}


.fs-xs {font-size: 0.875rem !important;}
    /**PAGINATION**/
.page-item {margin-left:0.125rem;margin-right:0.125rem;}
.page-item .page-link {border-color:transparent;}
.page-item .page-link:hover {border-color: #ebebed;background-color:transparent;}

.page-item.active .page-link {border-color:var(--bs-bg-gray-700);color:var(--bs-bg-gray-700);background-color:transparent;}
.page-item .page-link.disabled, .page-item.disabled > .page-link {border-color:transparent;color:var(--bs-gray-600);background-color:transparent;opacity:0;}
.page-item .page-link:focus {box-shadow:none;}


.page-item .page-link.page-link-arrow {display:none;}
[data-bs-theme=dark] .page-item .page-link {}

@media screen and (min-width: 992px) {
    .page-item {margin-left:0.5rem;margin-right:0.5rem;}
    .page-item .page-link.page-link-arrow {display:inline-block;}
    .page-item {margin-left:0.25rem;margin-right:0.25rem;}
}
/**END PAGINATION**/

/* -------------------------
   Customizable variables
--------------------------*/
.stellan-intro {
    --bg: #0b0f14;           /* page background behind the animation */
    --fg: #ffffff;           /* line, dot, and wordmark color */
    --line-h: 2px;           /* line height */
    --stage-h: 50px;

    /* timings */
    --t-lines: 1.25s;        /* time for lines to meet center */
    --t-dot: 0.6s;           /* dot pop duration */
    --t-morph-gap: 0.18s;    /* pause between dot pop and text reveal */
    --t-text: 0.8s;          /* wordmark reveal duration */

    /* dot + glow */
    --dot-size: 18px;                      /* circle size */
    --glow-scale: 1.4;                     /* how far the glow extends */
    --glow-strong: rgba(255,255,255,0.40); /* center glow */
    --glow-soft:   rgba(255,255,255,0.15); /* mid glow */

    /* easing */
    --ease-linear: linear;
    --ease-smooth: cubic-bezier(.2,.7,.2,1);
    --ease-snap: cubic-bezier(.1,1,.2,1);

    background: var(--bg);
    display: grid;
    place-items: center;
    padding: 0;              /* full-bleed */
    overflow: hidden;
}

/* Stage: full viewport width so lines originate at screen edges */
.se-stage {
    position: relative;
    inline-size: 100vw;
    block-size: var(--stage-h);
    display: grid;
    place-items: center;
    isolation: isolate;
}

/* Baseline positions (no transforms here to avoid conflicts) */
.se-line,
.se-dot {
    position: absolute;
    inset-block-start: 50%;
    background: var(--fg);
}

/* Lines */
.se-line {
    transform: translateY(-50%);
    block-size: var(--line-h);
    inline-size: 0;          /* start collapsed */
    opacity: 1;
    z-index: 1;
}

/* Left line grows from left edge toward center */
.se-line--left {
    inset-inline-start: 0;
    transform-origin: left center;
    animation: se-grow-left var(--t-lines) var(--ease-linear) forwards;
}

/* Right line grows from right edge toward center */
.se-line--right {
    inset-inline-end: 0;
    transform-origin: right center;
    animation: se-grow-right var(--t-lines) var(--ease-linear) forwards;
}

/* Center dot that appears ONLY when lines meet */
.se-dot {
    inline-size: var(--dot-size);
    block-size: var(--dot-size);
    border-radius: 999px;
    inset-inline-start: 50%;
    transform: translate(-50%, -50%);
    opacity: 0; /* hidden at start */
    z-index: 2;

    /* Pop in after lines meet, then fade as text reveals */
    animation:
        se-dot-pop var(--t-dot) var(--ease-snap) forwards var(--t-lines),
        se-dot-fade var(--t-text) var(--ease-smooth) forwards calc(var(--t-lines) + var(--t-dot) + var(--t-morph-gap));
    will-change: transform, opacity;
}

/* Radial glow around the dot, synced with the dot animations */
.se-dot::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    inline-size: 100%;
    block-size: 100%;
    transform: translate(-50%, -50%) scale(.6); /* start small */
    pointer-events: none;
    border-radius: 50%;
    opacity: 0;
    background: radial-gradient(circle,
    var(--glow-strong) 0%,
    var(--glow-strong) 25%,
    var(--glow-soft)   55%,
    transparent        80%);
    animation:
        se-glow-in var(--t-dot) var(--ease-snap) forwards var(--t-lines),
        se-glow-fade var(--t-text) var(--ease-smooth) forwards calc(var(--t-lines) + var(--t-dot) + var(--t-morph-gap));
    will-change: transform, opacity, filter;
}

/* Wordmark: appears centered; masks 30px gap on both sides */
.se-wordmark {
    position: absolute;

    /* center the element box itself */
    inset-inline-start: 50%;
    inset-block-start: 50%;
    transform: translate(-50%, -50%) scale(.96);

    display: inline-block;
    margin: 0;
    padding-inline: 30px;     /* <-- 30px clear on left & right */
    background: var(--bg);    /* hides the line directly behind the text */
    line-height: 1.05;

    color: var(--fg);
    font-family: "Cinzel", serif;
    font-weight: 400;
    text-transform: uppercase;
    font-size: clamp(14px, 6vw, 28px);
    letter-spacing: 0;

    opacity: 0;
    filter: blur(8px);

    z-index: 3;
    animation: se-word-in var(--t-text) var(--ease-smooth) forwards calc(var(--t-lines) + var(--t-dot) + var(--t-morph-gap));
    will-change: transform, opacity, filter, letter-spacing;
}

/* -------------------------
   Keyframes
--------------------------*/

/* Grow each line to exactly half the stage width */
@keyframes se-grow-left {
    0%   { inline-size: 0; }
    100% { inline-size: 50%; }
}
@keyframes se-grow-right {
    0%   { inline-size: 0; }
    100% { inline-size: 50%; }
}

/* Dot pops into view at the center (starts hidden until delay finishes) */
@keyframes se-dot-pop {
    0%   { opacity: 0; transform: translate(-50%, -50%) scale(0); }
    60%  { opacity: 1; transform: translate(-50%, -50%) scale(2.1); } /* dramatic pop */
    100% { opacity: 1; transform: translate(-50%, -50%) scale(1.2); } /* settle slightly larger */
}

/* After text starts to appear, dot gently fades/shrinks away */
@keyframes se-dot-fade {
    0%   { opacity: 1; transform: translate(-50%, -50%) scale(1.2); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(0.6); }
}

/* Glow grows and brightens during the pop */
@keyframes se-glow-in {
    0%   { opacity: 0; transform: translate(-50%, -50%) scale(.6);   filter: blur(2px); }
    60%  { opacity: 1; transform: translate(-50%, -50%) scale(var(--glow-scale)); filter: blur(6px); }
    100% { opacity: 1; transform: translate(-50%, -50%) scale(var(--glow-scale)); filter: blur(8px); }
}

/* Glow fades as the wordmark reveals */
@keyframes se-glow-fade {
    0%   { opacity: 1; filter: blur(8px); }
    100% { opacity: 0; filter: blur(10px); }
}

/* Wordmark reveal: fade in, sharpen, and slightly scale up */
@keyframes se-word-in {
    0%   { opacity: 0; filter: blur(8px); transform: translate(-50%, -50%) scale(.96); letter-spacing: -0.12em; }
    60%  { opacity: .9; filter: blur(2px); transform: translate(-50%, -50%) scale(1.02); letter-spacing: -0.02em; }
    100% { opacity: 1; filter: blur(0); transform: translate(-50%, -50%) scale(1); letter-spacing: 0em; }
}

/* -------------------------
   Respect reduced motion
--------------------------*/
@media (prefers-reduced-motion: reduce) {
    .se-line--left,
    .se-line--right,
    .se-dot,
    .se-wordmark {
        animation: none !important;
    }
    .se-line--left,
    .se-line--right { inline-size: 50%; }
    .se-dot { opacity: 0; }
    .se-wordmark {
        opacity: 1;
        filter: none;
        transform: translate(-50%, -50%) scale(1);
    }
}



/**EKG LINE**/
.section-wrap { position: relative; }

.ekg {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% - 105px);
    display: flex;
    align-items: center;
    gap: 0;
    pointer-events: none;
}

.ekg .monitor {
    padding: 0;
    width: min(100%, 500px);
    flex: 0 0 auto;
}

.ekg .lead-in {
    position: relative;
    flex: 1 1 auto;
    height: 4px;
    bottom: -7px;
}
.ekg .lead-in::before {
    content: "";
    position: absolute;
    left: 0; top: 0;
    height: 3px;
    width: 0;
    background: rgb(var(--bs-primary-rgb));
    animation: ekg-lead 3s linear forwards;
}
@keyframes ekg-lead {
    to { width: 100%; }
}

.ekg svg {
    display: block;
    width: 100%;
    height: auto;
    position: relative;
    transform: scaleY(0.5);
    transform-origin: center;
    /*transition: transform 0.5s ease-in-out;*/
}

.ekg svg .ekg {
    fill: none;
    stroke: rgb(var(--bs-primary-rgb));
    stroke-width: 5;
    stroke-linecap: round;
    stroke-linejoin: miter;
    opacity: 1;
    stroke-dasharray: 1000;
    stroke-dashoffset: -1000;
    animation: ekg-draw 1.5s linear 3s forwards;
}

@keyframes ekg-draw {
    0%   { stroke-dashoffset: -1000; }
    100% { stroke-dashoffset: 0; }
}

/**END EKG LINE**/

/**BLOCK SERVICES**/

@media screen and (min-width: 1200px) {
    body.block--services--page section.header-image {padding-top:7rem!important;padding-bottom:4rem!important;}
}
@media screen and (min-width: 1400px) {
    body.block--services--page section.header-image {padding-top:9rem!important;padding-bottom:6rem!important;}
}


#homepageCategories .card-background {position:relative;background: -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, .9))) repeat-x;background: -webkit-linear-gradient(transparent, rgba(0, 0, 0, .9)) repeat-x;background: linear-gradient(transparent, rgba(0, 0, 0, .9)) repeat-x;transition: background .4s ease;}
#homepageCategories .card.bg-gray-200 .btn-outline-white {transition: all .4s ease;}
#homepageCategories .card.bg-gray-200:hover .btn-outline-white {--bs-btn-color:var(--bs-primary);--bs-btn-border-color:#fff;--bs-btn-hover-bg:#fff;--bs-btn-bg: #fff;--bs-btn-hover-border-color:#fff;--bs-btn-hover-color:var(--bs-primary);transition: all .4s ease;}
#homepageCategories .card.bg-gray-200:hover .card-background {background: -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, .95))) repeat-x;background: -webkit-linear-gradient(transparent, rgba(0, 0, 0, .95)) repeat-x;background: linear-gradient(transparent, rgba(0, 0, 0, .95)) repeat-x;transition: background .4s ease;}

/**END BLOCK SERVICES**/
.swiper-reviews .swiper-navigation {z-index:10!important;}
.swiper-reviews .swiper-button-next.reviews-next, .swiper-reviews .swiper-button-prev.reviews-prev {color:var(--bs-primary);}
.swiper-reviews .swiper-button-disabled {color:#fff!important;}
.swiper-reviews .swiper-button-next.reviews-next:hover, .swiper-reviews .swiper-button-prev.reviews-prev:hover, .swiper-reviews .swiper-button-next.reviews-next:focus, .swiper-reviews .swiper-button-prev.reviews-prev:focus, .swiper-reviews .swiper-button-next.reviews-next:active, .swiper-reviews .swiper-button-prev.reviews-prev:active {color:#fff;}
.swiper-reviews .swiper-button-next.reviews-next:after, .swiper-reviews .swiper-button-prev.reviews-prev:after {display:none;}


/**CLICKABLE MAP**/
.regional-map svg,
.regional-map img {
    width: 100%;
    height: 100%;
}

.state-name {
    fill: #fff;
    font-weight: 500;
    font-size: 1.1rem;
}
.state-name--inverse {
    fill: #212121;
}
.state-name--sm {
    font-size: 1rem;
}

.region, .region:focus, .region:hover {fill: var(--bs-blue);}
.state-trigger {
    fill: var(--bs-blue);
    text-decoration: none;
}

.state-trigger:focus,
.state-trigger:hover {
    fill: #e32416;
}
.state-trigger:not([href]):focus,
.state-trigger:not([href]):hover {
    fill: var(--bs-blue);
}

.region:focus,
.state-trigger:focus {
    outline: none;
}
.region--active,
.state-trigger--active {
    fill: #39bad6;
}
.region--active .state-name,
.state-trigger--active .state-name {
    fill: #212121;
}
.region--active:focus .state-name, .region--active:hover .state-name,
.state-trigger--active:focus .state-name,
.state-trigger--active:hover .state-name {
    fill: #fff;
}

.regional-map .region[data-state="MI"] .state-name {transform: translateY(30px);}
/**END CLICKABLE MAP**/


.dashboard-menu > div {margin-bottom:10px;margin-top: 10px;}
.dashboard-menu > div > a:not(.menu--edit-link) {background-color: #fff;border-radius: 100px;box-sizing: border-box;display:block;text-align:center;color:var(--bs-gray-600);font-size: 16px;    width: 100%;transition: all 0.3s;height: 40px;line-height: 40px;padding: 0;position:relative;}
.dashboard-menu > div > a:not(.menu--edit-link):hover, dashboard-menu > div >  a:focus {transition: all 0.3s;background:var(--bs-gray-600)!important;color:#fff!important;}
.dashboard-menu > div > a .menu--edit-link {position:absolute;z-index:2;width:30px;height:30px;}


/***EDIT CONTENT**/
#adminForm .card.border-0.shadow-sm {box-shadow:none;}
joomla-tab button[role="tab"], joomla-tab button[role="tab"] {background:transparent!important;border-top-color: transparent!important;border-left-color: transparent!important;border-right-color: transparent!important;}
joomla-tab button[role="tab"][aria-expanded="true"], joomla-tab button[role="tab"][aria-selected="true"] {box-shadow: none;}

joomla-tab[view=tabs]>div[role=tablist] {border:none;}
joomla-tab button[aria-expanded="true"]:after, joomla-tab button[aria-selected="true"]:after {background-color: var(--bs-primary);}

/***END EDIT CONTENT**/

.nav-account .nav-item .nav-link.active {background-color: var(--bs-gray-600);}

figure .video-image-link {position: relative;display: inline-block;line-height: 0;}
figure .video-image-link img {display: block;width: 100%;height: auto;border-radius: inherit;}
figure .video-image-link:before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 90px;
    height: 90px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.55);
    box-shadow: 0 10px 24px rgba(0,0,0,.35), inset 0 0 0 2px rgba(255,255,255,.25);
    pointer-events: none;
    transition: background .2s ease, transform .2s ease;
    z-index: 1;
}

figure .video-image-link::after {
    content: "\f04b";
    font-family: "Font Awesome 7 Pro","Font Awesome 7 Free","Font Awesome 6 Pro", sans-serif;
    font-weight: 900;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-46%, -50%);
    font-size: 38px;
    color: #fff;
    text-shadow: 0 2px 8px rgba(0,0,0,.35);
    pointer-events: none;
    z-index: 2;
}

.video-image-link:hover::before,
.video-image-link:focus-visible::before {
    background: rgba(0, 0, 0, 0.7);
    transform: translate(-50%, -50%) scale(1.05);
    box-shadow: 0 10px 24px var(--bs-primary), inset 0 0 0 2px var(--bs-primary);
}

.video-image-link:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
    border-radius: inherit;
}


.video-image-link img {
    transition: transform .25s ease;
}
.video-image-link:hover img,
.video-image-link:focus-visible img {
    transform: scale(1.01);
}
/****GALLERY****/
.gallery-item
{
    position: relative;

    overflow: hidden;

    text-align: center;
}
.gallery-item:hover .gallery-item-caption,
.gallery-item:hover .gallery-item-links
{
    opacity: 1;
}
.gallery-item:hover .gallery-item-link
{
    margin: 0 12px;

    opacity: 1;
}
.gallery-item:hover .gallery-item-subtitle,
.gallery-item:hover .gallery-item-title
{
    transform: translate3d(0, 0, 0);

    opacity: 1;
}
.gallery-item:hover .gallery-item-subtitle
{
    transition: all .2s .15s;
}

@media (max-width: 1024px) {
    body.touch .gallery-item .gallery-item-caption,
    body.touch .gallery-item .gallery-item-links
    {
        opacity: 1;
    }
    body.touch .gallery-item .gallery-item-link
    {
        margin: 0 12px;

        opacity: 1;
    }
    body.touch .gallery-item .gallery-item-subtitle,
    body.touch .gallery-item .gallery-item-title
    {
        transform: translate3d(0, 0, 0);

        opacity: 1;
    }
    body.touch .gallery-item .gallery-item-subtitle
    {
        transition: 0;
    }
    body.touch .gallery-item [data-fancybox]
    {
        display: none;
    }
}

.gallery-item-image
{
    position: relative;
}
.gallery-item-image img
{
    display: block;

    width: 100%;
    height: auto;
}
.js-gallery-isotope--hidden
{
    visibility: hidden;
}
.gallery-item-image .foxic-loader
{
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;

    margin: auto;

    transition: opacity .3s .2s;

    opacity: 1;
}
.gallery-item-image img.lazyloaded + .foxic-loader,
.gallery-item-image img.lazyloading + .foxic-loader
{
    opacity: 0;
}

.gallery-item-caption
{
    position: absolute;
    top: 0;
    left: 0;

    display: -ms-flexbox;
    display: flex;
    flex-direction: column;

    width: 100%;
    height: 100%;
    padding: 15px;

    transition: .5s;

    opacity: 0;
    background: rgba(0, 0, 0, .6);

    -ms-flex-direction: column;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.gallery-item-caption,
.gallery-item-caption h3,
.gallery-item-caption h4
{
    margin-bottom: 0;
}
.gallery-item-caption > *:not(:first-child)
{
    margin-top: 37px;
}

.gallery-item-subtitle
{
    font-size: 13px;
    font-weight: 600;
    line-height: 1em;

    transition: all .2s;
    transform: translateY(-15px);

    opacity: 0;
    color: #fff;
}

.gallery-item-title
{
    font-size: 22px;
    font-weight: 600;
    line-height: 1em;

    transition: all .2s;
    transform: translateY(-25px);

    opacity: 0;
    color: #fff;
}
.gallery-item-title:not(:first-child)
{
    margin-top: 25px;
}

.gallery-item-links
{
    z-index: 1;
    top: 0;
    left: 0;

    display: -ms-flexbox;
    display: flex;

    width: 100%;

    transition: .5s;

    opacity: 0;

    -ms-flex-align: center;
    align-items: center;
    -ms-flex-pack: center;
    justify-content: center;
}

.gallery-item-link
{
    font-size: 22px;

    display: -ms-flexbox;
    display: flex;

    width: 63px;
    height: 63px;
    margin: 0 75px;

    cursor: pointer;
    transition: .5s;
    text-decoration: none;

    opacity: 0;
    color: #fff;
    border-radius: 50%;
    background: rgba(255, 255, 255, .3);

    -ms-flex-align: center;
    align-items: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.gallery-item-link:hover,
.gallery-item-link:focus
{
    text-decoration: none;

    color: #23303D;
}
.gallery-item-link:hover
{
    transition: .5s;
    background: white;
}

.gallery-wrapper {margin-left: -15px;margin-right: -15px;}
.gallery-item_inner {position: relative;}


/****PORTFOLIO****/
.gallery .grid-sizer, .gallery .grid-item { width: 50%; }
.gallery .grid-item-tall { width: 50%; }
.gallery .gutter-sizer {width: 0;}
.gallery .grid-item--width2 { width: 20%; }

@media screen and (min-width: 768px) {
    .gallery .grid-sizer, .gallery .grid-item {width: 33.33%;}
    /*.gallery .grid-item-tall {width: 16.665%;}*/
}
/*
!*.grid-sizer,
.gallery .gallery-item.grid-item { width: 50%; }*!
!*.gallery .gallery-item.grid-item-tall { width: 50%; }*!

!*.gutter-sizer { width: 3%; }*!
!* spans 2 columns: 32% + 3% + 32% = 67% *!
!*.grid-item--width2 { width: 20%; }

@media screen and (min-width: 768px){
    .grid-sizer, .gallery .gallery-item.grid-item {width: 33.33%;}

}*!

.grid-sizer, .gallery-item.grid-item {width: 19%;}
.gallery-item.grid-item.grid-item-wide {width: 39%;}
.gutter-sizer {width: 1%;}

!* Define the grid layout *!
!*.grid-sizer,
.element-item {
    width: 20%;  !* 3 columns with ~1% space *!
}
.gallery-item.grid-item.grid-item-wide {width: 40%;}*!
!*.gutter-sizer {
    width: 1%;   !* Space between items *!
}*!

!* For responsive layouts *!
@media (max-width: 991px) {
    .grid-sizer,
    .element-item {
        width: 48%;  !* 2 columns on tablets *!
    }

    .gutter-sizer {
        width: 4%;
    }
}

@media (max-width: 575px) {
    .grid-sizer,
    .element-item {
        width: 100%;  !* 1 column on mobile *!
    }

    .gutter-sizer {
        width: 0;
    }
}

@media screen and (min-width: 1200px){
    .grid-sizer, .gallery-item.grid-item {width: 19%;}
    .gallery-item.grid-item.grid-item-wide {width: 39%;}
    .gutter-sizer {width: 1%;}
}*/
/* Ensure images are responsive */
.element-item img {
    width: 100%;
    height: auto;
    display: block;
}
/****END GALLERY****/

/**ameripro old**/
.section-work__video {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    width: 100%;
    height: 100%;
    min-height: 386px;
    padding: 2rem;
    color: #fff;

    overflow: hidden;
}
.section-work__video-background {
    position: absolute;
    inset: 0;
}
.media-fit {
    width: 100%;
}

.section-work__video-link {
    position: absolute;
    z-index: 2;
    inset: 0;
    display: grid;
    place-items: center;
}

.btn-play {
    --btn-size: 19.6rem;
    display: inline-grid;
    place-items: center;
    width: var(--btn-size);
    height: var(--btn-size);
    padding: 2.3rem;
    border: 1px solid #fff;
    color: #fff;
    border-radius: 50%;
    -webkit-backdrop-filter: blur(2rem) brightness(1.2);
    backdrop-filter: blur(2rem) brightness(1.2);
    font-weight: 500;
    text-decoration: none;
    text-transform: uppercase;
}

.btn-play--small .btn-play__icon {
    position: relative;
    left: .2rem;
    top:5px;
    width: 3rem;
    aspect-ratio: 1 / 1;
    -o-object-fit: contain;
    object-fit: contain;
}

.section-work__video-content {
    position: relative;
}

.section-work__video-title {
    margin-bottom: 0;
    padding-bottom: .4rem;
    color: inherit;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (prefers-reduced-motion: no-preference) {
    .section-work__video-background {
        -webkit-transition-property: scale;
        transition-property: scale;
        -webkit-transition-duration: .4s;
        transition-duration: .4s;
        -webkit-transition-timing-function:ease;
        transition-timing-function:ease;
    }

    .btn-play {
        -webkit-transition-property: color, opacity, visibility;
        transition-property: color, opacity, visibility;
        -webkit-transition-duration: .4s;
        transition-duration: .4s;
        -webkit-transition-timing-function:
            ease;
        transition-timing-function:
            ease;
    }
}

.btn-play--small {
    --btn-size: 4rem;
    position:relative;
    display: grid;
    place-items: center;
    padding: 1rem;
    border: unset;
}

.btn-play__icon >  i {font-size:1.5rem;}

/**end ameripro old**/


@media screen and (max-width: 567px) {
    .block-session-video.line-pattern {min-height: 0;background:transparent;}
}


/**SERVICE AREA ARTICLES**/
.com-content-article.item-page {padding-top: 1.25rem; padding-bottom: 3rem;}
.com-content-article.item-page .page-header {margin-bottom: 0;}
.com-content-article.item-page .page-header h1 {margin-top: 0.35rem; margin-bottom: 1.5rem; line-height: 1.2;}
.com-content-article.item-page .com-content-article__body > p.mb-0 {margin-bottom: 1.5rem !important;}
.com-content-article.item-page .com-content-article__body > p.px-lg-6 {padding-left: 0 !important; padding-right: 0 !important;}
.com-content-article.item-page .com-content-article__body h2 {margin-top: 2.5rem; margin-bottom: 1rem;}
.com-content-article.item-page .com-content-article__body h3 {margin-top: 1.75rem; margin-bottom: 0.5rem;}
.com-content-article.item-page .com-content-article__body p {margin-bottom: 1.25rem;}
.com-content-article.item-page .com-content-article__body ul {margin-bottom: 1.5rem; padding-left: 1.25rem;}
.com-content-article.item-page .com-content-article__body li {margin-bottom: 0.75rem;}
.com-content-article.item-page .pager, .com-content-article.item-page .pagenavigation {margin-top: 2.5rem; padding-top: 1.5rem;}

/** A11Y-02: body/secondary text contrast raised to >=4.5:1 (WCAG 1.4.3).
    Light mode targets the lightest surfaces in use (#fff/#f1f5f9/#e2e8f0);
    dark mode is a SEPARATE override, never the light values (those drop to
    ~2.7:1 on the #020617 dark background). **/
:root, [data-bs-theme=light] {
    --bs-body-color: #475569;
    --bs-body-color-rgb: 71, 85, 105;
    --bs-secondary-color: #52606d;
    --bs-secondary-color-rgb: 82, 96, 109;
    /* Round 2 regression fix: --bs-tertiary-color was left at Bootstrap's
       default (50% opacity), giving ~1.8-2:1 on #e2e8f0/#fff. Reuse the
       already-verified secondary value (5.24:1 on #e2e8f0, 5.89:1 on
       #f1f5f9, higher on #fff). */
    --bs-tertiary-color: #52606d;
    --bs-tertiary-color-rgb: 82, 96, 109;
}
[data-bs-theme=dark] {
    --bs-body-color: #94a3b8;
    --bs-body-color-rgb: 148, 163, 184;
    --bs-secondary-color: #94a3b8;
    --bs-secondary-color-rgb: 148, 163, 184;
    --bs-tertiary-color: #94a3b8;
    --bs-tertiary-color-rgb: 148, 163, 184;
}

/** A11Y-03: links inside article body copy need a non-color cue (1.4.1). **/
.com-content-article__body a {
    text-decoration: underline;
    text-underline-offset: .15em;
}

/** A11Y-05: swiper pagination bullets need a >=24x24px CSS-pixel hit area
    (WCAG 2.5.8). The visible dot stays small via ::before; the anchor/span
    itself grows to the full target size. **/
.swiper-pagination-bullet {
    width: 24px !important;
    height: 24px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    background: transparent !important;
    margin: 0 2px !important;
}
.swiper-pagination-bullet::before {
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: currentColor;
    opacity: .5;
}
.swiper-pagination-bullet-active::before {
    opacity: 1;
}

/** prefers-reduced-motion (manual check list): scrollcue.js adds this class
    instead of initializing scrollCue when the user has asked for less
    motion, so cued elements must render at their final state immediately. **/
html.reduced-motion [data-cue],
html.reduced-motion [data-cues] > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
}

/* Logo aspect ratio: keep intrinsic ratio when width/height attributes are present */
.block--header .navbar-brand img,
.offcanvas-header img {
    width: auto;
    max-width: 100%;
}

/* Page header: keep content above the .header-opacity overlay (z-index: 0) */
section.header-image > .container,
section.header-color > .container {
    position: relative;
    z-index: 1;
}

/* Sidebar CTA banner (templates/block/html/mod_custom/sidebar-cta.php).
   Sticky offset comes from the shared .sidebar-content.sticky--sidebar
   rule above; this block only styles the card itself. */
.stellan-cta {
    border-color: var(--bs-border-color);
}

.stellan-cta__actions .btn {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

