:root {
  --brand-blue: #57CBF3;
  --brand-gold: #FCD418;
  --brand-dark: #111111;
  --brand-grey: #999A99;
  --brand-light: #F7F7F7;
  --brand-white: #FFFFFF;
}

/* General */
body {
  color: var(--brand-dark);
  background: var(--brand-white);
}

a {
  color: var(--brand-blue);
}

a:hover,
a:focus,
a:active {
  color: var(--brand-gold);
  text-decoration: none;
  outline: none;
}

/* Navbar */
.custom-navbar {
  background: var(--brand-white);
  border-bottom: 3px solid var(--brand-gold);
}

.custom-navbar .navbar-brand {
  color: var(--brand-dark);
  font-weight: 700;
}

.custom-navbar .navbar-brand:hover,
.custom-navbar .navbar-brand:focus {
  color: var(--brand-blue);
}

/* Force menu links to use brand colours, not old template green */
.custom-navbar .navbar-nav > li > a,
.custom-navbar .navbar-nav.navbar-nav-first > li > a,
.custom-navbar .nav > li > a {
  color: var(--brand-dark);
  font-weight: 600;
  background: transparent !important;
  border-bottom: 3px solid transparent;
}

/* Menu hover */
.custom-navbar .navbar-nav > li > a:hover,
.custom-navbar .navbar-nav > li > a:focus,
.custom-navbar .navbar-nav.navbar-nav-first > li > a:hover,
.custom-navbar .navbar-nav.navbar-nav-first > li > a:focus,
.custom-navbar .nav > li > a:hover,
.custom-navbar .nav > li > a:focus {
  color: var(--brand-blue) !important;
  background: transparent !important;
  border-bottom: 3px solid transparent;
}

/* Active menu state, blue text with gold underline */
.custom-navbar .navbar-nav > .active > a,
.custom-navbar .navbar-nav > .active > a:hover,
.custom-navbar .navbar-nav > .active > a:focus,
.custom-navbar .navbar-nav.navbar-nav-first > .active > a,
.custom-navbar .navbar-nav.navbar-nav-first > .active > a:hover,
.custom-navbar .navbar-nav.navbar-nav-first > .active > a:focus,
.custom-navbar .nav > .active > a,
.custom-navbar .nav > .active > a:hover,
.custom-navbar .nav > .active > a:focus,
.custom-navbar .navbar-nav li.active a,
.custom-navbar .navbar-nav li.active a:hover,
.custom-navbar .navbar-nav li.active a:focus {
  color: var(--brand-blue) !important;
  background: transparent !important;
  border-bottom: 3px solid var(--brand-gold);
  box-shadow: none !important;
}

/* Right side phone icon */
.custom-navbar .navbar-nav.navbar-right li a .fa {
  background: var(--brand-blue);
  color: var(--brand-white);
}

/* Mobile menu button */
.navbar-toggle .icon-bar {
  background: var(--brand-dark);
}

/* Section titles */
.section-title h2 {
  color: var(--brand-dark);
}

.section-title h2 small,
.section-title small {
  color: var(--brand-grey);
}

/* Slider overlay tone */
.home-slider .caption {
  background-color: rgba(17, 17, 17, 0.35);
}

/* Primary buttons, all states locked to brand colours */
.section-btn,
.section-btn.btn,
.section-btn.btn.btn-default,
a.section-btn,
a.section-btn.btn,
a.section-btn.btn.btn-default,
.submit-btn,
input[type="submit"].form-control {
  background: var(--brand-blue) !important;
  border-color: var(--brand-blue) !important;
  color: var(--brand-white) !important;
  font-weight: 600;
  box-shadow: none !important;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease !important;
}

.section-btn:hover,
.section-btn:focus,
.section-btn:active,
.section-btn:visited,
.section-btn.btn:hover,
.section-btn.btn:focus,
.section-btn.btn:active,
.section-btn.btn:visited,
.section-btn.btn.btn-default:hover,
.section-btn.btn.btn-default:focus,
.section-btn.btn.btn-default:active,
.section-btn.btn.btn-default:visited,
a.section-btn:hover,
a.section-btn:focus,
a.section-btn:active,
a.section-btn:visited,
a.section-btn.btn:hover,
a.section-btn.btn:focus,
a.section-btn.btn:active,
a.section-btn.btn:visited,
a.section-btn.btn.btn-default:hover,
a.section-btn.btn.btn-default:focus,
a.section-btn.btn.btn-default:active,
a.section-btn.btn.btn-default:visited,
.submit-btn:hover,
.submit-btn:focus,
.submit-btn:active,
input[type="submit"].form-control:hover,
input[type="submit"].form-control:focus,
input[type="submit"].form-control:active {
  background: var(--brand-gold) !important;
  border-color: var(--brand-gold) !important;
  color: var(--brand-dark) !important;
  box-shadow: none !important;
  outline: none !important;
  background-image: none !important;
}

/* Feature blocks */
.feature-thumb {
  border-top: 3px solid var(--brand-blue);
}

.feature-thumb span {
  background: var(--brand-gold);
  color: var(--brand-dark);
}

.feature-thumb h3 {
  color: var(--brand-dark);
}

/* About section icons */
#about figure span i,
.about-info figure span i {
  background: var(--brand-blue);
  color: var(--brand-white);
}

/* Entry form box */
.entry-form {
  background: var(--brand-blue);
}

.entry-form h2 {
  color: var(--brand-white);
}

.entry-form .form-control {
  color: var(--brand-white);
  border-color: rgba(255, 255, 255, 0.5);
}

.entry-form .form-control::placeholder {
  color: rgba(255, 255, 255, 0.85);
}

.entry-form .submit-btn {
  background: var(--brand-gold) !important;
  color: var(--brand-dark) !important;
  border: 0 !important;
}

.entry-form .submit-btn:hover,
.entry-form .submit-btn:focus,
.entry-form .submit-btn:active {
  background: var(--brand-dark) !important;
  color: var(--brand-white) !important;
}

/* Testimonial / info cards */
#testimonial .item,
#services .item,
#courses .item {
  border-top: 3px solid var(--brand-gold);
}

.tst-author h4 {
  color: var(--brand-dark);
}

.tst-author span {
  color: var(--brand-grey);
}

/* Contact section */
#contact {
  background: var(--brand-light);
}

#contact .form-control {
  border: 1px solid #e5e5e5;
  box-shadow: none;
}

#contact .form-control:focus {
  border-color: var(--brand-blue);
  box-shadow: none;
}

#contact h2,
#contact h2 > small,
#contact p,
#contact a {
  color: var(--brand-dark);
}

/* Footer */
#footer,
footer {
  background: var(--brand-dark);
  color: var(--brand-white);
}

#footer h2,
#footer p,
#footer a,
#footer li,
footer h2,
footer p,
footer a,
footer li {
  color: var(--brand-white);
}

#footer a:hover,
footer a:hover {
  color: var(--brand-gold);
}

#footer .section-title h2,
footer .section-title h2 {
  color: var(--brand-blue);
}

/* Social icons */
.social-icon li a {
  color: var(--brand-blue);
}

.social-icon li a:hover {
  background: var(--brand-gold);
  color: var(--brand-dark);
}

/* Owl dots */
.owl-theme .owl-dots .owl-dot span {
  background: var(--brand-grey);
}

.owl-theme .owl-dots .owl-dot.active span,
.owl-theme .owl-dots .owl-dot:hover span {
  background: var(--brand-blue);
}

/* Top right social links */
.navbar-top-links {
  display: flex;
  align-items: center;
}

.navbar-top-links > li > a {
  display: flex !important;
  align-items: center;
  justify-content: center;
}

.navbar-top-links .social-link > a {
  width: 42px;
  height: 42px;
  padding: 0 !important;
  margin-top: 0;
  margin-bottom: 0;
  border-bottom: 0 !important;
  color: var(--brand-blue) !important;
  background: transparent !important;
}

.navbar-top-links .social-link > a:hover,
.navbar-top-links .social-link > a:focus {
  color: var(--brand-gold) !important;
  background: transparent !important;
}

.navbar-top-links .social-link .fa {
  font-size: 18px;
  line-height: 1;
}

.navbar-top-links .phone-link > a {
  color: var(--brand-dark) !important;
  font-weight: 600;
}

.navbar-top-links .phone-link > a:hover,
.navbar-top-links .phone-link > a:focus {
  color: var(--brand-blue) !important;
}

/* Stop the social icons inheriting the round phone icon background */
.custom-navbar .navbar-top-links .social-link a .fa {
  background: transparent !important;
  color: inherit !important;
  width: auto !important;
  height: auto !important;
  line-height: normal !important;
  margin-right: 0 !important;
}

.custom-navbar .navbar-top-links .phone-link a .fa {
  background: var(--brand-blue);
  color: var(--brand-white);
  width: 30px;
  height: 30px;
  line-height: 30px;
  margin-right: 5px;
  border-radius: 100%;
  text-align: center;
}

@media only screen and (max-width: 767px) {
  .navbar-top-links {
    justify-content: center;
    flex-wrap: wrap;
  }

  .navbar-top-links .social-link > a {
    width: 38px;
    height: 38px;
  }
}

/* Navbar logo */
.navbar-logo-link {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  line-height: normal !important;
}

.navbar-logo {
  display: block;
  max-height: 42px;
  width: auto;
}

/* Keep the logo tidy on smaller screens */
@media only screen and (max-width: 767px) {
  .navbar-logo {
    max-height: 34px;
    margin: 0 auto;
  }

  .navbar-logo-link {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
}