﻿/*Header START */
header:has(.art-header) {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  max-width: 100%;
}

header nav .btn-menu a,
header nav .btn-menu a:visited {
  padding: 12px 32px!important;
  border-radius: 32px;
  background-color: #063359;
  font-family: "Albert Sans", Sans-serif!important;
  font-size: 100%!important;
  font-weight: normal;
  text-transform: uppercase;
  color: #FFFFFF!important;
  border: none!important;
}
header nav .btn-menu a:before,
header nav .btn-menu a:after {
  display: none;
}

header nav .btn-menu a:hover,
header nav .btn-menu a:active,
header nav .btn-menu a:focus {
  background-color: #005d7a;
}
header nav .menu-item:not(.btn-menu) a::before,
header nav .menu-item:not(.btn-menu) a::after {
  transition: all 0.3s ease-in-out;
  transform: scaleX(0);
  left: 0;
  right: 0;
  opacity: 1!important;
}
header nav .menu-item:not(.btn-menu).current-menu-item a::before,
header nav .menu-item:not(.btn-menu) a:hover::before,
header nav .menu-item:not(.btn-menu) a:active::before,
header nav .menu-item:not(.btn-menu) a:focus::before,
header nav .menu-item:not(.btn-menu).current-menu-item a::after,
header nav .menu-item:not(.btn-menu) a:hover::after,
header nav .menu-item:not(.btn-menu) a:active::after,
header nav .menu-item:not(.btn-menu) a:focus::after  {
  -webkit-transform: scaleX(1);
  -ms-transform: scaleX(1);
  transform: scaleX(1);
}

@media (max-width: 767px)  {
  html::before {
    content: "";
    width: 100%;
    height: 100%;
    height: calc(100% + env(safe-area-inset-bottom));
    position: fixed;
    display: none;
    left: 0;
    right: 0;
    top: 0;
    -webkit-transform: scaleY(0);
    -ms-transform: scaleY(0);
    transform: scaleY(0);
    transition: transform .2s,-webkit-transform .2s;
    transform-origin: 0 0;
    visibility: hidden;
  }
  html:has(.elementor-menu-toggle.elementor-active)::before {
    background: rgba(255,255,255,0.3);
    display: block;
    visibility: visible;
    -webkit-transform: scaleY(1);
    -ms-transform: scaleY(1);
    transform: scaleY(1);
    transform-origin: 0 100%;
    backdrop-filter: blur(5px);
  }
  html:has(.elementor-menu-toggle.elementor-active){
    position: fixed;
  }

  header:has(.art-menu) .elementor-widget-theme-site-logo {
    z-index: 9998;
  }
  header:has(.art-menu) .elementor-menu-toggle {
    z-index: 9998;
  }
  .art-menu .elementor-nav-menu--dropdown.elementor-nav-menu__container  {
    top: 0!important;
    max-height: 100vh!important;
    height: 100vh!important;
    padding-top: 200px;
    position: fixed!important;
    margin-top: 0!important;
  }
  .art-menu .elementor-nav-menu__container > .elementor-nav-menu {
    height: calc(100% - 100px);
    display: flex;
    max-width: 90%;
    margin: 0 auto;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 30px;
  }
  .art-menu .elementor-nav-menu .menu-item {
    display: flex;
  }
  .art-menu .elementor-nav-menu .menu-item:not(.btn-menu) a {
    background-color: transparent!important;
    color: #000!important;
  }

  .art-menu .menu-item:not(.btn-menu) a::before,
  .art-menu .menu-item:not(.btn-menu) a::after {
    display:block;
    content: "";
    width: 100%;
    height: 1px;
    background: #000;
    position: absolute;
    left: 0;
    right: 0;
    transition: all 0.3s ease;
    transform: scaleX(0);
  }
  .art-menu .menu-item:not(.btn-menu) a::before {
    transform-origin: 100% 0;
    top: 0;
  }
  .art-menu .menu-item:not(.btn-menu) a::after {
    transform-origin: 0 0;
    top: 100%;
  }
  .art-menu .menu-item:not(.btn-menu).current-menu-item a::before,
  .art-menu .menu-item:not(.btn-menu) a:hover::before,
  .art-menu .menu-item:not(.btn-menu) a:active::before,
  .art-menu .menu-item:not(.btn-menu) a:focus::before  {
    -webkit-transform-origin: 0 0;
    -ms-transform-origin: 0 0;
    transform-origin: 0 0;
    -webkit-transform: scaleX(1);
    -ms-transform: scaleX(1);
    transform: scaleX(1);
  }
  .art-menu .menu-item:not(.btn-menu).current-menu-item a::after,
  .art-menu .menu-item:not(.btn-menu) a:hover::after,
  .art-menu .menu-item:not(.btn-menu) a:active::after,
  .art-menu .menu-item:not(.btn-menu) a:focus::after  {
    -webkit-transform-origin: 100% 0;
    -ms-transform-origin: 100% 0;
    transform-origin: 100% 0;
    -webkit-transform: scaleX(1);
    -ms-transform: scaleX(1);
    transform: scaleX(1);
  }
  header .art-menu .btn-menu {
    margin-top: 20px;
  }

  header .art-menu .btn-menu a {
    font-size: 28px!important
  }
}
/*Header END */
/*Footer START */
.art-footer .menu-item a::before,
.art-footer .menu-item a::after  {
  transition: all 0.3s ease;
}

.art-footer .menu-item a::before,
.art-footer .menu-item a::after  {
    -webkit-transform: scaleX(0)!important;
    -ms-transform: scaleX(0)!important;
    transform: scaleX(0)!important;
}
.art-footer .menu-item a:hover::before,
.art-footer .menu-item a:active::before,
.art-footer .menu-item a:focus::before,
.art-footer .menu-item a:hover::after,
.art-footer .menu-item a:active::after,
.art-footer .menu-item a:focus::after {
    -webkit-transform: scaleX(1)!important;
    -ms-transform: scaleX(1)!important;
    transform: scaleX(1)!important;
}
.copyright-section .elementor-widget-wrap {
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 0.25ch;
  text-align: left;
}
.copyright-section .elementor-widget-wrap > * {
  width: auto!important;
  font-family: "Albert Sans", Sans-serif;
  font-size: 14px;
  color: #737373;
}
.copyright-section .elementor-widget-shortcode {
  padding-right: 0.25ch;
}

@media (max-width: 767px) {
  .art-footer.elementor-nav-menu__align-end .elementor-nav-menu {
    justify-content: center;
    margin: 0 auto;
  }
}
@media (max-width: 480px) {
  .art-footer.elementor-nav-menu__align-end .elementor-nav-menu {
    flex-direction: column;
    align-items: center;
    gap: 14px;
  }
}
/*Footer END */
/* General Blocks START */

.ui-anim-preloader {
  width: 100%;
  height: 100%;
  background: #dfeef5;
  justify-content: center;
}

.no-padding {
  padding: 0!important;
}

.elementor-button:has(.elementor-button-icon) {
  padding: 20px 55px!important;
  transition: all .4s ease-in-out;
  margin-left: -50px!important;
  border-radius: 55px !important
}
.elementor-button .elementor-button-icon svg {
  transform: scale(1.5);
}

.elementor-button .elementor-button-icon * {
  transition: all .4s ease-in-out;
}
.elementor-button:has(.elementor-button-icon):hover,
.elementor-button:has(.elementor-button-icon):active,
.elementor-button:has(.elementor-button-icon):focus {
  margin-left: 0!important;
}
.elementor-button:hover .elementor-button-icon svg,
.elementor-button:active .elementor-button-icon svg,
.elementor-button:focus .elementor-button-icon svg {
  transform: scale(1.5) translateX(10px);
}

.form-field .frm_submit .frm_button_submit {
  transition: all 0.3s ease-in-out;
  text-transform: uppercase;
}

@media (max-width: 767px) {
  .order-2-mobile {
    order: 2!important;
  }
  .order-1-mobile {
    order: 1!important;
  }
  .elementor-button:has(.elementor-button-icon) {
    padding: 20px 40px!important;
    border-radius: 40px !important;
    margin-left: -40px!important;
    transition: all 0.15s cubic-bezier(.68,.01,.58,.75);
  }
  .elementor-button .elementor-button-icon svg  {
    transition: all 0.15s cubic-bezier(.68,.01,.58,.75);
  }


}

/* General Blocks END */
/* Sticky Blocks START */
body:not(.elementor-editor-active) .js-sticky-frames {
  position: relative;
  min-height: calc(var(--sticky-frame-count, 3) * 100vh);
}

/* Sticky Blocks START */
body:not(.elementor-editor-active) .js-sticky-frames > .elementor-container {
  position: sticky !important;
  top: 0 !important;
  height: 100vh !important;
  align-items: center;
}

/* Sticky Blocks START */
body:not(.elementor-editor-active) .js-sticky-frames .js-sticky-left,
/* Sticky Blocks START */
body:not(.elementor-editor-active) .js-sticky-frames .js-sticky-right {
  align-self: stretch;
  display: flex;
  align-items: center;
}

/* Sticky Blocks START */
body:not(.elementor-editor-active) .js-sticky-frames .js-sticky-right {
  position: relative;
  min-height: 100vh;
}

/* Sticky Blocks START */
body:not(.elementor-editor-active) .js-sticky-frame {
  position: absolute !important;
  inset: 0 !important;
  opacity: 0;
  visibility: hidden;
  transition: opacity .5s ease, visibility .5s ease;
  display: flex !important;
  align-items: center;
  pointer-events: none;
}

/* Sticky Blocks START */
body:not(.elementor-editor-active) .js-sticky-frame.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* Sticky Blocks START */
body:not(.elementor-editor-active) .js-sticky-rail {
  position: absolute;
  top: 50%;
  right: 24px;
  transform: translateY(-50%);
  width: 24px;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 20vh;
  z-index: 5;
  margin: 0;
  padding: 0;
  list-style: none;
  background: transparent;
}

.js-sticky-rail::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: rgba(6, 51, 89, 0.35);
  transform: translateX(-50%);
}

.js-sticky-rail li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.js-sticky-rail__dot {
  position: relative;
  width: 60px;
  height: 60px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  z-index: 1;
}

.js-sticky-rail__dot::before {
  content: "";
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: rgba(6, 51, 89, 0.35);
  transition: background-color .3s ease, transform .3s ease;
}

.js-sticky-rail__dot::after {
  content: "";
  position: absolute;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid #063359;
  opacity: 0;
  transform: scale(0.6);
  transition: opacity .3s ease, transform .3s ease;
  pointer-events: none;
}

.js-sticky-rail__dot.is-active::before {
  background: #063359;
}

.js-sticky-rail__dot.is-active::after {
  opacity: 1;
  transform: scale(1);
}

.js-sticky-rail__dot:focus-visible {
  outline: 2px solid #155463;
  outline-offset: 4px;
  border-radius: 50%;
}


.video-as-bg .elementor-widget-video,
.video-as-bg .elementor-widget-video div {
  height: 100%;
}
.video-as-bg .elementor-widget-video .e-hosted-video {
  overflow: hidden;
  display: block;
  aspect-ratio: unset!important;
}
.video-as-bg .elementor-widget-video .elementor-video {
  object-fit: cover;
  object-position: center center;
  max-width: unset;
}

@media (prefers-reduced-motion: reduce), (max-width: 767px) {
  .js-sticky-frames {
    min-height: 0;
  }
  .js-sticky-frames > .elementor-container {
    position: static !important;
    height: auto !important;
  }
  .js-sticky-frames .js-sticky-right {
    flex-direction: column;
    min-height: 0;
  }
  .js-sticky-frame {
    position: relative !important;
    inset: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transition: none;
  }
  .js-sticky-rail {
    display: none;
  }
}
/* Sticky Blocks END */

@media (max-width: 767px) {
  body.elementor-page section.js-sticky-frames {
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
  }

  body.elementor-page .js-sticky-frames > .elementor-container {
    display: block !important;
    position: static !important;
    top: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }

  body.elementor-page .js-sticky-frames .elementor-column.js-sticky-left,
  body.elementor-page .js-sticky-frames .elementor-column.js-sticky-right {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    position: static !important;
    height: auto !important;
  }

  body.elementor-page .js-sticky-frames .js-sticky-frame {
    position: static !important;
    inset: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    transition: none !important;
    transform: none !important;
    pointer-events: auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin-bottom: 60px !important;
  }

  body.elementor-page .js-sticky-frames .js-sticky-frame:last-of-type {
    margin-bottom: 0 !important;
  }

  body.elementor-page .js-sticky-frames .js-sticky-rail {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .mobile-font-26,
  .mobile-font-26 * {
    font-size: 26px !important;
  }
}

/**
 * Skip-to-content link.
 * Hidden visually until it receives keyboard focus.
 */
.ds-skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 999999;

  display: inline-block;
  padding: 12px 18px;

  background: #fff;
  color: #000;
  border: 2px solid #000;
  border-radius: 4px;

  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;

  transform: translateY(calc(-100% - 30px));
  transition: transform 0.15s ease;
}

.ds-skip-link:focus,
.ds-skip-link:focus-visible {
  transform: translateY(0);
  color: #000;
  background: #fff;
  outline: 3px solid #005fcc;
  outline-offset: 3px;
}

/**
 * Compensate for a sticky header when jumping to the target.
 * Adjust 120px to match your header height.
 */
.ds-skip-target {
  display: block;
  height: 0;
  scroll-margin-top: 120px;
}

/* ===== Keyboard focus indicators (site-wide) ===== */

/* Buttons & links in header, footer, and page content:
   1px #063359 dotted ring*/
#uicore-tb-header a:focus-visible,
#uicore-tb-header button:focus-visible,
#uicore-tb-header .elementor-menu-toggle:focus-visible,
#uicore-tb-footer a:focus-visible,
#uicore-tb-footer button:focus-visible,
#content a:focus-visible,
#content button:focus-visible {
  outline: 1px dotted #063359 !important;
  outline-offset: 3px !important;
  border-radius: 62.5px !important;
}

/* Logo links (header & footer): 1px black underline, no dotted ring */
#uicore-tb-header a:has(img):focus-visible,
#uicore-tb-footer a:has(img):focus-visible {
  outline: none !important;
  border-radius: 0 !important;
}
#uicore-tb-header a:has(img):focus-visible img,
#uicore-tb-footer a:has(img):focus-visible img {
  border-bottom: 1px solid #000 !important;
}

.a11y-video-toggle{
  position:absolute; bottom:17px; right:20px; z-index:20;
  width:44px; height:44px; border-radius:50%;
  background:#063359; border:2px solid #fff;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; padding:0; box-shadow:0 1px 4px rgba(0,0,0,.4);
}
.a11y-video-toggle:focus-visible{ outline:2px solid #063359; outline-offset:3px; }
.a11y-video-icon{
  display:block; width:14px; height:16px;
  border-left:4px solid #fff; border-right:4px solid #fff; box-sizing:border-box;
}
.a11y-video-toggle.is-paused .a11y-video-icon{
  width:0; height:0; border:none;
  border-left:14px solid #fff; border-top:9px solid transparent;
  border-bottom:9px solid transparent; margin-left:4px;
}

.a11y-video-toggle{
  position:absolute; bottom:14px; right:14px; z-index:20;
  width:44px; height:44px; border-radius:50%;
  background:#063359; border:2px solid #fff;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; padding:0; box-shadow:0 1px 4px rgba(0,0,0,.4);
}

.a11y-video-toggle:focus-visible{
  outline:10px dotted #063359 !important;
  outline-offset:10px !important;
  border-radius:62.5px !important;
}
.a11y-video-icon{
  display:block; width:14px; height:16px;
  border-left:4px solid #fff; border-right:4px solid #fff; box-sizing:border-box;
}
.a11y-video-toggle.is-paused .a11y-video-icon{
  width:0; height:0; border:none;
  border-left:14px solid #fff; border-top:9px solid transparent;
  border-bottom:9px solid transparent; margin-left:4px;
}