/* Homepage editorial cards: preserve image presence without sacrificing copy. */
.front-route img {
  opacity: .72;
}

.front-route:hover img {
  opacity: .84;
}

.front-route::after {
  background: linear-gradient(0deg, oklch(.1 0 0 / .88) 0%, oklch(.1 0 0 / .5) 40%, oklch(.1 0 0 / .08) 100%);
}

.front-route--about::after,
.front-route--reviews::after {
  display: none;
}

.front-route--about,
.front-route--reviews {
  isolation: isolate;
}

.front-route h3 {
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.front-hero__portrait span {
  right: 16px;
  left: auto;
  text-align: right;
}

.front-page > .channel-cta {
  padding-inline: clamp(24px, 3vw, 44px);
}

.front-edition {
  grid-template-columns: minmax(0, .84fr) minmax(300px, 1.16fr);
  min-height: 410px;
}

.front-edition > div {
  min-width: 0;
  padding: clamp(22px, 2.2vw, 32px);
}

.front-edition h2 {
  font-size: clamp(1.22rem, 1.65vw, 1.72rem);
  line-height: 1.14;
  overflow-wrap: anywhere;
  hyphens: auto;
  text-wrap: balance;
}

.front-edition p {
  overflow-wrap: anywhere;
  hyphens: auto;
}

.front-edition b {
  margin-top: auto;
  padding-top: 18px;
}

.front-edition--events img {
  opacity: .58;
}

@media (max-width: 1180px) and (min-width: 741px) {
  .front-editions__grid {
    grid-template-columns: 1fr;
  }

  .front-edition {
    grid-template-columns: minmax(0, .84fr) minmax(340px, 1.16fr);
    min-height: 380px;
  }
}

@media (max-width: 740px) {
  .front-page > .channel-cta {
    padding-inline: 24px;
  }

  .front-edition {
    min-height: 0;
  }

  .front-edition h2 {
    font-size: clamp(1.36rem, 6vw, 1.72rem);
  }
}
