/*************************
Variables
**************************/
/*************************
General Styles
**************************/
html {
  box-sizing: border-box;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

body {
  min-height: 100%;
  margin: 0;
  color: #cccccc;
  background-color: #000307;
  font-family: Raleway, Helvetica, Arial, sans-serif;
  font-size: 18px;
  line-height: 1.4;
  letter-spacing: 1px;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: auto;
}

h1,
h2,
h3 {
  text-align: center;
  font-weight: inherit;
  font-size: 1.5em;
  padding: 0.5em;
  margin: 0;
}

h2 {
  font-size: 1.6em;
}

p {
  padding: 0.5em;
  margin: 0;
}

a {
  color: #cccccc;
  text-decoration: none;
}

section {
  padding: 0 0 2em 0;
}

.container {
  max-width: 1200px;
  margin: auto;
  padding: 0 0.5em;
}
@media (min-width: 530px) {
  .container {
    padding: 0 1em;
  }
}

.btn {
  border: 1px solid #ddd;
  padding: 0.6em;
  border-radius: 4px;
  margin: 0.5em;
  transition: background-color 0.3s ease-in-out;
}
@media (min-width: 768px) {
  .btn {
    padding: 1em;
  }
}
.btn:hover {
  background-color: #23527c;
  cursor: pointer;
}

button {
  font-family: inherit;
  font-size: inherit;
  letter-spacing: inherit;
  background-color: transparent;
  color: inherit;
}

.jumbotron {
  background: url(../img/banner.JPG) no-repeat center 30%;
  background-size: cover;
  min-height: 300px;
  padding: 1em 0;
}
@media (min-width: 768px) {
  .jumbotron {
    font-size: 1.1em;
  }
}
.jumbotron img {
  width: 135px;
}
@media (min-width: 768px) {
  .jumbotron img {
    width: 160px;
  }
}

.sub-title {
  max-width: 600px;
  margin: 1em auto;
  border-radius: 4px;
  background-color: rgba(35, 82, 124, 0.8);
}

/*************************
Header
**************************/
.header {
  padding: 0.5em 0;
  border-bottom: 1px solid #23527c;
}

@media (min-width: 930px) {
  .header > .container {
    display: flex;
  }
}

.header-brand-social-container {
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
}
@media (min-width: 768px) {
  .header-brand-social-container {
    justify-content: space-between;
  }
}

.navbar-brand {
  text-align: center;
}
.navbar-brand img {
  display: inline-block;
  max-width: 90px;
}
@media (min-width: 768px) {
  .navbar-brand img {
    max-width: 115px;
  }
}

.header-social {
  display: none;
  justify-content: center;
  align-items: center;
  font-size: 1.3em;
}
@media (min-width: 768px) {
  .header-social {
    display: flex;
  }
}
.header-social a {
  margin: 0 0.3em;
  transition: color 0.3s ease-in-out;
}
.header-social a:hover {
  color: #23527c;
}

.main-nav {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-around;
}
@media (min-width: 930px) {
  .main-nav {
    margin-left: auto;
  }
}
.main-nav a {
  text-transform: uppercase;
  padding: 0.2em;
  font-size: 0.9em;
  margin: auto;
  border-radius: 4px;
  transition: background-color 0.3s ease-in-out;
}
@media (min-width: 768px) {
  .main-nav a {
    padding: 0.6em;
    font-size: 1em;
  }
}
.main-nav a:hover {
  background-color: #23527c;
}

/*************************
Homepage Styles
**************************/
@media (min-width: 768px) {
  .jumbotron-title {
    display: flex;
    flex-flow: column nowrap;
    margin-right: auto;
    padding: 2em;
    align-items: flex-start;
  }
  .jumbotron-title > * {
    margin: 0;
  }
}

.jumbotron-blurb {
  max-width: 520px;
  margin: 1em auto 2em auto;
  border-radius: 4px;
  background-color: rgba(35, 82, 124, 0.8);
}
@media (min-width: 768px) {
  .jumbotron-blurb {
    margin: 1em 0 1em 1em;
  }
}

.exam-board-logos img {
  width: 80px;
  height: 35px;
  display: inline-block;
  margin: 4px 8px;
}

#intro {
  padding: 0;
}

.intro-section {
  padding: 2.5em 0.5em;
  background-color: #efefef;
  color: #141414;
}
@media (min-width: 768px) {
  .intro-section {
    padding: 3em 1em;
  }
}
.intro-section .btn {
  display: inline-block;
  border-color: #141414;
  color: #141414;
}
.intro-section .intro-blurb {
  text-align: center;
  max-width: 40em;
  margin: auto;
  font-weight: bold;
}
.intro-section .intro-blurb p {
  text-align: justify;
  font-weight: bold;
}

.intro-section-2 {
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)),
    url(../img/intro-img02.jpg) no-repeat center center;
  background-size: cover;
  color: #cccccc;
}
.intro-section-2 .btn {
  border-color: #cccccc;
  color: #cccccc;
}

/*************************
About
**************************/
.test-link {
  display: inline-block;
  font-size: 1.2em;
  border-radius: 4px;
  margin: 0.5em 0;
  padding: 0.2em;
  text-decoration: underline;
}

.test-item {
  max-width: 600px;
  margin: 2em auto;
}

.about-section {
  margin: 3em auto;
  max-width: 800px;
}

.teacher-img {
  width: 150px;
  height: 150px;
  border-radius: 50%;
}

/*************************
Classes
**************************/
#classes-buttons {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  max-width: 800px;
  margin: 1em auto;
}
@media (min-width: 768px) {
  #classes-buttons {
    justify-content: center;
  }
}

.classes-section {
  overflow: hidden;
  height: auto !important;
}

.classes-item {
  border-top: 1px solid #23527c;
  margin: 2em auto;
  position: relative !important;
}
@media (min-width: 930px) {
  .classes-item {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: flex-start;
  }
}
.classes-item div {
  margin: 1em 0.5em;
}
@media (min-width: 530px) {
  .classes-item img {
    max-width: 480px;
  }
}
.classes-item .classes-item-blurb {
  background-color: rgba(35, 82, 124, 0.5);
  border-radius: 4px;
  margin: 0 auto 1em auto;
  max-width: 30em;
}
@media (min-width: 930px) {
  .classes-item .classes-item-blurb {
    margin-top: 3.75em;
  }
}
.classes-item .btn {
  text-align: center;
  margin: auto;
  max-width: 300px;
}

.classes-ages {
  text-align: center;
}

.classes-uniform-list {
  padding: 0.5em;
}

/*************************
Gallery
**************************/
#gallery-buttons {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  max-width: 800px;
  margin: 1em auto;
}
@media (min-width: 768px) {
  #gallery-buttons {
    justify-content: center;
  }
}

.img-gallery {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-items: flex-start;
  overflow: hidden;
}

.thumbnail {
  position: static !important;
  margin: 0.2em;
  transition: transform 0.5s;
}
.thumbnail:hover {
  transform: scale(1.1);
  z-index: 2;
  color: inherit;
}
.thumbnail img {
  width: 340px;
  height: 260px;
  object-fit: cover;
}

#gallery-overlay {
  z-index: 99;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  background: rgba(0, 0, 0, 0.8);
  display: none;
}
#gallery-overlay img {
  max-width: 95%;
  max-height: 95%;
}

.close-gallery-overlay {
  position: absolute;
  font-size: 2em;
  top: 1em;
  right: 1em;
}
.close-gallery-overlay:hover {
  cursor: pointer;
}

/*************************
Timetable Styles
**************************/
.ttable-price {
  display: block;
  margin-left: 1em;
}

#ttable-buttons {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  margin: 1em auto;
}

.ttable-section {
  overflow: hidden;
}

.ttable-item {
  background-color: rgba(35, 82, 124, 0.5);
  border-radius: 4px;
  padding: 1em 0;
  margin: 2em auto;
  width: 100%;
  max-width: 50em;
  position: relative !important;
}
.ttable-item .table {
  width: 90%;
  margin: auto;
}
.ttable-item .table thead {
  text-align: left;
  font-size: 1.1em;
}
.ttable-item .table caption {
  font-size: 1.4em;
  margin: 0.5em 0;
}
.ttable-item .table th,
.ttable-item .table td {
  padding: 0.3em;
  max-width: 360px;
}

/*************************
Venues Page Styles
**************************/
.venue-item {
  margin: 2em auto 3em auto;
  border-bottom: 2px solid #23527c;
  text-align: center;
}
.venue-item iframe {
  margin: 1em auto 3em auto;
}

@media (min-width: 930px) {
  .venue-title {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
  }
}

.dl-logo {
  max-width: 180px;
}

/*************************
Contact Page Styles
**************************/
.contact-blurb {
  max-width: 600px;
  text-align: center;
  padding-bottom: 2em;
  margin: auto;
  border-radius: 4px;
  background-color: rgba(35, 82, 124, 0.8);
}
.contact-blurb hr {
  max-width: 50%;
}

/*************************
Footer
**************************/
.footer {
  border-top: 1px solid #23527c;
  padding: 3em 1em 1em 1em;
}
.footer .container {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-items: center;
}
.footer .container div {
  padding: 0.5em;
}

.footer-logo {
  max-width: 140px;
}

.footer-social-icons {
  margin: 1em;
}
.footer-social-icons a {
  display: block;
  margin: 0 0.3em;
  transition: color 0.3s ease-in-out;
}
.footer-social-icons a:hover {
  color: #23527c;
}

.copyright {
  text-align: center;
  font-size: 0.8em;
}
.copyright a {
  color: #23527c;
}
