/* Make text look crisper and more legible in all browsers */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Keep the homepage header on one sticky layer. The exported styles make both
   this wrapper and its child sticky, which causes the header to leave and then
   re-enter the viewport while scrolling. */
.nav_fixed {
  z-index: 1000;
}

.nav_fixed > .nav_component {
  position: static;
  inset: auto;
}

.home-hero {
  min-height: clamp(20rem, 31vw, 25rem);
  color: var(--base-color-brand--brand-white);
  display: flex;
  align-items: center;
  overflow: hidden;
  position: relative;
}

.home-hero-image,
.home-hero-shade {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
}

.home-hero-image {
  object-fit: cover;
  object-position: center;
}

.home-hero-shade {
  background: linear-gradient(90deg, rgb(25 23 28 / 86%) 0%, rgb(25 23 28 / 64%) 42%, rgb(25 23 28 / 12%) 78%);
}

.home-hero-content {
  width: calc(100% - 5rem);
  max-width: 80rem;
  margin: 0 auto;
  padding: 3.5rem 0;
  position: relative;
  z-index: 1;
}

.home-hero-eyebrow {
  color: var(--base-color-brand--yellow);
  margin: 0 0 .75rem;
  font-size: .875rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.home-hero-title {
  max-width: 48rem;
  margin: 0;
  color: var(--base-color-brand--brand-white);
  font-size: clamp(2.5rem, 5vw, 4.75rem);
  font-weight: 900;
  line-height: .98;
  text-wrap: balance;
}

.home-hero-text {
  max-width: 40rem;
  margin: 1.25rem 0 0;
  color: var(--base-color-brand--beige);
  font-size: 1.25rem;
  line-height: 1.5;
}

.home-hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.25rem;
  margin-top: 1.75rem;
}

.home-hero-button {
  background-color: var(--base-color-brand--yellow);
  color: var(--base-color-brand--brand-dark-blue);
  padding: .875rem 1.25rem;
  font-weight: 800;
  text-decoration: none;
  transition: background-color .2s ease, transform .2s ease;
}

.home-hero-button:hover,
.home-hero-button:focus-visible {
  background-color: var(--base-color-brand--brand-white);
  transform: translateY(-2px);
}

.home-hero-link {
  appearance: none;
  background: none;
  border: 0;
  padding: 0;
  color: var(--base-color-brand--brand-white);
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  text-decoration: none;
}

.home-hero-link:hover,
.home-hero-link:focus-visible {
  color: var(--base-color-brand--yellow);
}

@media screen and (max-width: 767px) {
  .home-hero {
    min-height: 22rem;
    align-items: flex-end;
  }

  .home-hero-image {
    object-position: 56% center;
  }

  .home-hero-shade {
    background: linear-gradient(0deg, rgb(25 23 28 / 92%) 0%, rgb(25 23 28 / 58%) 72%, rgb(25 23 28 / 18%) 100%);
  }

  .home-hero-content {
    width: calc(100% - 2rem);
    padding: 2.5rem 0;
  }

  .home-hero-title {
    font-size: clamp(2rem, 9vw, 2.75rem);
  }

  .home-hero-text {
    margin-top: 1rem;
    font-size: 1.05rem;
  }

  .home-hero-actions {
    gap: 1rem;
    margin-top: 1.25rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero-button,
  #diensten .title-link-c2a.card-responsive,
  #diensten .title-link-c2a.card-responsive .link,
  #diensten .title-link-c2a.card-responsive .icon-1x1-small {
    transition: none;
  }
}

#diensten .title-link-c2a.card-responsive,
#diensten .title-link-c2a.card-responsive .link,
#diensten .title-link-c2a.card-responsive .icon-1x1-small {
  transition: color .3s ease;
}

#diensten .link-block-card.padding-small:hover .title-link-c2a.card-responsive,
#diensten .link-block-card.padding-small:hover .title-link-c2a.card-responsive .link,
#diensten .link-block-card.padding-small:hover .title-link-c2a.card-responsive .icon-1x1-small,
#diensten .link-block-card.padding-small:focus-visible .title-link-c2a.card-responsive,
#diensten .link-block-card.padding-small:focus-visible .title-link-c2a.card-responsive .link,
#diensten .link-block-card.padding-small:focus-visible .title-link-c2a.card-responsive .icon-1x1-small {
  color: var(--base-color-brand--yellow);
}

/* At intermediate desktop widths, keep the introduction from being squeezed
   into a card-sized column. */
@media screen and (min-width: 992px) and (max-width: 1279px) {
  #diensten .services-section-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #diensten .services-section-grid > .grid-title {
    grid-column: 1 / -1;
    max-width: 30rem;
  }

  #diensten .services-section-grid > .grid-title > .heading-3 {
    width: 100%;
  }
}

.portfolio-card-media {
  aspect-ratio: 1;
  position: relative;
}

.portfolio-card-media > .card-image {
  width: 100%;
  height: 100%;
}

.portfolio-card-overlay {
  background-color: transparent;
  color: var(--base-color-brand--brand-white);
  overflow: hidden;
  pointer-events: none;
  position: absolute;
  inset: 10px;
  transition: background-color .3s ease;
}

.portfolio-card-title,
.portfolio-card-cta {
  position: absolute;
  left: 50%;
  text-align: center;
  white-space: nowrap;
  transition: top .3s ease, bottom .3s ease;
  transform: translateX(-50%);
}

.portfolio-card-title {
  bottom: 100%;
  width: 100%;
  padding: 0 8px 12px;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  text-shadow: 0 0 10px rgb(0 0 0 / 50%);
}

.portfolio-card-cta {
  background-color: var(--base-color-brand--yellow);
  color: var(--base-color-brand--brand-dark-blue);
  top: 100%;
  padding: 1rem 1.5rem;
  font-size: 1.25rem;
  font-weight: 700;
}

.portfolio-card:hover .portfolio-card-overlay,
.portfolio-card:active .portfolio-card-overlay,
.portfolio-card:focus-visible .portfolio-card-overlay {
  background-color: rgb(0 0 0 / 30%);
}

.portfolio-card:hover .portfolio-card-title,
.portfolio-card:active .portfolio-card-title,
.portfolio-card:focus-visible .portfolio-card-title {
  bottom: 50%;
}

.portfolio-card:hover .portfolio-card-cta,
.portfolio-card:active .portfolio-card-cta,
.portfolio-card:focus-visible .portfolio-card-cta {
  top: 50%;
}

.portfolio-card:hover .card-image,
.portfolio-card:active .card-image,
.portfolio-card:focus-visible .card-image {
  transform: scale(1);
}

@media (prefers-reduced-motion: reduce) {
  .portfolio-card-overlay,
  .portfolio-card-title,
  .portfolio-card-cta {
    transition: none;
  }
}

.dropdown-list-link.w--current {
  border-left: 0;
  box-shadow: inset 4px 0 var(--base-color-brand--yellow);
  color: var(--link-color--link-primary);
  padding-left: 10px;
  font-weight: 700;
}

@media screen and (min-width: 992px) {
  .dropdown-list-link {
    border-left: 0;
    padding-left: 10px;
    transition: color .2s ease, box-shadow .2s ease, transform .2s ease;
  }

  .dropdown-list-link:hover,
  .dropdown-list-link:focus-visible {
    border-left: 0;
    box-shadow: inset 4px 0 var(--base-color-brand--yellow);
    padding-left: 10px;
    position: relative;
    transform: translateX(10px);
  }

  .dropdown:hover > .dropdown-list,
  .dropdown:focus-within > .dropdown-list {
    background-color: var(--base-color-brand--brand-white);
    display: block;
    position: absolute;
    right: auto;
    z-index: 1000;
  }

  .dropdown:hover::after,
  .dropdown:focus-within::after {
    content: '';
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-bottom: 12px solid var(--base-color-brand--brand-white);
    position: absolute;
    left: 50%;
    top: calc(100% - 12px);
    z-index: 1001;
    transform: translateX(-50%);
  }
}
/* Focus state style for keyboard navigation for the focusable elements */
*[tabindex]:focus-visible,
  input[type="file"]:focus-visible {
   outline: 0.125rem solid #4d65ff;
   outline-offset: 0.125rem;
}
/* Set color style to inherit */
.inherit-color * {
    color: inherit;
}
/* Get rid of top margin on first element in any rich text element */
.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
  margin-top: 0 !important;
}
/* Get rid of bottom margin on last element in any rich text element */
.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
	margin-bottom: 0 !important;
}
/* Make sure containers never lose their center alignment */
.container-medium,.container-small, .container-large {
	margin-right: auto !important;
  margin-left: auto !important;
}
/* 
Make the following elements inherit typography styles from the parent and not have hardcoded values. 
Important: You will not be able to style for example "All Links" in Designer with this CSS applied.
Uncomment this CSS to use it in the project. Leave this message for future hand-off.
*/
/*
a,
.w-input,
.w-select,
.w-tab-link,
.w-nav-link,
.w-dropdown-btn,
.w-dropdown-toggle,
.w-dropdown-link {
  color: inherit;
  text-decoration: inherit;
  font-size: inherit;
}
*/
/* Apply "..." after 3 lines of text */
.text-style-3lines {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
}
/* Apply "..." after 2 lines of text */
.text-style-2lines {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}
/* These classes are never overwritten */
.hide {
  display: none !important;
}
@media screen and (max-width: 991px) {
    .hide, .hide-tablet {
        display: none !important;
    }
}
  @media screen and (max-width: 767px) {
    .hide-mobile-landscape{
      display: none !important;
    }
}
  @media screen and (max-width: 479px) {
    .hide-mobile{
      display: none !important;
    }
}
.margin-0 {
  margin: 0rem !important;
}
.padding-0 {
  padding: 0rem !important;
}
.spacing-clean {
padding: 0rem !important;
margin: 0rem !important;
}
.margin-top {
  margin-right: 0rem !important;
  margin-bottom: 0rem !important;
  margin-left: 0rem !important;
}
.padding-top {
  padding-right: 0rem !important;
  padding-bottom: 0rem !important;
  padding-left: 0rem !important;
}
.margin-right {
  margin-top: 0rem !important;
  margin-bottom: 0rem !important;
  margin-left: 0rem !important;
}
.padding-right {
  padding-top: 0rem !important;
  padding-bottom: 0rem !important;
  padding-left: 0rem !important;
}
.margin-bottom {
  margin-top: 0rem !important;
  margin-right: 0rem !important;
  margin-left: 0rem !important;
}
.padding-bottom {
  padding-top: 0rem !important;
  padding-right: 0rem !important;
  padding-left: 0rem !important;
}
.margin-left {
  margin-top: 0rem !important;
  margin-right: 0rem !important;
  margin-bottom: 0rem !important;
}
.padding-left {
  padding-top: 0rem !important;
  padding-right: 0rem !important;
  padding-bottom: 0rem !important;
}
.margin-horizontal {
  margin-top: 0rem !important;
  margin-bottom: 0rem !important;
}
.padding-horizontal {
  padding-top: 0rem !important;
  padding-bottom: 0rem !important;
}
.margin-vertical {
  margin-right: 0rem !important;
  margin-left: 0rem !important;
}
.padding-vertical {
  padding-right: 0rem !important;
  padding-left: 0rem !important;
}
