.utexas-hero-carousel {
  --button-offset: 25px;
  --button-font-size: 45px;
  --icon-color-1: #fff;
  --icon-color-2: #000;
  --icon-color-3: #404040;
  --bottom-bar-background-color: #e5e5e5;
  --dot-font-size-1: 19px;
  --dot-font-size-2: 25px;

  container: carousel-container / inline-size;

  /* :focus outlines and background
  see https://www.w3.org/WAI/WCAG21/Techniques/css/C40 */
  .slick-slider *:focus:focus-visible {
    box-shadow: 0px 0px 0px 4px #000;
    outline-color: #535354;
    outline-offset: 1px;
  }

  &.slick-initialized .slick-slide {
    line-height: 1;
  }

  /*** Previous/Next Button Styles */
  .slick-prev,
  .slick-next {
    height:var(--button-font-size);
    width: var(--button-font-size);
    z-index:1;
    font-weight: unset;
  }
  .slick-prev {
    left: var(--button-offset);
  }
  .slick-next {
    right: var(--button-offset);
  }
  /** no-state styles **/
  /* Icon */
  .slick-prev .slick-prev-icon,
  .slick-next .slick-next-icon {
    color: var(--icon-color-2);
    font-size: var(--button-font-size);
    opacity: 1;
  }
  .slick-prev-icon:before,
  .slick-next-icon:before {
    position: absolute;
    top: 3px;
    left: 0;
  }
  /* Target Firefox specifically to normalize browser-specific positioning */
  @supports(-moz-appearance:none) {
    .slick-prev-icon:before,
    .slick-next-icon:before {
      top: 1.5px;
    }
  }
  /* Contrasting background */
  .slick-prev-icon:after,
  .slick-next-icon:after {
    background-color: var(--icon-color-1);
    border-radius: 50%;
    box-shadow: 0px 0px 0px 1px var(--icon-color-1);
    content: "";
    display: block;
    height: var(--button-font-size);
    position: absolute;
    top: 0;
    width: var(--button-font-size);
    z-index: -1;
  }
  /** :focus styles **/
  /* Icon */
  .slick-prev:focus,
  .slick-next:focus {
    top: calc(50%);
  }
  .slick-prev:focus .slick-prev-icon,
  .slick-next:focus .slick-next-icon {
    color: var(--icon-color-2);
    font-size: var(--button-font-size);
    margin-left: 0;
  }
  /** :hover styles **/
  button.slick-prev:hover,
  button.slick-next:hover,
  button.slick-autoplay-toggle-button:hover,
  button.slick-prev:focus,
  button.slick-next:focus,
  button.slick-autoplay-toggle-button:focus {
    background-color: inherit;
    border: 0;
  }
  /* Icon */
  .slick-prev:hover .slick-prev-icon,
  .slick-next:hover .slick-next-icon {
    color: var(--icon-color-1);
  }
  /* Contrasting background */
  .slick-prev:hover .slick-prev-icon::after,
  .slick-next:hover .slick-next-icon::after {
    background-color: var(--icon-color-2);
    box-shadow: 0px 0px 1px 1px var(--icon-color-2);
  }

  /*** Play/pause button ***/
  /** no-state styles **/
  /* Icon */
  .slick-autoplay-toggle-button {
    bottom: calc(-1 * var(--button-font-size));
    color: var(--icon-color-1);
    height: calc(var(--button-font-size));
    opacity: 1;
    margin: 0;
    padding-block: 1px;
    padding-inline: 6px;
    font-weight: unset;

    .slick-pause-icon:before,
    .slick-play-icon:before {
      width: unset;
      height: unset;
      font-family: slick;
      font-size: inherit;
      font-weight: unset;
      line-height: unset;
      text-align: center;
      color: var(--icon-color-2);
    }
  }
  .slick-pause-icon,
  .slick-play-icon {
    font-size: calc(var(--button-font-size) * 2/3);
  }
  /** Hover & focus styles **/
  /* Icon */
  .slick-autoplay-toggle-button {
    .slick-autoplay-toggle-button .slick-play-icon:hover:before,
    .slick-autoplay-toggle-button .slick-pause-icon:hover:before,
    .slick-autoplay-toggle-button .slick-play-icon:focus:before,
    .slick-autoplay-toggle-button .slick-pause-icon:focus:before {
      color: var(--icon-color-3);
    }
  }

  /*** Dots styles ***/
  /** no-state styles **/
  /* Icon */
  .slick-dots {
    background-color: var(--bottom-bar-background-color);
    bottom: calc(-1 * var(--button-font-size));
    height: calc(var(--button-font-size));
    z-index: 1;

    li {
      margin: 0 2px
    }
    li button {
      font-size: calc(var(--button-font-size) / 5);
      height: var(--dot-font-size-1);
      width: var(--dot-font-size-1);
      margin: 0;
      padding: 0;
      transition: none;
    }
    li button .slick-dot-icon {
      color: var(--icon-color-1);
      display: inline-block;
      font-size: var(--dot-font-size-1);
      line-height: 1;
    }
    li button .slick-dot-icon:before {
      line-height: unset;
      border: solid 3px #000;
      border-radius: 20px;
      background-color: #fff;
    }

    /** Active state styles **/
    /* Icon */
    li.slick-active button {
      height: var(--dot-font-size-2);
      width: var(--dot-font-size-2);
    }
    li.slick-active button .slick-dot-icon {
      color: var(--icon-color-1);
      font-size: var(--dot-font-size-2);
    }
    li.slick-active button .slick-dot-icon:before {
      margin-left: 0;
      margin-top: 0;
    }

    /** :focus styles **/
    /* Icon */
    li button:focus .slick-dot-icon:before {
      color: var(--icon-color-1);
    }

    /** :hover styles **/
    /* Icon */
    li button:hover .slick-dot-icon:before {
      color: var(--icon-color-2);
      background-color: #000;
      border: solid 2px #fff;
    }

  }

  @container carousel-container (max-width: 499px) {
    .slick-prev.slick-arrow,
    .slick-next.slick-arrow {
      top: 20%;
    }
  }
}

