main {
  background-color: var(--colour-7);
}
h2, h3 {
  color: #279e9b;
}
@keyframes h1-slidein-top {
  from {transform: translateY(-300px); opacity: 0;}
  30% {opacity: 0;}
  to {transform: translateY(0); opacity: 1;}
}
@keyframes h1-slidein {
  from {transform: translateX(300px); opacity: 0;}
  to {transform: translateX(0); opacity: 1;}
}
@keyframes fadein {
  from {opacity: 0;}
  to {opacity: 1;}
}

.reveal.r-bottom {
  position: relative;
  transform: translateY(150px);
  opacity: 0;
  transition: all 1s ease;
}
.reveal.r-bottom.active {
  transform: translateY(0px);
  opacity: 1;
}

.reveal.r-left {
  position: relative;
  transform: translateX(-200px);
  opacity: 0;
  transition: all 1s ease;
}
.reveal.r-left.active {
  transform: translateX(0px);
  opacity: 1;
}

.reveal.r-right {
  position: relative;
  transform: translateX(200px);
  opacity: 0;
  transition: all 1s ease;
}
.reveal.r-right.active {
  transform: translateX(0px);
  opacity: 1;
}

.reveal.fade {
  position: relative;
  opacity: 0.1;
  transition: all 1s ease 0.2s;
}
.reveal.fade.active {
  opacity: 1;
}


.hero-banner {
  height: 700px;
  background-repeat: no-repeat;
  background-position: 20% 0;
  background-size: cover;
}
.hero-banner .article-header {
  position: relative;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-items: start;
  justify-content: end;
  height: 100%;
  padding-left: 20px;
  padding-bottom: 100px;
  margin-top: -80px;
  color: white;
}
.hero-banner .article-header button {
  font-size: 1rem;
  font-weight: 700;
  color: black;
  border: none;
  background-color: var(--colour-1);
  padding: 10px 20px;
  text-align: center;
  margin: 4px 2px;
  cursor: pointer;
  border-radius: 16px;
  margin-top: 100px;
  min-width: 150px;
}
.hero-banner .article-header button:hover {
  color: white;
  background-color: #279e9b;
}
.cards {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  grid-gap: 1rem;
  place-content: start;
  width: 100%;
  margin: auto 0;
  /* padding: 20px; */
  justify-items: center;
  background-color: var(--colour-8);
}
.card {
  display: flex;
  flex-direction: column;
  justify-content: start;
  align-items: center;
  width: min(100%, 300px);
  text-align: center;
  /* padding: 20px; */
}
.card .bi {
  font-size: 3rem;
  text-decoration: solid;
  color: #024346;
}
.card h3 {
  margin-top: 0.5em;
  color: #024346;
}
.featured {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.feature .featured-title {

}
.featured .logos{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
}
.featured .logos>img{
  width: 300px;
}
.categories-section {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 50px 0;
}
.categories-section .categories-images {
  position: relative;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: center;
  align-items: center;
  /* padding: 50px 0; */
}
.categories-section .class-image {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.categories-section .class-image .text {
  position: absolute;
  bottom: 0;
  color: white;
  text-align: center;
}
.categories-section .class-image h2 {
  position: relative;
  color: white;
  text-align: center;
  font-size: 2rem;
  line-height: 3rem;
  z-index: 1;
  margin: 0;
}
.categories-section .class-image .text p {
  position: relative;
  color: white;
  z-index: 1;
  margin-top: 0.5rem;
  margin-bottom: 2rem;
}
.categories-section .class-image .image {
  border-radius: 10px;
  width: 300px;
}

.categories-section .class-image span {
  border-radius: 10px;
  position: absolute;
  height: 100%;
  width: 100%;
  opacity: 1;
  transition: opacity 0.5s;
  background: linear-gradient(transparent, transparent, rgba(0, 0, 0, .5));
  background-size: 100% 100%;
}
.categories-section .class-image span:hover {
  opacity: 0.7;
  transition: opacity 0.5s;
}
/* -----------------------------------Dialog Box----------------------------------------------- */
.dialog {
  padding: 0.8rem;
  border: none;
  border-radius: 20px;
  /* background-color: var(--colour-1); */
  box-shadow: 0 0 15px -3px rgba(0, 0, 0, 0.4);
  width: min(80vw, 800px);
  height: fit-content;
  overflow: hidden;
}
.dialog img {
  width: 100%;
  max-width: 100vw;
}
.dialog::backdrop{
  background-color: rgba(255,255,255,0.2);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
.dialog .close-button {
  position: absolute;
  font-size: 1.5rem;
  font-weight: bold;
  right: 5px;
  top: 5px;
  border: none;
  color: darkgrey;
  background-color: white;
  cursor: pointer;
}
.dialog .close-button:hover {
  background-color: white;
  color: black;
}
.dialog .close-button:focus {
  outline: none;
}
/* -----------------------------------Swim Class Section----------------------------------------------- */
.swimclass-section {
  padding: 100px 0;
}
.swimclass-section .banner {
  display: flex;
  flex-direction: column;
  justify-content: end;
  align-items: start;
  width: min(90vw, 1000px);
  min-height: 500px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  margin: auto;
  margin-bottom: 0;
  padding: 20px;
  border-radius: 20px;
}
.swimclass-section h2,
.swimclass-section p {
  color: white;
  width: 100%;
}

.swimclass-section h2 {
  color: white;
  text-align: left;
  font-size: 2rem;
  line-height: 2rem;
  z-index: 1;
  margin: 0;
}
.swimclass-section a {
  cursor: unset;
}
.swimclass-section button {
  font-size: 1rem;
  font-weight: 700;
  color: black;
  border: none;
  background-color: var(--colour-1);
  padding: 10px 20px;
  text-align: center;
  margin: 4px 2px;
  cursor: pointer;
  border-radius: 16px;
  margin-bottom: 50px;
  min-width: 150px;

  &:hover{
    color: white;
    background-color: #279e9b;
  }
}
/* -----------------------------------Collection Section----------------------------------------------- */
.collection-section {
  padding: 100px 0;
}
.collection-section .banner {
  display: flex;
  justify-content: start;
  align-items: end;
  width: min(90vw, 1000px);
  min-height: 500px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  margin: auto;
  margin-bottom: 0;
}
.collection-section .banner .content {
  margin-bottom: 50px;
  margin-left: 50px;
}
.collection-section .banner .content h2{
  color: white;
  font-size: 2rem;
  font-weight: 300;
}
.collection-section .banner .content button {
  background-color: unset;
  color: white;
  border: 1px solid white;
  padding: 1rem 2rem;
  cursor: pointer;
}
.collection-section .banner .content button:hover {
  background-color: white;
  color: black;
}
/* -----------------------------------Carousel----------------------------------------------- */

.scroller {
  justify-content: start;
  justify-self: center;
  width: 100%;
  padding: 100px 0;
}
.scroller h2 {
  /* width: min(100vw, 800px); */
  text-align: center;
}

.scroller__inner {
  padding-block: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.scroller[data-animated="true"] {
  overflow: hidden;
  /* -webkit-mask: linear-gradient(
    90deg,
    transparent,
    white 20%,
    white 80%,
    transparent
  ); */
  /* mask: linear-gradient(90deg, transparent, white 20%, white 80%, transparent); */
}

.scroller[data-animated="true"] .scroller__inner {
  width: max-content;
  flex-wrap: nowrap;
  /* padding-left: calc(50% - 50vw); */
  -webkit-animation: scroll var(--_animation-duration, 40s)
    var(--_animation-direction, forwards) linear infinite;
  animation: scroll var(--_animation-duration, 40s)
    var(--_animation-direction, forwards) linear infinite;
}

.scroller[data-direction="right"] {
  --_animation-direction: reverse;
}

.scroller[data-direction="left"] {
  --_animation-direction: forwards;
}

.scroller[data-speed="fast"] {
  --_animation-duration: 20s;
}

.scroller[data-speed="slow"] {
  --_animation-duration: 60s;
}
.scroller__inner img {
  border: 1px solid gainsboro;
  height: 100%;
}
@keyframes scroll {
  to {
    transform: translate(calc(-50% - 0.5rem));
  }
}

@media screen and (min-width: 425px) {}

@media screen and (min-width: 600px) {
  .hero-banner {
    background-position: 10% 0;
  }
}

@media screen and (min-width: 769px) {
  .hero-banner {
    background-position: top center;
  }
  .hero-banner .article-header {
    padding-top: 100px;
    padding-left: 60%;
    padding-right: 50px;
    margin-top: -151px;
  }
  .swimclass-section .banner {
    padding: 50px;
  }
  .swimclass-section h2,
  .swimclass-section p {
    width: 50%;
  }
  .swimclass-section h2 {
    line-height: 3rem;
  }
  .dialog {
    width: fit-content;
    height: 80vh;
  }
  .dialog img {
    width: unset;
    max-width: unset;
    height: 100%;
    max-height: 100vh;
  }
}
@media screen and (min-width: 1024px) {
  .cards {
    grid-template-columns: repeat(3, 1fr);
    /* width: min(90vw, 900px); */
    padding: 50px 100px;
    grid-gap: 20px;
  }

}
@media screen and (min-width: 1200px) {
  /* Extra */
}
