.cms-banner-carousel:is(.cms-banner-placement-homepage_hero, .cms-banner-placement-lobby_top, .cms-banner-placement-casino_top) { height: 260px; min-height: 260px; max-height: none; }
.cms-banner-carousel .cms-banner-slide .hero-art picture,
.cms-banner-carousel .cms-banner-slide .hero-art img { width: 100%; height: 100%; display: block; }
.cms-banner-carousel .cms-banner-slide .hero-art img { object-fit: cover; }
.cms-banner-carousel .hero-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.cms-banner-strip,
.cms-banner-placement-promotion_strip,
.cms-banner-placement-account_top { min-height: 180px; }
.cms-banner-placement-promotion_strip .hero-slide,
.cms-banner-placement-account_top .hero-slide { min-height: 180px; }
.cms-banner-placement-promotion_strip .hero-copy,
.cms-banner-placement-account_top .hero-copy { padding-block: clamp(20px, 4vw, 44px); }
@media (max-width: 620px) {
  .cms-banner-carousel .cms-banner-slide .hero-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
  .cms-banner-carousel .cms-banner-slide .hero-actions .button { width: 100%; }
}

/* Hero campaigns retain a readable copy area as mobile text wraps. The artwork
   stays behind live, theme-aware HTML rather than baking text into the image. */
@media (max-width: 639px) {
  .cms-banner-carousel:is(.cms-banner-placement-homepage_hero, .cms-banner-placement-lobby_top, .cms-banner-placement-casino_top) { height: auto; min-height: 360px; max-height: none; }
  .cms-banner-carousel:is(.cms-banner-placement-homepage_hero, .cms-banner-placement-lobby_top, .cms-banner-placement-casino_top) .hero-track { height: auto; align-items: stretch; }
  .cms-banner-carousel:is(.cms-banner-placement-homepage_hero, .cms-banner-placement-lobby_top, .cms-banner-placement-casino_top) .hero-slide { height: auto; min-height: 360px; }
  .cms-banner-carousel:is(.cms-banner-placement-homepage_hero, .cms-banner-placement-lobby_top, .cms-banner-placement-casino_top) .hero-copy { width: 100%; height: 100%; padding: 170px 24px 52px; justify-content: flex-end; }
  .cms-banner-carousel:is(.cms-banner-placement-homepage_hero, .cms-banner-placement-lobby_top, .cms-banner-placement-casino_top) .hero-copy h1 { font-size: 2rem; line-height: 1.08; }
  .cms-banner-carousel:is(.cms-banner-placement-homepage_hero, .cms-banner-placement-lobby_top, .cms-banner-placement-casino_top) .hero-copy p { display: block; overflow: visible; max-width: none; }
  .cms-banner-carousel:is(.cms-banner-placement-homepage_hero, .cms-banner-placement-lobby_top, .cms-banner-placement-casino_top) .hero-art::before { background: linear-gradient(180deg, color-mix(in srgb, var(--bar2) 10%, transparent), color-mix(in srgb, var(--bar2) 35%, transparent) 30%, var(--bar2) 65%); }
  .cms-banner-carousel:is(.cms-banner-placement-homepage_hero, .cms-banner-placement-lobby_top, .cms-banner-placement-casino_top) .hero-arrow { top: 80px; }
}

/* Structured foreground campaigns. Artwork retains alpha and its original colour. */
.cms-banner-carousel:has(.cms-banner-cutout) { height: auto; min-height: 280px; max-height: none; background: var(--panel); }
.cms-banner-carousel:has(.cms-banner-cutout) .hero-track { height: auto; align-items: stretch; }
.cms-banner-carousel .cms-banner-cutout { height: auto; min-height: 280px; background: var(--panel); }
.cms-banner-carousel .cms-banner-cutout .hero-art { inset: 0 4% 0 53%; color: var(--odd); overflow: visible; }
.cms-banner-carousel .cms-banner-cutout .hero-art::before,
.cms-banner-carousel .cms-banner-cutout .hero-art::after { content: none; }
.cms-banner-carousel .cms-banner-cutout .hero-art picture { position: absolute; inset: 0; }
.cms-banner-carousel .cms-banner-cutout .hero-art img { object-fit: contain; object-position: center bottom !important; opacity: 1; filter: drop-shadow(0 8px 12px #0003); }
.cms-banner-motif { position: absolute; width: 120%; height: 110%; top: -5%; left: -10%; }
.cms-banner-carousel .cms-banner-cutout .hero-copy { width: 54%; height: auto; min-height: 280px; padding: 28px 0 42px 54px; justify-content: center; }
.cms-banner-carousel .cms-banner-cutout .hero-copy :is(h1,h2) { color: var(--text); font-size: clamp(24px, 3vw, 42px); line-height: 1.06; letter-spacing: -.7px; text-shadow: none; margin: 0 0 12px; text-wrap: balance; }
.cms-banner-carousel .cms-banner-cutout .hero-copy p { color: var(--muted-light); display: block; overflow: visible; max-width: 340px; margin: 0 14px 18px 0; line-height: 1.45; }
.cms-banner-carousel .cms-banner-cutout .hero-actions .button { min-height: 44px; }
.cms-banner-carousel[data-banner-layout="cards"] { height: auto; max-height: none; min-height: 0; border: 0; background: transparent; overflow: visible; }
.cms-banner-carousel[data-banner-layout="cards"] .hero-track { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; height: auto; transform: none; transition: none; will-change: auto; }
.cms-banner-carousel[data-banner-layout="cards"] .hero-slide { width: auto; min-width: 0; min-height: 260px; height: auto; border: 1px solid var(--line); border-radius: 12px; }
.cms-banner-carousel[data-banner-layout="cards"] .hero-copy { width: 60%; padding: 22px 0 22px 18px; min-height: 260px; }
.cms-banner-carousel[data-banner-layout="cards"] .hero-copy :is(h1,h2) { font-size: clamp(21px,1.7vw,29px); line-height: 1.08; }
.cms-banner-carousel[data-banner-layout="cards"] .hero-copy p { font-size: .9231rem; }
.cms-banner-carousel[data-banner-layout="cards"] .hero-actions { margin-top: auto; }
.cms-banner-carousel[data-banner-layout="cards"] .hero-actions .button { padding: 10px 12px; }
.cms-banner-carousel[data-banner-layout="cards"] :is(.hero-arrow,.hero-dots,[data-hero-status]) { display: none; }
[data-banner-layout-controls] .font-options { margin-top: 8px; }
[data-banner-layout-controls] button { min-height: 44px; }
[data-banner-layout-controls] button[aria-pressed="true"] { border-color: var(--odd); background: color-mix(in srgb,var(--odd) 15%,var(--panel)); }
@media (max-width: 1100px) and (min-width: 700px) {
  .cms-banner-carousel[data-banner-layout="cards"] .hero-track { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 699px) {
  .cms-banner-carousel[data-banner-layout="cards"] { touch-action: pan-x pan-y pinch-zoom; }
  .cms-banner-carousel[data-banner-layout="cards"] .hero-track {
    display: flex; overflow-x: auto; scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain; scrollbar-width: thin;
    scrollbar-color: var(--odd) transparent; padding-bottom: 8px;
  }
  .cms-banner-carousel[data-banner-layout="cards"] .hero-slide {
    flex: 0 0 100%; scroll-snap-align: start; scroll-snap-stop: always;
  }
  .cms-banner-carousel .cms-banner-cutout .hero-copy { width: 58%; padding: 22px 0 40px 18px; min-height: 280px; }
  .cms-banner-carousel .cms-banner-cutout .hero-copy :is(h1,h2) { font-size: 24px; }
  .cms-banner-carousel .cms-banner-cutout .hero-copy p { font-size: .9231rem; }
  .cms-banner-carousel .cms-banner-cutout .hero-art { left: 55%; right: 0; }
  .cms-banner-carousel .cms-banner-cutout .hero-actions { display: flex; width: auto; }
  .cms-banner-carousel .cms-banner-cutout .hero-actions .button { width: auto; padding: 10px; }
  .cms-banner-carousel:has(.cms-banner-cutout) .hero-arrow { top: auto; bottom: 8px; width: 32px; height: 32px; }
}
