.collection-promo-grid {
  padding: var(--promo-padding-top) 0 var(--promo-padding-bottom);
  color: rgb(var(--color-foreground));
}
.collection-promo-grid__heading {
  margin: 0 0 clamp(16px, 1.7vw, 28px);
  text-align: center;
  color: rgb(var(--color-heading));
  font-size: var(--promo-heading-desktop, 56px);
  font-weight: 700;
  line-height: 1.15;
}
.collection-promo-grid__heading em { color: rgb(var(--color-foreground-secondary)); font-style: normal; }
.collection-promo-grid__items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.collection-promo-grid__card {
  --card-base: #dde3eb;
  --card-shade: #a6afbd;
  --card-ink: #061b37;
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: 0;
  aspect-ratio: 3 / 1;
  container-type: inline-size;
  overflow: hidden;
  border: 1px solid #b9c4d2;
  border-radius: var(--promo-image-radius, 20px);
  background: linear-gradient(125deg, #ffffff80, transparent 65%), var(--card-base);
  box-shadow: 0 3px 10px rgb(16 36 58 / 8%);
  transition: border-color .2s ease, box-shadow .2s ease;
  color: var(--card-ink);
  text-decoration: none;
}
.collection-promo-grid__card::before,
.collection-promo-grid__card::after {
  content: '';
  position: absolute;
  z-index: -1;
  pointer-events: none;
  width: 135%;
  height: 90%;
  left: -16%;
  bottom: -48%;
  border-radius: 50%;
  transform: rotate(-18deg);
  background: linear-gradient(180deg, transparent, var(--card-shade) 48%, #ffffffa6 50%, transparent 68%);
  opacity: .55;
}
.collection-promo-grid__card::after { bottom: -61%; left: -6%; opacity: .75; }
.collection-promo-grid__background {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
}
.collection-promo-grid__card--custom-background::before,
.collection-promo-grid__card--custom-background::after { content: none; }
.collection-promo-grid__content { position: absolute; inset: 0 auto 0 0; display: flex; align-items: center; z-index: 1; box-sizing: border-box; width: 50%; padding: 3cqw 2cqw 3cqw 5cqw; }
.collection-promo-grid__title { display: block; width: 100%; min-width: 0; margin: 0; color: inherit; font-size: var(--promo-title-desktop, 24px); font-weight: 700; line-height: 1.2; white-space: normal; overflow-wrap: anywhere; }
.collection-promo-grid__image { position: absolute; right: 0; bottom: 0; width: 50%; height: 96%; object-fit: contain; object-position: right bottom; transform: translateY(20%); transition: transform .3s ease; }
.collection-promo-grid__card:focus-visible .collection-promo-grid__image { transform: translateY(10%); }
@media (hover: hover) {
  .collection-promo-grid__card[href]:hover { border-color: #8193aa; box-shadow: 0 6px 12px rgb(7 27 48 / 10%), 0 14px 28px rgb(7 27 48 / 15%); }
  .collection-promo-grid__card:hover .collection-promo-grid__image { transform: translateY(10%); }
}
@media (prefers-reduced-motion: reduce) {
  .collection-promo-grid__card,
  .collection-promo-grid__image { transition: none; }
}
.collection-promo-grid__placeholder svg { width: 100%; height: 100%; }
.collection-promo-grid__card[href]:hover { color: var(--card-ink); }
.collection-promo-grid__card:focus-visible { outline: 3px solid rgb(var(--color-foreground)); outline-offset: 4px; }
@media (min-width: 768px) and (max-width: 1023px) {
  .collection-promo-grid { padding-top: var(--promo-padding-top-tablet); padding-bottom: var(--promo-padding-bottom-tablet); }
  .collection-promo-grid__heading { font-size: var(--promo-heading-tablet, 36px); }
  .collection-promo-grid__title { font-size: var(--promo-title-tablet, 16px); }
  .collection-promo-grid__items { gap: 16px; }
}
@media (max-width: 767px) {
  .collection-promo-grid { padding-top: var(--promo-padding-top-mobile); padding-bottom: var(--promo-padding-bottom-mobile); }
  .collection-promo-grid__heading { font-size: var(--promo-heading-mobile, 28px); }
  .collection-promo-grid__title { font-size: var(--promo-title-mobile, 12px); }
  .collection-promo-grid__items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
