/* ==========================================================================
   Reclameworks · over
   Titel die woord voor woord oplicht, fotowissel links en tekst rechts.
   De achtergrond kleurt tijdens het scrollen van koolzwart naar grafiet.
   ========================================================================== */

.rw-over {
  --sl: clamp(0px, 6vw, 220px);
  --off: var(--gut);
  position: relative;
  margin-top: calc(var(--sl) * -1);
  padding: clamp(88px, 9vw, 140px) var(--off);
  overflow: hidden;
  background: var(--rw-koolzwart);
  clip-path: polygon(0 var(--sl), 100% 0, 100% 100%, 0 100%);
}

.rw-over > .rw-raster {
  opacity: .5;
}

.rw-over > *:not(.rw-raster) {
  position: relative;
  z-index: 2;
}

.rw-over-eyebrow {
  color: var(--rw-diepblauw);
}

/* Titel: rw-over.js knipt hem op in losse woorden die oplichten */
.rw-over-title {
  max-width: 15em;
  margin: 28px 0 0;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(40px, 6.2vw, 96px);
  line-height: .95;
  letter-spacing: -.05em;
  text-wrap: balance;
}

.rw-over-title span {
  color: #555552;
  transition: color .4s var(--ease-out);
}

.rw-over-title span.is-lit {
  color: #fff;
}

.rw-over-title span.is-lit.rw-over-title-accent {
  color: var(--rw-diepblauw);
}

.rw-over-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: stretch;
  gap: clamp(40px, 6vw, 110px);
  margin: clamp(64px, 7vw, 110px) 0 0 calc(var(--off) * -1);
}

/* --------------------------------------------------------------------------
   Fotowissel
   -------------------------------------------------------------------------- */

.rw-over-photos {
  position: relative;
  min-height: clamp(480px, 52vw, 860px);
  margin: 0;
  overflow: hidden;
  background: #1d1d1d;
  clip-path: polygon(0 0, calc(100% - 96px) 0, 100% 96px, 100% 100%, 0 100%);
}

.rw-over-photos img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.1);
  transition: opacity 1.2s var(--ease-out), transform 6s linear;
}

.rw-over-photos img.is-active {
  opacity: 1;
  transform: scale(1);
}

.rw-over-dots {
  position: absolute;
  z-index: 2;
  left: calc(var(--off) + 4px);
  bottom: 28px;
  display: flex;
  gap: 8px;
}

.rw-over-dots i {
  position: relative;
  width: 36px;
  height: 2px;
  overflow: hidden;
  background: rgba(255, 255, 255, .3);
}

.rw-over-dots i b {
  position: absolute;
  inset: 0;
  background: #fff;
  transform: scaleX(0);
  transform-origin: left;
}

.rw-over-dots i.is-active b {
  animation: rw-progress 5s linear forwards;
}

/* --------------------------------------------------------------------------
   Tekst en lijst
   -------------------------------------------------------------------------- */

.rw-over-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.rw-over-lead {
  margin: 0;
  color: #fff;
  font-weight: 500;
  font-size: clamp(19px, 1.7vw, 24px);
  line-height: 1.45;
  letter-spacing: -.02em;
}

.rw-over-text {
  margin: 24px 0 0;
  color: var(--rw-zacht-grijs);
  font-size: clamp(15.5px, 1.25vw, 18px);
  line-height: 1.68;
}

.rw-over-subtitle {
  margin: clamp(40px, 4vw, 64px) 0 14px;
  color: var(--rw-zacht-grijs);
}

.rw-over-list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px dotted #5a5a58;
}

.rw-over-list li {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px dotted #5a5a58;
  color: var(--rw-warm-wit);
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(20px, 1.7vw, 26px);
  line-height: 1.1;
  letter-spacing: -.02em;
  transition: color var(--dur-fast), padding var(--dur-base) var(--ease-out);
}

.rw-over-list li b {
  color: var(--rw-diepblauw);
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: .12em;
}

.rw-over-list li i {
  color: var(--rw-diepblauw);
  font-style: normal;
  font-family: var(--font-mono);
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity var(--dur-fast), transform var(--dur-base) var(--ease-out);
}

.rw-over-list li:hover {
  padding-left: 10px;
  color: #fff;
}

.rw-over-list li:hover i {
  opacity: 1;
  transform: none;
}

.rw-over-cta {
  align-self: flex-start;
  margin-top: 40px;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (min-width: 1101px) {
  .rw-over {
    padding-top: 10.13vw;
    padding-bottom: 5.94vw;
  }

  .rw-over-title {
    font-size: 5vw;
  }

  .rw-over-list li {
    font-size: 1.25vw;
  }
}

/* Lage laptopschermen */
@media (min-width: 1101px) and (max-height: 950px) {
  .rw-over-title {
    font-size: min(5vw, 8vh);
  }

  .rw-over-photos {
    min-height: min(clamp(480px, 52vw, 860px), 72vh);
  }
}

@media (max-width: 900px) {
  .rw-over-grid {
    grid-template-columns: 1fr;
    margin-right: calc(var(--off) * -1);
  }

  .rw-over-photos {
    min-height: 110vw;
  }

  .rw-over-content {
    padding: 0 var(--off);
  }
}

@media (max-width: 700px) {
  .rw-over {
    padding-bottom: 15.3vw;
  }

  .rw-over-lead,
  .rw-over-text {
    font-size: 18px;
    line-height: 1.6;
  }

  .rw-over-list li {
    font-size: 3.6vw;
  }
}
