/* Accessibility layer. Keyboard focus, contrast, and motion only.
   Loaded after style.css so these rules win where they must. */

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.skip-link {
  position: absolute;
  left: 12px;
  top: 8px;
  z-index: 100000;
  background: #003F5A;
  color: #fff !important;
  padding: 10px 14px;
  font-size: 14px;
  line-height: 20px;
  text-decoration: none !important;
  transform: translateY(-160%);
}

.skip-link:focus,
.skip-link:focus-visible {
  transform: none;
}

html {
  scroll-padding-top: 180px;
  scroll-padding-bottom: 96px;
}

@media (max-width: 1079px) {
  html {
    scroll-padding-top: 96px;
  }
}

:focus-visible {
  outline: 3px solid #003F5A !important;
  outline-offset: 2px !important;
  scroll-margin-top: 180px;
  scroll-margin-bottom: 96px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible,
[role="button"]:focus-visible,
.swiper-pagination-bullet:focus-visible,
.slick-prev:focus-visible,
.slick-next:focus-visible,
.slick-dots li button:focus-visible,
.banner-inner-cont h2 span a:focus-visible,
.form-left-sec .form-control:focus-visible,
.header-right-btn-cont .input-group > .form-control:focus-visible,
.footer-newsletter .input-group > .form-control:focus-visible,
.ui-slider-handle:focus-visible {
  outline: 3px solid #003F5A !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 2px #ffffff !important;
}

.ui-slider-handle:focus-visible {
  opacity: 1 !important;
}

/* Inline links need a cue besides color (brand blue vs body text is under 3:1). */
p a,
.popup-content-info a,
.faq-info-cont a {
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

/* Light brand blue #B2C4DA on white is about 1.8:1. Darken text only. */
.arc-article-top h3,
.heading_h1 strong,
.featured-testimonials-wrapper h2,
.services-claims-slider.location-middle-east .articles-inner-cont > h3,
.prysm-features-grid .features-title p {
  color: #3A5478;
}

/* White icon or label on #B2C4DA fails non-text and text contrast. */
.header-right-btn-cont .input-group .btn-primary,
.footer-newsletter .input-group .btn-primary,
.file-input-content .inputfile-1 + label figure,
.newsletterModal .btn-primary {
  background: #526D96 !important;
  color: #ffffff !important;
}

.form-left-sec .form-control,
input.form-control,
textarea.form-control,
select.form-control {
  color: #2B2B2B;
  border-color: #595959;
}

.form-control::placeholder,
.form-control::-webkit-input-placeholder,
.form-control::-moz-placeholder {
  color: #4A4B53;
  opacity: 1;
}

.header-right-btn-cont .input-group > .form-control,
.footer-newsletter .input-group > .form-control {
  border: 1px solid #595959 !important;
  color: #2B2B2B;
}

/* Copyright legal links: keep 12px type, grow hit area to 48px. */
.footer-nav > ul {
  align-items: center;
}

.footer-nav > ul > li > a,
.footer-nav > ul > li > button.dropdown-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  min-width: 48px;
  padding: 12px 10px;
  box-sizing: border-box;
  color: #fff;
  font-size: 12px;
  line-height: 23px;
  text-decoration: none !important;
}

.footer-nav > ul > li > button.dropdown-toggle {
  background: transparent;
  border: 0;
  font-family: inherit;
  font-weight: inherit;
  cursor: pointer;
}

.footer-nav .dropdown-item {
  min-height: 48px;
  display: flex;
  align-items: center;
  padding-top: 12px;
  padding-bottom: 12px;
  box-sizing: border-box;
}

@media (max-width: 575px) {
  .footer-nav > ul > li {
    width: 100%;
  }

  .footer-nav > ul > li > a,
  .footer-nav > ul > li > button.dropdown-toggle {
    width: 100%;
  }
}

button.submenu-toggle {
  background: url(../images/nav_down.svg) no-repeat center;
  background-size: 15px 15px;
  width: 24px;
  height: 24px;
  position: absolute;
  right: 0;
  top: 4px;
  display: none;
  cursor: pointer;
  border: 0;
  padding: 0;
  z-index: 3;
}

button.submenu-toggle[aria-expanded="true"] {
  transform: rotate(180deg);
}

@media (max-width: 1079px) {
  .navbar-nav li button.submenu-toggle {
    display: block;
  }
}

@media (min-width: 1080px) {
  .navbar-nav > li:focus-within .droplist-parent,
  .navbar-nav > li:hover .droplist-parent {
    display: block;
  }

  .navbar-nav > li.submenu-closed .droplist-parent {
    display: none !important;
  }
}

.social-icons-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  min-height: 24px;
}

/* Keep "What We Offer" above timeline tip images that can spill downward. */
.arc-services-main {
  position: relative;
  z-index: 5;
}

.arc-offerlist > li > a {
  display: block;
  position: relative;
  z-index: 1;
  padding: 2px;
  color: inherit;
}

.arc-offerlist > li > a:focus-visible {
  outline: 3px solid #003F5A !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 2px #ffffff !important;
}

.webwidget_rating_simple li[role="radio"] {
  min-width: 31px;
  min-height: 29px;
}

/*
 * Swiper dots stay visually 10px; hit area grows to 48x48 for Lighthouse /
 * WCAG touch target checks. No script changes.
 */
 .dots-display-blue .swiper-pagination-bullet.swiper-pagination-bullet-active-main, .dots-display-blue .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-size: 16px !important;
 }

.dots-display-blue .swiper-pagination-bullet,
.articles-slider-cont .swiper-pagination-bullet,
.home-reviews-slider-cont .swiper-pagination-bullet,
.services-claims-slider .swiper-pagination-bullet,
.services-claims-slider .swiper-pagination1 .swiper-pagination-bullet {
  width: 16px !important;
  height: 16px !important;
  margin: 0 0 0 8px!important;
  background-size: 16px !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  border: 0 !important;
  box-sizing: border-box !important;
  vertical-align: middle;
}

.dots-display-blue .swiper-pagination-bullet-active,
.dots-display-blue .swiper-pagination-bullet-active-main,
.articles-slider-cont .swiper-pagination-bullet-active,
.home-reviews-slider-cont .swiper-pagination-bullet-active {
  background-size: 16px !important;
  background-position: center center !important;
}

.custom-pagination .swiper-pagination-bullet {
  width: 48px !important;
  height: 48px !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  position: relative;
  box-sizing: border-box !important;
}

.custom-pagination .swiper-pagination-bullet::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  margin: -4px 0 0 -4px;
  border-radius: 50%;
  border: 1px solid #526D96;
  background: #fff;
  box-sizing: border-box;
}

.custom-pagination .swiper-pagination-bullet-active::after {
  background-color: #526D96;
  border-color: #526D96;
}

.video-pause-btn {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 2;
  background: #003F5A;
  color: #fff;
  border: 0;
  font-family: inherit;
  font-size: 13px;
  line-height: 18px;
  padding: 6px 10px;
  cursor: pointer;
}

[role="alert"] {
  color: #9b1c1c;
}

body:has(#pjAcceptCookieBar) {
  padding-bottom: 180px;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
