.home {
  overflow-x: hidden;
  width: 100%;
}

.home-hero {
  position: relative;
  width: 100%;
}
.banner-wrapper {
  width: 100%;
  height: min(100vh, 770px);
  max-height: 70vw;
  position: relative;
  overflow: hidden;
}
.banner-wrapper img {
  position: relative;
  height: 120%;
  top: -10%;
  width: 100%;
  object-fit: cover;
}
.banner-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, #000000d6, transparent),
              linear-gradient(to top, #00000024 20%, transparent 70%);
  z-index: 1;
}
.banner-content {
  display: flex;
  flex-direction: column-reverse;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  color: white;
  z-index: 1;
}
.banner-content h3 {
  text-transform: uppercase;
  font-size: 20px;
  font-weight: 700;
  line-height: 26px;
  max-width: 280px;
  padding: 47px 54px;
  margin: 0;
  box-sizing: border-box;
}
.banner-content h3 .closer {
  letter-spacing: -0.02em;
}
.banner-content h1 {
  font-size: 100px;
  font-weight: 100;
  letter-spacing: -0.03em;
  line-height: 87%;
  max-width: 800px;
  margin: 0;
  flex: 1;
  padding: 47px 54px 54px 48px;
}
.banner-row {
  border-top: 1px solid #cccccc59;
  display: flex;
  justify-content: space-between;
}
.banner-right {
  display: flex;
  flex-direction: column;
  align-items: center;
  border-left: 1px solid #cccccc59;
  padding: 47px 54px 54px 48px;
}
.banner-right img {
  width: 200px;
}

.banner-right .cta-button {
  font-weight: 300;
  transition: background-color 150ms;
}
.banner-right .cta-button:hover {
  opacity: 1;
  background-color: var(--secondary);
}

@media screen and (max-width: 991px) {
  .banner-content h1 {
    font-size: 50px; 
    padding: 22px;
  }
  .banner-content h3 {
    padding: 22px 22px 12px;
    max-width: 100%;
    font-size: 14px;
  }
  .banner-row {
    flex-direction: column;
  }
  .banner-wrapper {
    height: 720px;
    max-height: 100vh;
  }
  .banner-right {
    align-items: center;
    justify-content: center;
    border-left: none;
    border-top: none;
    padding: 0px 12px 22px;
    flex-direction: row;
    position: relative;
  }

  .banner-right img {
    width: 100px;
    position: absolute;
    transform: translateX(-50%);
    margin-left: -5px;
  }

  .banner-right .cta-button {
    background-color: #B3B3B333;
    padding: 24px !important;
    text-indent: 75px;
    border-radius: 12px;
    padding: 0;
    width: 100%;
    display: inline-block;
    font-size: 16px;
    text-align: center;
  }
  .banner-right .cta-button:focus,
  .banner-right .cta-button:hover {
    background-color: #B3B3B333;
  }
  .banner-wrapper img {
    object-position: 65% 0;
  }
}

.home-claim {
  background-color: var(--worten);
  color: var(--secondary);
}
.grid-top {
  background: var(--dots);
  background-size: 13px 6px;
  padding: 12px;
  border-bottom: solid 1px #002236;
  position: relative;
  height: 70px;
}

.grid-top:after {
  content: " ";
  display: block;
  width: 20%;
  right: 0;
  height: 100%;
  background-color: var(--worten);
  position: absolute;
  border-left: solid 1px #002236;
  top: 0;
}

.grid-top img {
  position: absolute;
  right: calc(20% + 12px);
}

.claim-content {
  max-width: 1220px;
  padding: 110px 24px 140px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  gap: 24px;
}

.claim-content h2 {
  font-size: 52px;
  font-weight: 800;
  letter-spacing: -0.03em;
  max-width: 620px;
  margin: 0;
}

.claim-content p {
  font-size: 28px;
  line-height: 42px;
  letter-spacing: -0.03em;
  max-width: 382px;
  margin: 8px 0;
  font-weight: 300;
}

@media screen and (max-width: 991px) {
  .claim-content {
    flex-direction: column;
    padding-top: 54px;
    padding-bottom: 72px;
  }
  .claim-content h2 {
    font-size: 28px;
  }
  .claim-content p {
    font-size: 18px;
    line-height: 34px;
  }
  .grid-top:after {
    content :none;
  }
}

.worten-claims.swiper {
  padding: 0 21px;
  padding-top: min(500px, 27vw);
  position: relative;
  overflow: visible !important;
  box-sizing: border-box !important;
  max-width: 1440px;
  margin: 0 auto;
}

.worten-claim-back {
  position: absolute;
  width: 154vw;
  top: min(314px, 14vw);
  min-width: 113%;
  left: min(-4vw, 60px);
}
.claim-card {
  position: relative;
  overflow: hidden;
  height: 534px !important;
}
.claim-card img {
  position: relative;
  top: -10%;
  height: 120%;
  min-height: 120%;
  z-index: -1;
  object-fit: cover;
}

.claim-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, #000000, transparent 55%)
}
.claim-card-content {
  position: absolute;
  bottom: 0;
  padding: 30px 30px 30px 50px;
  color: white;
  font-weight: 600;
  font-size: 24px;
  letter-spacing: -0.01em;
  z-index: 1;
  border-top: 1px solid #cccccc59;
  height: 200px;
  display: flex;
  align-items: center;
  box-sizing: border-box;
}
.claim-card-content:before {
  content: " ";
  display: block;
  width: 15px;
  height: 100%;
  background-color: var(--worten);
  z-index: 1;
  position: absolute;
  left: 0;
  top: 0;
}
.claim-card-content p {
  margin: 0;
}
.claim-card-content b {
  color: var(--worten);
}

.claim-pagination {
  margin-top: 32px;
  margin-bottom: 42px;
  --swiper-theme-color: var(--worten);
  display: flex;
  justify-content: center;
  gap: 6px
}

@media screen and (max-width: 991px) {
  .claim-card {
    height: 110vw !important;
    max-height: 530px;
  }
  .claim-card-content {
    font-size: 20px;
    padding: 20px 20px 20px 32px;
  }
  .claim-card-content p {
    font-size: 18px;
  }
}

.solutions {
  background: linear-gradient(to bottom, #002236, #00131E);
  color: #5B808F;
}
.solution-header {
  max-width: 1320px;
  padding: 0 24px;
  margin: 0 auto;
  display: flex;
  gap: 24px;
  position: relative;
  align-items: stretch;
}
.solution-header:before,.solution-header:after {
  content: " ";
  display: block;
  width: 200vw;
  border-top: solid 1px #cccccc52;
  position: absolute;
  left: -50vw;
  right: 0;
  top: 0;
}
.solution-header:after {
  top: 100%;
}
.solution-header h2 {
  font-size: 80px;
  font-weight: 800;
  line-height: 75px;
  letter-spacing: -0.03em;
  margin: 0;
  flex: 1;
  padding-top: 101px;
  padding-bottom: 100px;
}
.solutions-header-right {
  border-left: solid 1px #cccccc52;
  display: flex;
  align-items: center;
  padding-left: 64px;
}
.solutions-header-right p {
  max-width: 276px;
  font-size: 22px;
  line-height: 33px;
  letter-spacing: -0.01em;
  margin: 0;
  font-weight: 300;
  width: 100%;
  text-align: right;
}
.solutions-content {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 3fr 2fr 3fr;
  padding: 92px 24px;
  justify-content: space-between;
  font-weight: 200;
  letter-spacing: -0.01em;
}
.solutions-text {
  font-size: 32px;
  line-height: 50px;
  max-width: 406px;
  grid-column: 1 / 2;
}
.solutions-text p {
  margin: 0;
}
.solutions-list {
  padding: 0;
  list-style: none;
  color: white;
  font-size: 22px;
  color: white;
  min-width: 341px;
  position: relative;
  grid-column: 3 / 4;
}
.solutions-list li {
  padding-bottom: 1em;
  display: block;
  cursor: pointer;
  transition: transform 300ms;
  position: relative;
  padding-right: 42px;
}
.solutions-list li:before {
  content: " ";
  display: inline-block;
  position: absolute;
  width: 30px;
  border-top: solid 1px var(--worten);
  margin-left: -42px;
  top: 0.75em;
  width: 0;
  transition: width 300ms;
}
.solutions-list li.active {
  color: var(--worten);
  transform: translateX(42px);
  padding-left: 42px;
  margin-left: -42px;
}

.solutions-list li.active::before {
  width: 30px;
}

#solutions-image, #industries-image {
  object-fit: cover;
  position: absolute;
  right: calc(100% + 24px);
  top: 0;
  mask-image: var(--mask);
  mask-size: 100% 100%;
  width: 400px !important;
  max-width: 400px !important;
  transition: opacity 300ms, transform 300ms;
}

#industries-image {
  right: calc(100% + 42px);
}

.solutions .target-bottom-image {
  mask-image: var(--mask);
  mask-size: 100% 100%;
  transition: opacity 300ms, transform 300ms;
  width: 420px !important;
  max-width: 100% !important;
  margin-bottom: 24px;
  object-fit: cover;
}

#solutions-image.change, #industries-image.change,
.solutions .target-bottom-image.change {
  opacity: 0;
  transform: translateY(10px);
}

@media screen and (max-width: 1260px) {
  .solutions-content {
    grid-template-columns: 1fr 1fr 1fr;
  }
  #solutions-image, #industries-image {
    width: 330px !important;
  }
}

@media screen and (max-width: 991px) {
  .solution-header {
    flex-direction: column;
    gap: 0px;
  }
  .solution-header h2 {
    font-size: 42px;
    padding-top: 60px;
    line-height: 48px;
    padding-bottom: 18px;
  }
  .solutions-header-right {
    border-left: 0;
    padding-bottom: 42px;
    padding-left: 0;
  }
  .solutions-content {
    display: flex;
    padding-top: 42px;
    flex-direction: column;
    padding-bottom: 32px;
  }
  .solutions-list {
    margin-left: 0;
    margin-top: 32px;
  }

  .solutions-header-right p {
    font-size: 18px;
    line-height: 24px;
    text-align: left;
  }


  .solutions-text {
    font-size: 28px;
    line-height: 40px;
  }

  .solutions-list li {
    font-size: 18px;
  }
  .solutions .target-bottom-image {
    width: 100% !important;
    aspect-ratio: 4 / 3;
  }

}

.catalog-title {
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 22px;
  display: flex;
  align-items: center;
  position: relative;
  margin-bottom: -48px;
  z-index: 0;
}

.catalog-title h2 {
  color: var(--worten);
  font-size: 80px;
  font-weight: 700;
  line-height: 75px;
  letter-spacing: -0.03em;
  flex: 8;
  padding: 32px 0;
}
.catalog-title > div {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  font-size: 22px;
  font-weight: 200;
  line-height: 33px;
  padding-left: 24px;
  letter-spacing: -0.01em;
  align-self: stretch;
  border-left: solid 1px #cccccc52;
  justify-content: center;
  flex: 3;
  text-align: right;
}

.catalog-title a {
  color: var(--worten);
  text-decoration: underline;
}
.catalog-title a:hover, .catalog-title a:visited {
  color: var(--worten);
  opacity: 0.8;
}

.catalog-title p {
  margin: 0;

}


.catalog-title:before,.catalog-title:after {
  content: " ";
  display: block;
  width: 200vw;
  border-top: solid 1px #cccccc52;
  position: absolute;
  left: -50vw;
  right: 0;
  top: 0;
  z-index: -1;
}
.catalog-title:after {
  top: 100%;
}

@media screen and (max-width: 991px) {
  .catalog-title {
    flex-direction: column;
    margin-bottom: 64px;
    align-items: flex-start;
  }
  .catalog-title:after { 
    content: none;
  }
  .catalog-title h2 {
    margin-bottom: 0;
    margin-top: 12px;
    font-size: 54px;
    line-height: 62px;
    padding-bottom: 14px;
  }
  .catalog-title > div {
    align-items: flex-start;
    text-align: right;
    padding: 0;
    font-size: 18px;
    line-height: 26px;
  }
}

.sustainable {
  height: 40vw;
  max-height: 660px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  width: 100%;
  overflow: hidden;
}

.sustainable h2 {
  max-width: 1020px;
  font-size: 37px;
  font-weight: 700;
  letter-spacing: -0.01em;
  text-align: center;
  position: relative;
  z-index: 1;
  color: white;
}

.sustainable-background {
  position: absolute;
  top: -15%;
  height: 130%;
  width: 100%;
  left: 0;
  object-fit: cover;
}

@media (max-width: 991px) {
 
  .sustainable {
    height: 90vw;
    max-height: 660px;
  }
  .sustainable h2 {
    font-size: 22px;
  }

}

@media (max-width: 991px) {
 
  .sustainable {
    height: 120vw;
    max-height: 660px;
  }
  .sustainable h2 {
    font-size: 18px;
  }
}

.catalog-cta-container {
  overflow: hidden;
  display: block;
}

.catalog-grid.catalog-cta {
  max-width: calc(100% + 275px);
  grid-auto-rows: 337px;
  margin-left: -137px;
  margin-right: -137px;
  height: 397px;
  pointer-events: none;
  user-select: none;
}

/* 
.catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(275px, 1fr));
}*/

@media screen and (max-width: 730px) {
  .catalog-grid.catalog-cta {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    grid-auto-rows: 227px;
    height: 250px;
  }

  .catalog-grid.catalog-cta .category-card {
    grid-template-rows: 150px auto;

  }
  .catalog-grid.catalog-cta .category-card-label p {
    font-size: 12px;
    line-height: 14px;
  }
} 

.catalog-carrousel .inner {
  animation: carrousel 30s linear 0s infinite;
  width: 200vw;
  min-width: 200vw;
  max-width: 200vw !important;
  display: flex;
}

.catalog-carrousel .catalog-grid {
  width: 100vw;
  flex: 1;
  margin: 0 !important;
  padding-left: 0 !important;
}

@keyframes carrousel {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-50%);
  }
}


.brands-carrousel .swiper-wrapper {
  width: fit-content;
  /* grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)); */
}

.brands-carrousel .swiper-slide {
  width: 420px;
}

.brands-carrousel .swiper-wrapper {
  animation: carrousel 80s linear 0s infinite;
} 


.brands-carrousel:hover .swiper-wrapper {
  animation-play-state: paused;
} 

.brands-carrousel .swiper-slide:hover {
  background-color: transparent !important;
}