#index #wrapper .movic-promo-banners { width: 100%; max-width: none; margin: 0 0 2rem; padding: 0; }
#index #wrapper .webglobe-gift-grid:has(+ .movic-promo-banners) { margin-bottom: 0; }
.movic-promo { position: relative; isolation: isolate; overflow: hidden; background: var(--promo-bg, #101010); color: var(--promo-text, #fff); }
.movic-promo__background { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.movic-promo__background img { display: block; width: 100%; height: auto; mask-image: linear-gradient(#000 75%, transparent); }
.movic-promo__inner { width: 100%; max-width: 1320px; margin: 0 auto; padding: 30px 52px 16px; }
.movic-promo__header { margin-bottom: clamp(1.25rem, 3vw, 2.5rem); }
.movic-promo__title { margin: 0; color: inherit; font-size: clamp(2.2rem, 7vw, 6rem); font-weight: 900; line-height: 1.05; letter-spacing: -.045em; overflow-wrap: anywhere; }
.movic-promo__title span { color: var(--promo-accent); }
.movic-promo__subtitle { max-width: 52rem; margin: .5rem 0 0; color: inherit; font-size: clamp(.9rem, 1.6vw, 1.35rem); line-height: 1.45; }
.movic-promo__cta { display: inline-block; margin-top: 1rem; padding: .65rem 1.1rem; border: 1px solid currentColor; border-radius: 4px; color: inherit; font-weight: 600; }
.movic-promo__cta:hover { color: inherit; text-decoration: underline; }
.movic-promo__carousel { position: relative; }
.movic-promo__track { --promo-columns: var(--promo-desktop, 4); display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--promo-columns) - 1) * 16px) / var(--promo-columns)); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 0; }
.movic-promo__track::-webkit-scrollbar { display: none; }
.movic-promo__slide { min-width: 0; scroll-snap-align: start; background: #fff; color: #171717; border: 1px solid #e2e2e2; border-radius: 7px; overflow: hidden; }
#index .movic-promo .product-miniature { width: 100%; height: 100%; margin: 0; max-width: none; padding: 0; }
/* Keep campaign cards independent of the theme's rounded orange cart style. */
#index .movic-promo .product-miniature__inner { display: flex; flex-direction: column; height: 100%; background: #fff; border-radius: 0; box-shadow: none; }
#index .movic-promo .product-miniature__top { padding: 12px 12px 0; }
#index .movic-promo .product-miniature__image-link { overflow: hidden; border-radius: 0; }
#index .movic-promo .product-miniature__top img { width: 100%; height: auto; max-height: 240px; aspect-ratio: 1; object-fit: contain; background: #fff; }
#index .movic-promo .product-miniature__bottom { flex: 1; padding: 10px 12px 12px; }
#index .movic-promo .product-miniature__infos { display: flex; flex-direction: column; height: 100%; gap: 8px; text-align: left; }
#index .movic-promo .product-miniature__title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-height: 36px; color: #171717; font-size: 14px; font-weight: 700; line-height: 18px; }
#index .movic-promo .product-miniature__title:hover { text-decoration: underline; }
#index .movic-promo .product-miniature__purchase { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; margin-top: auto; }
#index .movic-promo .product-miniature__prices { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
#index .movic-promo .product-miniature__price { color: #171717; font-size: 22px; font-weight: 800; line-height: 1.15; }
#index .movic-promo .product-miniature__regular-price { color: #666; font-size: 12px; }
#index .movic-promo .product-miniature__actions { position: static; flex: 0 0 auto; margin: 0; opacity: 1; visibility: visible; transform: none; }
#index .movic-promo .product-miniature__add { display: grid; place-items: center; width: 38px; min-width: 38px; height: 38px; padding: 0; border: 0; border-radius: 5px; background: var(--promo-accent); color: #111; box-shadow: none; }
#index .movic-promo .product-miniature__add:hover { filter: brightness(.92); }
#index .movic-promo .product-miniature__add i { color: inherit; font-size: 22px; }
#index .movic-promo .product-flags { padding: 8px; }
#index .movic-promo .product-flags .badge.discount { padding: 5px 8px; border-radius: 5px; background: var(--promo-accent); color: #111; font-size: 18px; font-weight: 800; }
#index .movic-promo .product-miniature__variants { justify-content: flex-start; }
.movic-promo__control { position: absolute; z-index: 2; top: 50%; transform: translateY(-50%); width: 32px; height: 40px; display: grid; place-items: center; padding: 0; border: 1px solid #ddd; border-radius: 5px; background: #fff; color: #111; font-size: 2rem; line-height: 1; cursor: pointer; }
.movic-promo__control--prev { left: -42px; }
.movic-promo__control--next { right: -42px; }
.movic-promo__control:disabled { opacity: .35; cursor: default; }
.movic-promo__dots { display: flex; justify-content: center; flex-wrap: wrap; gap: 0; margin-top: .5rem; }
.movic-promo__dot { display: grid; place-items: center; width: 32px; height: 32px; border: 0; padding: 0; background: transparent; color: inherit; cursor: pointer; }
.movic-promo__dot::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: currentColor; opacity: .4; }
.movic-promo__dot[aria-current=true]::before { background: var(--promo-accent); opacity: 1; }
.movic-promo [hidden] { display: none !important; }
.movic-promo :is(button, a, [tabindex]):focus-visible { outline: 2px solid var(--promo-accent); outline-offset: -3px; }
@media (max-width: 991px) {
  .movic-promo__inner { padding: 24px 42px 12px; }
  .movic-promo__track { --promo-columns: min(3, var(--promo-desktop, 4)); }
  .movic-promo__control--prev { left: -36px; }
  .movic-promo__control--next { right: -36px; }
}
@media (max-width: 575px) {
  .movic-promo__inner { padding: 20px 28px 8px; }
  .movic-promo__track { --promo-columns: var(--promo-mobile, 2); gap: 8px; grid-auto-columns: calc((100% - (var(--promo-columns) - 1) * 8px) / var(--promo-columns)); }
  .movic-promo__control { width: 24px; height: 36px; }
  .movic-promo__control--prev { left: -26px; }
  .movic-promo__control--next { right: -26px; }
  #index .movic-promo .product-miniature__top img { max-height: 210px; }
  .movic-promo__dot { width: 16px; }
  .movic-promo__dot::before { width: 6px; height: 6px; }
}
/* Canvas elements have independent positions and sizes for each device. */
.movic-promo__inner { container-type: inline-size; display: flex; flex-direction: column; }
.movic-promo__stage { container-type: inline-size; font-family: Arial, sans-serif; position: relative; overflow: hidden; height: var(--promo-height-desktop); height: calc(var(--promo-canvas-height-desktop) * 100cqw / 1120); order: var(--promo-stage-desktop); }
.movic-promo__carousel { order: 1; }
.movic-promo__dots { order: 3; }
.movic-promo__element { position: absolute; display: var(--display-desktop); left: var(--x-desktop); top: var(--y-desktop); width: var(--w-desktop); font-size: var(--size-desktop); font-size: calc(var(--font-desktop) * 100cqw / 1120); line-height: 1.1; white-space: normal; overflow-wrap: anywhere; }
.movic-promo__element a { display: block; color: inherit; text-decoration: none; }
.movic-promo__element img { display: block; width: 100%; height: auto; }
.movic-promo__element--button > a, .movic-promo__element--button > span { display: inline-block; padding: .65em 1em; border-radius: 4px; background: var(--element-bg); }
.movic-promo__slide { display: none; }
@media (min-width: 992px) { .movic-promo__slide--desktop { display: block; order: var(--order-desktop); } }
@media (min-width: 576px) and (max-width: 991px) {
  .movic-promo__track { --promo-columns: var(--promo-tablet, 3); }
  .movic-promo__slide--tablet { display: block; order: var(--order-tablet); }
  .movic-promo__stage { height: var(--promo-height-tablet); height: calc(var(--promo-canvas-height-tablet) * 100cqw / 720); order: var(--promo-stage-tablet); }
  .movic-promo__element { display: var(--display-tablet); left: var(--x-tablet); top: var(--y-tablet); width: var(--w-tablet); font-size: var(--size-tablet); font-size: calc(var(--font-tablet) * 100cqw / 720); }
}
@media (max-width: 575px) {
  .movic-promo__slide--mobile { display: block; order: var(--order-mobile); }
  .movic-promo__stage { height: var(--promo-height-mobile); height: calc(var(--promo-canvas-height-mobile) * 100cqw / 360); order: var(--promo-stage-mobile); }
  .movic-promo__element { display: var(--display-mobile); left: var(--x-mobile); top: var(--y-mobile); width: var(--w-mobile); font-size: var(--size-mobile); font-size: calc(var(--font-mobile) * 100cqw / 360); }
}

.movic-promo__element > span, .movic-promo__element > a > span { white-space: pre-wrap; }

/* A compact timer leaves the products as the main part of the promotion. */
.movic-promo__countdown { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 18px; margin: 0 0 20px; padding: 0; order: 0; }
.movic-promo__countdown-copy { display: grid; gap: 2px; }
.movic-promo__countdown-copy strong { font-size: 12px; font-weight: 600; }
.movic-promo__countdown-copy time { font-size: 10px; opacity: .65; }
.movic-promo__countdown-units { display: flex; gap: 6px; }
.movic-promo__countdown-units > span { display: flex; align-items: baseline; gap: 4px; }
.movic-promo__countdown-units b { min-width: 30px; padding: 5px; border: 1px solid #ffffff30; border-radius: 4px; background: #101010b3; color: var(--promo-accent); font-size: 18px; font-variant-numeric: tabular-nums; text-align: center; line-height: 1; }
.movic-promo__countdown-units small { color: inherit; font-size: 10px; }
@media (max-width: 575px) {
  .movic-promo__countdown { gap: 8px; margin-bottom: 14px; }
  .movic-promo__countdown-copy { width: 100%; }
  .movic-promo__countdown-copy time { display: none; }
  .movic-promo__countdown-units { gap: 8px; }
  .movic-promo__countdown-units b { min-width: 28px; font-size: 16px; }
  .movic-promo__countdown-units small { font-size: 9px; }
}

/* Applied in server-rendered HTML so prices never flash before JS initializes. */
.movic-promo--prices-blurred .product-miniature__prices,
.movic-promo--prices-blurred .wg-omnibus { filter: blur(6px); user-select: none; }

/* Reserve the button space while removing it from pointer and keyboard access. */
#index .movic-promo--cart-hidden .product-miniature__form { visibility: hidden; pointer-events: none; }

/* Reserve pagination space before JavaScript creates its buttons. */
.movic-promo__dots { min-height: 32px; }
.movic-promo .movic-promo__dots[hidden] { display: flex !important; visibility: hidden; }
