@charset "UTF-8";
/* CSS Document */

/* FOR TESTING ONLY
/* REMOVE BEFORE UPLOADING */
* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

/* Font import */
/* Montserrat */
@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,700;0,900;1,400;1,900&display=swap");

body {
  font-family: "Montserrat", sans-serif;
}

/* Hides page titles */
/* h1.page-title {
  display: none;
} */

/* Colours */
:root {
  --red: #d61b60;
  --green: #25a383;
  --blue: #158896;
  --grey: #414143;
  --black: #0b0b0b;
  --purple: #5a0066;
}

/* LOGIN */
/* Changes the buttons on the login screen */
.ic-Login__sso .ic-Login__sso-list__item {
  width: 100%;
}

.ic-Login__header .ic-Login__header__logo img {
  max-width: 100% !important;
}

.ic-Login__body .ic-Login__actions button.Button--login {
  background: #ababab;
}

.ic-Login__sso .ic-Login__sso-list__item .Button.ic-Login__sso-button {
  background: var(--red);
  font-size: larger;
  box-sizing: border-box;
  width: 100%;
  margin-bottom: 5px;
}

/*  */
/* GENERAL PAGE STYLES */
/*  */
.acm-main-content,
.user_content {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  overflow-x: hidden;
  margin: 10px auto;
  padding: 10px 0;
  width: 98%;
  left: 0;
  right: 0;
  line-height: 1.5;
  border-radius: 0.25em;
}

.acm-main-content h3,
.acm-section h3,
.user_content h3 {
  color: var(--red);
  font-weight: 900;
  font-size: 18pt;
  /* margin-bottom: -10px; */
}

.acm-main-content h4,
.acm-section h4,
.user_content h4 {
  padding-left: 40px;
  margin: 10px 0;
}

.acm-main-content p,
.acm-section p,
.user_content p {
  padding-left: 20px;
}

.acm-main-content > h3 + p,
.acm-section > h3 + p,
.user_content > h3 + p {
  padding-left: 20px;
}

.acm-main-content > h4 + p,
.acm-section > h4 + p,
.user_content > h4 + p {
  padding-left: 60px;
}

.acm-main-content ul,
.acm-section ul,
.user_content ul {
  padding-left: 60px;
}

.acm-main-content > img,
.acm-section > img,
.user_content > img {
  display: flex;
  margin: 5px auto;
  width: 80%;
  border-radius: 0.5em;
}

.acm-main-content a,
.acm-section a,
.user_content a {
  cursor: pointer;
  color: inherit;
  font-size: inherit;
}

.acm-main-content a:hover,
.acm-section a:hover,
.user_content a:hover {
  cursor: pointer;
  color: var(--red);
}

.acm-main-content iframe,
.acm-section iframe {
  display: flex;
  margin: 10px auto;
  width: 50%;
  border-radius: 0.5em;
}

.user_content > .page-title {
  background: var(--red);
  border-top-right-radius: 0.5em;

  width: 100%;
  text-align: left;
  color: #ffffff !important;
  font-weight: 900 !important;
  padding: 10px;
  padding-right: 15%;
  border-left: 10px solid var(--black);
}

/* SECTIONS */

/* GENERAL CONTENT */
.acm-section {
  width: 95%;
  margin: 10px auto 25px auto;
  background-color: #ffffff;
  padding: 10px;
  border-radius: 0.25em;
  border: 1px solid rgba(0, 0, 0, 0.5);
  box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.5);
  border-top: 20px solid var(--red);
}

.section--green {
  border-top: 20px solid var(--green);
}

.section--green h3 {
  color: var(--green);
}

.section--blue {
  border-top: 20px solid var(--blue);
}

.section--blue h3 {
  color: var(--blue);
}

.section--grey {
  border-top: 20px solid var(--grey);
}

.section--grey h3 {
  color: var(--grey);
}

.section--purple {
  border-top: 20px solid var(--purple);
}

.section--purple h3 {
  color: var(--purple);
}

/*  CONTENT WITH ICON */
#section-icon {
  color: white;
  position: relative;
  top: -32px;
  left: 98%;
}

#section-icon + h3 {
  margin-top: -20px;
}

#black-icon {
  color: var(--black);
}

#button-icon {
  color: #ffffff;
  margin-right: 5px;
}

#button-icon:hover {
  color: #ffffff;
}

/* Core Modules Homepage */
.acm-assessment p {
  padding-left: 60px;
}

.acm-assessment ul,
.acm-assessment ol {
  padding-left: 80px;
}

/* Page Header */
.acm-page-header {
  margin: 10px auto;
  width: 95%;
  text-align: center;
  font-size: 18pt;
  background-color: var(--black);
  color: #ffffff;
  border-radius: 0.5em;
}

/*  */
/* ACM STYLED HORIZONTAL RULE */
/*  */
.acm-hr {
  width: 90%;
  height: 5px;
  border: none;
  border-radius: 5px;
  background: linear-gradient(to right, var(--red), var(--black));
  margin: 10px auto;
}

/* UL Styles */
/* Tick List */
.tick-list li {
  list-style: none;
}

.tick-list li::before {
  content: "✓";
  color: var(--red);
  margin-right: 5px;
}

/* Icon List */
.icon-list li {
  list-style: none;
}

.icon-list li::before {
  content: "";
  color: var(--red);
  margin-right: 5px;
}

/*  */
/* COURSE HOMEPAGE HEADER */
/*  */
.acm-module-header {
  width: 99%;
  position: relative;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  background: var(--black);
  color: #ffffff;
  border-radius: 10px;

  border: 1px solid var(--red);

  z-index: 999;
  overflow: hidden;
}

.acm-title-container {
  margin: 10px 0;
}

.acm-main-title {
  margin: 10px;
  text-align: center;
}

.acm-subtitle {
  text-align: center;
  background-color: var(--red);
  border-radius: 0.5em;
  padding: 0 5px;
}

.acm-subtitle h3 {
  color: #ffffff;
}

.acm-bgLine {
  width: 100%;
  border: 1px solid var(--red);
  z-index: -1;
  position: absolute;
  top: 90px;
}

.acm-header-img > img {
  width: 99vw;
  min-height: 150px;
  max-height: 200px;
  object-fit: cover;
  margin-top: -15px;
  border-radius: 0 0 0.5em 0.5em;
}

.acm-header-nav {
  display: flex;
  justify-content: space-between;
  width: 100%;
}

.acm-navBtn {
  width: 33%;
  padding: 10px 0;
  display: flex;
  justify-content: center;
  align-items: center;

  border-left: 2px solid var(--red);

  transition: 200ms ease-in-out;
  opacity: 0.8;
}

.home-discussion {
  border-left: none;
}

.acm-navBtn a {
  color: rgba(255, 255, 255, 0.9);
}

.acm-navBtn a:hover {
  cursor: pointer;
  transform: scaleY(1.05);
  opacity: 1;
  font-weight: 900;
  color: var(--red);
}

/*  */
/* SPECIFIC FEATURES */
/*  */

/* image on hover displays another image */
.imageBox {
  position: relative;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.imageBox .hoverImg {
  position: absolute;
  left: 0;
  top: 0;
  display: none;
}

.imageBox:hover .hoverImg {
  display: block;
}

/* dashboard cards no colour overlay*/
div.ic-DashboardCard__header_hero {
  opacity: 0 !important;
}

/*  */
/* Accordions */
/*  */
/* COURSE CONTENT */
.accordion {
  width: 90%;
  margin: 0 auto;
  padding: 5px;
  margin-bottom: 5px;
  background-color: rgba(214, 27, 96, 0.1);
  border-radius: 0.25em;
  border: 1px solid rgba(0, 0, 0, 0.5);
}

.accordion h3 {
  margin-bottom: -10px;
}

summary {
  font-size: 16pt;
  padding: 5px 0 5px 10px;
}

.accordion-section {
  padding: 5px;
  margin-bottom: 5px;
  background-color: #fff;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 0.25em;
}

.accordion a {
  text-decoration: none;
}

.course-content-accordion ul {
  list-style: none;
}

.course-content-accordion li {
  margin: 5px 0;
}

.list-title {
  font-size: 12pt;
}
.list-icon {
  width: 25px;
  aspect-ratio: 1;
  padding-right: 10px;
}

.accordion-section hr {
  width: 90%;
  margin: 0 auto;
}

/* AUTO HOMEPAGE */
/* Add hr after each li in course content list, except last li */
.course-content-accordion ul li:not(:last-child):after {
  content: "";
  display: block;
  height: .5px;
  width: 95%;
  margin: 5px auto 10px auto;
  background-color: rgba(128, 128, 128, 0.5);
  border-width: 0;
  color: rgba(128, 128, 128, 0.5);
}

/* Split Accordion */
.split-accordion {
  display: inline-block;
  margin-left: 5%;
}
/* Text left - image right */
.accordionTextL {
  width: 68%;
  float: left;
}

.accordionImgR {
  float: right;
  width: 30%;
  height: 250px;
}

.accordionImgR img,
.accordionImgL img {
  object-fit: cover;
  height: 100%;
  width: 100%;
  border-radius: 10px;
}

/* Image left - text right */
.accordionImgL {
  float: left;
  width: 30%;
  height: 250px;
}

.accordionTextR {
  width: 68%;
  float: right;
}

/* BLACK ACCORDION */
.accordionContainer {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 100%;
}

.accordionContainer details {
  margin: 5px;
  width: 90%;
}

.accordionContainer summary {
  background-color: var(--grey);
  font-size: 18pt;
  color: #ffffff;
  border-radius: 10px 10px 0 0;
  padding: 10px;
}

.accordionContents {
  background-color: var(--grey);
  color: #ffffff;
  border-radius: 0 0 10px 10px;
  padding: 20px;
  height: max-content;
  display: flex;
  flex-direction: column;
}

.accordionContents a {
  color: #ffffff;
  text-decoration: none;
}

.accordionContents p {
  padding-left: 20px;
  font-size: 12pt;
}

.accordionContents ul {
  padding-left: 20px;
}

/* InfoBox */
.infobox {
  margin: 20px;
  padding: 20px;
  background-color: rgba(214, 27, 96, 0.1);
  border: 1px double rgba(0, 0, 0, 0.5);
  vertical-align: middle;
  display: flex;
  flex-direction: column;
}

.infobox img {
  position: relative;
  margin-left: auto;
  margin-right: 10px;
  max-width: 30%;
  object-fit: cover;
}

/* Task box */
.taskbox {
  width: 90%;
  background-color: var(--blue);
  border-radius: 0.5em;
  padding: 15px;
  margin: 5px auto;
  color: #ffffff;
  font-size: 18pt;
}

/*  */
/* Buttons */
/*  */
#Button--home {
  display: block;
  margin: 0 auto;
  width: fit-content;
  margin: 10px auto;
  text-align: center;
  background-color: var(--red);
  color: #ffffff;
}

#Button--home:hover {
  background-color: var(--red);
  box-shadow: 3.5px 3.5px 5px rgba(0, 0, 0, 0.5);
}

.Button--secondary a {
  color: #ffffff;
}

.Button--success a {
  color: #ffffff;
}

.Button--home {
  left: 45%;
}

/* Tables */
/* Lesson Content Table */

.user_content table {
  width: 100%;
  background-color: #ffffff;
  border-collapse: collapse;
  border-width: 2px;
  border-color: var(--red);
  border-style: solid;
  color: var(--black);
}

.user_content td,
.user_content th {
  border-width: 2px;
  border-color: var(--red);
  border-style: solid;
  padding: 3px;
  padding-left: 20px;
}

.user_content thead {
  background-color: var(--red);
  font-size: 16pt;
}

.user_content td {
  padding-left: 40px;
}

/* TILES WITH HOVER EFFECTS */
/* NavCard set up */
.navCard {
  border: 2px solid var(--black);
  border-radius: 10px;
  width: fit-content;
  padding: 0;
  margin: 10px;
  background-color: #f5f5f5;
  overflow: hidden;
  position: relative;
  transition: transform 0.4s;
}

/* Hover set up */
.navImgHover {
  display: block;
  border-radius: 10px 10px 0 0;
  width: 100%;
  height: 100px;
  padding: 0;
  transition: transform 0.4s;
}

.navCard img {
  object-fit: cover;
}

.navCard:hover {
  -webkit-box-shadow: 5px 5px 10px -5px var(--grey);
  box-shadow: 5px 5px 10px -5px var(--grey);
}

.navImgHover:hover {
  cursor: pointer;
  transform: scale(1.1);
  transform-origin: 50% 50%;
}

.navCard:hover {
  cursor: pointer;
  transform: scale(1.025);
}

/* NavCard text styling */
.navCard a {
  text-decoration: none;
  color: var(--black);
}

.navCard span {
  display: inline-block;
  margin: 10px;
  font-size: 16pt;
  color: var(--black);
}

/* Tutor Headshot */
#tutor-info {
  width: 100px;
  border-radius: 50%;
  vertical-align: middle;
  margin-right: 20px;
}

/* Blockquote */
blockquote {
  width: 70%;
  margin: 10px auto;
  border-radius: 0.5em;
  background-color: #f9f9f9;
  padding: 10px;
  border: 1px solid var(--grey);
  border-left: var(--grey) solid 10px;
}

/* FE Styling */
.acm-fe-button {
  border-radius: 10px;
  width: fit-content;
  height: 150px;
  min-height: fit-content;
  padding: 0;
  margin: 10px;
  background-color: #f5f5f5;
  /* overflow: hidden; */
  position: relative;
  transition: transform 0.4s;
  display: flex;
  justify-content: center;
  align-items: center;
}

.acm-fe-button span {
  display: inline-block;
  margin: 10px;
  font-size: 16pt;
  color: #ffffff;
}

.acm-fe-button:hover {
  cursor: pointer;
  transform: scale(1.025);
  -webkit-box-shadow: 5px 5px 10px -5px var(--grey);
  box-shadow: 5px 5px 10px -5px var(--grey);
}

  /* Carousel */
  .carousel-container {
    padding: 2rem;
  }

  .carousel-wrapper {
    position: relative;
    max-width: 48rem;
    margin: 0 auto;
  }

  .carousel-slider {
    display: flex;
    aspect-ratio: 16/9;
    overflow-x: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    box-shadow: 0 1.5rem 3rem 0.75rem hsla(0, 0%, 0%, 0.25);
    border: 0.5rem;
    border-radius: 0.5rem;
  }

  .carousel-slider img {
    flex: 1 0 100%;
    scroll-snap-align: start;
    object-fit: cover;
  }

  .carousel-nav {
    display: flex;
    column-gap: 1rem;
    position: absolute;
    bottom: 1.25rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
  }

  .carousel-nav a {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background-color: #fff;
    opacity: 0.75;
    transition: opacity ease 250ms;
  }

  .carousel-nav a:hover {
    opacity: 1;
  }
  .carousel-nav a:active {
    opacity: 1;
  }

   /* Vertical Scroll */
   .vertical-scroll-container {
    padding: 2rem;
  }

  .vertical-scroll-wrapper {
    position: relative;
    max-width: 48rem;
    margin: 0 auto;
  }

  .vertical-scroll-slider {
    display: flex;
    flex-direction: column;
    aspect-ratio: 16/9;
    overflow-y: hidden;
    scroll-snap-type: y mandatory;
    scroll-behavior: smooth;
    box-shadow: 0 1.5rem 3rem 0.75rem hsla(0, 0%, 0%, 0.25);
    border: 0.5rem;
    border-radius: 0.5rem;
  }

  .vertical-scroll-slider img {
    flex: 1 0 100%;
    scroll-snap-align: start;
    object-fit: cover;
  }

  .vertical-scroll-nav {
    display: flex;
    flex-direction: column;
    row-gap: 1rem;
    position: absolute;
    left: 1.25rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
  }

  .vertical-scroll-nav a {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background-color: #fff;
    opacity: 0.75;
    transition: opacity ease 250ms;
  }

  .vertical-scroll-nav a:hover {
    opacity: 1;
  }
  .vertical-scroll-nav a:active {
    opacity: 1;
  }

   /* Text Carousel */
   .text-slider {
    display: flex;
    aspect-ratio: 1/1;
    overflow-x: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    box-shadow: 0 1.5rem 3rem 0.75rem hsla(0, 0%, 0%, 0.25);
    border: 0.5rem;
    border-radius: 0.5rem;
  }

  .carousel-text {
    flex: 1 0 100%;
    scroll-snap-align: start;
    object-fit: cover;

    padding: 2rem;
  }

/* Module page styling */
/* Left border for each module list */
/* 20 modules */
.context_module:nth-child(1) > .ig-header.header,
.context_module:nth-child(1) > .content > ul {
  border-left: 10px solid var(--red);
}

.context_module:nth-child(2) > .ig-header.header,
.context_module:nth-child(2) > .content > ul {
  border-left: 10px solid var(--green)
}

.context_module:nth-child(3) > .ig-header.header,
.context_module:nth-child(3) > .content > ul {
  border-left: 10px solid var(--blue);
}

.context_module:nth-child(4) > .ig-header.header,
.context_module:nth-child(4) > .content > ul {
  border-left: 10px solid var(--grey);
}

.context_module:nth-child(5) > .ig-header.header,
.context_module:nth-child(5) > .content > ul {
  border-left: 10px solid var(--purple);
}

.context_module:nth-child(6) > .ig-header.header,
.context_module:nth-child(6) > .content > ul {
  border-left: 10px solid var(--red);
}

.context_module:nth-child(7) > .ig-header.header,
.context_module:nth-child(7) > .content > ul {
  border-left: 10px solid var(--green);
}

.context_module:nth-child(8) > .ig-header.header,
.context_module:nth-child(8) > .content > ul {
  border-left: 10px solid var(--blue);
}

.context_module:nth-child(9) > .ig-header.header,
.context_module:nth-child(9) > .content > ul {
  border-left: 10px solid var(--grey);
}

.context_module:nth-child(10) > .ig-header.header,
.context_module:nth-child(10) > .content > ul {
  border-left: 10px solid var(--purple);
}

.context_module:nth-child(11) > .ig-header.header,
.context_module:nth-child(11) > .content > ul {
  border-left: 10px solid var(--red);
}

.context_module:nth-child(12) > .ig-header.header,
.context_module:nth-child(12) > .content > ul {
  border-left: 10px solid var(--green);
}

.context_module:nth-child(13) > .ig-header.header,
.context_module:nth-child(13) > .content > ul {
  border-left: 10px solid var(--blue);
}

.context_module:nth-child(14) > .ig-header.header,
.context_module:nth-child(14) > .content > ul {
  border-left: 10px solid var(--grey);
}

.context_module:nth-child(15) > .ig-header.header,
.context_module:nth-child(15) > .content > ul {
  border-left: 10px solid var(--purple);
}

.context_module:nth-child(16) > .ig-header.header,
.context_module:nth-child(16) > .content > ul {
  border-left: 10px solid var(--red);
}

.context_module:nth-child(17) > .ig-header.header,
.context_module:nth-child(17) > .content > ul {
  border-left: 10px solid var(--green);
}

.context_module:nth-child(18) > .ig-header.header,
.context_module:nth-child(18) > .content > ul {
  border-left: 10px solid var(--blue);
}

.context_module:nth-child(19) > .ig-header.header,
.context_module:nth-child(19) > .content > ul {
  border-left: 10px solid var(--grey);
}

.context_module:nth-child(20) > .ig-header.header,
.context_module:nth-child(20) > .content > ul {
  border-left: 10px solid var(--purple);
}

.main-hero-container {
  width: 100%;
  height: 47vh;
  background-image: linear-gradient(to bottom, var(--red), #aa3775, #7b4476, #554763, var(--grey));
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.hero-course-title {
  width: 100%;
  font-family: 'Archivo Black', serif;
  color: var(--white);
  padding-left: 8vw;
  font-size: 2em;
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
}

.hero-introduction {
  font-family: 'Roboto', sans-serif;
  font-size: 12pt;
  margin: 20px 50px 0 0;
  text-align: left;
}

.hero-img {
  width: 45%;
  height: 98%;
  padding-right: 5vw;
  max-width: 350px;
}

.hero-img > img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#scroll-down-animation {
  position: relative;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  text-align: center;
}

#scroll-down-animation p {
  margin-top: 5px;
}

.acm-desktop-hidden {
  display: none;
}

.mouse {
  margin: 0 auto;
  display: block;
  border-radius: 50px;
  border: 2px solid var(--red);
  height: 60px;
  width: 30px;
}

.move {
  position: absolute;
  background-color: var(--red);
  height: 10px;
  width: 10px;
  border-radius: 50%;
  left: 50%;
  transform: translateX(-30%);
  animation: move 2s linear infinite;
}

@keyframes move {
  0% {
    transform: translate(-50%,0px);
    opacity: 0;
  }
  50% {
    transform: translate(-50%,20px);
    opacity: 1;
  }
  100% {
    transform: translate(-50%,30px);
    opacity: 0;
  }
}

/* Mobile */
@media only screen and (max-width: 600px) {
  .acm-desktop-hidden {
      display: block;
  }

  .main-hero-container {
      display: flex;
      flex-direction: column-reverse;
      height: 87vh;
  }

  .hero-course-title {
      width: 100%;
      padding: 0;
      margin-bottom: 100px;
      padding-left: 10vw;
  }

  .hero-img {
      width: 100%;
      height: 80%;
      margin: auto;
      max-width: 275px;
  }
} 