/* Bim's Content Manager v1.3: site-matching typography and customisable controls. */
.bcm{--bcm-heading-weight:600;--bcm-button-weight:600;--bcm-heading-case:uppercase;--bcm-primary-button:#171615;--bcm-primary-button-text:#fff;--bcm-button-radius:4px}
.bcm.bcm-font-theme{font-family:inherit!important}
/* Respect the site's surrounding typography rather than forcing Impact/Arial Black. */
.bcm.bcm-font-theme :where(h1,h2,h3,h4,h5,h6,p,span,a,summary,button,div,li,strong,small){font-family:inherit!important}
.bcm.bcm-font-managed{font-family:var(--bcm-font)}
.bcm .bcm-hero-text h1,.bcm .bcm-section-title h2,.bcm .bcm-banner-copy h3,.bcm .bcm-deal-copy h4,.bcm .bcm-perk-copy h3,.bcm .bcm-terms-header h1,.bcm .bcm-terms-section>h2,.bcm .bcm-terms-content .bcm-richtext h2,.bcm .bcm-terms-content .bcm-richtext h3,.bcm .bcm-dynamic-terms h3,.bcm .bcm-deal-terms h4,.bcm .bcm-legal-callout strong,.bcm .bcm-preview-heading strong{font-weight:var(--bcm-heading-weight)!important;text-transform:var(--bcm-heading-case);letter-spacing:normal!important}
.bcm .bcm-hero-text h1{line-height:1.02}
.bcm .bcm-banner-copy h3{line-height:1}
.bcm .bcm-section-title h2,.bcm .bcm-deal-copy h4,.bcm .bcm-terms-header h1{line-height:1.06}
.bcm .bcm-button{background:var(--bcm-primary-button)!important;color:var(--bcm-primary-button-text)!important;border-color:var(--bcm-primary-button)!important;border-radius:var(--bcm-button-radius);font-weight:var(--bcm-button-weight)!important;letter-spacing:.4px}
.bcm .bcm-button:not(.bcm-button-yellow):not(.bcm-button-outline):hover,.bcm .bcm-button:not(.bcm-button-yellow):not(.bcm-button-outline):focus-visible{color:var(--bcm-primary-button-text)!important}
.bcm .bcm-button-yellow{background:var(--bcm-yellow)!important;color:var(--bcm-ink)!important;border-color:var(--bcm-yellow)!important}
.bcm .bcm-button-outline{background:transparent!important;color:var(--bcm-yellow)!important;border-color:var(--bcm-yellow)!important}
.bcm .bcm-hero-text p{font-weight:400}
.bcm .bcm-preview-heading strong,.bcm .bcm-preview-ribbon{font-family:inherit!important}
@media(max-width:700px){.bcm .bcm-hero-text h1{font-size:clamp(43px,12vw,72px)}.bcm .bcm-banner-copy h3{font-size:clamp(35px,9vw,62px)}}

/* V1.4: Mobile Deals show the actual uploaded 1:1 artwork, with no duplicate text overlay.
   Keep the existing promotional treatment untouched above 700px. */
@media (max-width:700px) {
  .bcm .bcm-deal-banner.bcm-deal-banner-has-image {
    display:block;
    position:relative;
    box-sizing:border-box;
    width:100%;
    height:auto !important;
    aspect-ratio:1 / 1;
    min-height:0;
    margin:0;
    padding:0 !important;
    overflow:hidden;
    background:transparent !important;
  }
  .bcm .bcm-deal-banner.bcm-deal-banner-has-image::before,
  .bcm .bcm-deal-banner.bcm-deal-banner-has-image .bcm-banner-copy,
  .bcm .bcm-deal-banner.bcm-deal-banner-has-image .bcm-price-stamp {
    display:none !important;
  }
  .bcm .bcm-deal-banner.bcm-deal-banner-has-image .bcm-deal-photo {
    display:block !important;
    position:static !important;
    inset:auto !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    object-fit:contain !important;
    object-position:center center;
    filter:none !important;
    transform:none !important;
    border:0;
    border-radius:0;
  }
  /* Deals with no uploaded image should start with the small label/title, not a blank panel. */
  .bcm .bcm-deal-banner.bcm-deal-banner-no-image { display:none !important; }
}

/* V1.5: per-deal background and responsive media, without altering global theme colours. */
.bcm .bcm-deal-picture{display:contents}
.bcm .bcm-deal-banner.bcm-has-custom-image-bg{background:var(--bcm-deal-image-bg)}
.bcm .bcm-deal-banner.bcm-has-custom-image-bg.bcm-custom-bg-dark{color:#fff}
.bcm .bcm-deal-banner.bcm-has-custom-image-bg.bcm-custom-bg-light{color:#171615}
@media (max-width:700px){
 .bcm .bcm-deal-banner.bcm-deal-banner-has-image.bcm-has-custom-image-bg{background:var(--bcm-deal-image-bg)!important}
}

/* V1.6: Full custom banner artwork for Deals and Loyalty, with independent
   desktop (wide) and mobile (square) sources. No text overlays on custom art. */
.bcm .bcm-full-hero,
.bcm .bcm-full-section-heading{display:block;width:100%;margin:0;position:relative}
.bcm .bcm-full-hero-link{display:block;width:100%;text-decoration:none}
.bcm .bcm-artwork-picture{display:block;line-height:0;width:100%;overflow:hidden}
.bcm .bcm-artwork-img{display:block!important;width:100%!important;max-width:none!important;height:auto!important;margin:0!important;padding:0!important;filter:none!important;transform:none!important;border:0!important;border-radius:0!important;object-fit:cover}
.bcm .bcm-hero-picture .bcm-artwork-img{aspect-ratio:1920/700}
.bcm .bcm-full-section-heading{padding:28px 0 24px}
.bcm .bcm-section-picture .bcm-artwork-img{aspect-ratio:1600/400}
.bcm .bcm-full-banner-actions{background:#171615;padding:22px 0}
.bcm .bcm-full-banner-actions .bcm-app-buttons{align-items:center;justify-content:center}
.bcm .bcm-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;clip-path:inset(50%)!important}
@media(max-width:700px){
 .bcm .bcm-hero-picture .bcm-artwork-img,
 .bcm .bcm-section-picture .bcm-artwork-img{aspect-ratio:1/1;object-fit:cover}
 .bcm .bcm-full-section-heading{padding:20px 0}
 .bcm .bcm-full-banner-actions{padding:18px 0}
}


/* V1.7 — adjustable full-artwork banner heights, fit, focal point, and backdrop.
   Mobile uses its dedicated 1:1 upload and ignores desktop sizing. */
.bcm .bcm-custom-banner .bcm-artwork-picture {
  width: 100%; height: var(--bcm-banner-height, 350px);
  background: var(--bcm-banner-bg, #ffd22f); overflow: hidden;
}
.bcm .bcm-custom-banner .bcm-artwork-picture .bcm-artwork-img {
  display:block!important; width:100%!important; height:100%!important;
  max-height:none!important; aspect-ratio:auto!important;
  object-fit:var(--bcm-banner-fit, cover)!important;
  object-position:var(--bcm-banner-pos, 50% 50%)!important;
}
.bcm .bcm-custom-banner.bcm-banner-auto .bcm-artwork-picture {height:auto;}
.bcm .bcm-custom-banner.bcm-banner-auto .bcm-artwork-picture .bcm-artwork-img {
  height:auto!important; object-fit:contain!important;
}
@media(max-width:700px) {
  .bcm .bcm-custom-banner .bcm-artwork-picture,
  .bcm .bcm-custom-banner.bcm-banner-auto .bcm-artwork-picture {
    height:auto;aspect-ratio:1/1;
  }
  .bcm .bcm-custom-banner .bcm-artwork-picture .bcm-artwork-img,
  .bcm .bcm-custom-banner.bcm-banner-auto .bcm-artwork-picture .bcm-artwork-img {
    height:100%!important;aspect-ratio:1/1!important;
    object-fit:cover!important;object-position:center center!important;
  }
}
