@import url('https://fonts.googleapis.com/css2?family=Gabarito:wght@400;500;700&display=swap');

/* Core Colours */
:root {
  --cedar-dark: #002d42;
  --cedar-pink: #f6a2c4;
  --cedar-pink-strong: #f57bac;
  --divider-grey: #d0dde6;
  --success-green: #37d51f;
  --failure-red: #f13f3f;
}

body { background-color: var(--cedar-dark); padding-top: 4rem; }

/* Pre Live */
body.preLive { padding-top: unset; }

/* Typography */
h1, h2, h3, p, li { font-family: 'Gabarito', sans-serif; }

h1, h2, h3 { color: var(--cedar-dark); font-size: 2.5rem; margin: 3rem 0 2rem; text-align: center; }

h3 { font-size: 2rem; margin: 2rem 0; }

ol { padding-left: 3rem; }

p, li {
  font-size: 1.625rem;
  margin-bottom: 1rem;
  margin-top: 2rem;
}

ul { margin-top: 1rem; }
li { margin-bottom: 0.8rem; margin-top: 0.6em; }

label {
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
  margin-top: 1.4rem;
}

p a, p a:hover, li a, li a:hover, small a, small a:hover {
  border-bottom: 1px dashed var(--cedar-pink);
  color: var(--cedar-dark);
  text-decoration: none;
}

.small, small, .small p {
  font-size: 1.4rem;
}

.small p { margin: 0 0 0.6rem; }

hr { border: none; border-top: 2px solid var(--cedar-pink); margin: 0 auto 3rem; opacity: unset; width: 200px; }

/* Navbar */
.footer, .navbar { background-color: var(--cedar-dark); }

.navbar .navbar-brand { color: #fff; font-size: 1.375rem; line-height: 3rem; }
.navbar .navbar-toggler span { color: #fff; }
.navbar { transition: box-shadow 0.3s ease; }
.navbar.scrolled { box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25); }
.navbar li { font-size: 1.375rem; margin: unset; }
.navbar li a { color: var(--cedar-dark); border-bottom: none; border-left: 3px solid transparent; padding-left: 0.75rem; transition: background-color 0.18s ease, border-left-color 0.18s ease, color 0.18s ease; }
.navbar li a:hover { background-color: rgba(245, 123, 172, 0.08); border-left-color: var(--cedar-pink-strong); }
.navbar li a.active { font-weight: 600; border-left-color: var(--cedar-pink-strong); background-color: rgba(245, 123, 172, 0.12); }
.navbar li a i { color: var(--cedar-pink-strong); }
.navbar li a:hover i { color: var(--cedar-pink); }
.navbar i.fa-fw { margin-right: 1.25rem; }
.navbar .nav-divider { padding: 0; }
.navbar .nav-divider hr { border-top: 1px solid var(--divider-grey); margin: 0.5rem 0.75rem; width: auto; opacity: 1; }

.navbar .custom-toggler { background-color: transparent; border: 2px solid white; border-radius: 4px; color: white; padding: 0.5rem; }
.navbar .custom-toggler:focus { outline: none; box-shadow: 0 0 5px rgba(255, 255, 255, 0.75); }
.navbar .custom-toggler i { font-size: 1.5rem; }

@media (hover: hover) {
  .navbar .custom-toggler:hover { background-color: rgba(255, 255, 255, 0.1); }
}

#offcanvasNavbar { width: 540px; }

@media (max-width: 576px) {
  #offcanvasNavbar { width: 100%; }
}

@media (min-width: 767.98px) {
  .header-pusher { margin-top: 2rem; }
}

/* Footer */
.footer { padding: 2rem 0 3rem; }
.footer a, .footer a:hover, .footer a:visited { color: #fff; }
.footer div.email, .footer div.social-media { text-align: center; }
.footer div.email a { font-size: 2.25rem; text-decoration: none; }
.footer div.social-media a { font-size: 3rem; margin-left: 4rem; margin-right: 4rem; }

/* Forms */
label .fad, label .fas { margin-right: 0.875rem; }
.was-validated :invalid ~ * .invalid-feedback { display: block; } /* Improve Existing Validation */
.width-unset { width: unset; }

/* Buttons */
.btn i { margin-right: 0.875rem; }
.btn-primary { background-color: #fff; border-color: var(--cedar-pink); color: var(--cedar-pink-strong); font-size: 1.6rem; margin-bottom: 2rem; margin-top: 2.4rem; }
.btn-primary:hover { background-color: var(--cedar-pink); border-color: var(--cedar-pink-strong); color: #fff; }

#divSignUpResult, #divSubmitEvidenceResult { display: none; margin-top: 3rem; }
#divSignUpResult i.fad, #divSubmitEvidenceResult i.fad { font-size: 10rem; margin-bottom: 2rem; }
#divSignUpResult.success i, #divSubmitEvidenceResult.success i { color: var(--success-green); }
#divSignUpResult.failure i, #divSubmitEvidenceResult.failure i { color: var(--failure-red); }

/* Cards */
.card-body { background-color: #fff; }
.card-footer .btn { font-size: 1rem; margin-top: 0.4rem; margin-bottom: 0.4rem; }

.white-background { background-color: #fff; }

/* Modals */
.modal-success, .modal-failure { padding: 1.25rem; text-align: center; }
.modal-success i.fad, .modal-failure i.fad { font-size: 14rem; margin-bottom: 1.5rem; }
.modal-success h1, .modal-failure h1 { font-size: 3rem; margin-bottom: 1.5rem; }
.modal .close { border: none; background-color: #fff; }
.modal li { font-size: 1.25rem; margin: 0 0 0.5rem; }
.modal ol { margin-top: 0.5rem; }
.modal-success i.fad { color: var(--success-green); }
.modal-failure i.fad { color: var(--failure-red); }

/* Case Studies */
.case-study-img { height: 260px; object-fit: cover; }
.case-study .card-title { font-size: 1.75rem; margin: 1.5rem 0 1rem; text-align: center; }
.case-study .card-footer { flex-wrap: wrap; }
.case-study .card-footer .btn { flex: 1 1 auto; }

@media (min-width: 768px) and (max-width: 991.98px) {
  .case-study-img { height: 360px; }
}

/* Scroll Reveal */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.reveal.reveal-visible {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Responsive */
@media (max-width: 991px) {
  .btn-primary { font-size: 1.2rem; margin-bottom: 1rem; margin-top: 1rem; }
  h1 { font-size: 2rem; }
  h2 { font-size: 1.75rem; }
  h3 { font-size: 1.625rem; }
  .footer div.email a { font-size: 2rem; }
  .footer div.social-media a { margin-left: 3rem; margin-right: 3rem; }
}

@media (max-width: 768px) {
  p, label, li {
    font-size: 1.25rem;
    line-height: 1.4;
  }

  .small, small, .small p {
    font-size: 1rem;
  }

  label { font-size: 1.125rem; }
}

@media (max-width: 767px) {
  .footer div.email a { font-size: 1.625rem; }
  .footer div.social-media a { font-size: 2rem; margin-left: 1.8rem; margin-right: 1.8rem; }
}
