/* Shared page frame and navigation geometry for every language and template. */
:root {
  --vp-layout-width: 1180px;
  --vp-header-height: 82px;
  --vp-header-height-compact: 70px;
  --vp-header-paper: #f7f3eb;
  --vp-header-line: rgba(32, 52, 73, .18);
}

/* Elementor contains a few blank rows before the actual page widget. Keep the
   header at the document start without changing the content inside the widget. */
body:has(.vp-nav-shell) #content .elementor > .e-con:first-child:not(:has(.vp-homepage, #vp-screening)) {
  display: none !important;
}
body.page-id-2756:has(.vp-nav-shell) #content .elementor > .e-con:nth-child(2):not(:has(.vp-homepage, #vp-screening)) {
  display: none !important;
}
body:has(.vp-nav-shell) #content .elementor > .e-con:has(.vp-nav-shell) > .e-con-inner {
  padding-block-start: 0 !important;
}
/* Remove the 18px leading spacer Elementor adds to this widget on phones. */
@media (max-width: 700px) {
  body:has(#vp-screening) .elementor-widget-html:has(#vp-screening) {
    margin-block-start: -18px !important;
  }
}

/* The main pages use Elementor's 10px outer gutter. Apply it to the standalone
   Self-Checks template and the Terms/Courses templates as well. */
body:has(#vp-screening) .elementor > .e-con {
  padding-inline: 10px !important;
}
.vp-terms-page,
.vp-courses-page {
  box-sizing: border-box;
  width: calc(100% - 20px) !important;
  margin-inline: auto !important;
}

/* One header band, inner width, and vertical rhythm across page types. */
.vp-homepage .vp-nav-shell,
#vp-screening .vp-nav-shell {
  position: relative;
  z-index: 30;
  box-sizing: border-box;
  width: 100%;
  border-bottom: 1px solid var(--vp-header-line) !important;
  background: var(--vp-header-paper) !important;
}
.vp-homepage .vp-nav,
#vp-screening .vp-nav {
  display: flex !important;
  width: min(var(--vp-layout-width), calc(100% - 48px)) !important;
  max-width: var(--vp-layout-width) !important;
  height: var(--vp-header-height) !important;
  min-height: var(--vp-header-height) !important;
  box-sizing: border-box;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-inline: auto !important;
}
.vp-homepage .vp-brand,
#vp-screening .vp-brand {
  flex: 0 0 auto;
  min-width: 0;
  align-items: center;
}
.vp-homepage .vp-brand-mark,
#vp-screening .vp-brand-mark {
  width: 38px;
  height: 46px;
  flex: 0 0 auto;
}
.vp-homepage .vp-brand-copy strong,
#vp-screening .vp-brand-copy strong {
  font-weight: 700 !important;
}
.vp-homepage .vp-nav-links,
#vp-screening .vp-nav-links {
  flex-wrap: nowrap;
  align-items: center;
  gap: clamp(14px, 1.5vw, 20px) !important;
}
.vp-homepage .vp-nav-links > a:not(.vp-nav-cta):not(.vp-courses-nav),
#vp-screening .vp-nav-links > a:not(.vp-nav-cta):not(.vp-courses-nav) {
  font-family: "Source Sans 3", "Segoe UI", Arial, sans-serif !important;
  font-size: .87rem !important;
  font-weight: 600 !important;
}
.vp-homepage .vp-nav-links > a.vp-courses-nav,
#vp-screening .vp-nav-links > a.vp-courses-nav {
  font-family: "Source Sans 3", "Segoe UI", Arial, sans-serif !important;
  font-size: .87rem !important;
}
.vp-homepage .vp-nav-links .vp-lang,
#vp-screening .vp-nav-links .vp-lang {
  display: flex !important;
  box-sizing: border-box;
  flex: 0 0 131px;
  width: 131px !important;
  align-items: center;
  gap: 8px !important;
  padding-left: 14px !important;
}
.vp-homepage .vp-nav-links .vp-lang-option,
#vp-screening .vp-nav-links .vp-lang-option {
  gap: 4px !important;
  font-family: "Source Sans 3", "Segoe UI", Arial, sans-serif !important;
  font-size: .87rem !important;
  letter-spacing: .08em !important;
}
.vp-homepage .vp-nav-links .vp-lang-divider,
#vp-screening .vp-nav-links .vp-lang-divider {
  font-size: .87rem !important;
  letter-spacing: 0 !important;
}
.vp-homepage .vp-nav-links > a.vp-nav-cta,
#vp-screening .vp-nav-links > a.vp-nav-cta {
  box-sizing: border-box;
  flex: 0 0 117px;
  width: 117px !important;
  min-width: 117px;
  white-space: nowrap;
}
html[lang^="nl"] .vp-homepage .vp-nav-links > a.vp-nav-cta,
html[lang^="nl"] #vp-screening .vp-nav-links > a.vp-nav-cta {
  flex-basis: 147px;
  width: 147px !important;
  min-width: 147px;
}
.vp-homepage .vp-nav-links > a,
#vp-screening .vp-nav-links > a {
  white-space: nowrap;
}
.vp-homepage .vp-nav-links:has(.vp-booking-cta) > a:last-child:not(.vp-booking-cta),
#vp-screening .vp-nav-links:has(.vp-booking-cta) > a:last-child:not(.vp-booking-cta) {
  /* The booking action replaces the older duplicate Contact link. */
  display: none !important;
}

/* Match the regular page wrapper at tablet and phone widths. */
#vp-screening .vp-wrap {
  width: min(var(--vp-layout-width), calc(100% - 48px)) !important;
  max-width: var(--vp-layout-width) !important;
  margin-inline: auto !important;
}

@media (max-width: 1240px) {
  .vp-homepage .vp-nav,
  #vp-screening .vp-nav {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 44px !important;
    gap: 8px !important;
  }
  .vp-homepage .vp-nav-links,
  #vp-screening .vp-nav-links {
    display: none !important;
  }
  .vp-homepage .vp-mobile-menu,
  #vp-screening .vp-mobile-menu {
    display: block !important;
    justify-self: end;
  }
}

@media (max-width: 560px) {
  .vp-homepage .vp-nav,
  #vp-screening .vp-nav,
  #vp-screening .vp-wrap {
    width: min(var(--vp-layout-width), calc(100% - 40px)) !important;
  }
  .vp-homepage .vp-nav,
  #vp-screening .vp-nav {
    height: var(--vp-header-height-compact) !important;
    min-height: var(--vp-header-height-compact) !important;
  }
  .vp-homepage .vp-brand-mark,
  #vp-screening .vp-brand-mark {
    width: 30px;
    height: 38px;
  }
  .vp-homepage .vp-brand-copy strong,
  #vp-screening .vp-brand-copy strong {
    font-size: 1.2rem;
  }
  .vp-homepage .vp-brand-copy span,
  #vp-screening .vp-brand-copy span {
    display: none;
  }
}

/* Contrasting booking buttons on dark sections. */
body .vp-homepage .vp-cta .vp-btn,
body .vp-homepage .vp-closing .vp-btn,
body #vp-screening .vp-cta .vp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 22px !important;
  border: 1px solid #f7f3eb !important;
  border-radius: 8px !important;
  color: #18364b !important;
  -webkit-text-fill-color: #18364b !important;
  background: #f7f3eb !important;
  text-decoration: none !important;
}
body .vp-homepage .vp-cta .vp-btn:hover,
body .vp-homepage .vp-closing .vp-btn:hover,
body #vp-screening .vp-cta .vp-btn:hover {
  color: #18364b !important;
  background: #fff !important;
  border-color: #fff !important;
}
body .vp-homepage .vp-cta .vp-btn:focus-visible,
body .vp-homepage .vp-closing .vp-btn:focus-visible,
body #vp-screening .vp-cta .vp-btn:focus-visible {
  outline: 3px solid #f7f3eb;
  outline-offset: 4px;
}
