.header-section {
  position: relative;
}

.header-section-text-wrapper {
  grid-column: 3 / span 10;
  grid-row: 1 / span 1;
  padding-top: var(--s-xl);
  padding-bottom: var(--s-lg);
  min-height: 100vh;
  min-height: 100svh;
  position: relative;
  z-index: 1;
}

.header-section-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  color: var(--white);
  border-left: 5px solid currentColor;
  padding-left: 2em;
}

.header-section.variant-2 .header-section-text {
  padding-left: calc(
    var(--grid-margin) + var(--grid-col-width) + var(--grid-gap) * 2
  );
  padding-right: var(--grid-col-width);
  border-left: none;
  align-self: center;
}

.header-section-headline {
  font-size: max(2rem, 3.75vw);
  text-transform: uppercase;
  line-height: 0.95;
  text-wrap: balance;
  margin: 0;
  margin-bottom: var(--s-xs);
  padding-top: 0.1em;
  max-width: min(100%, 25ch);
}

body:not(.single-post) .with-subline .header-section-headline {
  font-size: max(1.875rem, 5vw);
}

.header-section-subline {
  font-size: max(1.0625rem, 1.5625vw);
  font-style: italic;
}

.header-section-description {
  max-width: min(100%, 61ch);
}

.header-section > img,
.header-section > picture {
  grid-column: 1 / span 14;
  grid-row: 1 / span 1;
  width: 100%;
  height: 100%;
  position: absolute;
}

.header-section img,
.header-section picture {
  object-fit: cover;
}

.header-section-btn {
  display: flex;
  justify-self: flex-start;
  margin-top: var(--s-sm);
}

.header-section::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 0.4) 0%,
    rgba(0, 0, 0, 0) 100%
  );
  z-index: 1;
}

.header-section.variant-2::before {
  display: none;
}

.header-section::after {
  content: "";
  background-color: var(--red);
  position: absolute;
  grid-column: 1 / span 14;
  grid-row: 1 / span 1;
  bottom: 0;
  width: 100%;
  height: var(--s-md);
  z-index: 1;
}

.header-section.variant-2::after {
  background-color: var(--blue);
}

.header-section.variant-2.swapped-colors::after {
  background-color: var(--red);
}

.header-section-small-logo {
  position: absolute;
  grid-column: 1 / span 14;
  grid-row: 1 / span 1;
  bottom: calc(var(--s-md) / 2);
  justify-self: center;
  z-index: 2;
}

.header-section-lower-section {
  grid-column: 1 / span 14;
  padding-top: var(--s-sm);
  padding-bottom: var(--s-lg);
  position: relative;
}

.header-section-lower-section-headline {
  margin: 0;
  grid-column: 3 / span 10;
  text-align: center;
}

.header-section-lower-section.with-description
  .header-section-lower-section-headline {
  grid-column: 3 / span 4;
  text-align: left;
}

.header-section-lower-section-description {
  grid-column: 8 / span 5;
}

.header-section-lower-section-description li {
  break-inside: avoid;
}

.header-section.variant-2 .header-section-text-wrapper {
  grid-column: 1 / span 7;
  margin-right: calc(-1 * (1px + var(--grid-gap) / 2));
  background-color: var(--red);
  padding-top: var(--s-lg);
  display: grid;
}

.header-section.variant-2.swapped-colors .header-section-text-wrapper {
  background-color: var(--blue);
}

.header-section.variant-2 > img,
.header-section.variant-2 > picture {
  grid-column: 8 / span 7;
  margin-left: calc(-1 * var(--grid-gap) / 2);
  width: calc(100% + var(--grid-gap) / 2);
}

.header-section-lower-section.with-description::after {
  content: "";
  position: absolute;
  background-color: #ffffff14;
  mask-image: url("../../img/logo-small.svg");
  mask-repeat: no-repeat;
  mask-size: contain;
  bottom: 0;
  left: calc(var(--grid-margin) + var(--grid-gap));
  aspect-ratio: 1;
  width: calc(var(--grid-col-width) * 4 + var(--grid-gap) * 3);
  transform: translateY(50%);
  pointer-events: none;
}

.header-section-lower-section-accordion-item .accordion-title {
  padding: 1em;
  border: 2px solid currentColor;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header-section-lower-section-accordion-item .accordion-title::after {
  content: "";
  height: 0.75em;
  aspect-ratio: 263/150;
  mask-image: url("../../img/chevron-down.svg");
  mask-repeat: no-repeat;
  mask-size: contain;
  background-color: currentColor;
}

.header-section-lower-section-accordion-item.active .accordion-title::after {
  transform: rotate(180deg);
}

.header-section-lower-section-accordion-item .accordion-content {
  border: 2px solid currentColor;
  border-top: none;
  padding: 1.5em 1em;
}

.header-section-lower-section-accordion-item .accordion-content a {
  color: var(--white);
}

.header-section-lower-section-accordion-item .accordion-content a:hover {
  color: var(--yellow);
}

.header-section-lower-section-accordion-item ol {
  margin: 0;
  padding-left: 1em;
}

.header-section-lower-section.with-description.two-cols::after {
  display: none;
}

.header-section-lower-section.with-description.two-cols
  .header-section-lower-section-headline {
  grid-column: 3 / span 10;
  margin-bottom: var(--s-sm);
}

.header-section-lower-section.two-cols
  .header-section-lower-section-description {
  grid-column: 3 / span 10;
}

.header-section-lower-section.two-cols
  .header-section-lower-section-description
  ul {
  column-count: 2;
}

.header-section-lower-section-buttons {
  grid-column: 3 / span 10;
  display: flex;
  gap: 1em;
  margin-top: var(--s-sm);
}

@media (max-width: 1199.98px) {
  .header-section-text-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: center;
    grid-column: 2 / span 12;
  }

  .header-section::before {
    background: linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.2) 0%,
      rgba(0, 0, 0, 0.3) 50%,
      rgba(0, 0, 0, 0) 100%
    );
  }

  .header-section-text {
    padding-left: 1em;
  }

  .header-section.variant-2 .header-section-text {
    padding-left: var(--grid-gap);
  }

  .header-section-lower-section-headline {
    grid-column: 2 / span 12;
  }

  .header-section-lower-section.with-description.two-cols
    .header-section-lower-section-headline,
  .header-section-lower-section.two-cols
    .header-section-lower-section-description,
  .header-section-lower-section-buttons {
    grid-column: 2 / span 12;
  }
}

@media (max-width: 991.98px) {
  .header-section.variant-2 .header-section-text-wrapper {
    grid-column: 1 / span 14;
    grid-row: unset;
    margin-top: 50vh;
    min-height: unset;
    text-align: center;
    padding-top: var(--s-sm);
    margin-right: 0;
    margin-bottom: var(--s-sm);
  }

  .header-section.variant-2 > img,
  .header-section.variant-2 > picture {
    grid-column: 1 / span 14;
    margin-left: 0;
    grid-row: unset;
    width: 100%;
    height: 50vh;
  }

  .header-section.variant-2 .header-section-text {
    padding-right: var(--grid-gap);
    align-items: center;
  }

  .header-section-description {
    max-width: min(100%, 80ch);
  }

  .header-section-lower-section.with-description
    .header-section-lower-section-headline {
    grid-column: 2 / span 5;
  }

  .header-section-lower-section-description {
    grid-column: 7 / span 7;
  }
}

@media (max-width: 767.98px) {
  .header-section-lower-section.with-description
    .header-section-lower-section-headline,
  .header-section-lower-section-description {
    grid-column: 2 / span 12;
  }

  .header-section-lower-section-description {
    margin-top: var(--s-sm);
  }

  .header-section-lower-section.with-description::after {
    width: 50%;
    right: 50%;
    left: unset;
    transform: translate(50%, 50%);
  }

  .header-section-lower-section {
    padding-top: 0;
    padding-bottom: var(--s-sm);
  }

  .header-section-lower-section.two-cols
    .header-section-lower-section-description
    ul {
    column-count: unset;
  }
}
