/* Desktop and iPad homepage: let the campaign artwork own the entire hero.
   The source artwork is a 16:9 banner, so it is shown in full without crop. */
@media (min-width: 768px) {
  #desktop-home .d-hero {
    padding: 0;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    background: #fff;
  }

  #desktop-home .d-hero > .d-shell {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }

  #desktop-home .d-hero-grid {
    display: block;
    min-height: 0;
  }

  #desktop-home .d-hero-copy {
    display: none;
  }

  #desktop-home .d-hero-carousel {
    width: 100%;
    max-width: none;
    height: auto;
    aspect-ratio: 1920 / 750;
    margin-top: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  #desktop-home .d-hero-slide,
  #desktop-home .d-hero-slide img {
    border-radius: 0;
  }

  #desktop-home .d-hero-slide img {
    object-fit: contain;
    background: #fff;
  }
}

@media (min-width: 768px) and (max-width: 1100px) {
  /* The tablet renderer uses its own home root.  Give its campaign artwork
     the same true edge-to-edge treatment as phone and desktop. */
  #tablet-home .hero-visual,
  #tablet-home .hero-carousel {
    width: 100vw;
    max-width: none;
    margin-inline: calc(50% - 50vw);
    border-radius: 0;
    box-shadow: none;
  }

  #tablet-home .hero-carousel-track,
  #tablet-home .hero-slide,
  #tablet-home .hero-slide > img {
    border-radius: 0 !important;
  }

  #tablet-home .hero-slide-poster > img {
    object-fit: contain;
  }

  #desktop-home .d-hero-carousel {
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  #desktop-home .d-hero-slide,
  #desktop-home .d-hero-slide img {
    border-radius: 0;
  }
}

/* On phones the campaign banner follows the desktop's full-bleed treatment.
   Only the artwork leaves the reading gutter; the copy keeps its calm mobile
   padding, and `contain` protects every word and student in the supplied art. */
@media (max-width: 767px) {
  #mobile-home .hero-visual,
  #mobile-home .hero-carousel {
    width: 100vw;
    max-width: none;
    margin-inline: calc(50% - 50vw);
    border-radius: 0;
    box-shadow: none;
  }

  #mobile-home .hero-carousel {
    aspect-ratio: 16 / 9;
  }

  #mobile-home .hero-carousel-track,
  #mobile-home .hero-slide,
  #mobile-home .hero-slide > img {
    border-radius: 0 !important;
  }

  #mobile-home .hero-slide-poster > img {
    object-fit: contain;
  }
}
