#navbarNav .dropdown-item, #navbarNav .nav-link {
  text-transform: uppercase;
  color: #fff;
  font-family: "Roboto Condensed", sans-serif;
  font-weight: 100;
}

/*===============================
=            General            =
===============================*/
body {
  background-color: var(--background-color);
  font-family: "Roboto Condensed", sans-serif;
  font-weight: 100;
}

a {
  --link-color:var(--link-color);
  color: var(--link-color);
}
a:hover, a:focus {
  --link-color:var(--primary-color-light);
}

main {
  transition-property: transform;
  transition-duration: 0.5s;
  transition-timing-function: ease;
}

footer {
  background-color: #141414;
  background-color: var(--footer);
  color: #fff;
  color: var(--footer-text);
}
footer .footer-content a,
footer .copyright-text a {
  --primary-color:var(--footer-primary);
}
footer section {
  padding: 4em 0;
}
footer .copyright {
  border-top: 1px solid var(--footer-borders);
  padding: 0;
}
footer .copyright-text {
  padding-top: 1.5em;
  padding-bottom: 1.5em;
}

.footer-content .footer-title {
  margin-bottom: 0.5em;
  border-bottom: 1px solid var(--footer-borders);
  padding-bottom: 0.5em;
  color: var(--footer-header-text);
}
.footer-content [class*=col] {
  text-align: center;
}
.footer-content div.weather {
  margin-bottom: 20px;
  text-align: center;
}
@media (max-width: 767.98px) {
  .footer-content [class*=col] {
    margin-bottom: 20px;
    text-align: left;
  }
  .footer-content [class*=col]:first-child {
    border-right: 1px solid var(--footer-borders);
  }
  .footer-content [class*=col]:nth-child(3).weather {
    border-right: 1px solid var(--footer-borders);
  }
  .footer-content .weather-info {
    margin-bottom: -20px;
  }
}
.footer-content [class*=col] {
  border-right: 1px solid var(--footer-borders);
  padding-right: 30px;
  padding-left: 30px;
}
.footer-content [class*=col]:nth-child(even),
.footer-content .location {
  border-right: 0;
}
@media (min-width: 1200px) {
  .footer-content [class*=col]:nth-child(even):not(:last-child),
  .footer-content .location {
    border-right: 1px solid var(--footer-borders);
  }
}
.footer-content div.weather {
  text-align: left;
}

a {
  color: var(--primary-color);
}
a:hover, a:focus {
  color: var(--primary-color-light);
}

.sr-only-focusable {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  background-color: #fff;
  width: 100%;
  text-align: center;
  font-size: 1.2em;
  font-weight: 800;
}
.sr-only-focusable:focus {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  background-color: #fff;
  width: 100%;
  text-align: center;
  font-size: 1.2em;
  font-weight: 800;
}

/*===================================
=            Backgrounds            =
===================================*/
[class*=sapphire-bg] {
  background-color: var(--background-c, var(--background-color));
  color: var(--text-c, var(--text-color));
}

.sapphire-bg--dark {
  --background-c: var(--background-color-dark);
}

.sapphire-bg--light {
  --background-c: var(--background-color-light);
}

.sapphire-bg--primary {
  --background-c: var(--primary-color);
  --text-c: var(--primary-text);
}

.sapphire-bg--primary-light {
  --background-c: var(--primary-color-light);
  --text-c: var(--primary-text);
}

.sapphire-bg--primary-dark {
  --background-c: var(--primary-color-dark);
  --text-c: var(--primary-text);
}

/*=============================
=            Forms            =
=============================*/
input {
  --border-color:var(--text-color);
  transition: border-color 0.45s ease-in-out;
  border: 1px solid var(--border-color);
  background-color: var(--background-color-dark);
  color: var(--text-color);
}
input.reg_form {
  margin: 0 0 1rem 0;
  padding: 5px 10px;
  width: 100%;
}
input:focus {
  --border-color:var(--background-color-light);
}

textarea {
  transition: border-color 0.45s ease-in-out;
  border: 1px solid var(--border-color);
  background-color: var(--background-color-dark);
  color: var(--text-color);
}
textarea.reg_form {
  margin: 0 0 1rem 0;
  padding: 5px 10px;
  width: 100%;
}
textarea:focus {
  --border-color:var(--background-color-light);
}

select {
  transition: border-color 0.45s ease-in-out;
  border: 1px solid var(--border-color);
  background-color: var(--background-color-dark);
  color: var(--text-color);
}
select.reg_form {
  margin: 0 0 1rem 0;
  padding: 5px 10px;
  width: 100%;
}
select option {
  transition: border-color 0.45s ease-in-out;
  border: 1px solid var(--border-color);
  background-color: var(--background-color-dark);
  color: var(--text-color);
}

.form-control {
  background-color: var(--background-color-dark);
  color: var(--text-color);
}
.form-control:focus {
  outline-color: var(--primary-color);
  background-color: var(--background-color-dark);
  color: var(--text-color);
}

.form-group input {
  background-color: var(--background-color-dark);
  color: var(--text-color);
}
.form-group input:focus {
  outline-color: var(--primary-color);
  background-color: var(--background-color-dark);
  color: var(--text-color);
}
.form-group textarea {
  background-color: var(--background-color-dark);
  color: var(--text-color);
}
.form-group textarea:focus {
  outline-color: var(--primary-color);
  background-color: var(--background-color-dark);
  color: var(--text-color);
}
.form-group select {
  background-color: var(--background-color-dark);
  color: var(--text-color);
}
.form-group select:focus {
  outline-color: var(--primary-color);
  background-color: var(--background-color-dark);
  color: var(--text-color);
}
.form-group select option {
  background-color: var(--background-color-dark);
  color: var(--text-color);
}
.form-group select option:focus {
  outline-color: var(--primary-color);
  background-color: var(--background-color-dark);
  color: var(--text-color);
}

td.reg_form {
  border-top: 0;
  padding: 0.5625rem 0.625rem;
  vertical-align: middle;
  font-size: 0.875rem;
  font-weight: normal;
}

.reg_form td {
  border-top: 0;
  padding: 0.5625rem 0.625rem;
  vertical-align: middle;
  font-size: 0.875rem;
  font-weight: normal;
}

button.reg_form {
  margin: 0 0 1rem;
  padding: 5px 10px;
  width: 100%;
}

@media (max-width: 991.98px) {
  table.reg_form {
    display: block;
    width: 100%;
  }
  table.reg_form tbody {
    display: block;
    width: 100%;
  }
  table.reg_form tr {
    display: block;
    width: 100%;
  }
  table.reg_form td {
    display: block;
    width: 100%;
  }
  table.reg_form thead {
    display: block;
    width: 100%;
  }
  table.reg_form th {
    display: block;
    width: 100%;
  }
}
/*============================
=            Hero            =
============================*/
.hero-bg {
  position: relative;
  height: 100vh;
  background-position-y: -50%;
}
.hero-bg.parallax-bg {
  height: 100vh;
}
.hero-bg.parallax-bg .parallax-bg--content {
  background-color: rgba(0, 0, 0, 0.4);
}
.hero-bg .overlap-bg {
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  align-content: center;
  align-items: center;
  justify-content: center;
  z-index: 10;
  width: 100%;
  height: 100%;
  text-align: center;
}
.hero-bg canvas {
  position: absolute;
  top: 0;
  z-index: 5;
  width: 100%;
  height: 100%;
}
.hero-bg .dynamic-title {
  text-transform: uppercase;
  color: var(--primary-color);
  font-family: "Oswald", sans-serif;
  font-size: 3em;
  font-weight: normal;
  -webkit-filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.4));
          filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.4));
}
.hero-bg .dynamic-title.dynamic-title--double-lines::before, .hero-bg .dynamic-title.dynamic-title--double-lines::after {
  display: block;
  background-color: rgba(255, 255, 255, 0.5);
  width: 100%;
  height: 9px;
  content: "";
}
.hero-bg .dynamic-title.dynamic-title--double-lines .static-text {
  display: block;
  color: #fff;
  font-weight: 900;
}

.typed-cursor {
  -webkit-animation: blink 0.7s infinite;
          animation: blink 0.7s infinite;
  opacity: 1;
  font-weight: normal;
}

@-webkit-keyframes blink {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes blink {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/*===============================
=            Layouts            =
===============================*/
#map {
  width: 100%;
  height: 480px;
}

#contact-details {
  padding: 4em;
}

.grid-sapphire {
  display: grid;
  grid-template-rows: auto 1fr;
  grid-template-columns: auto;
  grid-gap: 30px;
}
@media (min-width: 768px) {
  .grid-sapphire {
    grid-template-rows: auto 1fr;
    grid-template-columns: 50% 50%;
  }
  .grid-sapphire.grid-auto {
    grid-template-columns: auto auto;
  }
  .grid-sapphire .two-tall {
    grid-row: span 2;
  }
  .grid-sapphire .grid-left {
    grid-column: 1;
    grid-row: 1/span 2;
  }
}

.sapphire-content {
  padding: 4em 0;
}

.article-title:hover::after {
  width: 70px;
}

.location address ul {
  padding-left: 2em;
  list-style-type: none;
}
.location address ul li {
  position: relative;
  clear: both;
  margin-bottom: 1em;
  line-height: 1.8rem;
}
.location address ul li > span {
  display: block;
  position: absolute;
  left: -2em;
  width: 2em;
  text-align: center;
  line-height: 2em;
  font-size: 1.18em;
}

/*============================
=            Menu            =
============================*/
.nav-container {
  position: relative;
}
.nav-container > .header {
  background-color: var(--nav-bg);
}
.nav-container.cloudy-nav-bg {
  position: absolute;
  top: 40px;
  left: 0;
  z-index: 100;
  width: 100%;
}
.nav-container.cloudy-nav-bg > .header {
  transition: background-color 300ms;
  background-color: var(--nav-bg-cloudy);
}
@media (max-width: 767.98px) {
  .nav-container {
    padding-right: 5px;
    padding-left: 5px;
  }
}

.header-sticky.sticky-on .header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 110;
  width: 100%;
}
.header-sticky.sticky-on.cloudy-nav-bg {
  --nav-bg-cloudy:var(--nav-bg-cloudy-scrolled);
}

@media (max-width: 767.98px) {
  .navbar {
    padding-right: 0;
    padding-left: 0;
  }
}

.navbar-toggler {
  position: relative;
  z-index: 0;
  color: #fff;
  font-size: 2em;
  transition-property: color, transform;
  transition-duration: 0.5s;
  transition-timing-function: ease;
}
.navbar-toggler:hover, .navbar-toggler:focus {
  color: var(--primary-color);
}

.navbar-toggler-full {
  position: fixed;
  top: 0;
  left: 0;
  visibility: hidden;
  z-index: 10;
  border: 0;
  background-color: rgba(255, 255, 255, 0);
  width: 100%;
  height: 100%;
  transition-property: background-color, visibility;
  transition-duration: 0.6s;
  transition-timing-function: ease;
}
.off-canvas--show .navbar-toggler-full {
  visibility: visible;
  background-color: rgba(255, 255, 255, 0.2);
  transition-duration: 0.2s;
}
.off-canvas--hidden .navbar-toggler-full {
  visibility: hidden;
  background-color: rgba(255, 255, 255, 0);
}
.navbar-toggler-full:hover, .navbar-toggler-full:focus {
  background-color: rgba(255, 255, 255, 0.1);
}

#navbarNav {
  position: absolute;
  top: 100%;
  z-index: 500;
  padding: 7px;
  width: 100%;
  --arrow: 0.4em;
}
.navbar:not([class*=navbar-expand]) #navbarNav {
  display: flex;
  position: fixed;
  top: 0;
  right: 0;
  align-items: flex-start;
  transform: translate3d(0, 0, 0);
  visibility: vislible;
  z-index: 999;
  margin-top: 0;
  margin-bottom: 0;
  box-shadow: 5px 0 10px 5px rgba(0, 0, 0, 0.4) inset;
  background-color: var(--dropdown-menu);
  width: 250px;
  height: 100%;
  overflow: auto;
  transition-duration: 0.5s;
  transition-property: transform, visibility, opacity, box-shadow;
  transition-timing-function: ease;
}
.navbar:not([class*=navbar-expand]) #navbarNav .navbar-nav {
  width: 100%;
}
.navbar:not([class*=navbar-expand]) #navbarNav:not(.show) {
  transform: translate3d(250px, 0, 0);
  visibility: hidden;
  box-shadow: 0 0 0 0 rgba(0, 0, 0, 0) inset;
}
.navbar:not([class*=navbar-expand]) #navbarNav .nav-link {
  border-bottom: 1px solid var(--dropdown-borders);
  background-color: rgba(0, 0, 0, 0);
  padding: 0.75rem;
  transition-duration: 0.15s;
  transition-property: color, background-color;
  transition-timing-function: ease;
}
.navbar:not([class*=navbar-expand]) #navbarNav .nav-link:hover, .navbar:not([class*=navbar-expand]) #navbarNav .nav-link:focus {
  background-color: var(--nav-bg);
}
#navbarNav .nav-link {
  font-family: "Oswald", sans-serif;
}
#navbarNav .nav-link:hover, #navbarNav .nav-link:focus {
  background-color: transparent;
  color: var(--primary-color);
}
#navbarNav .dropdown-item {
  padding: 0.7652rem 1.5rem;
  font-family: "Oswald", sans-serif;
}
#navbarNav .dropdown-item:hover, #navbarNav .dropdown-item:focus {
  background-color: transparent;
  color: var(--primary-color);
}
#navbarNav .dropdown-menu {
  padding: 0;
}
#navbarNav .dropdown-toggle::after {
  border-top: var(--arrow) solid;
  border-right: var(--arrow) solid transparent;
  border-bottom: 0;
  border-left: var(--arrow) solid transparent;
}
@media (min-width: 992px) {
  #navbarNav {
    position: inherit;
    top: 0;
    margin-top: -0.5em;
    margin-bottom: -0.5em;
    background-color: transparent;
    padding: 0;
    width: initial;
  }
  #navbarNav .nav-link {
    padding: 1.65rem 1rem;
    text-shadow: 1px 1px 1px #000;
    font-size: 0.8125rem;
    font-weight: bold;
  }
  #navbarNav .dropdown-item {
    border-right: 1px solid var(--dropdown-borders);
    border-bottom: 1px solid var(--dropdown-borders);
    border-left: 1px solid var(--dropdown-borders);
    text-shadow: 1px 1px 1px #000;
    line-height: 1;
    font-size: 0.8125rem;
    font-weight: bold;
  }
  #navbarNav .dropdown-menu {
    right: 0;
    left: auto;
    min-width: auto;
  }
}

@media (max-width: 575.98px) {
  .navbar-expand-sm #navbarNav {
    display: flex;
    position: fixed;
    top: 0;
    right: 0;
    align-items: flex-start;
    transform: translate3d(0, 0, 0);
    visibility: vislible;
    z-index: 999;
    margin-top: 0;
    margin-bottom: 0;
    box-shadow: 5px 0 10px 5px rgba(0, 0, 0, 0.4) inset;
    background-color: #242424;
    padding: 0;
    width: 250px;
    height: 100%;
    overflow: auto;
    transition-duration: 0.5s;
    transition-property: transform, visibility, opacity, box-shadow;
    transition-timing-function: ease;
  }
  .navbar-expand-sm #navbarNav .navbar-nav {
    width: 100%;
  }
  .navbar-expand-sm #navbarNav:not(.show) {
    transform: translate3d(250px, 0, 0);
    visibility: hidden;
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0) inset;
  }
  .navbar-expand-sm #navbarNav .nav-item {
    border-bottom: 1px solid var(--primary-color);
  }
  .navbar-expand-sm #navbarNav .nav-link {
    border-bottom: 1px solid var(--dropdown-borders);
    background-color: rgba(0, 0, 0, 0);
    padding: 0.75rem;
    transition-duration: 0.15s;
    transition-property: color, background-color;
    transition-timing-function: ease;
  }
  .navbar-expand-sm #navbarNav .nav-link:hover, .navbar-expand-sm #navbarNav .nav-link:focus {
    background-color: rgba(0, 0, 0, 0.3);
  }
  .navbar-expand-sm #navbarNav .dropdown-menu {
    margin-top: 0;
  }
}
@media (max-width: 767.98px) {
  .navbar-expand-md #navbarNav {
    display: flex;
    position: fixed;
    top: 0;
    right: 0;
    align-items: flex-start;
    transform: translate3d(0, 0, 0);
    visibility: vislible;
    z-index: 999;
    margin-top: 0;
    margin-bottom: 0;
    box-shadow: 5px 0 10px 5px rgba(0, 0, 0, 0.4) inset;
    background-color: #242424;
    padding: 0;
    width: 250px;
    height: 100%;
    overflow: auto;
    transition-duration: 0.5s;
    transition-property: transform, visibility, opacity, box-shadow;
    transition-timing-function: ease;
  }
  .navbar-expand-md #navbarNav .navbar-nav {
    width: 100%;
  }
  .navbar-expand-md #navbarNav:not(.show) {
    transform: translate3d(250px, 0, 0);
    visibility: hidden;
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0) inset;
  }
  .navbar-expand-md #navbarNav .nav-item {
    border-bottom: 1px solid var(--primary-color);
  }
  .navbar-expand-md #navbarNav .nav-link {
    border-bottom: 1px solid var(--dropdown-borders);
    background-color: rgba(0, 0, 0, 0);
    padding: 0.75rem;
    transition-duration: 0.15s;
    transition-property: color, background-color;
    transition-timing-function: ease;
  }
  .navbar-expand-md #navbarNav .nav-link:hover, .navbar-expand-md #navbarNav .nav-link:focus {
    background-color: rgba(0, 0, 0, 0.3);
  }
  .navbar-expand-md #navbarNav .dropdown-menu {
    margin-top: 0;
  }
}
@media (max-width: 991.98px) {
  .navbar-expand-lg #navbarNav {
    display: flex;
    position: fixed;
    top: 0;
    right: 0;
    align-items: flex-start;
    transform: translate3d(0, 0, 0);
    visibility: vislible;
    z-index: 999;
    margin-top: 0;
    margin-bottom: 0;
    box-shadow: 5px 0 10px 5px rgba(0, 0, 0, 0.4) inset;
    background-color: #242424;
    padding: 0;
    width: 250px;
    height: 100%;
    overflow: auto;
    transition-duration: 0.5s;
    transition-property: transform, visibility, opacity, box-shadow;
    transition-timing-function: ease;
  }
  .navbar-expand-lg #navbarNav .navbar-nav {
    width: 100%;
  }
  .navbar-expand-lg #navbarNav:not(.show) {
    transform: translate3d(250px, 0, 0);
    visibility: hidden;
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0) inset;
  }
  .navbar-expand-lg #navbarNav .nav-item {
    border-bottom: 1px solid var(--primary-color);
  }
  .navbar-expand-lg #navbarNav .nav-link {
    border-bottom: 1px solid var(--dropdown-borders);
    background-color: rgba(0, 0, 0, 0);
    padding: 0.75rem;
    transition-duration: 0.15s;
    transition-property: color, background-color;
    transition-timing-function: ease;
  }
  .navbar-expand-lg #navbarNav .nav-link:hover, .navbar-expand-lg #navbarNav .nav-link:focus {
    background-color: rgba(0, 0, 0, 0.3);
  }
  .navbar-expand-lg #navbarNav .dropdown-menu {
    margin-top: 0;
  }
}
@media (max-width: 1199.98px) {
  .navbar-expand-xl #navbarNav {
    display: flex;
    position: fixed;
    top: 0;
    right: 0;
    align-items: flex-start;
    transform: translate3d(0, 0, 0);
    visibility: vislible;
    z-index: 999;
    margin-top: 0;
    margin-bottom: 0;
    box-shadow: 5px 0 10px 5px rgba(0, 0, 0, 0.4) inset;
    background-color: #242424;
    padding: 0;
    width: 250px;
    height: 100%;
    overflow: auto;
    transition-duration: 0.5s;
    transition-property: transform, visibility, opacity, box-shadow;
    transition-timing-function: ease;
  }
  .navbar-expand-xl #navbarNav .navbar-nav {
    width: 100%;
  }
  .navbar-expand-xl #navbarNav:not(.show) {
    transform: translate3d(250px, 0, 0);
    visibility: hidden;
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0) inset;
  }
  .navbar-expand-xl #navbarNav .nav-item {
    border-bottom: 1px solid var(--primary-color);
  }
  .navbar-expand-xl #navbarNav .nav-link {
    border-bottom: 1px solid var(--dropdown-borders);
    background-color: rgba(0, 0, 0, 0);
    padding: 0.75rem;
    transition-duration: 0.15s;
    transition-property: color, background-color;
    transition-timing-function: ease;
  }
  .navbar-expand-xl #navbarNav .nav-link:hover, .navbar-expand-xl #navbarNav .nav-link:focus {
    background-color: rgba(0, 0, 0, 0.3);
  }
  .navbar-expand-xl #navbarNav .dropdown-menu {
    margin-top: 0;
  }
}
.navbar-expand- #navbarNav {
  display: flex;
  position: fixed;
  top: 0;
  right: 0;
  align-items: flex-start;
  transform: translate3d(0, 0, 0);
  visibility: vislible;
  z-index: 999;
  margin-top: 0;
  margin-bottom: 0;
  box-shadow: 5px 0 10px 5px rgba(0, 0, 0, 0.4) inset;
  background-color: #242424;
  padding: 0;
  width: 250px;
  height: 100%;
  overflow: auto;
  transition-duration: 0.5s;
  transition-property: transform, visibility, opacity, box-shadow;
  transition-timing-function: ease;
}
.navbar-expand- #navbarNav .navbar-nav {
  width: 100%;
}
.navbar-expand- #navbarNav:not(.show) {
  transform: translate3d(250px, 0, 0);
  visibility: hidden;
  box-shadow: 0 0 0 0 rgba(0, 0, 0, 0) inset;
}
.navbar-expand- #navbarNav .nav-item {
  border-bottom: 1px solid var(--primary-color);
}
.navbar-expand- #navbarNav .nav-link {
  border-bottom: 1px solid var(--dropdown-borders);
  background-color: rgba(0, 0, 0, 0);
  padding: 0.75rem;
  transition-duration: 0.15s;
  transition-property: color, background-color;
  transition-timing-function: ease;
}
.navbar-expand- #navbarNav .nav-link:hover, .navbar-expand- #navbarNav .nav-link:focus {
  background-color: rgba(0, 0, 0, 0.3);
}
.navbar-expand- #navbarNav .dropdown-menu {
  margin-top: 0;
}

.dropdown-menu {
  border-radius: 0;
  background-color: #242424;
}

.dropdown-submenu {
  position: relative;
}
.dropdown-submenu a::after {
  position: absolute;
  top: 0.8em;
  right: 6px;
  transform: rotate(-90deg);
}
.dropdown-submenu .dropdown-menu {
  top: 0;
  left: 100%;
  margin-right: 0.1rem;
  margin-left: 0.1rem;
}

.off-canvas--show .navbar-toggler {
  transform: translate3d(-250px, 0, 0);
}

.off-canvas--hidden .navbar-toggler {
  transform: translate3d(0, 0, 0);
}

@media (min-width: 768px) {
  .nav-tabs-sapphire {
    flex-direction: row;
  }
}
/*=================================
=            Preloader            =
=================================*/
#preloader {
  position: fixed;
  z-index: 10000;
  background-color: var(--background-color-light);
  width: 100vw;
  height: 100vh;
}

.queryloader__overlay__bar {
  background-color: var(--primary-color) !important;
}

.queryloader__overlay__percentage {
  color: var(--primary-color) !important;
}

/*==================================
=            Promotiles            =
==================================*/
#promo-tiles {
  margin-top: 3.2rem;
  --text-color: #fff;
}
#promo-tiles .row .promo:nth-child(1) {
  background-image: url(../images/design/promo1.jpg);
}
#promo-tiles .row .promo:nth-child(2) {
  background-image: url(../images/design/promo2.jpg);
}
#promo-tiles .row .promo:nth-child(3) {
  background-image: url(../images/design/promo3.jpg);
}
#promo-tiles .row .promo:nth-child(4) {
  background-image: url(../images/design/promo4.jpg);
}

.promo {
  background-position: bottom left;
  background-size: cover;
  padding: 0;
  height: 500px;
  color: #fff;
}
.promo:hover .promo-hover, .promo.focus .promo-hover, .promo:focus-within .promo-hover {
  opacity: 1;
  padding-top: calc(1rem + 12.5px);
  padding-bottom: calc(1rem + 12.5px);
}
.promo:hover .promo-hover hr, .promo.focus .promo-hover hr, .promo:focus-within .promo-hover hr {
  background-color: #fff;
  width: 100%;
  height: 5px;
}

.promo-hover {
  display: flex;
  padding: 1rem;
  flex-direction: column;
  justify-content: center;
  opacity: 0;
  background-color: rgba(0, 0, 0, 0.3);
  width: 100%;
  height: 100%;
  color: var(--textColor, #fff);
  font-weight: 400;
  transition-duration: 0.5s;
  transition-timing-function: ease;
  transition-property: opacity, padding;
}
.promo-hover h2 {
  text-transform: uppercase;
}
.promo-hover hr {
  margin-right: auto;
  margin-left: 0;
  border: 0;
  background-color: #737373;
  width: 0;
  height: 30px;
  transition-duration: 0.5s;
  transition-timing-function: ease;
  transition-property: width, height, background-color;
}
@media (max-width: 767.98px) {
  .promo-hover {
    opacity: 1;
  }
}

/*==================================
=            Typography            =
==================================*/
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  font-family: "Oswald", sans-serif;
  font-weight: bold;
}

.header-primary {
  color: var(--footer-header, var(--primary-color));
}

.grid-sapphire .article-title {
  margin-bottom: -15px;
}
.article-title::after {
  display: block;
  position: relative;
  transition: width 0.5s ease;
  margin: 10px 0 20px;
  background: var(--primary-color);
  width: 30px;
  height: 2px;
  content: "";
}
.article-title.article-title--double-lines {
  display: flex;
  align-items: center !important;
  width: 100%;
  text-align: center;
}
.article-title.article-title--double-lines::after, .article-title.article-title--double-lines::before {
  flex: 1;
  margin: 15px !important;
  border-top: 1px solid var(--text-color);
  border-bottom: 1px solid var(--text-color);
  background-color: transparent;
  min-width: 50px;
  height: 10px;
  content: "";
}

.text-center .article-title::after {
  margin: 10px auto 0;
}
.text-center.article-title::after {
  margin: 10px auto 0;
}

.text-right .article-title::after {
  margin: 10px 0 0 auto;
}
.text-right.article-title::after {
  margin: 10px 0 0 auto;
}

.icon-sapphire {
  display: block;
  padding: 20px;
  width: 100%;
  --box: 6rem;
}
.icon-sapphire:hover, .icon-sapphire:focus {
  text-decoration: none;
}
.icon-sapphire:hover .icon-effect-sapphire, .icon-sapphire:focus .icon-effect-sapphire {
  background: white;
  color: #d81b60;
}
.icon-sapphire:hover .icon-effect-sapphire::after, .icon-sapphire:focus .icon-effect-sapphire::after {
  transform: scale(1.15);
  opacity: 1;
}
.icon-sapphire .icon-effect-sapphire {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, color 0.2s;
  margin: 0 auto;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  width: var(--box);
  height: var(--box);
  text-align: center;
  font-size: 48px;
}
.icon-sapphire .icon-effect-sapphire::after {
  position: absolute;
  top: 0;
  left: 0;
  transform: scale(1.3);
  transition: transform 0.2s, opacity 0.2s;
  opacity: 0;
  border-radius: 50%;
  box-shadow: 0 0 0 4px #fff;
  background: rgba(255, 255, 255, 0.1);
  padding: 7px;
  width: 100%;
  height: 100%;
  content: "";
}

.separator {
  margin: 20px auto;
  background: var(--text-color);
  width: 23%;
  height: 1px;
}
.separator.separator--color {
  background-color: var(--primary-color);
}
.separator.separator--motion {
  transition: width 0.5s ease;
}
.separator.separator--motion:hover, .separator.separator--motion:focus {
  width: 35%;
}
*:hover > .separator.separator--motion, *:focus > .separator.separator--motion, *:focus-within > .separator.separator--motion {
  width: 35%;
}

/*==============================
=            Alerts            =
==============================*/
.alert {
  border-radius: 0;
}

.alert-primary {
  border: 0;
  border-bottom: 4px solid #d81b60;
  background-color: var(--background-color-light);
  color: var(--text-color);
}

.alert-secondary {
  border: 0;
  border-bottom: 4px solid #6c757d;
  background-color: var(--background-color-light);
  color: var(--text-color);
}

.alert-success {
  border: 0;
  border-bottom: 4px solid #28a745;
  background-color: var(--background-color-light);
  color: var(--text-color);
}

.alert-info {
  border: 0;
  border-bottom: 4px solid #17a2b8;
  background-color: var(--background-color-light);
  color: var(--text-color);
}

.alert-warning {
  border: 0;
  border-bottom: 4px solid #ffc107;
  background-color: var(--background-color-light);
  color: var(--text-color);
}

.alert-danger {
  border: 0;
  border-bottom: 4px solid #dc3545;
  background-color: var(--background-color-light);
  color: var(--text-color);
}

.alert-light {
  border: 0;
  border-bottom: 4px solid #f8f9fa;
  background-color: var(--background-color-light);
  color: var(--text-color);
}

.alert-dark {
  border: 0;
  border-bottom: 4px solid #343a40;
  background-color: var(--background-color-light);
  color: var(--text-color);
}

/*===============================
=            Buttons            =
===============================*/
.btn-template {
  position: relative;
  transition: color 0.3s;
  z-index: 10;
  border: 3px solid var(--primary-color);
  border-radius: 0;
  background: transparent;
  padding: 15px 25px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--primary-color);
  font-weight: 700;
}
.btn-template::after {
  position: absolute;
  top: 0;
  left: 0;
  transition: width 0.3s;
  z-index: -1;
  background: var(--primary-color);
  width: 0;
  height: 100%;
  content: "";
}
.btn-template.form-control {
  height: auto;
}
.btn-template.btn-small {
  padding: 2px 22px;
}
.btn-template.btn-on-dark {
  --primary-color: #fff;
  --primary-text: #333;
}
.btn-template.btn-on-light {
  --primary-color: #333;
  --primary-text: #fff;
}
.btn-template:hover, .btn-template:focus, .btn-template:active {
  color: var(--primary-text);
}
.btn-template:hover:after, .btn-template:focus:after, .btn-template:active:after {
  width: 100%;
}

/*=============================
=            Cards            =
=============================*/
.pricing-table {
  margin-top: 3rem;
  padding: 1rem 1.2rem;
  text-align: center;
  list-style-type: none;
}
.pricing-table > * {
  padding: 0.9375rem;
  line-height: 1.4;
  font-weight: 400;
}
.pricing-table .card-description {
  padding-top: 0;
  font-size: 0.8rem;
}
.pricing-table .card-title {
  padding-bottom: 0.65rem;
  text-transform: uppercase;
  font-family: "Oswald", sans-serif;
  font-size: 2rem;
}
.pricing-table .card-item {
  font-size: 0.8rem;
}
.pricing-table .card-price {
  color: var(--primaryColor);
  font-size: 3em;
}

.card {
  border-radius: 0;
  background-color: var(--background-color-dark);
}
.card.card-events {
  margin-bottom: 2em;
}
.card.card-events .card-heading {
  padding: 0.487em;
}
.card .card-header {
  padding: 0;
  text-align: center;
}
.card .card-header h5 {
  text-transform: uppercase;
  font-family: Helvetica Neue, Helvetica, Muli, Arial, sans-serif;
  font-size: 1rem;
  font-weight: normal;
}
.card .card-header:first-child {
  border-radius: 0;
}
.card .card-header a {
  display: block;
  transition: background-color 0.15s ease, color 0.15s ease;
  background-color: var(--primary-color);
  padding: 0.75rem 1.25rem;
  color: var(--primary-text);
}
.card .card-header a:hover, .card .card-header a:focus {
  background-color: var(--primary-color-dark);
  text-decoration: none;
}
.card .card-header a.collapsed {
  background-color: var(--background-color-light);
  color: var(--textColor);
}
.card .card-header a.collapsed:hover, .card .card-header a.collapsed:focus {
  background-color: var(--primary-color-dark);
}

.card-events .card-heading {
  background-color: var(--primary-color);
  color: var(--primary-text);
}

/*=============================
=            Panel            =
=============================*/
/*=========================================
=            Collapsable Panel            =
=========================================*/
/*=============================
=            Lists            =
=============================*/
.social.template {
  margin: 0;
  margin-bottom: 0.25rem;
  text-align: right;
  list-style-type: none;
}
.social.template li {
  display: block;
  margin-left: 0.75em;
  border-bottom-color: #000;
  color: #000;
}
.social.template a {
  display: block;
  border-bottom-color: var(--footer-text);
  color: var(--footer-text);
}
.social.template a:hover span[class*="fa"], .social.template a:focus span[class*="fa"] {
  top: -2px;
  border-radius: 50%;
  border-bottom-color: var(--primary-color);
  color: var(--primary-color);
}
.social.template span[class*="fa"] {
  display: block;
  position: relative;
  top: 0;
  border: 2px solid transparent;
  border-radius: 0;
  border-bottom-color: inherit;
  padding: 1em;
  color: inherit;
  transition-duration: 0.15s;
  transition-timing-function: ease;
  transition-property: top, border-radius, border-bottom-color, color;
}

/*==============================
=            Tables            =
==============================*/
.table .thead-color th {
  background-color: var(--primary-color);
  color: var(--primary-text);
}

/*============================
=            Tabs            =
============================*/
.nav-tabs-sapphire {
  display: flex;
  flex-direction: column;
  align-content: center;
  align-items: center;
  justify-content: center;
}
.nav-tabs-sapphire .nav-link {
  position: relative;
  padding: 1.6rem 1.8rem;
  color: var(--textColor);
}
.nav-tabs-sapphire .nav-link i {
  padding-right: 0.7em;
  vertical-align: middle;
  line-height: 1em;
  font-size: 2em;
}
.nav-tabs-sapphire .nav-link.active::after {
  position: absolute;
  bottom: -1px;
  left: 50%;
  margin-left: -10px;
  border-right: 10px solid transparent;
  border-bottom: 10px solid var(--backgroundColor);
  border-left: 10px solid transparent;
  width: 0;
  height: 0;
  content: "";
}
.tabs-sapphire {
  padding-top: 2em;
  overflow: hidden;
}

/*================================
=            Parallax            =
================================*/
.parallax-bg {
  position: relative;
  height: auto;
  overflow: hidden;
}
.parallax-bg .parallax-bg--image-container {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
}
.parallax-bg .parallax-bg--image-container .parallax-bg--image {
  background-attachment: fixed;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  width: 100%;
  height: 100%;
}
.parallax-bg .parallax-bg--content {
  display: flex;
  position: relative;
  flex-direction: column;
  align-content: center;
  align-items: center;
  justify-content: center;
  z-index: 10;
  background-color: rgba(0, 0, 0, 0.7);
  padding: 5rem 15px;
  width: 100%;
  height: 100%;
  text-align: center;
}
.parallax-bg h2 {
  color: #fff;
  font-style: italic;
}

/*=================================
=            Portfolio            =
=================================*/
#gallery {
  padding-bottom: 0;
}

.portfolio-content .portfolio-categ {
  display: flex;
  justify-content: center;
  margin-bottom: 2rem;
  list-style-type: none;
}
.portfolio-content .portfolio-area {
  margin-bottom: 0;
  padding: 0;
  list-style-type: none;
}

.gallery {
  background-position: center center;
  background-size: cover;
  width: 100%;
  height: auto;
}

.portfolio-categ li a {
  padding: 0.1875rem 1rem;
  text-decoration: none;
  color: #999;
}
.portfolio-categ li a.active {
  color: var(--primary-color);
}
.portfolio-categ li a:hover, .portfolio-categ li a:focus, .portfolio-categ li a:active {
  color: var(--primary-color);
}

.portfolio-items .portfolio-item figure {
  margin-bottom: 0;
}
.portfolio-items .portfolio-item:hover figure.sapphire-item::after, .portfolio-items .portfolio-item:focus figure.sapphire-item::after {
  opacity: 0.7;
  background-color: var(--primary-color-dark);
}
.portfolio-items .portfolio-item:hover figcations.captions, .portfolio-items .portfolio-item:focus figcations.captions {
  color: var(--primary-text);
}
.portfolio-items .portfolio-item:hover figcations.captions h2 .shuffle-item-title, .portfolio-items .portfolio-item:focus figcations.captions h2 .shuffle-item-title {
  color: var(--primary-text);
}

/*=============================
=            Wells            =
=============================*/
.well {
  display: block;
  border: 2px solid var(--primary-color);
  border-top-width: 6px;
  border-radius: 0;
  background-color: rgba(0, 0, 0, 0.4);
  padding: 18px;
  color: var(--text-well, var(--text-color));
}html,body {
    overflow-x: hidden;
}
