/* Hero layout is stored in the native Atomic element styles. */
@media screen {
  html.sl-gift-intro-pending .gc-hero-image { visibility: hidden; }
}

body.sl-macon-custom .elementor .sl-gift-carousel { width: 100%; min-width: 0; }
.sl-gift-carousel-controls {
  --sl-carousel-progress: 0%;
  position: relative; display: flex; align-items: center; justify-content: space-between;
  width: calc(100% - 4rem); height: 48px; margin: 3.5rem auto 0; border-radius: 999px; isolation: isolate;
}
.sl-gift-carousel-controls[hidden] { display: none; }
body.sl-macon-custom .sl-gift-carousel-control {
  position: relative; z-index: 1; flex-shrink: 0;
  display: grid; place-items: center; width: 48px; height: 48px; min-width: 48px; padding: 0;
  border: 0; border-radius: 50%; background: transparent; box-shadow: none;
  color: var(--sl-color-maroon, #581a1b); font-size: 1.1rem; cursor: pointer;
  transform: none; transition: none;
}
body.sl-macon-custom .sl-gift-carousel-control:is(:hover, :active, :focus) {
  color: var(--sl-color-maroon, #581a1b); background: transparent; border: 0; box-shadow: none; transform: none;
}
body.sl-macon-custom .sl-gift-carousel-control:focus:not(:focus-visible) { outline: none; }
body.sl-macon-custom .sl-gift-carousel-control:focus-visible { outline: 2px solid var(--sl-color-maroon, #581a1b); outline-offset: 3px; }
body.sl-macon-custom .sl-gift-carousel-control:disabled { opacity: .35; cursor: default; }
body.sl-macon-custom .sl-gift-carousel-control[hidden] { display: none; }
.sl-gift-carousel-window { overflow: hidden; width: 100%; min-width: 0; }
body.sl-macon-custom .elementor .gb-promo-carousel[data-sl-carousel-track] {
  display: flex; gap: 0; width: 100%; max-width: none; padding: 0; margin: 0;
  align-items: center; flex-wrap: nowrap;
  /* Elementor's reduced-motion reset otherwise prevents Swiper's transition-end event. */
  transition-property: transform;
  transition-duration: var(--sl-carousel-transition-duration, 0ms) !important;
  transition-timing-function: cubic-bezier(.45, 0, .2, 1);
}
.sl-gift-carousel .swiper-slide { height: auto; min-width: 0; flex-shrink: 0; }
.sl-gift-carousel .swiper-slide > :is(a,picture) { display: block; width: 100%; }
.sl-gift-carousel .gb-promo-image { display: block; }
.sl-gift-carousel .sl-gift-slide { position: relative; }
/* Fill each slide at the image's natural ratio without cropping flyer text. */
body.sl-macon-custom .elementor .sl-gift-carousel .sl-gift-slide img {
  width: 100%; max-width: 100%; height: auto; aspect-ratio: auto; object-fit: contain;
}
@media (max-width: 767px) {
  .sl-gift-carousel-controls { width: calc(100% - 2rem); }
}
body.sl-macon-custom .sl-gift-expand {
  position: absolute; inset: 0; display: block; border: 0; background: transparent;
  color: #fff; cursor: pointer; border-radius: 4px; box-shadow: none;
}
.sl-gift-expand > span {
  position: absolute; right: 12px; bottom: 12px; display: grid; place-items: center;
  width: 44px; height: 44px; border-radius: 50%; background: var(--sl-color-maroon, #581a1b);
  color: #fff; font-size: 1rem; pointer-events: none;
}
body.sl-macon-custom .sl-gift-expand:is(:hover, :active, :focus) { color: #fff; background: transparent; box-shadow: none; }
body.sl-macon-custom .sl-gift-expand:focus-visible { outline: 3px solid var(--sl-color-red, #e63022); outline-offset: -3px; }
#sl-gift-lightbox { --lightbox-ui-color: #fff; --lightbox-ui-color-hover: #e63022; }
.sl-gift-carousel-progress { position: absolute; inset: 6px 0; overflow: hidden; border-radius: inherit;
  background: #ffffff70; box-shadow: inset 0 1px 3px #351a181a; pointer-events: none;
}
.sl-gift-carousel-progress-fill { display: block; width: var(--sl-carousel-progress); height: 100%;
  background: var(--sl-color-red, #e63022); border-radius: inherit;
}
.sl-gift-carousel-progress-ink {
  position: absolute; inset: 0; z-index: 2; display: flex; justify-content: space-between;
  pointer-events: none; color: #fff; font-size: 1.1rem;
  clip-path: inset(0 calc(100% - var(--sl-carousel-progress)) 0 0);
}
.sl-gift-carousel-progress-ink > span {
  display: grid; place-items: center; width: 48px; height: 48px; flex-shrink: 0;
}
