/* Our Worldwide Health Provider Network (V2) */
.ww-network {
  --ww-blue: var(--maincolor, #0b68b5);
  --ww-blue-light: #1f8ee9;
  --ww-ink: #0f1b2d;
  --ww-muted: #5b6b80;
  position: relative;
  overflow: hidden;
  padding: 56px 0 40px;
  margin-bottom: 0;
}

.ww-network__head {
  text-align: center;
  margin-bottom: 44px;
}

.ww-network__title {
  margin: 0;
  font-family: inherit;
  font-size: 42px;
  line-height: 1.2;
  font-weight: 700;
  color: var(--ww-ink);
}

.ww-network__divider {
  display: block;
  width: 84px;
  height: 3px;
  margin: 18px auto 20px;
  border-radius: 3px;
  background: var(--ww-blue-light);
}

.ww-network__subtitle {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ww-muted);
}

.ww-network__grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 32px;
}

.ww-network__stats {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.ww-network__stats--start {
  align-items: flex-start;
}

.ww-network__stats--end {
  align-items: flex-end;
}

.ww-network__card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  /* max-width: 318px; */
  min-height: 116px;
  padding: 20px 28px;
  background: #fff;
  border-radius: 14px 14px 26px 14px;
  box-shadow: 0 12px 30px rgba(31, 84, 156, 0.08);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  align-items: center;
}

.ww-network__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 38px rgba(31, 84, 156, 0.14);
}

.ww-network__number {
  font-size: 44px;
  line-height: 1.1;
  font-weight: 700;
  color: var(--ww-blue);
}

.ww-network__label {
  margin-top: 4px;
  font-size: 15px;
  line-height: 1.4;
  color: var(--ww-muted);
}

.ww-network__globe {
  display: flex;
  justify-content: center;
}

/* Sizing box for the CSS globe; route lines and glow extend past it */
.ww-network__globe-ring {
  position: relative;
  z-index: 0;
  width: 350px;
  height: 350px;
}

.ww-network__cta {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  margin-top: 44px;
}

.ww-network__btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 26px;
  border-radius: 999px;
  background: var(--ww-blue);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(11, 104, 181, 0.28);
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.ww-network__btn:hover,
.ww-network__btn:focus-visible {
  background: #0c5b9d;
  color: #fff;
  transform: translateY(-2px);
}

.ww-network__btn-icon {
  transition: transform 0.2s ease;
}

.ww-network__btn:hover .ww-network__btn-icon {
  transform: translateX(3px);
}

/* RTL */
[dir="rtl"] .ww-network__card {
  border-radius: 14px 14px 14px 26px;
}

[dir="rtl"] .ww-network__btn-icon {
  transform: scaleX(-1);
}

[dir="rtl"] .ww-network__btn:hover .ww-network__btn-icon {
  transform: scaleX(-1) translateX(3px);
}

/* Dark mode (theme toggle) */


[data-theme="dark"] .ww-network__title {
  color: #fff;
}

[data-theme="dark"] .ww-network__subtitle,
[data-theme="dark"] .ww-network__label {
  color: #b7c4d6;
}

[data-theme="dark"] .ww-network__card {
  background: #15243a;
}

[data-theme="dark"] .ww-network__number {
  color: #5aa9f0;
}

/* Responsive */
@media (max-width: 1199px) {
  .ww-network__globe-ring {
    width: 300px;
    height: 300px;
  }

  .ww-network__number {
    font-size: 38px;
  }
}

@media (max-width: 991px) {
  .ww-network__title {
    font-size: 32px;
  }

  .ww-network__grid {
    grid-template-columns: 1fr 1fr;
    gap: 18px;
  }

  .ww-network__globe {
    grid-column: 1 / -1;
    order: -1;
    margin-bottom: 12px;
  }

  .ww-network__stats {
    gap: 18px;
  }

  .ww-network__stats--start,
  .ww-network__stats--end {
    align-items: stretch;
  }

  .ww-network__card {
    max-width: none;
  }
}

@media (max-width: 575px) {
  .ww-network {
    padding: 40px 0 32px;
  }

  .ww-network__head {
    margin-bottom: 28px;
  }

  .ww-network__title {
    font-size: 26px;
  }

  .ww-network__subtitle {
    font-size: 14px;
  }

  .ww-network__grid,
  .ww-network__stats {
    gap: 12px;
  }

  .ww-network__globe-ring {
    width: 240px;
    height: 240px;
  }

  .ww-network__card {
    min-height: 96px;
    padding: 16px 18px;
  }

  .ww-network__number {
    font-size: 28px;
  }

  .ww-network__label {
    font-size: 13px;
  }

  .ww-network__cta {
    margin-top: 32px;
  }
}

/* Our Clients (V2) */
.clients-v2 {
  padding: 24px 0 70px;
}

.clients-v2__panel {
  position: relative;
  padding: 25px 50px 25px;
  background: var(--maincolor, #0b68b5);
  border-radius: 6px 110px 6px 110px;
  box-shadow: 0 24px 50px rgba(20, 70, 140, 0.25);
  overflow: hidden;
}

.clients-v2__head {
  text-align: center;
  margin-bottom: 18px;
}

.clients-v2__title {
  margin: 0;
  font-family: inherit;
  font-size: 40px;
  line-height: 1.2;
  font-weight: 700;
  color: #fff;
}

.clients-v2__divider {
  display: block;
  width: 104px;
  height: 3px;
  margin: 14px auto 0;
  border-radius: 3px;
  background: #1f8ee9;
}

.clients-v2__slider {
  display: flex;
  align-items: center;
  gap: 20px;
}

.clients-v2__carousel {
  flex: 1;
  min-width: 0;
}

/* Neutralise legacy global owl rules from styles.css */
.clients-v2 .owl-stage-outer {
  padding: 56px 0;
  margin: -28px 0;
}

.clients-v2 .owl-stage-outer > .owl-stage {
  display: flex;
  align-items: center;
  gap: 0;
}

.clients-v2__card {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 118px;
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 12px 12px 22px 12px;
  transform: scale(0.62);
  opacity: 0.55;
  transition: transform 0.45s ease, opacity 0.45s ease, background-color 0.45s ease, box-shadow 0.45s ease;
}

/* Logos are uploaded on large transparent canvases (the visible mark is only ~40-55% of the
   image height), so let the image fill the whole card instead of a 64px box. */
.clients-v2__card img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain;
}

.clients-v2 .owl-item.is-near .clients-v2__card {
  transform: scale(0.8);
  opacity: 0.75;
}

.clients-v2 .owl-item.center .clients-v2__card {
  transform: scale(1.12);
  opacity: 1;
  background: rgba(255, 255, 255, 0.18);
  border: 2px solid #fff;
  box-shadow: 0 2px 6px rgba(4, 30, 70, 0.10), 0 10px 22px rgba(4, 30, 70, 0.16), 0 20px 36px -12px rgba(4, 30, 70, 0.26);
}

.clients-v2__nav {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.85);
  background: transparent;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.clients-v2__nav--next,
.clients-v2__nav:hover,
.clients-v2__nav:focus-visible {
  background: #fff;
  color: var(--maincolor, #0b68b5);
  border-color: #fff;
}

.clients-v2__nav--next:hover,
.clients-v2__nav--next:focus-visible {
  background: rgba(255, 255, 255, 0.85);
}

.clients-v2 .owl-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
}

/* Other carousels' callbacks in custom.js run an unscoped
   $(".owl-dots").addClass("animate-on-parent-scroll"), which hides and shifts
   these dots (opacity 0 / translateY) on every slide. Keep them steady here. */
.clients-v2 .owl-dots.animate-on-parent-scroll {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
}

.clients-v2 .owl-dots .owl-dot {
  padding: 6px 0;
  border: 0;
  background: none;
}

.clients-v2 .owl-dots .owl-dot span {
  display: block;
  width: 7px;
  height: 7px;
  margin: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.45);
  transition: width 0.3s ease, background-color 0.3s ease;
}

.clients-v2 .owl-dots .owl-dot.active span {
  width: 26px;
  background: #fff;
}

[dir="rtl"] .clients-v2__panel {
  border-radius: 110px 6px 110px 6px;
}

[dir="rtl"] .clients-v2__nav svg {
  transform: scaleX(-1);
}

@media (max-width: 991px) {
  .clients-v2__panel {
    padding: 36px 20px 32px;
    border-radius: 6px 60px 6px 60px;
  }

  [dir="rtl"] .clients-v2__panel {
    border-radius: 60px 6px 60px 6px;
  }

  .clients-v2__title {
    font-size: 32px;
  }

  .clients-v2__slider {
    gap: 10px;
  }
}

@media (max-width: 575px) {
  .clients-v2 {
    padding: 16px 0 48px;
  }

  .clients-v2__panel {
    padding: 30px 16px 28px;
    border-radius: 6px 44px 6px 44px;
  }

  [dir="rtl"] .clients-v2__panel {
    border-radius: 44px 6px 44px 6px;
  }

  .clients-v2__head {
    margin-bottom: 4px;
  }

  .clients-v2__title {
    font-size: 26px;
  }

  .clients-v2__divider {
    width: 72px;
    margin-top: 10px;
  }

  /* Card full width with neighbours peeking; arrows sit beside the dots. */
  .clients-v2__slider {
    position: relative;
    display: block;
    padding-bottom: 4px;
  }

  .clients-v2 .owl-stage-outer {
    padding: 30px 0;
    margin: -14px 0;
  }

  .clients-v2__card {
    height: 92px;
    padding: 6px 10px;
    transform: scale(0.86);
  }

  .clients-v2__card img {
    max-height: none !important;
  }

  .clients-v2 .owl-item.is-near .clients-v2__card {
    transform: scale(0.86);
    opacity: 0.5;
  }

  .clients-v2 .owl-item.center .clients-v2__card {
    transform: none;
    box-shadow: 0 2px 5px rgba(4, 30, 70, 0.10), 0 8px 18px -4px rgba(4, 30, 70, 0.22);
  }

  .clients-v2 .owl-dots {
    min-height: 36px;
    margin: 6px 48px 0;
    flex-wrap: wrap;
  }

  .clients-v2__nav {
    position: absolute;
    bottom: 4px;
    width: 36px;
    height: 36px;
    z-index: 1;
  }

  .clients-v2__nav--prev {
    left: 0;
  }

  .clients-v2__nav--next {
    right: 0;
  }

  [dir="rtl"] .clients-v2__nav--prev {
    left: auto;
    right: 0;
  }

  [dir="rtl"] .clients-v2__nav--next {
    right: auto;
    left: 0;
  }
}

/* Footer (V2) */
footer.footer-v2 {
  position: relative !important;
  padding: 0 !important;
  background: none !important;
  color: #fff !important;
}

.footer-v2__newsletter {
  position: relative !important;
  z-index: 2 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.65fr) !important;
  align-items: center !important;
  gap: 32px !important;
  padding: 40px 56px !important;
  background: #fff !important;
  border-radius: 80px !important;
  box-shadow: 0 24px 50px rgba(15, 45, 95, 0.18) !important;
  color: #0f1b2d !important;
}

.footer-v2__newsletter-title {
  margin: 0 0 10px !important;
  font-family: inherit !important;
  font-size: 26px !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  color: #0f1b2d !important;
}

.footer-v2__newsletter-text {
  margin: 0 !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  color: #5b6b80 !important;
}

.footer-v2__fields {
  display: flex !important;
  align-items: flex-end !important;
  gap: 12px !important;
}

.footer-v2__field {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

.footer-v2__label {
  margin-bottom: 6px !important;
  font-size: 13px !important;
  color: #5b6b80 !important;
}

.footer-v2__input {
  width: 100% !important;
  height: 48px !important;
  padding: 0 20px !important;
  border: 1px solid #cfe0f5 !important;
  border-radius: 999px !important;
  background-color: #eef5fd !important;
  color: #0f1b2d !important;
  font: inherit !important;
  font-size: 15px !important;
  outline: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.footer-v2__input::placeholder {
  color: #7a8799 !important;
}

.footer-v2__input:focus {
  border-color: #0b68b5 !important;
  box-shadow: 0 0 0 3px rgba(11, 104, 181, 0.15) !important;
}

.footer-v2__select {
  appearance: none !important;
  -webkit-appearance: none !important;
  padding-inline-end: 42px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%230f1b2d' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 18px center !important;
  cursor: pointer !important;
}

[dir="rtl"] .footer-v2__select {
  background-position: left 18px center !important;
}

.footer-v2__send {
  flex: 0 0 auto !important;
  height: 48px !important;
  padding: 0 34px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--maincolor, #0b68b5) !important;
  color: #fff !important;
  font: inherit !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: background-color 0.2s ease !important;
}

.footer-v2__send:hover,
.footer-v2__send:focus-visible {
  background: #0c5b9d !important;
}

.footer-v2__agree {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-top: 14px !important;
  font-size: 14px !important;
  color: #5b6b80 !important;
}

.footer-v2__agree label {
  margin: 0 !important;
}

.footer-v2__agree a {
  color: #0b68b5 !important;
  text-decoration: underline !important;
}

.footer-v2__checkbox {
  flex: 0 0 auto !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  accent-color: #0b68b5 !important;
  cursor: pointer !important;
}

.footer-v2__main {
  margin-top: -90px !important;
  padding: 140px 0 32px !important;
  background: linear-gradient(90deg, var(--maincolor, #0b68b5) 0%, #1f8ee9 100%) !important;
}

.footer-v2__top {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  padding-bottom: 22px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18) !important;
}

.footer-v2__logo img {
  display: block !important;
  width: 120px !important;
  height: auto !important;
}

.footer-v2__links {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 8px 22px !important;
}

.footer-v2__links a {
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  opacity: 0.95 !important;
}

.footer-v2__links a:hover,
.footer-v2__links a:focus-visible {
  opacity: 1 !important;
  text-decoration: underline !important;
}

.footer-v2__social {
  display: flex !important;
  gap: 8px !important;
}

.footer-v2__social a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  height: 44px !important;
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
  border-radius: 50% !important;
  color: #fff !important;
  font-size: 15px !important;
  text-decoration: none !important;
  transition: background-color 0.2s ease, border-color 0.2s ease !important;
}

.footer-v2__social a:hover,
.footer-v2__social a:focus-visible {
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: #fff !important;
}

.footer-v2__bottom {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 20px !important;
  padding-top: 20px !important;
}

.footer-v2__copy {
  margin: 0 !important;
  font-size: 15px !important;
  color: rgba(255, 255, 255, 0.9) !important;
}

.footer-v2__badges {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 14px !important;
}

.footer-v2__regulated {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 16px !important;
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
  border-radius: 999px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.footer-v2__store {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 10px !important;
  justify-content: center !important;
  min-width: 130px !important;
  padding: 6px 14px !important;
  border: 1px solid rgba(255, 255, 255, 0.45) !important;
  border-radius: 8px !important;
  color: #fff !important;
  line-height: 1.15 !important;
  text-decoration: none !important;
  transition: background-color 0.2s ease !important;
}

.footer-v2__store:hover,
.footer-v2__store:focus-visible {
  background: rgba(255, 255, 255, 0.12) !important;
  color: #fff !important;
}

.footer-v2__store small {
  font-size: 10px !important;
  letter-spacing: 0.04em !important;
  opacity: 0.85 !important;
}

.footer-v2__store strong {
  font-size: 16px !important;
  font-weight: 700 !important;
}

[data-theme="dark"] .footer-v2__newsletter {
  background: #15243a !important;
  color: #fff !important;
}

[data-theme="dark"] .footer-v2__newsletter-title {
  color: #fff !important;
}

[data-theme="dark"] .footer-v2__newsletter-text,
[data-theme="dark"] .footer-v2__label,
[data-theme="dark"] .footer-v2__agree {
  color: #b7c4d6 !important;
}

[data-theme="dark"] .footer-v2__input {
  background-color: #0f1d31 !important;
  border-color: #2b3f5c !important;
  color: #fff !important;
}

[data-theme="dark"] .footer-v2__send {
  background: #0b68b5 !important;
}

[data-theme="dark"] .footer-v2__agree a {
  color: #5aa9f0 !important;
}

@media (max-width: 1199px) {
  .footer-v2__newsletter {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    padding: 36px 40px !important;
    border-radius: 48px !important;
  }

  .footer-v2__top {
    flex-wrap: wrap !important;
  }

  .footer-v2__links {
    order: 3 !important;
    flex-basis: 100% !important;
    justify-content: flex-start !important;
  }
}

@media (max-width: 767px) {
  /* Compact newsletter card: title, category, email + send, agreement. */
  .footer-v2__newsletter {
    gap: 14px !important;
    padding: 20px 16px 18px !important;
    border-radius: 22px !important;
    box-shadow: 0 14px 30px rgba(15, 45, 95, 0.16) !important;
  }

  .footer-v2__newsletter-title {
    margin: 0 !important;
    font-size: 18px !important;
    text-align: center !important;
  }

  .footer-v2__newsletter-text {
    display: none !important;
  }

  .footer-v2__label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
  }

  /* Row 1: category + email. Row 2: agreement + send. */
  .footer-v2__form {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 10px 8px !important;
  }

  .footer-v2__fields {
    display: contents !important;
  }

  .footer-v2__field,
  .footer-v2__field--email {
    flex: 1 1 calc(50% - 4px) !important;
    order: 1 !important;
  }

  .footer-v2__agree {
    flex: 1 1 0 !important;
    order: 2 !important;
    align-items: center !important;
    gap: 6px !important;
    margin: 0 !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
  }

  .footer-v2__send {
    order: 3 !important;
    height: 38px !important;
    padding: 0 22px !important;
  }

  .footer-v2__input,
  .footer-v2__send {
    font-size: 13px !important;
  }

  .footer-v2__input {
    height: 40px !important;
    padding: 0 12px !important;
  }

  .footer-v2__select {
    padding-inline-end: 28px !important;
    background-position: right 10px center !important;
    text-overflow: ellipsis !important;
  }

  [dir="rtl"] .footer-v2__select {
    background-position: left 10px center !important;
  }

  .footer-v2__checkbox {
    width: 15px !important;
    height: 15px !important;
  }

  /* Footer body */
  .footer-v2__main {
    margin-top: -60px !important;
    padding: 88px 0 24px !important;
  }

  .footer-v2__top {
    gap: 18px !important;
    padding-bottom: 18px !important;
  }

  .footer-v2__logo img {
    width: 100px !important;
  }

  .footer-v2__social {
    gap: 6px !important;
  }

  .footer-v2__social a {
    width: 36px !important;
    height: 36px !important;
    font-size: 13px !important;
  }

  .footer-v2__links {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px 16px !important;
  }

  .footer-v2__links a {
    font-size: 14px !important;
  }

  .footer-v2__bottom {
    flex-direction: column-reverse !important;
    align-items: stretch !important;
    gap: 16px !important;
    padding-top: 18px !important;
  }

  .footer-v2__badges {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  .footer-v2__regulated {
    grid-column: 1 / -1 !important;
    justify-content: center !important;
    padding: 8px 12px !important;
    font-size: 13px !important;
  }

  .footer-v2__store {
    min-width: 0 !important;
    padding: 6px 12px !important;
  }

  .footer-v2__store strong {
    font-size: 15px !important;
  }

  .footer-v2__copy {
    font-size: 12px !important;
    text-align: center !important;
    opacity: 0.85 !important;
  }
}

/* Footer (V2): beat legacy ID-based !important rules in styles.css */
.footer-v2 #flexCheckDefault {
  margin: 0 !important;
}

[data-theme="dark"] .footer-v2 #newsletter #news_letter_categories {
  background-color: #0f1d31 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  color: #fff !important;
}

[data-theme="dark"] .footer-v2 #newsletter #news_letter_categories option {
  color: #0f1b2d !important;
}

@media (max-width: 767px) {
  .footer-v2 #flexCheckDefault {
    margin-top: 0 !important;
  }
}

.footer-v2 .footer-v2__agree label,
.footer-v2 .footer-v2__agree a {
  font-size: inherit !important;
  line-height: inherit !important;
}

.footer-v2 .footer-v2__store {
  font-size: 14px !important;
}

.footer-v2 .footer-v2__store-icon {
  flex: 0 0 auto !important;
  font-size: 22px !important;
  line-height: 1 !important;
}

.footer-v2 .footer-v2__store-text {
  display: flex !important;
  flex-direction: column !important;
  line-height: 1.15 !important;
}

@media (max-width: 767px) {
  .footer-v2 .footer-v2__store {
    justify-content: center !important;
    gap: 8px !important;
  }

  .footer-v2 .footer-v2__store-icon {
    font-size: 20px !important;
  }
}

/* Marquee / tagline ticker (V2) */
.ticker-v2 {
  padding: 32px 0 70px !important;
}

.ticker-v2__band {
  position: relative !important;
  overflow: hidden !important;
  padding: 22px 0 !important;
  background: linear-gradient(90deg, var(--maincolor, #0b68b5) 0%, #1f8ee9 100%) !important;
  border-radius: 6px 48px 6px 48px !important;
  box-shadow: 0 18px 40px rgba(11, 104, 181, 0.22) !important;
}

/* Soft diagonal sheen across the band */
.ticker-v2__band::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(115deg, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0.12) 50%, rgba(255, 255, 255, 0) 60%) !important;
  pointer-events: none !important;
}

.ticker-v2__viewport {
  overflow: hidden !important;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%) !important;
  mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%) !important;
}

.ticker-v2__track {
  display: flex !important;
  width: max-content !important;
  animation: ticker-v2-scroll 40s linear infinite !important;
}

.ticker-v2__band:hover .ticker-v2__track {
  animation-play-state: paused !important;
}

.ticker-v2__group {
  display: flex !important;
  flex-shrink: 0 !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.ticker-v2__item {
  display: inline-flex !important;
  align-items: center !important;
  gap: 28px !important;
  padding-inline-end: 28px !important;
  color: #fff !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  white-space: nowrap !important;
}

.ticker-v2__dot {
  flex: 0 0 auto !important;
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.75) !important;
}

@keyframes ticker-v2-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@keyframes ticker-v2-scroll-rtl {
  from { transform: translateX(0); }
  to { transform: translateX(50%); }
}

[dir="rtl"] .ticker-v2__band {
  border-radius: 48px 6px 48px 6px !important;
}

[dir="rtl"] .ticker-v2__track {
  animation-name: ticker-v2-scroll-rtl !important;
}

@media (prefers-reduced-motion: reduce) {
  .ticker-v2__track {
    animation: none !important;
  }
}

@media (max-width: 767px) {
  .ticker-v2 {
    padding: 16px 0 40px !important;
  }

  .ticker-v2__band {
    padding: 14px 0 !important;
    border-radius: 6px 28px 6px 28px !important;
  }

  [dir="rtl"] .ticker-v2__band {
    border-radius: 28px 6px 28px 6px !important;
  }

  .ticker-v2__item {
    gap: 18px !important;
    padding-inline-end: 18px !important;
    font-size: 16px !important;
  }

  .ticker-v2__dot {
    width: 6px !important;
    height: 6px !important;
  }

  .ticker-v2__track {
    animation-duration: 28s !important;
  }
}

/* Worldwide network globe (V2): pure-CSS rotating globe.
   Markup: templates/includes/ww-globe.html.twig. Texture: assets/images/v2/globe-map.webp */
.ww-network__globe-stage {
  position: relative;
  width: 100%;
  height: 100%;
}

/* --R is the globe radius; kept below half the box so the arcs (up to ~1.3R) stay clear of the cards */
/* The globe's box (3R square + glow) is much larger than the visible sphere and
   overlaps the "Find a provider" button; it's decorative, so let clicks pass through. */
.ww-network__globe-stage .gx {
  pointer-events: none;
  --R: 150px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin: calc(var(--R) * -1.5) 0 0 calc(var(--R) * -1.5);
}

/* paused by js/custom.js while the globe is off screen or the page is being scrolled */
.gx.is-paused .gx-spin,
.gx.is-paused .gx-arc,
.gx.is-paused .gx-hub::after,
.gx.is-scrolling .gx-spin,
.gx.is-scrolling .gx-arc,
.gx.is-scrolling .gx-hub::after {
  animation-play-state: paused;
}

/* Keep repaints from the animated sections from spilling into the rest of the page */
.ww-network,
.clients-v2__panel,
.ticker-v2__band {
  contain: layout paint;
}

.ticker-v2__track {
  will-change: transform;
}

@media (max-width: 1199px) {
  .ww-network__globe-stage .gx {
    --R: 128px;
  }
}

@media (max-width: 575px) {
  .ww-network__globe-stage .gx {
    --R: 100px;
  }
}

.gx{
  /* ---- the knobs ---- */
  --R:min(33vmin,300px);        /* globe radius: everything scales from this */
  --spin:32s;                   /* time for one full turn                    */
  --tilt-x:-17deg;              /* north pole tipped towards the viewer      */
  --tilt-z:9deg;                /* axis leaning to the right                 */
  --from:95deg;                 /* which longitude faces you at the start    */
  --line:#ffffff;               /* route lines                               */
  --glow:#62e8ff;               /* glow around lines, hubs and the rim       */
  --halo:#3ec9f2;               /* atmosphere bleeding into space            */
  --sea-hot:#19e6f6;            /* bright centre of the ocean                */
  --sea-mid:#0d93b3;
  --sea-deep:#063f52;           /* ocean towards the edge                    */

  position:relative;
  width:calc(var(--R)*3);height:calc(var(--R)*3);
  flex:none;
}
.gx *,.gx *::before,.gx *::after{box-sizing:border-box}

/* soft atmosphere bleeding into space, behind everything */
.gx-halo{
  position:absolute;inset:calc(var(--R)*-.4);border-radius:50%;
  background:
    radial-gradient(closest-side,
      #0000 51%,
      color-mix(in srgb,var(--halo) 88%,#0000) 52.6%,
      color-mix(in srgb,var(--halo) 62%,#0000) 55.5%,
      color-mix(in srgb,var(--halo) 34%,#0000) 65%,
      color-mix(in srgb,var(--halo) 13%,#0000) 79%,
      color-mix(in srgb,var(--halo) 4%,#0000) 91%,
      #0000 100%);
}

/* one shared 3D space: the globe disc sits at z=0 and hides whatever is behind it */
.gx-scene{position:absolute;inset:0;transform-style:preserve-3d}

/* ---------- the globe ---------- */
.gx-globe{
  position:absolute;left:50%;top:50%;
  width:calc(var(--R)*2);height:calc(var(--R)*2);
  margin:calc(var(--R)*-1) 0 0 calc(var(--R)*-1);
  border-radius:50%;overflow:hidden;
  transform:translateZ(0);
  background:
    radial-gradient(circle at 40% 58%,
      var(--sea-hot) 0%,
      color-mix(in srgb,var(--sea-hot) 55%,var(--sea-mid)) 16%,
      var(--sea-mid) 38%,
      color-mix(in srgb,var(--sea-mid) 45%,var(--sea-deep)) 58%,
      var(--sea-deep) 82%);
}
/* tilt + spin wrappers (used twice: once for the land, once for the lines) */
.gx-axis,.gx-spin,.gx-band{
  position:absolute;left:50%;top:50%;width:0;height:0;
  transform-style:preserve-3d;
}
.gx-spin,.gx-band{left:0;top:0}
.gx-axis{transform:rotateZ(var(--tilt-z)) rotateX(var(--tilt-x))}
.gx-spin{animation:gx-spin var(--spin) linear infinite}
@keyframes gx-spin{
  from{transform:rotateY(var(--from))}
  to  {transform:rotateY(calc(var(--from) + 360deg))}
}

/* land: the sphere is 162 flat facets (9 bands x 18), each showing its slice of the map */
.gx-band i{
  --i:0;
  position:absolute;left:0;top:0;
  width:calc(var(--R)*var(--tw)*1.04);
  height:calc(var(--R)*.366760);
  margin:calc(var(--R)*-.183380) 0 0 calc(var(--R)*var(--tw)*-.52);
  transform:rotateY(calc(var(--i)*20deg)) rotateX(var(--lat)) translateZ(var(--R));
  -webkit-backface-visibility:hidden;backface-visibility:hidden;
  background:url("../assets/images/v2/globe-map.webp") calc(var(--i)*100%/17) calc(var(--j)*100%/8)/1800% 900% no-repeat;
  -webkit-clip-path:var(--clip);clip-path:var(--clip);
}
.gx-band:nth-child(1){--j:0;--lat:80deg;--tw:0.12248;--clip:polygon(49.30% 1.22%,50.70% 1.22%,98.78% 98.78%,1.22% 98.78%)}
.gx-band:nth-child(2){--j:1;--lat:60deg;--tw:0.23018;--clip:polygon(23.72% 1.22%,76.28% 1.22%,98.78% 98.78%,1.22% 98.78%)}
.gx-band:nth-child(3){--j:2;--lat:40deg;--tw:0.31012;--clip:polygon(13.62% 1.22%,86.38% 1.22%,98.78% 98.78%,1.22% 98.78%)}
.gx-band:nth-child(4){--j:3;--lat:20deg;--tw:0.35265;--clip:polygon(7.02% 1.22%,92.98% 1.22%,98.78% 98.78%,1.22% 98.78%)}
.gx-band:nth-child(5){--j:4;--lat:0deg;--tw:0.35265;--clip:polygon(1.22% 1.22%,98.78% 1.22%,98.78% 98.78%,1.22% 98.78%)}
.gx-band:nth-child(6){--j:5;--lat:-20deg;--tw:0.35265;--clip:polygon(1.22% 1.22%,98.78% 1.22%,92.98% 98.78%,7.02% 98.78%)}
.gx-band:nth-child(7){--j:6;--lat:-40deg;--tw:0.31012;--clip:polygon(1.22% 1.22%,98.78% 1.22%,86.38% 98.78%,13.62% 98.78%)}
.gx-band:nth-child(8){--j:7;--lat:-60deg;--tw:0.23018;--clip:polygon(1.22% 1.22%,98.78% 1.22%,76.28% 98.78%,23.72% 98.78%)}
.gx-band:nth-child(9){--j:8;--lat:-80deg;--tw:0.12248;--clip:polygon(1.22% 1.22%,98.78% 1.22%,50.70% 98.78%,49.30% 98.78%)}
.gx-band i:nth-child(2){--i:1}.gx-band i:nth-child(3){--i:2}.gx-band i:nth-child(4){--i:3}.gx-band i:nth-child(5){--i:4}.gx-band i:nth-child(6){--i:5}.gx-band i:nth-child(7){--i:6}.gx-band i:nth-child(8){--i:7}.gx-band i:nth-child(9){--i:8}.gx-band i:nth-child(10){--i:9}.gx-band i:nth-child(11){--i:10}.gx-band i:nth-child(12){--i:11}.gx-band i:nth-child(13){--i:12}.gx-band i:nth-child(14){--i:13}.gx-band i:nth-child(15){--i:14}.gx-band i:nth-child(16){--i:15}.gx-band i:nth-child(17){--i:16}.gx-band i:nth-child(18){--i:17}

/* atmosphere: dark limb, glowing rim, and the bright side on the right */
.gx-atmo{
  position:absolute;inset:0;border-radius:50%;
  background:
    radial-gradient(closest-side,
      #0000 90%,
      color-mix(in srgb,var(--glow) 35%,#0000) 95%,
      color-mix(in srgb,var(--glow) 85%,#0000) 98.6%,
      #d9fbff 100%),
    radial-gradient(42% 62% at 103% 32%,#e6fdffb3 0%,color-mix(in srgb,var(--glow) 45%,#0000) 32%,#0000 66%),
    radial-gradient(closest-side,#0000 52%,#03222e99 86%,#03222e55 93%,#0000 97%);
}

/* ---------- route lines ---------- */
/* Each arc is a slice of a circle standing on the surface between two cities.
   --lon/--lat  midpoint of the route      --dir  heading of the route there
   --tip  sideways lean of the arch, --z the offset that keeps its feet on the cities
   --w  chord length   --a  apex height   --b  chord depth   --r  circle radius   (all x R) */
.gx-arc{
  --g:11px;                                   /* breathing room for the glow */
  --lw:max(1.5px,calc(var(--R)*.0086));       /* line weight                 */
  position:absolute;left:0;top:0;
  width:calc(var(--R)*var(--w) + var(--g)*2);
  height:calc(var(--R)*(var(--a) - var(--b)) + var(--g) + 2px);
  transform-origin:0 0;
  transform:
    rotateY(var(--lon)) rotateX(var(--lat)) rotateZ(var(--dir)) rotateX(calc(var(--tip) - 90deg))
    translate3d(calc(var(--R)*var(--w)/-2 - var(--g)),calc(var(--R)*var(--a)*-1 - var(--g)),calc(var(--R)*var(--z)));
  overflow:hidden;
  /* soft-edged window that slides along the line to draw and erase it */
  -webkit-mask:linear-gradient(90deg,#0000 31.25%,#000 34.375%,#000 65.625%,#0000 68.75%) 50% 0/320% 100% no-repeat;
          mask:linear-gradient(90deg,#0000 31.25%,#000 34.375%,#000 65.625%,#0000 68.75%) 50% 0/320% 100% no-repeat;
  animation:gx-draw var(--t) cubic-bezier(.45,.05,.35,1) var(--d) infinite;
}
.gx-arc::before,.gx-arc::after{
  content:"";position:absolute;border-radius:50%;
  left:calc(50% - var(--R)*var(--r));top:var(--g);
  width:calc(var(--R)*var(--r)*2);height:calc(var(--R)*var(--r)*2);
}
.gx-arc::before{                               /* soft continuous glow */
  border:var(--lw) solid color-mix(in srgb,var(--glow) 45%,#0000);
  box-shadow:0 0 7px 1px color-mix(in srgb,var(--glow) 75%,#0000),
       inset 0 0 7px 1px color-mix(in srgb,var(--glow) 75%,#0000);
}
.gx-arc::after{                                /* crisp dashed core */
  border:var(--lw) solid var(--line);
  -webkit-mask:repeating-conic-gradient(from calc(var(--da)*-.31),#000 0 calc(var(--da)*.62),#0000 0 var(--da));
          mask:repeating-conic-gradient(from calc(var(--da)*-.31),#000 0 calc(var(--da)*.62),#0000 0 var(--da));
}
.gx-arc.is-solid::after{-webkit-mask:none;mask:none;border-width:1px;opacity:.9}
/* line grows out of city A, rests, then its tail follows it into city B */
@keyframes gx-draw{
  0%      {-webkit-mask-position:100% 0;mask-position:100% 0}
  16%,80% {-webkit-mask-position:50% 0;mask-position:50% 0}
  94%,100%{-webkit-mask-position:0 0;mask-position:0 0}
}

/* ---------- city hubs ---------- */
.gx-hub{
  position:absolute;left:0;top:0;
  width:calc(var(--R)*.034);height:calc(var(--R)*.034);
  margin:calc(var(--R)*-.017) 0 0 calc(var(--R)*-.017);
  transform:rotateY(var(--lon)) rotateX(var(--lat)) translateZ(calc(var(--R)*1.003));
  border-radius:50%;
  background:radial-gradient(#fff 0 28%,color-mix(in srgb,var(--glow) 85%,#0000) 46%,#0000 70%);
}
.gx-hub::after{
  content:"";position:absolute;inset:-110%;border-radius:50%;
  border:1px solid #ffffffd9;
  box-shadow:0 0 6px var(--glow),inset 0 0 6px color-mix(in srgb,var(--glow) 60%,#0000);
  animation:gx-ping 3s ease-out var(--d) infinite;
}
@keyframes gx-ping{0%{transform:scale(.15);opacity:1}70%,100%{transform:scale(1);opacity:0}}

/* bloom where the lines pile up on the sunlit limb */
.gx-flare{
  position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;
  background:radial-gradient(7% 21% at 80% 35%,#e9fdff59,color-mix(in srgb,var(--glow) 22%,#0000) 45%,#0000 75%);
}

@media (prefers-reduced-motion:reduce){
  .gx-spin,.gx-arc,.gx-hub::after{animation-play-state:paused}
  .gx-arc{animation-delay:calc(var(--t)*-.5)}
  .gx-hub::after{animation-delay:-.6s}
}

/* Quick Guide: light refinements of the existing gradient pill (styles.css .quick-guid) */
.quick-guid {
  background: linear-gradient(90deg, var(--maincolor, #0b68b5) 0%, #1f8ee9 100%) !important;
  box-shadow: 0 24px 50px rgba(11, 104, 181, 0.22) !important;
}

.quick-guid-desc {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 10px 14px !important;
}

.quick-guid-desc > a.quick-guid-step {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 6px 18px 6px 6px !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.12) !important;
  font-size: 1.35rem !important;
  line-height: 1.3 !important;
  transition: background-color 0.2s ease, transform 0.2s ease !important;
}

[dir="rtl"] .quick-guid-desc > a.quick-guid-step {
  padding: 6px 6px 6px 18px !important;
}

.quick-guid-desc > a.quick-guid-step:hover,
.quick-guid-desc > a.quick-guid-step:focus-visible {
  background: rgba(255, 255, 255, 0.22) !important;
  transform: translateY(-2px) !important;
}

.quick-guid-step__num {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  width: 30px !important;
  height: 30px !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: var(--maincolor, #0b68b5) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
}

.quick-guid-img {
  box-shadow: 0 12px 30px rgba(6, 40, 90, 0.25) !important;
}

/* Mute button: round frosted button with SVG icons instead of an emoji */
.quick-guid .video-controls {
  bottom: 18px !important;
  right: 28px !important;
}

[dir="rtl"] .quick-guid .video-controls {
  right: auto !important;
  left: 28px !important;
}

.quick-guid #muteBtn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.5) !important;
  border-radius: 50% !important;
  background: rgba(15, 27, 45, 0.45) !important;
  color: #fff !important;
}

.quick-guid #muteBtn:hover,
.quick-guid #muteBtn:focus-visible {
  background: rgba(15, 27, 45, 0.75) !important;
}

.quick-guid #muteBtn .icon-sound-on {
  display: none !important;
}

.quick-guid #muteBtn[aria-pressed="true"] .icon-sound-on {
  display: block !important;
}

.quick-guid #muteBtn[aria-pressed="true"] .icon-sound-off {
  display: none !important;
}

/* Desktop / tablet pill: legacy fixed height (14rem) + 5rem content margins leave the text
   only ~40px, so the title and wrapped steps spill out of the pill. Let it grow with its content. */
@media (min-width: 997px) {
  .quick-guid {
    height: auto !important;
    min-height: 14rem !important;
    align-items: center !important;
  }

  .quick-guid-content {
    margin: 2rem 2.5rem !important;
  }

  .quick-guid-content > h2,
  [dir="rtl"] .quick-guid-content > h2 {
    margin-bottom: 1.25rem !important;
    line-height: 1.25 !important;
  }

  .quick-guid-img {
    align-self: center !important;
    margin-inline-end: 1rem !important;
  }
}

@media (min-width: 997px) and (max-width: 1399px) {
  .quick-guid-content > h2,
  [dir="rtl"] .quick-guid-content > h2 {
    font-size: 2.5rem !important;
  }

  .quick-guid-desc > a.quick-guid-step {
    font-size: 1.2rem !important;
  }
}

/* Mobile / tablet (styles.css switches to a stacked layout at <=996px):
   one compact card, video on top, rounded content block with full-width steps */
@media (max-width: 996px) {
  .quick-guid {
    gap: 12px !important;
    margin: 1.5rem 0 !important;
    padding: 0 !important;
    background: none !important;
    box-shadow: none !important;
  }

  /* Same pill with white border as desktop, scaled for small screens */
  .quick-guid-img {
    position: relative !important;
    flex: none !important;
    width: 100% !important;
    max-height: none !important;
    aspect-ratio: 2.2 / 1 !important;
    right: 0 !important;
    border: 10px solid #f8fbfe !important;
    border-radius: 999px !important;
    box-shadow: 0 12px 30px rgba(6, 40, 90, 0.18) !important;
  }

  /* video wrapper only: .video-controls is also a direct div child and must keep its own size */
  .quick-guid-img > div:not(.video-controls),
  .quick-guid-img video {
    width: 100% !important;
    height: 100% !important;
  }

  .quick-guid-img video {
    object-fit: cover !important;
  }

  /* Centre the sound button vertically at the pill's rounded end so it stays inside the curve */
  .quick-guid .video-controls {
    top: 50% !important;
    bottom: auto !important;
    right: 16px !important;
    left: auto !important;
    transform: translateY(-50%) !important;
  }

  [dir="rtl"] .quick-guid .video-controls {
    right: auto !important;
    left: 16px !important;
  }

  .quick-guid-content {
    margin: 0 !important;
    padding: 22px 18px !important;
    text-align: start !important;
    background: linear-gradient(90deg, var(--maincolor, #0b68b5) 0%, #1f8ee9 100%) !important;
    border-radius: 6px 28px 6px 28px !important;
    box-shadow: 0 14px 30px rgba(11, 104, 181, 0.22) !important;
  }

  [dir="rtl"] .quick-guid-content {
    border-radius: 28px 6px 28px 6px !important;
  }

  .quick-guid-content > h2,
  [dir="rtl"] .quick-guid-content > h2 {
    margin: 0 0 16px !important;
    font-size: 22px !important;
    line-height: 1.35 !important;
    text-align: start !important;
  }

  .quick-guid-desc {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
    margin: 0 !important;
  }

  .quick-guid-desc > a.quick-guid-step {
    width: 100% !important;
    padding: 6px 14px 6px 6px !important;
    font-size: 15px !important;
  }

  [dir="rtl"] .quick-guid-desc > a.quick-guid-step {
    padding: 6px 6px 6px 14px !important;
  }

  .quick-guid-step__num {
    width: 28px !important;
    height: 28px !important;
    font-size: 14px !important;
  }
}

/* Our Insurances (refinements of the existing card design in styles.css) */

/* Centre the cards only when they all fit (class set by js/custom.js).
   Replaces the old .less-than-3-items centring and the 50rem mobile padding hack. */
.our-insurances-carousel.is-centered .owl-stage {
  margin-inline: auto !important;
  /* the stage ends with one 10px card margin; shift by half so the cards themselves are centred */
  inset-inline-start: 5px !important;
}

/* styles.css gives every .owl-stage a 3rem flex gap that Owl doesn't know about: the slots get
   squeezed (274px -> 245px), rows sit off-centre and slide distances don't match. Owl's own
   margin already spaces the cards. */
.our-insurances-carousel .owl-stage-outer > .owl-stage {
  gap: 0 !important;
}

/* Card centred within its carousel slot (it was left-aligned, leaving uneven gaps), with a smooth hover lift */
.our-insurances-carousel .item {
  margin-inline: auto !important;
  /* keep the opacity fade used by the first-scroll reveal (.animate-on-parent-scroll) */
  transition: transform 0.3s ease, opacity 0.5s ease !important;
}

.our-insurances-carousel .insurance-card-link:hover .item,
.our-insurances-carousel .insurance-card-link:focus-visible .item {
  transform: translateY(-6px) !important;
}

.our-insurances-carousel .insurance-item {
  position: relative !important;
  margin-inline: auto !important;
  transition: box-shadow 0.3s ease !important;
}

.our-insurances-carousel .insurance-card-link:hover .insurance-item {
  box-shadow: 0 14px 30px rgba(11, 104, 181, 0.22) !important;
}

/* Room for the button at the bottom of cards that have one */
.our-insurances-carousel .insurance-item.has-cta {
  padding-bottom: 70px !important;
}

/* Card button: centred at the bottom of the card */
.insurance-item__cta {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 16px !important;
  display: flex !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 16px !important;
}

.insurance-item__cta .buy-now-btn {
  width: auto !important;
  padding: 12px 29px !important;
  border-radius: 46px !important;
  background: #fff !important;
  color: var(--maincolor, #0b68b5) !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  transition: background-color 0.2s ease, color 0.2s ease !important;
}

.insurance-item__cta .buy-now-btn:hover,
.insurance-item__cta .buy-now-btn:focus-visible {
  background: #e8f2fc !important;
  color: #0c5b9d !important;
}

/* Tab panes: slightly softer fade between tabs */
#myTabContent > .tab-pane.fade {
  transition: opacity 0.25s ease !important;
}

@media (prefers-reduced-motion: reduce) {
  .our-insurances-carousel .item,
  #myTabContent > .tab-pane.fade {
    transition: none !important;
  }
}

/* Our Insurances on phones: compact 2x2 tab pills instead of a tall stacked list,
   and readable card titles (legacy line-height was smaller than the font size) */
@media (max-width: 768px) {
  .insurances #myTab {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 6px !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 0 18px !important;
    padding: 6px !important;
    border: 0 !important;
    border-radius: 22px !important;
    box-shadow: 0 10px 24px rgba(11, 104, 181, 0.22) !important;
    overflow: visible !important;
  }

  .insurances #myTab .nav-item {
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
  }

  .insurances #myTab .nav-link {
    width: 100% !important;
    height: 100% !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 8px 10px !important;
    border: 0 !important;
    border-radius: 16px !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
    text-align: center !important;
    white-space: normal !important;
  }

  /* An odd number of tabs: let the last one span the full row */
  .insurances #myTab .nav-item:last-child:nth-child(odd) {
    grid-column: 1 / -1 !important;
  }

  .our-insurances-carousel .item-content > h5 {
    font-size: 24px !important;
    line-height: 1.2 !important;
    margin-top: 2rem !important;
  }

  .our-insurances-carousel .item-content > p {
    font-size: 14px !important;
    line-height: 1.5 !important;
  }
}

/* Worldwide globe: lightweight version for phones / touch tablets.
   The full .gx globe (162 3D facets + 77 mask-animated routes) is far too heavy for mobile GPUs,
   so there it's removed from rendering (display: none) and replaced by this: a circle with the same
   ocean colours, and the same land map sliding sideways (a single compositor-only transform). */
.ww-globe-lite {
  display: none;
}

@media (max-width: 991px), (hover: none) and (pointer: coarse) {
  .ww-network__globe-stage .gx {
    display: none !important;
  }

  .ww-globe-lite {
    --D: 256px;
    display: block;
    position: absolute;
    left: 50%;
    top: 50%;
    width: var(--D);
    height: var(--D);
    margin: calc(var(--D) / -2) 0 0 calc(var(--D) / -2);
    border-radius: 50%;
    overflow: hidden;
    pointer-events: none;
    /* ocean, same palette as the 3D globe */
    background: radial-gradient(circle at 40% 58%, #19e6f6 0%, #13bcd5 16%, #0d93b3 38%, #0a6c86 58%, #063f52 82%);
    /* rim glow + soft atmosphere, painted once */
    box-shadow:
      0 0 0 2px rgba(217, 251, 255, 0.85),
      0 0 18px 4px rgba(98, 232, 255, 0.55),
      0 0 60px 18px rgba(62, 201, 242, 0.28);
    transform: translateZ(0);
  }

  /* Two copies of the 2:1 map side by side; sliding by one copy loops seamlessly */
  .ww-globe-lite__map {
    position: absolute;
    top: -5%;
    left: 0;
    width: calc(var(--D) * 4.4);
    height: 110%;
    background: url("../assets/images/v2/globe-map.webp") 0 0 / 50% 100% repeat-x;
    will-change: transform;
    animation: ww-globe-lite-spin 40s linear infinite;
  }

  /* limb darkening + highlight so the flat map reads as a sphere */
  .ww-globe-lite::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background:
      radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.28) 0%, rgba(255, 255, 255, 0) 38%),
      radial-gradient(circle, rgba(3, 34, 46, 0) 55%, rgba(3, 34, 46, 0.55) 88%, rgba(3, 34, 46, 0.75) 100%);
  }

  [dir="rtl"] .ww-globe-lite__map {
    animation-direction: reverse;
  }
}

@media (max-width: 575px) {
  .ww-globe-lite {
    --D: 200px;
  }
}

@keyframes ww-globe-lite-spin {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .ww-globe-lite__map {
    animation: none !important;
  }
}

/* Mobile globe video (world_wide.webm, 1440x810 with the globe centred, ~43% of the width):
   scaled so the globe slightly overfills the circle, hiding the video's dark background. */
.ww-globe-lite__video {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 245%;
  max-width: none;
  height: auto;
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity 0.6s ease;
  pointer-events: none;
}

.ww-globe-lite.has-video .ww-globe-lite__video {
  opacity: 1;
}

/* Once the video plays, stop the fallback map animation underneath */
.ww-globe-lite.has-video .ww-globe-lite__map {
  animation: none;
  visibility: hidden;
}

/* The video has its own lighting; keep only a light edge shade over it */
.ww-globe-lite.has-video::after {
  background: radial-gradient(circle, rgba(3, 34, 46, 0) 70%, rgba(3, 34, 46, 0.35) 100%);
}

/* Shading overlay sits above the video */
.ww-globe-lite::after {
  z-index: 1;
}

/* FAQs (FAQ page + insurance-page FAQ sections): accordion cards.
   High specificity + !important because styles.css forces
   ".faq-container-news * { font-size: 1.4375rem !important; color: ... !important }". */
.faq-sct .faq-category {
  margin: 0 0 36px !important;
}

.faq-sct .title-type,
[dir="rtl"] .faq-sct .title-type {
  margin: 0 0 16px !important;
  padding: 2px 0 !important;
  padding-inline-start: 14px !important;
  border-inline-start: 4px solid #1f8ee9 !important;
  font-family: inherit !important;
  font-size: 20px !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;
  color: #0f1b2d !important;
  text-align: start !important;
}

.faq-sct .faq-item.faq-container-news {
  display: block !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  background: #fff !important;
  border: 1px solid rgba(11, 104, 181, 0.1) !important;
  border-radius: 14px 14px 22px 14px !important;
  box-shadow: 0 6px 18px rgba(31, 84, 156, 0.06) !important;
  overflow: hidden !important;
  transition: box-shadow 0.25s ease, border-color 0.25s ease !important;
}

[dir="rtl"] .faq-sct .faq-item.faq-container-news {
  border-radius: 14px 14px 14px 22px !important;
}

.faq-sct .faq-item.faq-container-news:hover {
  box-shadow: 0 10px 26px rgba(31, 84, 156, 0.12) !important;
}

/* Open card (toggleAnswer() shows the answer with an inline display:block) */
.faq-sct .faq-item.faq-container-news:has(> .faq-answer[style*="block"]) {
  border-color: rgba(31, 142, 233, 0.55) !important;
  box-shadow: 0 12px 30px rgba(11, 104, 181, 0.14) !important;
}

.faq-sct .faq-container-news .faq-header {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  width: 100% !important;
  padding: 0 18px 0 22px !important;
  cursor: pointer !important;
}

[dir="rtl"] .faq-sct .faq-container-news .faq-header {
  padding: 0 22px 0 18px !important;
}

.faq-sct .faq-container-news .faq-header h2 {
  flex: 1 1 auto !important;
  margin: 0 !important;
  padding: 18px 0 !important;
  font-size: 17px !important;
  line-height: 1.45 !important;
  font-weight: 600 !important;
  color: #0f1b2d !important;
  text-align: start !important;
}

/* Round +/- button, on the end side of the question */
.faq-sct .faq-container-news .faq-line {
  order: 2 !important;
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  height: 34px !important;
  margin: 0 !important;
  border-radius: 50% !important;
  background: #eef5fd !important;
  transition: background-color 0.2s ease !important;
}

.faq-sct .faq-container-news .faq-line i {
  width: auto !important;
  font-size: 14px !important;
  line-height: 1 !important;
  color: var(--maincolor, #0b68b5) !important;
}

.faq-sct .faq-item.faq-container-news:has(> .faq-answer[style*="block"]) .faq-line {
  background: var(--maincolor, #0b68b5) !important;
}

.faq-sct .faq-item.faq-container-news:has(> .faq-answer[style*="block"]) .faq-line i {
  color: #fff !important;
}

/* Answer */
.faq-sct .faq-container-news .faq-answer {
  margin: 0 !important;
  padding: 0 22px 20px !important;
  border-top: 1px solid rgba(11, 104, 181, 0.08) !important;
  font-size: 15px !important;
  line-height: 1.75 !important;
  color: #4b5b70 !important;
}

.faq-sct .faq-container-news .faq-answer[style*="block"] {
  animation: faq-answer-in 0.25s ease !important;
}

.faq-sct .faq-container-news .faq-answer * {
  font-size: 15px !important;
  line-height: 1.75 !important;
  color: #4b5b70 !important;
}

.faq-sct .faq-container-news .faq-answer p,
.faq-sct .faq-container-news .faq-answer ul,
.faq-sct .faq-container-news .faq-answer ol {
  margin: 14px 0 0 !important;
  padding: 0 !important;
  padding-inline-start: 0 !important;
  margin-inline-start: 0 !important;
}

.faq-sct .faq-container-news .faq-answer ul,
.faq-sct .faq-container-news .faq-answer ol {
  padding-inline-start: 20px !important;
}

/* remove the legacy gradient bar beside answer paragraphs */
.faq-sct .faq-container-news .faq-answer p::before {
  content: none !important;
}

.faq-sct .faq-container-news .faq-answer a {
  color: var(--maincolor, #0b68b5) !important;
  text-decoration: underline !important;
}

@keyframes faq-answer-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: none; }
}

/* Insurance-page FAQ heading ("FAQs" above the cards) */
.faq-sct .subpage-faq > h1 {
  margin: 0 0 20px !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  color: #0f1b2d !important;
}

/* Dark mode */
[data-theme="dark"] .faq-sct .faq-item.faq-container-news {
  background: #15243a !important;
  border-color: #2b3f5c !important;
}

[data-theme="dark"] .faq-sct .title-type,
[data-theme="dark"] .faq-sct .faq-container-news .faq-header h2,
[data-theme="dark"] .faq-sct .subpage-faq > h1 {
  color: #fff !important;
}

[data-theme="dark"] .faq-sct .faq-container-news .faq-answer,
[data-theme="dark"] .faq-sct .faq-container-news .faq-answer * {
  color: #b7c4d6 !important;
}

[data-theme="dark"] .faq-sct .faq-container-news .faq-line {
  background: #0f1d31 !important;
}

@media (max-width: 767px) {
  .faq-sct .title-type {
    font-size: 18px !important;
  }

  .faq-sct .faq-container-news .faq-header {
    gap: 12px !important;
    padding: 0 12px 0 16px !important;
  }

  [dir="rtl"] .faq-sct .faq-container-news .faq-header {
    padding: 0 16px 0 12px !important;
  }

  .faq-sct .faq-container-news .faq-header h2 {
    padding: 14px 0 !important;
    font-size: 15px !important;
  }

  .faq-sct .faq-container-news .faq-line {
    width: 30px !important;
    height: 30px !important;
  }

  .faq-sct .faq-container-news .faq-answer {
    padding: 0 16px 16px !important;
  }

  .faq-sct .faq-container-news .faq-answer,
  .faq-sct .faq-container-news .faq-answer * {
    font-size: 14px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .faq-sct .faq-container-news .faq-answer[style*="block"] {
    animation: none !important;
  }
}

/* FAQ category tabs on phones: one compact row of three equal pills instead of a tall stacked box */
@media (max-width: 767px) {
  .faq-sct #faqTabs.tabs.faq_taps {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 4px !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 0 24px !important;
    padding: 5px !important;
    border-radius: 999px !important;
    flex-direction: row !important;
  }

  .faq-sct #faqTabs .tap-faq {
    width: 100% !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 6px 4px !important;
    border-radius: 999px !important;
    font-size: 12.5px !important;
    line-height: 1.2 !important;
    text-align: center !important;
    white-space: normal !important;
  }
}
