/* ==========================================================================
   Highlight
   ========================================================================== */

.highlight {
  background-color: var(--color-yellow-lightest);
}

.highlight .grid {
  display: flex;
  flex-direction: column;
}

.highlight .highlight-media {
  order: 1;
  width: 100%;
}

.highlight .highlight-media img {
  display: block;
  height: auto;
  width: 100%;
}

.highlight .highlight-content {
  order: 2;
  padding-block: 1rem;
}

.highlight .highlight-content h1 {
  padding-block: 1rem;
}



/* ==========================================================================
   Product Lines
   ========================================================================== */

.product-lines {
  padding-block: 1rem;
  text-align: center;
}

.product-lines h2 {
  margin-block-end: 1rem;
}

.product-lines .filter-container {
  padding-block: 2rem;
}

.product-lines .filter-btn {
  background-color: var(--color-yellow-lightest);
  border: .1rem solid var(--color-yellow);
  color: var(--color-primary);
  margin-inline: .2rem;
  padding-inline: .5rem;
}

.product-lines .filter-btn[aria-pressed="true"],
.product-lines .filter-btn:hover,
.product-lines .filter-btn:focus-visible {
  background-color: var(--color-yellow);
  color: var(--color-white);
  box-shadow: 0 .6rem 1.6rem rgba(0, 0, 0, .18);
}



/* ==========================================================================
   Product Line
   ========================================================================== */

.product-line {
  display: block;
  text-align: left;
  padding-block: 1rem;
}

.product-line.is-hidden {
  display: none; 
}

.product-line h2 {
  margin-block-end: .5rem;
}

.product-line .grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding-block-start: 2rem;
}

.product-line .card {
  background-color: var(--color-yellow-lightest);
  text-align: left;
  transition: box-shadow var(--transition-normal), transform var(--transition-normal);
}

.product-line .card:hover,
.product-line .card:focus-visible {
  box-shadow: 0 .5rem 2rem rgba(0, 0, 0, .25);
  transform: translateY(-.3rem);
}

.product-line .card p {
  color: var(--color-gray);
  padding: .5rem;
  text-transform: uppercase;
}



/* ==========================================================================
   Product
   ========================================================================== */

.product {
  padding-block: 1rem;
  text-align: center;
}

.product-content {
  align-items: center;
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
  padding-block: 2rem;
}

.product-content:has(.product-media) {
  grid-template-columns: 1fr 1fr;
}

.product-description {
  grid-column: 1;
  grid-row: 1;
  text-align: center;
}

.product-content:has(.product-media) .product-description {
  text-align: left;
}

.product-description p {
  font-size: 1.4rem;
  line-height: 1.6rem;
}

.product-description p.title {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2rem;
  padding-block-start: 1.5rem;
}

.product-description p.title:first-child {
  padding-block-start: 0;
}

.product-description p.font-sm {
  font-size: 1.2rem;
}

.product-media {
  grid-column: 2;
  grid-row: 1;
}

.product-media img {
  display: block;
  margin: 0 auto;
}

.product-details {
  grid-column: 1 / -1;
  grid-row: 2;
  text-align: center;
}

.product-details .grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
}

.product-details img {
  display: block;
  margin: 0 auto;
  padding-block-end: .5rem;
}

.product-details p.title {
  font-weight: 700;
  padding-block-end: 1rem;
}

.product .btn-margin-top-20 {
  margin-block-start: 2rem;
}



/* ==========================================================================
   Reduced Motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {

  .product-line .card {
    transition: none;
  }

}



/* ==========================================================================
   Responsive Desktop
   ========================================================================== */

@media (min-width: 1024px) {

  .highlight .grid {
    align-items: center;
    flex-direction: row;
    gap: 5rem;
  }

  .highlight .highlight-content {
    flex: 1 1 0;
    min-width: 0;
    order: 1;
  }

  .highlight .highlight-media {
    flex: 0 0 64rem;
    min-width: 0;
    order: 2;
  }

  .product-content:has(.product-media) {
    grid-template-columns: 2fr 1fr;
  }

  .product-line .grid {
    gap: 2rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .product-line .card p {
    padding: 1rem;
  }

  .product-description p {
    font-size: 1.6rem;
    line-height: 2rem;
  }

  .product-description p.font-sm {
    font-size: 1.4rem;
  }

  .product-media {
    grid-column: 2;
    grid-row: 1 / 3;
  }

  .product-details {
    grid-column: 1;
    grid-row: 2;
  }

}