* {
  margin: 0;
  padding: 0;
  box-sizing: content-box;
}

ul {
  list-style: none;
}
ul li a {
  text-decoration: none;
}

/* #########################  Nav Bar #####################*/
nav .navbar-line-one {
  width: 100vw;
  padding: 2vh 0;
  display: flex;
  align-items: center;
}
nav .navbar-line-one .logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 15vw;
}
nav .navbar-line-one .logo img {
  width: 50px;
  height: auto;
}
nav .navbar-line-one .title {
  width: 70vw;
  align-items: center;
  justify-content: center;
  text-align: center;
}
nav .navbar-line-one .nav-contact {
  text-align: left;
  width: 15vw;
}
nav .navbar-line-one .nav-contact a {
  text-decoration: none;
  color: #222222;
  font-weight: bold;
  font-size: 0.8em;
  margin: 0 1rem;
}
nav .navbar-line-one .nav-contact a:hover {
  text-decoration: underline;
}
nav .navbar-line-two {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100vw;
  margin: 0 auto;
  background-color: #222222;
}
nav .navbar-line-two ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 2vh 1rem;
  align-items: center;
}
nav .navbar-line-two ul li {
  margin-right: 1.5rem;
}
nav .navbar-line-two ul li:last-child {
  margin-right: 0;
}
nav .navbar-line-two ul li a {
  font-size: 1.5em;
  color: #f8f9fa;
}
nav .navbar-line-two ul li a:hover {
  text-decoration: underline;
}
nav .navbar-line-two .list-1 {
  margin-left: 36vw;
}
nav .navbar-line-two .list-2 {
  margin-right: 9vw;
}

/* #########################  Footer #####################*/
footer {
  width: 100vw;
  height: auto;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  background-color: #222222;
  color: #f8f9fa;
  line-height: 2;
}
footer p {
  font-size: 1.2em;
  text-align: center;
}
footer a {
  color: #f8f9fa;
  text-decoration: none;
  font-weight: bold;
  font-size: 1.2em;
  margin: 0 1rem;
}
footer .footer-left-right {
  width: 50vw;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-direction: row;
  margin: 0 auto;
  padding: 2vh 0;
}
footer .footer-left-right .footer-left {
  width: 25vw;
  text-align: center;
}
footer .footer-left-right .footer-right {
  width: 25vw;
  text-align: center;
}
footer .footer-left-right .footer-right ul {
  list-style: none;
}
footer .footer-left-right .footer-right ul li a:hover {
  text-decoration: underline;
}
footer .social-media {
  width: 25vw;
  text-align: center;
  margin: 0 auto;
  padding: 2vh 0;
  font-size: 2rem;
}

/* #########################  Index Page Styles #####################*/
.index-page {
  /* #########################  Header #####################*/
  /* #########################  main #####################*/
}
.index-page header {
  width: 100vw;
  height: 80vh;
  position: relative;
  overflow: hidden;
}
.index-page header figure {
  z-index: 0;
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
}
.index-page header figure img {
  top: 0;
  left: 0;
  width: 100vw;
  height: 80vh;
  -o-object-fit: cover;
     object-fit: cover;
  filter: brightness(50%);
}
.index-page header figure figcaption {
  position: absolute;
  z-index: 1;
  top: 25%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  color: #f8f9fa;
  font-size: 2em;
  font-weight: bold;
}
.index-page header figure figcaption h2 {
  z-index: 1;
  font-size: 2em;
  font-weight: bold;
  margin-bottom: 1rem;
  text-shadow: 5px 5px 5px #222222;
}
.index-page header figure figcaption h3 {
  z-index: 1;
  font-size: 1.3em;
  font-weight: bold;
  margin-bottom: 1rem;
  text-shadow: 5px 5px 5px #222222;
}
.index-page header figure .login {
  display: block;
  position: absolute;
  z-index: 1;
  top: 70%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: #fff;
  border-radius: 15px;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
  padding: 10px 20px;
  transition: transform 0.2s;
  width: 500px;
  text-align: center;
}
.index-page header figure h1 {
  color: #4CAF50;
}
.index-page header figure label {
  display: block;
  width: 100%;
  margin-top: 10px;
  margin-bottom: 5px;
  text-align: left;
  color: #555;
  font-weight: bold;
}
.index-page header figure input {
  display: block;
  width: 100%;
  margin-bottom: 15px;
  padding: 10px;
  box-sizing: border-box;
  border: 1px solid #ddd;
  border-radius: 5px;
}
.index-page header figure button {
  padding: 15px;
  border-radius: 10px;
  margin-top: 15px;
  margin-bottom: 15px;
  border: none;
  color: white;
  cursor: pointer;
  background-color: #4CAF50;
  width: 100%;
  font-size: 16px;
}
.index-page header figure .wrap {
  display: flex;
  justify-content: center;
  align-items: center;
}
.index-page header figure .welcome {
  font-size: 2rem;
  position: absolute;
  z-index: 1;
  top: 55%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #f8f9fa;
  text-shadow: 1px 1px 5px #222222;
}
.index-page .hero-image-reference {
  text-align: center;

}
.index-page .hero-image-reference a{
    color: #222222;
}
.index-page main {
  width: 100vw;
  height: auto;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
.index-page main .about {
  flex-direction: row;
  width: 90vw;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
.index-page main .about img {
  width: 25vw;
  height: auto;
  box-shadow: 1px 1px 5px #222222;
  padding: 2vh 0;
}
.index-page main .about p {
  color: #f8f9fa;
}
.index-page main .about p a {
  color: #f8f9fa;
}
.index-page main .about .about-left {
  width: 30vw;
  background-color: #222222;
  text-align: center;
}
.index-page main .about .about-center {
  width: 30vw;
  padding: 0 2vw;
  text-align: center;
}
.index-page main .about .about-center p {
  color: #222222;
  font-size: 1.2em;
}
.index-page main .about .about-right {
  width: 30vw;
  background-color: #222222;
  text-align: center;
}
.index-page main .about h2 {
  font-size: 2em;
  font-weight: bold;
  margin-bottom: 1rem;
  text-align: center;
  color: #222222;
}
.index-page main .services {
  width: 95vw;
  height: 30vw;
  overflow: hidden;
  margin: 0 auto;
  padding: 2vh 0;
  position: relative;
  display: flex;
  z-index: 0;
}
.index-page main .services img {
  width: 95vw;
  height: 50vw;
  -o-object-fit: cover;
     object-fit: cover;
  filter: brightness(30%);
}
.index-page main .services .services-caption {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #f8f9fa;
  line-height: 2;
}
.index-page main .services .services-caption h2 {
  font-size: 2em;
  font-weight: bold;
  margin-bottom: 1rem;
}
.index-page main .services .services-caption ul li {
  font-size: 1.3em;
  font-weight: bold;
  margin-bottom: 1rem;
}
.index-page main .img4-src a {
  color: #222222;
}
.index-page main .contact {
  width: 50vw;
  height: auto;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
.index-page main .contact h2 {
  font-size: 2em;
  font-weight: bold;
  margin-bottom: 1rem;
  text-align: center;
  color: #222222;
}
.index-page main .contact p {
  color: #222222;
  font-size: 1.2em;
  text-align: center;
}
.index-page main .contact form {
  width: 50vw;
  height: auto;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
.index-page main .contact form label {
  display: block;
  width: 100%;
  margin-top: 10px;
  margin-bottom: 5px;
  text-align: left;
  color: #222222;
  font-weight: bold;
}
.index-page main .contact form input {
  display: block;
  width: 100%;
  margin-bottom: 15px;
  padding: 10px;
  box-sizing: border-box;
  border: 1px solid #222222;
  border-radius: 5px;
}
.index-page main .contact form textarea {
  display: block;
  width: 100%;
  min-height: 100px;
  margin-bottom: 15px;
  padding: 10px;
  box-sizing: border-box;
  border: 1px solid #222222;
  border-radius: 5px;
}
.index-page main .contact form button {
  padding: 15px;
  border-radius: 10px;
  margin-top: 15px;
  margin-bottom: 15px;
  border: none;
  color: white;
  cursor: pointer;
  background-color: #222222;
  width: 100%;
  font-size: 16px;
}

/* #########################  FAQ Page #####################*/
.faq-page {
  width: 100vw;
  height: auto;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 20vh 0;
}
.faq-page h2 {
  font-size: 2em;
  font-weight: bold;
  margin-bottom: 1rem;
  text-align: center;
  color: #222222;
}
.faq-page .faq-item {
  width: 100%;
  border-radius: 10px;
  margin-bottom: 1rem;
  padding: 1rem;
}
.faq-page .faq-item h3 {
  font-size: 1.5em;
  font-weight: bold;
  color: #222222;
}
.faq-page .faq-item p {
  color: #222222;
  font-size: 1.2em;
}

/* #########################  Policy Pages #####################*/
.policy-page {
  width: 100vw;
  height: auto;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 20vh 0;
}
.policy-page h2 {
  font-size: 2em;
  font-weight: bold;
  margin-bottom: 1rem;
  text-align: center;
  color: #222222;
}
.policy-page .policy-item {
  width: 40vw;
  border-radius: 10px;
  margin-bottom: 1rem;
  padding: 1rem;
}
.policy-page .policy-item h3 {
  font-size: 1.5em;
  font-weight: bold;
  color: #222222;
}
.policy-page .policy-item p {
  color: #222222;
  font-size: 1.2em;
}
.policy-page .policy-item ul {
  list-style: none;
  padding-left: 0;
}
.policy-page .policy-item ul li {
  color: #222222;
  font-size: 1.2em;
  margin: 0.5rem 0;
}

/* #########################  Sitemap Page #####################*/
.sitemap-page {
  width: 100vw;
  height: auto;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 20vh 0;
}
.sitemap-page h2 {
  font-size: 2em;
  font-weight: bold;
  margin-bottom: 1rem;
  text-align: center;
  color: #222222;
}
.sitemap-page h3 a {
  color: #222222;
  text-decoration: none;
  font-weight: bold;
  font-size: 1.2em;
  line-height: 2;
  margin: 0.5rem 0;
}
.sitemap-page h3 a:hover {
  text-decoration: underline;
}

/* #########################  Login Page #####################*/
.registration-page {
  width: 100vw;
  height: auto;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 20vh 0;
}
.registration-page .registration {
  flex-direction: column;
}
.registration-page .registration h2 {
  font-size: 2em;
  font-weight: bold;
  margin-bottom: 1rem;
  text-align: center;
  color: #222222;
}
.registration-page .registration form {
  width: 40vw;
  border-radius: 10px;
  padding: 1rem;
}
.registration-page .registration form label {
  display: block;
  width: 100%;
  margin-top: 10px;
  margin-bottom: 5px;
  text-align: left;
  color: #222222;
  font-weight: bold;
}
.registration-page .registration form input {
  display: block;
  width: 100%;
  margin-bottom: 15px;
  padding: 10px;
  box-sizing: border-box;
  border: 1px solid #222222;
  border-radius: 5px;
}
.registration-page .registration form button {
  padding: 15px;
  border-radius: 10px;
  margin-top: 15px;
  margin-bottom: 15px;
  border: none;
  color: white;
  cursor: pointer;
  background-color: #222222;
  width: 100%;
  font-size: 16px;
}
.registration-page .registration form p {
  color: #222222;
}
.registration-page .registration form a {
  color: #222222;
  text-decoration: none;
  font-weight: bold;
}
.registration-page .registration form a:hover {
  text-decoration: none;
}

/* #########################  Blog Page #####################*/
.blog-page {
  width: 100vw;
  height: auto;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 20vh 0;
}
.blog-page h2 {
  font-size: 2em;
  font-weight: bold;
  margin-bottom: 1rem;
  text-align: center;
  color: #222222;
}
.blog-page .content {
  width: 80vw;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: row;
}
.blog-page .content h3 {
  font-size: 1.5em;
  font-weight: bold;
  color: #222222;
  margin-bottom: 1rem;
}
.blog-page .content h4 {
  font-size: 1.2em;
  font-weight: bold;
  color: #222222;
  margin-bottom: 1rem;
}
.blog-page .content p {
  color: #222222;
  font-size: 1.1em;
  margin-bottom: 1rem;
}
.blog-page .content .left-content {
  width: 15vw;
  height: auto;
  margin: 0 auto;
}
.blog-page .content .left-content ul li {
  padding: 1rem 0;
}
.blog-page .content .center-content {
  width: 60vw;
  height: auto;
  padding: 0 2.5vw;
  text-align: center;
}
.blog-page .content .center-content img {
  max-height: 600px;
}
.blog-page .content .center-content p {
  text-align: left;
}
.blog-page .content .center-content p a {
  color: #222222;
}
.blog-page .content .center-content .reference {
  text-align: center;
}

/* #########################  Calendar Page #####################*/
.calendar-page {
  width: 100vw;
  height: auto;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 20vh 0;
}
.calendar-page h2 {
  font-size: 2em;
  font-weight: bold;
  margin-bottom: 1rem;
  text-align: center;
  color: #222222;
}
.calendar-page .calendar {
  width: 60vw;
  margin: 2rem auto;
  font-family: sans-serif;
}
.calendar-page .calendar .calendar-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1rem;
}
.calendar-page .calendar .calendar-header h2 {
  margin: 0;
  font-size: 1.5rem;
}
.calendar-page .calendar .calendar-header button {
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
}
.calendar-page .calendar .calendar-header button:hover {
  color: #0077cc;
}
.calendar-page .calendar .calendar-header button:focus {
  outline: 2px solid #0077cc;
}
.calendar-page .calendar h2 {
  text-align: center;
  margin-bottom: 0.5rem;
}
.calendar-page .calendar .content table {
  width: 100%;
  border-collapse: collapse;
}
.calendar-page .calendar .content th,
.calendar-page .calendar .content td {
  width: 14.28%;
  padding: 1rem 0.5rem;
  text-align: center;
  border: 1px solid #737373;
}
.calendar-page .calendar .content td.holiday {
  background-color: #ffefc0;
  font-weight: bold;
  color: #d2691e;
}
.calendar-page .calendar .content td.past {
  color: #848484;
  opacity: 0.5;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.calendar-page .calendar .content .today {
  background-color: #ffeb3b;
  border-color: #fbc02d;
}
.calendar-page .weekly-schedule {
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
.calendar-page .weekly-schedule .content {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.calendar-page .weekly-schedule .content table {
  border: 1px solid #222222;
}
.calendar-page .weekly-schedule .content table thead {
  border: 1px solid #222222;
}
.calendar-page .weekly-schedule .content table tbody tr {
  border: 1px solid #222222;
}
.calendar-page .weekly-schedule .content table tbody tr td {
  padding: 10px;
  text-align: center;
  border: 1px solid #222222;
}

/* #########################  Chat Page #####################*/
.chat-page {
  width: 100vw;
  height: auto;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 20vh 0;
}
.chat-page h2 {
  font-size: 2em;
  font-weight: bold;
  margin-bottom: 1rem;
  text-align: center;
  color: #222222;
}
.chat-page .chat-container {
  width: 80vw;
  height: auto;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
.chat-page .chat-container .chat-box {
  width: 80vw;
  height: 400px;
  border-radius: 10px;
  background-color: #f8f9fa;
  overflow-y: auto;
  padding: 10px;
  box-shadow: 1px 1px 5px #222222;
}
.chat-page .chat-container .chat-box .left-side {
  box-sizing: border-box;
  width: 10vw;
  float: left;
  padding: 10px;
  box-shadow: 1px 1px 5px #222222;
  background-color: #f8f9fa;
  border-radius: 10px;
  line-height: 2rem;
}
.chat-page .chat-container .chat-box .right-side {
  box-sizing: border-box;
  width: 50vw;
  float: right;
  padding: 5vw;
  box-shadow: 1px 1px 5px #222222;
  background-color: #f8f9fa;
  border-radius: 10px;
  margin: 0 10vw;
  line-height: 2rem;
}

/* #########################  Trainer's Page #####################*/
.trainers-page {
  width: 100vw;
  height: auto;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 20vh 0;
}
.trainers-page h2 {
  font-size: 2em;
  font-weight: bold;
  margin-bottom: 1rem;
  text-align: center;
  color: #222222;
}
.trainers-page .trainers .trainer-list {
  width: 80vw;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.trainers-page .trainers .trainer-list .trainer-card {
  flex: 0 1 calc(50% - 5rem);
  margin-bottom: 1rem;
  border-radius: 10px;
  background-color: #f8f9fa;
  padding: 1rem;
  box-shadow: 1px 1px 5px #222222;
  text-align: center;
}
.trainers-page .trainers .trainer-list .trainer-card h3 {
  font-size: 1.5em;
  font-weight: bold;
  color: #222222;
}
.trainers-page .trainers .trainer-list .trainer-card p {
  color: #222222;
  font-size: 1.2em;
}
.trainers-page .trainers .trainer-list .trainer-card p a {
  color: #222222;
}
.trainers-page .trainers .trainer-list .trainer-card img {
  width: 60%;
  aspect-ratio: 1/1.1;
}

/* #########################  classes Page #####################*/
.classes-page {
  width: 100vw;
  height: auto;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 20vh 0;
}
.classes-page h2 {
  font-size: 2em;
  font-weight: bold;
  margin-bottom: 1rem;
  text-align: center;
  color: #222222;
}
.classes-page .classes .class-list {
  width: 80vw;
  margin: 0 auto;
  padding: 2vh 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.classes-page .classes .class-list .class-card {
  flex: 0 1 calc(50% - 5rem);
  margin-bottom: 1rem;
  border-radius: 10px;
  background-color: #f8f9fa;
  padding: 1rem;
  box-shadow: 1px 1px 5px #222222;
  text-align: center;
}
.classes-page .classes .class-list .class-card h3 {
  font-size: 1.5em;
  font-weight: bold;
  color: #222222;
}
.classes-page .classes .class-list .class-card p {
  color: #222222;
  font-size: 1.2em;
}
.classes-page .classes .class-list .class-card p a {
  color: #222222;
}
.classes-page .classes .class-list .class-card img {
  width: 60%;
  aspect-ratio: 1.2/1;
  -o-object-fit: cover;
     object-fit: cover;
}/*# sourceMappingURL=styles.css.map */