/* =========================================================
   MONEYVESTA ACCESSIBLE BACK-TO-TOP LINK
   ========================================================= */
/* Hide the old homepage-only scroll button */
body.home #mv-scroll-top,
body.home button#mv-scroll-top,
body.home .mv-scroll-top {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Hide Astra's original scroll-to-top control */
#ast-scroll-top {
  display: none !important;
}

/* Main circular button */
#mv-scroll-top-link {
  position: fixed;
  right: 18px;
  bottom: 112px;
  z-index: 99999;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 1px solid rgba(203, 178, 106, 0.78) !important;
  border-radius: 50% !important;

  background: #0a0e21 !important;
  color: #ffffff !important;

  box-shadow: 0 8px 22px rgba(10, 14, 33, 0.24) !important;

  text-decoration: none !important;
  cursor: pointer !important;

  overflow: hidden !important;

  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}

/* Remove any old icons or generated shapes */
#mv-scroll-top-link::before,
#mv-scroll-top-link::after,
#mv-scroll-top-link .mv-scroll-caret::before,
#mv-scroll-top-link .mv-scroll-caret::after {
  content: none !important;
  display: none !important;
}

/* Simple inverted-V symbol */
#mv-scroll-top-link .mv-scroll-caret {
  display: block !important;

  width: auto !important;
  height: auto !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  background: transparent !important;

  color: #ffffff !important;

  font-family:
    "Segoe UI Symbol",
    "Arial Unicode MS",
    Arial,
    sans-serif !important;

  font-size: 22px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;

  transform: translateY(3px) scaleX(1.08) !important;

  pointer-events: none !important;
}

/* Hover */
#mv-scroll-top-link:hover {
  border-color: #d4af37 !important;
  background: #8c6c3f !important;
  color: #ffffff !important;

  box-shadow: 0 10px 26px rgba(10, 14, 33, 0.28) !important;

  transform: translateY(-2px);
}

#mv-scroll-top-link:hover .mv-scroll-caret {
  color: #ffffff !important;
}

/* Keyboard focus */
#mv-scroll-top-link:focus-visible {
  outline: 3px solid #ffffff !important;
  outline-offset: 3px !important;

  box-shadow:
    0 0 0 6px #0a0e21,
    0 8px 22px rgba(10, 14, 33, 0.24) !important;
}

#mv-scroll-top-link:focus-visible .mv-scroll-caret {
  color: #ffffff !important;
}

/* Mobile */
@media (max-width: 767px) {
  #mv-scroll-top-link {
    right: 14px;
    bottom: 98px;

    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
  }

  #mv-scroll-top-link .mv-scroll-caret {
    font-size: 21px !important;
    transform: translateY(3px) scaleX(1.08) !important;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  #mv-scroll-top-link {
    transition: none;
  }

  #mv-scroll-top-link:hover {
    transform: none;
  }
}

/* Windows High Contrast Mode */
@media (forced-colors: active) {
  #mv-scroll-top-link {
    border: 2px solid LinkText !important;
    background: Canvas !important;
    color: LinkText !important;
    box-shadow: none !important;
  }

  #mv-scroll-top-link .mv-scroll-caret {
    color: LinkText !important;
  }

  #mv-scroll-top-link:focus-visible {
    outline: 3px solid Highlight !important;
    box-shadow: none !important;
  }
}

/* =========================================================
   ACCESSIBLE KEYBOARD FOCUS FOR BACK-TO-TOP LINK
   ========================================================= */

#mv-scroll-top-link {
  overflow: visible !important;
}

/* Clear two-colour focus ring */
#mv-scroll-top-link:focus,
#mv-scroll-top-link:focus-visible {
  outline: 3px solid #ffffff !important;
  outline-offset: 3px !important;

  box-shadow:
    0 0 0 7px #0a0e21,
    0 8px 22px rgba(10, 14, 33, 0.28) !important;

  border-color: #d4af37 !important;
  background: #8c6c3f !important;
  color: #ffffff !important;
}

/* Keep the inverted V visible while focused */
#mv-scroll-top-link:focus .mv-scroll-caret,
#mv-scroll-top-link:focus-visible .mv-scroll-caret {
  color: #ffffff !important;
}

/* Windows High Contrast Mode */
@media (forced-colors: active) {
  #mv-scroll-top-link:focus,
  #mv-scroll-top-link:focus-visible {
    outline: 3px solid Highlight !important;
    outline-offset: 3px !important;
    box-shadow: none !important;
  }
}

/* =========================================================
   BOOK CONSULTATION — STRONG ACCESSIBLE KEYBOARD FOCUS
   ========================================================= */

/* Prevent the focus rings from being cut by Astra header containers */
.site-header,
.ast-primary-header-bar,
.ast-builder-grid-row,
.ast-builder-layout-element,
.ast-header-button-1,
.ast-header-button-1 .ast-builder-button-wrap {
  overflow: visible !important;
}

/* Remove Astra's weak/default focus styling from the outer link */
.ast-header-button-1 .ast-custom-button-link:focus,
.ast-header-button-1 .ast-custom-button-link:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/*
 * Apply the visible focus ring directly around the gold button:
 * 1. Navy separation ring
 * 2. Clear white outer ring
 */
.ast-header-button-1 .ast-custom-button-link:focus .ast-custom-button,
.ast-header-button-1 .ast-custom-button-link:focus-visible .ast-custom-button {
  position: relative !important;
  z-index: 10 !important;

  outline: none !important;
  border-radius: 999px !important;

  box-shadow:
    0 0 0 4px #0a0e21,
    0 0 0 8px #ffffff,
    0 6px 18px rgba(0, 0, 0, 0.32) !important;

  transform: translateZ(0);
}

/* Extra fallback in case Astra places focus on the inner element */
.ast-header-button-1 .ast-custom-button:focus,
.ast-header-button-1 .ast-custom-button:focus-visible {
  outline: none !important;
  border-radius: 999px !important;

  box-shadow:
    0 0 0 4px #0a0e21,
    0 0 0 8px #ffffff,
    0 6px 18px rgba(0, 0, 0, 0.32) !important;
}

/* Windows High Contrast Mode */
@media (forced-colors: active) {
  .ast-header-button-1 .ast-custom-button-link:focus .ast-custom-button,
  .ast-header-button-1 .ast-custom-button-link:focus-visible .ast-custom-button,
  .ast-header-button-1 .ast-custom-button:focus,
  .ast-header-button-1 .ast-custom-button:focus-visible {
    outline: 4px solid Highlight !important;
    outline-offset: 4px !important;
    box-shadow: none !important;
  }
}	

/* =========================================================
   MONEYVESTA FOOTER NAVIGATION
   Premium styling for Company and Support menus
   ========================================================= */

.site-footer .widget_nav_menu {
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}

/* Section headings: Company / Support */
.site-footer .widget_nav_menu .widget-title {
  position: relative;
  margin: 0 0 13px !important;
  padding: 0 0 10px !important;
  color: #F4EFE7 !important;
  font-family: "Playfair Display", Georgia, serif !important;
  font-size: 19px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
}

/* Short gold accent under the heading */
.site-footer .widget_nav_menu .widget-title::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 34px;
  height: 1px;
  content: "";
  background: #CBB26A;
  opacity: 0.9;
}

/* Remove Astra's default list spacing */
.site-footer .widget_nav_menu ul,
.site-footer .widget_nav_menu ul.menu {
  display: grid !important;
  gap: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.site-footer .widget_nav_menu li,
.site-footer .widget_nav_menu .menu-item {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Menu links */
.site-footer .widget_nav_menu a,
.site-footer .widget_nav_menu a:visited {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  width: fit-content;
  min-height: 27px;
  margin: 0 !important;
  padding: 3px 0 !important;
  color: #E7E2D8 !important;
  font-family:
    "Inter",
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Arial,
    sans-serif !important;
  font-size: 14px !important;
  font-weight: 450 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.005em;
  text-decoration: none !important;
  transition:
    color 180ms ease,
    transform 180ms ease;
}

/* Subtle animated underline */
.site-footer .widget_nav_menu a::after {
  position: absolute;
  right: 0;
  bottom: 2px;
  left: 0;
  height: 1px;
  content: "";
  background: #CBB26A;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
}

/* Hover */
.site-footer .widget_nav_menu a:hover {
  color: #E7D18C !important;
  transform: translateX(2px);
}

.site-footer .widget_nav_menu a:hover::after {
  transform: scaleX(1);
}

/* Accessible keyboard focus */
.site-footer .widget_nav_menu a:focus-visible {
  color: #FFFFFF !important;
  outline: 3px solid #FFFFFF !important;
  outline-offset: 3px !important;
  border-radius: 2px;
  box-shadow: 0 0 0 6px #171717;
}

.site-footer .widget_nav_menu a:focus-visible::after {
  transform: scaleX(1);
}

/* Tablet and mobile */
@media (max-width: 767px) {
  .site-footer .widget_nav_menu .widget-title {
    margin-bottom: 11px !important;
    font-size: 18px !important;
  }

  .site-footer .widget_nav_menu ul,
  .site-footer .widget_nav_menu ul.menu {
    gap: 2px !important;
  }

  .site-footer .widget_nav_menu a {
    min-height: 30px;
    font-size: 14px !important;
  }
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
  .site-footer .widget_nav_menu a,
  .site-footer .widget_nav_menu a::after {
    transition: none !important;
  }

  .site-footer .widget_nav_menu a:hover {
    transform: none;
  }
}