.eexp { background: #FEFAF8; font-family: var(--env-font-body); color: var(--env-text-body); padding: 96px 0; }

.eexp__inner { max-width: 1140px; margin: 0 auto; padding: 0 20px; }

.eexp__head { text-align: center; }

.eexp__eyebrow {
  margin: 0 0 12px;
  font-family: var(--env-font-heading);
  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--env-text-link);
}

.eexp__heading {
  margin: 0 auto 14px;
  font-family: var(--env-font-heading);
  font-weight: 400;
  font-size: 40px;
  line-height: 45px;
  letter-spacing: -0.03em;
  color: var(--env-text-heading);
  max-width: 20ch;
}

.eexp__intro { margin: 0 auto; font-size: 18px; line-height: 26px; letter-spacing: -0.01em; max-width: 50ch; text-align: center; }

/* Tidslinjen: fyra stopp på en linje som fylls i brand-rött */
.eexp__timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(20px, 3vw, 40px);
  margin: 56px 0 0;
  padding: 0;
  list-style: none;
}
.eexp__line {
  position: absolute;
  top: 7px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--env-border-subtle);
  overflow: hidden;
}
.eexp__line-fill {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--env-action-primary);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0.3s;
}
.eexp.is-in .eexp__line-fill { transform: scaleX(1); }

.eexp__stop { position: relative; padding-top: 28px; }
.eexp__dot {
  position: absolute;
  top: 0;
  left: 0;
  width: 16px;
  height: 16px;
  background: var(--env-action-primary);
  border: 3px solid #FEFAF8;
  border-radius: 999px;
  box-shadow: 0 0 0 1px var(--env-action-primary);
}
.eexp__week {
  display: block;
  margin-bottom: 8px;
  font-family: var(--env-font-heading);
  font-weight: 400;
  font-size: 16px;
  line-height: 20px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--env-text-heading);
}
.eexp__text { margin: 0; font-size: 16px; line-height: 24px; letter-spacing: -0.01em; max-width: 30ch; }

.eexp__punchline {
  margin: 56px auto 0;
  font-family: var(--env-font-heading);
  font-weight: 400;
  font-size: 28px;
  line-height: 33px;
  letter-spacing: -0.03em;
  color: var(--env-text-heading);
  text-align: center;
  max-width: 24ch;
}

.eexp__reveal { opacity: 0; transform: translateY(16px); transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1), transform 0.6s cubic-bezier(0.22, 1, 0.36, 1); transition-delay: var(--d, 0ms); }
.eexp.is-in .eexp__reveal { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .eexp__reveal, .eexp__line-fill { opacity: 1; transform: none; transition: none; }
}

@media screen and (max-width: 989px) {
  .eexp { padding: 56px 0; }
  .eexp__heading { font-size: 32px; line-height: 36px; }
  .eexp__intro { font-size: 16px; line-height: 24px; }
  /* Vertikal tidslinje: linjen till vänster, stoppen under varandra */
  .eexp__timeline { grid-template-columns: 1fr; gap: 26px; margin-top: 36px; }
  .eexp__line { top: 8px; bottom: 8px; left: 7px; right: auto; width: 2px; height: auto; }
  .eexp__line-fill { transform: scaleY(0); transform-origin: top center; width: 100%; height: 100%; }
  .eexp.is-in .eexp__line-fill { transform: scaleY(1); }
  .eexp__stop { padding-top: 0; padding-left: 36px; }
  .eexp__dot { top: 2px; left: 0; }
  .eexp__text { max-width: none; }
  .eexp__punchline { margin-top: 40px; font-size: 22px; line-height: 28px; }
}
