:root {
  --primary: #281e5a;
  --primary-dark: #150f2f;
  --secondary: #de631f;
  --light-grey: #f2f2f2;
  --light: #fff;
  --dark: #000;
}

* {
  font-family: "Open Sans", sans-serif;
}
.font-b {
  font-family: "Roboto Slab", serif;
  text-transform: uppercase;
  font-weight: bolder;
}

main {
  overflow: hidden;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

.content-grid {
  --gap: clamp(1rem, 6vw, 3rem);
  --full: minmax(var(--gap), 1fr);
  --content: min(80em, 100% - var(--gap) * 2);
  --popout: minmax(0, 2rem);
  --feature: minmax(0, 5rem);
  display: grid;
  row-gap: 120px;
  grid-template-columns:
    [full-start] minmax(max(1rem, min(6vw, 3rem)), 1fr) [feature-start] minmax(
      0,
      5rem
    )
    [popout-start] minmax(0, 2rem) [content-start] min(
      80em,
      100% - max(1rem, min(6vw, 3rem)) * 2
    )
    [content-end] minmax(0, 2rem) [popout-end] minmax(0, 5rem) [feature-end] minmax(
      max(1rem, min(6vw, 3rem)),
      1fr
    )
    [full-end];
  grid-template-columns:
    [full-start] var(--full) [feature-start] var(--feature) [popout-start] var(
      --popout
    )
    [content-start] var(--content) [content-end] var(--popout) [popout-end] var(
      --feature
    )
    [feature-end] var(--full) [full-end];

  @media (max-width: 768px) {
    row-gap: 80px;
  }
}
.content-grid > * {
  grid-column: content;
  grid-template-columns: subgrid;
}
:where(.content-grid > *) {
  display: grid;
}
.full {
  grid-column: full;
}
.feature {
  grid-column: feature;
}
.popout {
  grid-column: popout;
}
.content {
  grid-column: content;
}
.left {
  grid-column: full-start / content-end;
}
.right {
  grid-column: content-start / full-end;
}

footer.content-grid {
  row-gap: 0;
}

#burger,
#mobile-nav,
.home-header {
  transition: 0.15s;
}
.mobile-navigation {
  overflow-y: auto;
  position: fixed;
  z-index: 12;
  background-color: var(--light-grey);
  color: var(--dark);
  width: 100%;
  height: calc(100dvh - 84px);
  opacity: 0;
  left: -100vw;
  top: 0;
  text-align: center;
  padding: 3rem 2rem 3rem;
}
.nav-active {
  left: 0;
  opacity: 1;
}
body.menu-open {
  overflow: hidden;
}

.has-children {
  @media (min-width: 1025px) {
    a {
      padding: 20px 0;
    }

    &:hover {
      .submenu-wrapper {
        display: block;
        margin-top: 60px;

        a:hover {
          color: var(--primary);
        }
      }
    }

    .submenu-wrapper {
      display: none;

      a {
        padding: 12px 0;
        text-wrap: nowrap;
      }
    }
  }
}

.breadcrumbs {
  flex-wrap: wrap;
  row-gap: 0;
  column-gap: 8px;
}

.header-mask {
  mask-image: url("../img/header-mask.svg");
  mask-repeat: no-repeat;
  mask-size: 746px 576px;
  object-fit: cover;
  width: 746px;
  height: 576px;

  @media (max-width: 1024px) {
    mask-size: 472px 425px;
    width: 472px;
    height: 425px;
  }
}

.template-text {
  h1 {
    font-size: 2rem;
    font-weight: bold;
  }
  h2 {
    font-size: 2rem;
    font-weight: bold;
  }
  h3,
  h4,
  h5,
  h6 {
    font-size: 1.5rem;
    font-weight: bold;
  }
  p {
    margin-bottom: 1rem;
  }
}

.header-text,
.template-text,
.text-block {
  a {
    color: var(--primary);
    text-decoration: underline;
    text-underline-offset: 6px;
    text-decoration-color: var(--primary);
  }
}

.home-projects-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: repeat(2, 246px);
  grid-column-gap: 20px;
  grid-row-gap: 20px;

  .item-1 {
    grid-area: 1 / 9 / 2 / 13;
    border-radius: 1.5rem 0 0 1.5rem;
  }
  .item-2 {
    grid-area: 2 / 9 / 3 / 13;
    border-radius: 1.5rem 0 0 1.5rem;
  }
  .item-3 {
    grid-area: 1 / 1 / 3 / 9;
    border-radius: 0 1.5rem 1.5rem 0;
  }

  @media (max-width: 768px) {
    grid-template-rows: repeat(3, 246px);

    .item-1 {
      grid-area: 1 / 1 / 2 / 13;
      border-radius: 0 1.5rem 1.5rem 0;
    }
    .item-2 {
      grid-area: 2 / 1 / 3 / 13;
    }
    .item-3 {
      grid-area: 3 / 1 / 4 / 13;
    }
  }
}

.text-block-image {
  @media (min-width: 1024px) {
    width: 33%;
  }
  @media (min-width: 1620px) {
    width: calc(33% + 4rem);
  }
  @media (min-width: 2000px) {
    width: calc(33% + 14rem);
  }
  @media (min-width: 2500px) {
    width: calc(33% + 20rem);
  }
  @media (min-width: 2900px) {
    width: calc(33% + 30rem);
  }
}

select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23de631f' d='M7.41 8.58L12 13.17l4.59-4.59L18 10l-6 6l-6-6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-color: white;
  background-position: right 10px center;
  background-size: 24px;
}

.offerte-form {
  input,
  textarea,
  select {
    border: 2px solid var(--secondary);
    padding: 15px 25px;
    border-radius: 18px;
  }
  label {
    display: flex;
    flex-direction: column;
  }

  input,
  textarea,
  select {
    width: calc(50% - 8px);

    @media (max-width: 768px) {
      width: 100%;
    }
  }

  .step-title {
    font-size: 22px;
    display: flex;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1rem;
    white-space: nowrap;

    div {
      width: 100%;
      height: 1px;
      background-color: var(--light-grey);
    }
  }

  .step-1 {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 4rem;

    div div {
      margin-top: 12px;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
  }
  .step-2 {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 4rem;

    label {
      flex-direction: row;
      gap: 2rem;

      @media (max-width: 768px) {
        flex-direction: column;
        gap: 1rem;
      }

      span {
        display: flex;

        span {
          gap: 1.5rem;

          span {
            gap: 0.5rem;
          }
        }

        input {
          width: auto;
          accent-color: var(--secondary);
        }

        .wpcf7-list-item {
          margin: 0;
        }
        .wpcf7-list-item-label {
          display: block;
        }
      }
    }
  }
  .step-3 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    margin-bottom: 4rem;

    @media (max-width: 768px) {
      grid-template-columns: repeat(1, 1fr);
    }

    input {
      width: 100%;
    }

    .custom-upload-field {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      opacity: 0;
      z-index: 2;
      cursor: pointer;
    }

    .custom-upload-wrapper {
      display: flex;
      flex-direction: column-reverse;
    }

    .wpcf7-form-control-wrap {
      margin-top: 1rem;
      position: relative;
      width: 100%;
      border: 2px dashed #ccc;
      border-radius: 8px;
      padding: 40px;
      text-align: center;
      cursor: pointer;
      overflow: hidden;
      transition: border-color 0.3s;

      &::before {
        content: "";
        display: inline-block;
        width: 75px;
        height: 75px;
        --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3.616 20q-.691 0-1.153-.462T2 18.384V7.616q0-.691.463-1.153T3.616 6h2.957l1.85-2h5.193v1h-4.76L7.012 7H3.616q-.27 0-.443.173T3 7.616v10.769q0 .269.173.442t.443.173h14.769q.269 0 .442-.173t.173-.443v-8h1v8q0 .691-.463 1.153T18.385 20zM19 7V5h-2V4h2V2h1v2h2v1h-2v2zm-8 9.73q1.567 0 2.649-1.081T14.731 13t-1.082-2.649T11 9.269t-2.649 1.082T7.269 13t1.082 2.649T11 16.731m0-1q-1.165 0-1.948-.783T8.269 13t.783-1.948T11 10.269t1.948.783t.783 1.948t-.783 1.948t-1.948.783'/%3E%3C/svg%3E");
        background-color: var(--primary);
        -webkit-mask-image: var(--svg);
        mask-image: var(--svg);
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
        -webkit-mask-size: 100% 100%;
        mask-size: 75px 85px;
      }
    }

    .wpcf7-form-control-wrap:hover {
      border-color: var(--primary);
    }

    .custom-upload-text {
      font-size: 18px;
      color: #555;
      pointer-events: none;
      order: 1;
      margin-bottom: 8px;
    }
  }
  .step-4 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    flex-direction: column;
    gap: 1rem;

    @media (max-width: 768px) {
      grid-template-columns: repeat(1, 1fr);
    }

    input,
    textarea {
      width: 100%;
    }

    span:nth-child(4) {
      grid-column: 1;
    }

    input[type="submit"] {
      grid-column: 1;
      background-color: var(--primary);
      color: var(--light);
      border: none;
    }
  }
}

#dakgoot-fields {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  position: relative;

  @media (max-width: 768px) {
    grid-template-columns: 1fr;
  }

  div {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    flex: 1 1 calc(25% - 16px);
    box-sizing: border-box;

    input {
      width: 100%;
    }
  }

  .inactive {
    opacity: 0.2;
    pointer-events: none;
  }
  .active {
    opacity: 1;
    pointer-events: auto;
  }

  #add-dakgoot {
    position: absolute;
    top: 58%;
    left: 0;
    transform: translate(calc(100% * 1), -50%);
    background-color: #d9d9d9;
    color: var(--primary);
    border-radius: 50%;
    font-size: 2rem;
    width: 100px;
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: 0.2s ease;
    z-index: 10;

    @media (max-width: 768px) {
      top: auto;
      left: 50%;
      bottom: 75%;
      transform: translate(-50%, 0);
    }

    &:hover {
      background-color: var(--secondary);
      color: var(--light);
    }
  }
}

.contact-form {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  flex-direction: column;
  gap: 1rem;

  @media (max-width: 768px) {
    grid-template-columns: repeat(1, 1fr);
  }

  input,
  textarea {
    width: 100%;
    border: 2px solid var(--secondary);
    padding: 15px 25px;
    border-radius: 18px;
  }

  span:nth-child(4) {
    grid-column: 1;
  }

  input[type="submit"] {
    grid-column: 1;
    background-color: var(--primary);
    color: var(--light);
    border: none;
  }
}

.usp-slider {
  display: flex;
  justify-content: center;
  width: 100%;
  height: 150px;

  .slider-wrapper {
    overflow: hidden;
    position: relative;
  }

  .items {
    display: flex;
    gap: 4rem;
    height: 100%;

    .item {
      flex: 1;
      display: flex;
      justify-content: center;
      align-items: center;
      color: var(--light);
      font-size: 24px;
      text-transform: uppercase;
      font-family: "Roboto Slab", serif;
      font-weight: bold;
      white-space: nowrap;
    }
  }
}

@keyframes translateinfinite {
  100% {
    transform: translateX(calc(-80px * 12));
  }
}
.usp-slider .slider-wrapper {
  background: var(--secondary);
  &::before,
  &::after {
    content: " ";
    position: absolute;
    z-index: 9;
    width: 180px;
    height: 100%;
  }
  .items {
    width: calc(180px * 24);

    .item {
      width: fit-content;
      animation: translateinfinite 25s linear infinite;
      span.fab {
        font-size: 65px;
      }
    }
  }
}

.youtube {
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 22px;
}

.header-404 a {
  background-color: var(--primary);
  color: var(--light);
  padding: 16px 24px;
  display: block;
  width: fit-content;
  border-top-right-radius: 12px;
  border-bottom-right-radius: 12px;
}

.remove-files-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid red;
  border-radius: 4px;
  width: fit-content;
  padding: 10px 24px;
  font-size: 14px;
  color: #585858;
}
