.home-page { overflow-x: hidden; background: #fff; }
.home-page .cookie-consent { display: none; }
.section-shell { width: 100%; margin: 0; }
.text-link { display: inline-flex; align-items: center; gap: .3125rem; color: #e3540b; font-size: .875rem; font-weight: 400; }
.text-link b { border: 0; font-size: 1.4375rem; font-weight: 400; line-height: 1; }

.carousel { position: relative; overflow: hidden; }
.carousel__viewport { overflow: hidden; }
.carousel__track { position: relative; min-height: inherit; }
.carousel__slide { position: absolute; inset: 0; z-index: 0; opacity: 0; pointer-events: none; visibility: hidden; transition: opacity .65s ease, visibility .65s ease; }
.carousel__slide.is-active { position: relative; z-index: 1; opacity: 1; pointer-events: auto; visibility: visible; }
.carousel__arrow { position: absolute; z-index: 15; top: 50%; width: 4rem; height: 4rem; display: grid; place-items: center; padding: 0 0 .25rem; color: #fff; background: transparent; border: .0625rem dashed rgb(255 255 255 / 78%); border-radius: 50%; transform: translateY(-50%); cursor: pointer; font: 300 2.4rem/1 Arial, sans-serif; transition: color .25s ease, border-color .25s ease; }
.carousel__arrow:hover, .carousel__arrow:focus-visible { color: #e3540b; border-color: #e3540b; outline: 0; }
.carousel__arrow--prev { left: 5.5rem; }
.carousel__arrow--next { right: 5.5rem; }
.carousel__dots { position: absolute; z-index: 12; bottom: 1.5rem; left: 50%; display: flex; gap: .625rem; transform: translateX(-50%); }
.carousel__dots button { width: 3.75rem; height: .25rem; padding: 0; background: #707070; border: 0; border-radius: .125rem; opacity: 1; cursor: pointer; transition: background .25s ease; }
.carousel__dots button[aria-selected="true"] { background: #e3540b; }

.hero-carousel { z-index: 2; width: 100%; min-height: 25rem; overflow: visible; aspect-ratio: 1920 / 800; background: #fff; }
.hero-carousel .carousel__viewport { box-sizing: content-box; height: 100%; padding-top: 70px; overflow: hidden; }
.hero-carousel .carousel__track, .hero-slide, .hero-slide__link, .hero-slide picture { height: 100%; display: block; }
.hero-slide__link { position: relative; }
.hero-slide img { width: 100%; height: 100%; display: block; object-fit: cover; }
.hero-slide__content { position: absolute; z-index: 2; top: 50%; left: 12%; width: min(760px, 76%); color: #f7f7f7; transform: translateY(-50%); text-align: left; text-shadow: 0 2px 12px rgb(0 0 0 / 28%); }
.hero-slide__content.is-left, .hero-slide__content.is-center, .hero-slide__content.is-right { right: auto; left: 12%; text-align: left; transform: translateY(-50%); }
.hero-slide__content.theme-dark { color: #111; text-shadow: 0 2px 12px rgb(255 255 255 / 45%); }
.hero-slide__content h2 { margin: 0 0 .75rem; font-size: 2.5rem; font-weight: 500; line-height: 1.2; }
.hero-slide__content p { margin: 0 0 1.25rem; color: #b0b0b0; font-size: 1rem; font-weight: 200; line-height: 1.4; }
.hero-carousel .carousel__dots { bottom: 4.9375rem; }
.hero-carousel .carousel__dots button { width: 1rem; height: 1rem; background: transparent; border: .0625rem dotted rgb(255 255 255 / 70%); border-radius: 50%; }
.hero-carousel .carousel__dots button[aria-selected="true"] { border-color: #fff; box-shadow: inset 0 0 0 .28rem transparent; }

.featured-products { position: relative; box-sizing: border-box; padding: 7% 10%; overflow: hidden; background: #f5f5f5; }
.featured-products__grid { width: 100%; display: grid; grid-template-columns: 3fr 2fr; grid-template-rows: repeat(2, 1fr); gap: 3.125rem; aspect-ratio: 1.4776; }
.featured-card { position: relative; min-height: 0; overflow: hidden; background: #fff; }
.featured-card--tall { grid-column: 2; grid-row: 1 / span 2; }
.featured-card > a, .featured-card picture, .featured-card img { width: 100%; height: 100%; display: block; }
.featured-card__copy { position: absolute; z-index: 2; top: 3vw; left: clamp(1.875rem, 3vw, 5.5625rem); width: 50%; max-width: none; }
.featured-card--tall .featured-card__copy { width: auto; }
.featured-card__copy h3 { margin: 0; color: #000; font-size: 1.875rem; font-weight: 400; line-height: 3.3125rem; }
.featured-card__copy p { margin: 0; color: #000; font-size: 1rem; font-weight: 300; line-height: 1.625rem; white-space: pre-wrap; }
.featured-card__copy .text-link { margin-top: .625rem; }
.featured-card img { transition: transform 1s ease; }
.featured-card:hover img { transform: scale(1.03); }

.new-products { position: relative; box-sizing: border-box; width: 100%; padding: 7vw; background: #fafafa; }
.new-products > h2 { display: none; }
.new-products__carousel, .new-products__carousel .carousel__viewport, .new-products__carousel .carousel__track { width: 100%; }
.new-product-slide { width: 100%; display: block; }
.new-product-slide > a, .new-product-slide:not(:has(> a)) { width: 100%; display: grid; grid-template-columns: 60% 40%; align-items: stretch; }
.new-product-slide__copy { position: relative; z-index: 2; align-self: start; margin-top: 11.9375rem; padding-right: 7.125rem; text-align: right; }
.new-product-slide__copy h3 { margin: 0 0 1.875rem; color: #000; font-size: 2.8125rem; font-weight: 400; line-height: 1; }
.new-product-slide__copy p { margin: 0; color: #000; font-size: 1.5rem; font-weight: 200; line-height: 3.315rem; }
.new-product-slide__copy .text-link { justify-content: flex-end; margin-top: 4.3125rem; font-size: 1.125rem; font-weight: 300; }
.new-product-slide picture, .new-product-slide img { width: 100%; height: auto; display: block; }
.new-products .carousel__arrow { top: auto; bottom: 0; width: 2.75rem; height: 2.75rem; padding: 0 0 .16rem; color: #ccc; background: transparent; border: .0625rem solid #ddd; font-size: 1.8rem; transform: none; }
.new-products .carousel__arrow:hover { color: #e3540b; border-color: #e3540b; }
.new-products .carousel__arrow--prev { right: calc(40% + 10rem); left: auto; }
.new-products .carousel__arrow--next { right: calc(40% + 6.5625rem); left: auto; }
.new-products .carousel__dots { top: 50%; bottom: auto; left: 30%; flex-direction: column; gap: .8125rem; transform: translate(-50%, -50%); }
.new-products .carousel__dots button { width: .125rem; height: 1.25rem; background: #707070; border-radius: 0; }
.new-products .carousel__dots button[aria-selected="true"] { background: #e3540b; }

.case-carousel { box-sizing: border-box; width: 100%; padding: 7vw; overflow: hidden; background: rgb(238 238 238 / 93%); }
.case-carousel > .carousel, .case-carousel .carousel__viewport, .case-carousel .carousel__track, .case-slide, .case-slide > a, .case-slide picture { width: 100%; display: block; }
.case-slide > a { position: relative; }
.case-slide img { width: 100%; height: auto; display: block; object-fit: fill; }
.case-slide__more { position: absolute; z-index: 2; right: 0; bottom: 0; min-width: 5.9375rem; padding: .625rem 1.5rem; color: #fff; background: rgb(227 84 11 / 85%); font-size: .875rem; line-height: 1; text-align: center; }
.case-slide__more b { margin-left: .25rem; font-size: 1rem; font-weight: 400; }
.case-carousel .carousel__arrow--prev { left: 5rem; }
.case-carousel .carousel__arrow--next { right: 5rem; }
.case-carousel .carousel__dots { display: none; }

@media (max-width: 1400px) and (min-width: 768px) {
  .new-product-slide__copy { margin-top: 6.25rem; }
}

@media (min-width: 768px) {
  .new-product-slide img { width: 99.74%; margin-left: .38%; }
}

@media (min-width: 1360px) and (max-width: 1500px) {
  .case-carousel > .carousel { width: calc(100% + 7px); }
}

@media (min-width: 768px) and (max-width: 840px) {
  .featured-products__grid { aspect-ratio: 1.45; }
  .hero-carousel .carousel__viewport,
  .hero-carousel .carousel__track,
  .hero-slide,
  .hero-slide__link,
  .hero-slide picture { height: auto; }
  .hero-slide img { height: auto; }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .featured-card__copy h3 { font-size: 1.25rem; line-height: 1.25rem; }
  .featured-card__copy p { font-size: .75rem; }
  .new-products, .case-carousel { padding: 1.875rem; }
  .new-product-slide__copy { margin-top: 3.125rem; padding-right: 3rem; }
  .new-product-slide__copy h3 { margin-bottom: 0; font-size: 1.125rem; line-height: 1.25rem; }
  .new-product-slide__copy p { font-size: 1.25rem; line-height: 2.5rem; }
  .new-product-slide__copy .text-link { margin-top: .3125rem; font-size: .75rem; }
}

@media (max-width: 767px) {
  .carousel__arrow { display: none; }
  .hero-carousel { box-sizing: border-box; min-height: 0; max-height: 100vh; padding-top: 6.25rem; overflow: hidden; aspect-ratio: 9 / 16; }
  .hero-carousel .carousel__viewport { box-sizing: border-box; height: 100%; padding: 0; }
  .hero-carousel .carousel__track, .hero-slide, .hero-slide__link, .hero-slide picture { height: 100%; }
  .hero-slide picture { margin-top: .75rem; }
  .hero-slide img { height: 100%; object-fit: cover; }
  .hero-slide__content, .hero-slide__content.is-left, .hero-slide__content.is-center, .hero-slide__content.is-right { top: 9.375rem; right: auto; bottom: auto; left: 50%; width: 90%; transform: translateX(-50%); text-align: center; }
  .hero-slide__content h2 { margin-bottom: .625rem; font-size: 1.5rem; white-space: nowrap; }
  .hero-slide__content p { margin-bottom: .625rem; color: #f7f7f7; font-size: 1.125rem; }
  .hero-carousel .carousel__dots { bottom: 3.75rem; gap: .625rem; }
  .hero-carousel .carousel__dots button { width: 1.875rem; height: .125rem; background: #707070; border: 0; border-radius: .125rem; }
  .hero-carousel .carousel__dots button[aria-selected="true"] { background: #e3540b; }

  .featured-products { min-height: auto; padding: 5% 4%; }
  .featured-products__grid { display: grid; grid-template-columns: 1fr; grid-template-rows: none; gap: 1rem; aspect-ratio: auto; }
  .featured-card, .featured-card--tall { min-height: 0; grid-column: auto; grid-row: auto; aspect-ratio: 622 / 240; }
  .featured-card__copy, .featured-card--tall .featured-card__copy { top: 0; left: 0; width: 61%; height: 100%; padding: 1rem; display: flex; justify-content: center; flex-direction: column; }
  .featured-card__copy h3 { font-size: 1rem; line-height: 1.375rem; }
  .featured-card__copy p { font-size: .75rem; line-height: 1.125rem; }
  .featured-card__copy .text-link { margin-top: .625rem; font-size: .75rem; }
  .featured-card__copy .text-link b { font-size: 1.125rem; }

  .new-products { padding: 0 0 1.875rem; }
  .new-product-slide > a, .new-product-slide:not(:has(> a)) { position: relative; display: block; }
  .new-product-slide__copy { position: absolute; z-index: 3; top: 15%; left: 50%; width: max-content; margin: 0; padding: 0; transform: translate(-50%, calc(-50% - .5rem)); text-align: center; }
  .new-product-slide__copy h3 { margin: 0; font-size: 1.875rem; font-weight: 500; line-height: 1.25; }
  .new-product-slide__copy p { display: none; }
  .new-product-slide__copy .text-link { justify-content: center; margin-top: .5rem; font-size: 1.375rem; }
  .new-product-slide__copy .text-link b { display: none; }
  .new-products .carousel__dots { top: auto; bottom: 0; left: 50%; display: flex; flex-direction: row; gap: .625rem; transform: translateX(-50%); }
  .new-products .carousel__dots button { width: 3.75rem; height: .125rem; background: #b3b3b3; border-radius: .3125rem; }
  .new-products .carousel__dots button[aria-selected="true"] { background: #e3540b; }

  .case-carousel { padding: 7% 0; margin-bottom: max(0px, calc(18.75rem - 55.08vw)); }
  .case-slide__more { right: 1.75rem; bottom: 1.25rem; min-width: 0; padding: .625rem 1.5rem; font-size: .75rem; }
}

@media (max-width: 520px) {
  .hero-carousel { padding-top: 3.75rem; }
  .hero-slide__content { top: 6.875rem; }
  .new-products { padding-bottom: 1.875rem; }
  .new-product-slide__copy h3 { font-size: 1.125rem; line-height: 1.25rem; }
  .new-product-slide__copy .text-link { font-size: .75rem; }
  .new-products .carousel__dots { bottom: 0; }
  .new-products .carousel__dots button { width: 1.875rem; }
}

@media (max-width: 450px) {
  .hero-carousel { padding-top: 3.125rem; }
  .hero-slide__content { top: 6.25rem; }
}
