/* Webflow collection lists: hide empty-state when CMS items are rendered */
.w-dyn-list:has(.w-dyn-item) .w-dyn-empty {
  display: none !important;
}

.w-dyn-list:not(:has(.w-dyn-item)) .w-dyn-items:empty {
  display: none;
}

/* Articles list — primary image fills the card (Webflow CMS background binding) */
.collection-item-2[style*='background-image'] {
  background-size: cover !important;
  background-position: 50% !important;
  background-repeat: no-repeat !important;
}

.collection-item-2 .article-card-logo {
  opacity: 0;
}

/* Case studies list — CMS image on card, text overlay on hover */
.collection-item-6[style*='background-image'] {
  background-size: cover !important;
  background-position: 50% !important;
  background-repeat: no-repeat !important;
  overflow: hidden;
}

@media (min-width: 992px) {
  .collection-list-5 .collection-item-6 .project-overlay {
    opacity: 0;
    transition: opacity 0.35s ease;
  }

  .collection-list-5 .collection-item-6:hover .project-overlay {
    opacity: 1;
  }
}

/* Case study sector filters — pill toggles, no visible checkbox */
#case-study-filters input[type='checkbox'] {
  opacity: 0;
  position: absolute;
  z-index: -1;
  width: 0;
  height: 0;
  margin: 0;
  appearance: none;
}

#case-study-filters .fs-checkbox_field-4.is-active .fs-checkbox_label-4-2 {
  color: #f55139;
}

/* Swiper carousel (homepage projects) */
.swrper_component {
  --swiper-navigation-size: 3rem;
}

.swrper_component .swiper-button-next,
.swrper_component .swiper-button-prev {
  width: 3rem !important;
  height: 3rem !important;
  min-width: 3rem !important;
  min-height: 3rem !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 50% !important;
  margin: 0 !important;
  margin-top: 0 !important;
  top: 50% !important;
  bottom: auto !important;
  transform: translateY(-50%) !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  background-color: var(--mw-dark-blue) !important;
  color: transparent !important;
  overflow: hidden !important;
}

.swrper_component .swiper-button-prev {
  left: 0 !important;
  right: auto !important;
  z-index: 10 !important;
}

.swrper_component .swiper-button-next {
  right: 0 !important;
  left: auto !important;
  z-index: 10 !important;
}

.swrper_component .swiper-button-next:hover,
.swrper_component .swiper-button-prev:hover {
  background-color: var(--mw-orange) !important;
}

.swrper_component .swiper-button-next::after,
.swrper_component .swiper-button-prev::after {
  display: none !important;
  content: none !important;
}

.swrper_component .swiper-button-next img,
.swrper_component .swiper-button-prev img {
  display: block;
  width: 1.1rem;
  height: auto;
  flex-shrink: 0;
  pointer-events: none;
}

.swiper-slide {
  overflow: hidden;
  transform: scale(0.92) !important;
}
.swiper-slide img {
  width: 100%;
}
.swiper-slide-active {
  opacity: 1;
  z-index: 1;
  transform: scale(1) !important;
}
.swiper-slide-active img {
  opacity: 100%;
}
.swiper-slide-active .slider-text {
  opacity: 1;
}
.swiper-pagination-bullet {
  display: inline-block;
  width: 7px;
  height: 7px;
  background: #ddd;
  margin: 0 5px;
  border-radius: 50%;
}
.swiper-pagination-bullet.swiper-pagination-bullet-active {
  background: black;
}

/* Homepage news section – full-width navy, flush to footer */
.main-section {
  padding: 0 !important;
  margin-bottom: 0;
  background-color: var(--mw-dark-blue);
  background-image: linear-gradient(231deg, #1c4588, #0a1e3f 43%);
}

.main-section .navy-backround {
  display: none;
}

.main-section .news-section {
  padding-left: 10%;
  padding-right: 10%;
  padding-top: 48px;
  padding-bottom: 40px;
}

.main-section .news-margain {
  padding-left: 0;
  padding-right: 0;
  margin-bottom: 48px;
}

.collection-list-9.w-dyn-items.w-row {
  display: flex;
  flex-wrap: wrap;
  margin-left: -10px;
  margin-right: -10px;
}

.collection-list-9 .w-col-4 {
  float: none;
  flex: 0 0 33.333%;
  max-width: 33.333%;
}

.section-42 {
  margin-top: 0;
}

/* Global site nav */
.site-nav {
  position: relative;
  z-index: 100;
}

.site-nav .navbar-wrapper {
  width: 100%;
  max-width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.site-nav .navbar-logo-left-container {
  width: 100%;
}

@media screen and (min-width: 992px) {
  .site-nav .nav-menu-wrapper {
    display: block !important;
  }

  .site-nav .menu-button {
    display: none !important;
  }

  .site-nav .nav-menu-two {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: nowrap;
  }
}

.site-nav .navbar-brand {
  flex-shrink: 0;
  width: auto;
  max-width: 235px;
}

.site-nav .navbar-brand .image {
  width: 235px;
  max-width: 100%;
  height: auto;
  min-width: 0;
}

/* Hero pages: nav overlays the first section (white logo on dark hero) */
body.nav-overlay .site-nav {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
}

body.nav-overlay .site-nav + section,
body.nav-overlay .site-nav + div {
  margin-top: 0;
}

/* Sector hero layout */
.section-27 .sector-top {
  position: relative;
}

.section-27 .sector-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.section-27 .sector-bottom {
  position: relative;
  z-index: 1;
}

.section-27 .accred-section {
  position: relative;
  z-index: 1;
}

/* Prevent horizontal scroll from carousels / full-bleed elements */
body.mw-body,
body.nav-overlay {
  overflow-x: clip;
}

/* Legal page: hardcoded iubenda policy content */
.legal-content {
  width: 100%;
  max-width: 1200px;
  overflow-x: clip;
}

.legal-content .iubenda-policy {
  max-width: 100%;
  overflow-x: clip;
  margin-bottom: 3rem;
}

.legal-content .iubenda-policy--cookie {
  padding-top: 2rem;
  border-top: 1px solid rgba(10, 30, 63, 0.12);
}

.legal-content .iubenda-policy #iub-legalDoc > .container {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.legal-content .iubenda-policy .aside-main-wrapper {
  display: block !important;
  padding: 0 !important;
  border: 0 !important;
}

.legal-content .iubenda-policy aside {
  width: 100% !important;
  max-width: 100%;
  position: static !important;
  margin-bottom: 2rem;
  padding: 0 !important;
}

.legal-content .iubenda-policy aside .close-dialog,
.legal-content .iubenda-policy .table-of-content-btn-wrapper,
.legal-content .iubenda-policy .card-buttons-group,
.legal-content .iubenda-policy .summary__cards-wrapper {
  display: none !important;
}

.legal-content .iubenda-policy main {
  width: 100% !important;
  min-width: 0;
  max-width: 100%;
}

.legal-content .iubenda-policy img,
.legal-content .iubenda-policy table,
.legal-content .iubenda-policy pre {
  max-width: 100%;
}

.legal-content .iubenda-policy .pre-footer,
.legal-content .iubenda-policy > #iub-legalDoc > .container > footer,
.legal-content .iubenda-policy .footer__credits {
  display: none;
}

.legal-content .w-richtext,
.legal-content .legal-phone-notice {
  max-width: 100%;
  overflow-x: clip;
  margin-top: 2rem;
}

/* Allow nav arrows to sit at carousel edges without clipping */
.projects-section .page-wrapper-6 {
  overflow: visible;
}

.swrper_component {
  overflow: visible;
  padding-left: 1.75rem;
  padding-right: 1.75rem;
}

@media screen and (max-width: 991px) {
  .main-section .news-section {
    padding-left: 5%;
    padding-right: 5%;
  }

  .site-nav .navbar-brand {
    max-width: 50%;
  }

  .site-nav .navbar-brand .image {
    width: 100%;
    min-width: 0;
  }

  .site-nav .nav-menu-two {
    width: 100%;
  }
}

@media screen and (max-width: 767px) {
  .main-section {
    padding: 0 !important;
  }
}

@media screen and (max-width: 767px) {
  .collection-list-9 .w-col-4 {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* Logo carousel (trusted by) */
.f-logo-carousel {
  position: absolute;
  white-space: nowrap;
  will-change: transform;
  animation: carousel-track 14s linear infinite;
}
@keyframes carousel-track {
  from { transform: translateX(-50%); }
  to { transform: translateX(0%); }
}
.f-logo-carousel:hover {
  animation-play-state: paused;
}
