/*-- Body Reset --*/
body {
  overflow-x: hidden;
  font-family: 'Montserrat', sans-serif;
  color: #616971;
}


/*============= TOP BAR HEADER =============*/


.top-bar{
  background: #7aaec4;
  height: 2.0rem;
  padding: .5rem 0;
}
.top-bar a{
color: white;
text-decoration: none;
font-size: 1.1rem;
}


/*============= NAVIGATION =============*/
.navbar-brand img {
height: 3rem;
}


.navbar {
  font-size: 1.15rem;
  font-weight: 550;
  letter-spacing: .1rem;
  box-shadow: 0 .5rem .5rem rgba(0, 0, 0, .1);
  z-index: 1;
}


.nav-item {
  padding: .4rem;
}


.nav-link {
  color: #5b5555!important;
}


.nav-link.active,
.nav-link:hover {
  color: #4981b3!important;
}

/*============= CAROUSEL =============*/


  #carousel {
    box-shadow: 0 1rem 1rem rgba(0, 0, 0, .1);
  }


  .carousel-inner {
    max-height: 48rem!important;
  }

/*-- Carousel Content --*/
.carousel-caption {
   position: absolute;
   top: 80%;
   transform: translateY(-50%);
   text-transform: uppercase;
}


.bg-custom {
   background-color: rgba(0, 0, 0, .4);
   color: white;
   border-radius: 1rem;
}


.carousel-caption h1 {
   font-size: 3.8rem;
   text-shadow: .1rem .1rem .3rem rgba(0, 0, 0, 1);
}

.border-primary {
    font-size: 3.8rem;
    text-shadow: .1rem .1rem .3rem rgba(0, 0, 0, 1);


}

.carousel-caption h3 {
   font-size: 2.2rem;
   text-shadow: .1rem .1rem .2rem rgba(0, 0, 0, 1);
}


.btn-lg {
   border-radius: 1;
   text-transform: uppercase;
   font-size: 1rem;
   border-width: medium;
}


.btn-danger {
   background-color: #AC2615;
   border: .05rem solid #AC2615;
}


.btn-primary {
   background-color: #4981b3;
   border: .05rem solid #4981b3;
}


.btn-primary:hover,
.btn-primary:focus {
   background-color: #68a0d2 !important;
   border: .05rem solid #68a0d2 !important;
}


/*===== FIXED BACKGROUND IMG =====*/


.fixed {
    background-image: url('../images/PartsSample.jpg');
    position: fixed;
}
.fixed-background {
    padding: 10rem 0;
}


/*-- Emoji Navbar --*/
.emoji {
    background-image: linear-gradient(to right, #4981b3, #ac2615);
    min-height: 0!important;
    padding: .4rem 0!important;
}
.emoji .svg-inline--fa {
    margin: 0 auto;
    color: white;
    font-size: 2rem;
}






/*============= FOOTER =============*/


footer {
    background-color: #383838;
    padding: 1rem 2rem 3rem;
}
footer img {
    height: 3.5rem;
    margin: 1.5rem auto;
}
footer p, footer a,
.socket a {
    color: white;
    text-decoration: none;
}
ul.social {
    list-style-type: none;
    display: flex;
    max-width: 16rem;
    margin: 0 auto;
}
ul.social li {
    margin: 0 auto;
}
footer .svg-inline--fa {
    font-size: 2.3rem;
}


footer .svg-inline--fa:hover {
    color: #68a0d2;
}


/*============= SOCKET =============*/


.socket {
    background-color: #222222;
    border-top: .1rem solid #4981b3;
}


/*============= MEDIA QUERIES =============*/


/* Devices under 1199px (xl) */
@media (max-width: 1199.98px) {
    .carousel-caption h1 {
        font-size: 2.8rem;
    }
    .carousel-caption h3 {
        font-size: 1.8rem;
    }
}
/* Devices under 992px (lg) */
@media (max-width: 991.98px) {
  .carousel-caption h1 {
        font-size: 2.5rem;
    }
    .carousel-caption h3 {
        font-size: 1.5rem;
    }
    .btn-lg {
    font-size: .95rem;
    }
}


/*============ BOOTSTRAP BREAK POINTS:


Extra small (xs) devices (portrait phones, less than 576px)
No media query since this is the default in Bootstrap


Small (sm) devices (landscape phones, 576px and up)
@media (min-width: 576px) { ... }


Medium (md) devices (tablets, 768px and up)
@media (min-width: 768px) { ... }


Large (lg) devices (desktops, 992px and up)
@media (min-width: 992px) { ... }


Extra (xl) large devices (large desktops, 1200px and up)
@media (min-width: 1200px) { ... }


=============*/


/*-- Bootstrap Mobile Gutter Fix --*/
.row, .container-fluid {
  margin-left: 0px !important;
  margin-right: 0px !important;
}


/*-- Fixed Background Image --*/
.fixed-background {
  position: relative;
  width: 100%;
  z-index: 1000!important;
}
.fixed-wrap {
  clip: rect(0, auto, auto, 0);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -999 !important;
}
.fixed {
  z-index: -999!important;
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center center;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  will-change: transform;
}


/* Custom CSS Variables for Colors */
:root {
    --primary: #e12664;   /* Dark Pink */
    --secondary: #0f172a; /* Dark Blue */
}


/* Reset Default Browser Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}


.contact {
    height: 90vh;
    width: 90vw;
    display: flex;
    box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.6);
    border-radius: .6rem;
    overflow: hidden; /* Ensures the map and form don't spill out of rounded corners */
}


/* Equal Sharing of Space for Map and Form Sections */
.map, .form {
    width: 90vw;
    height: 90vh;
}


/* Google Map Iframe Adjustment */
.map iframe {
    width: 100%;
    height: 100%;
}


/* Contact Form Section Layout */
.form {
    background-color: var(--secondary);
    position: relative; /* Necessary for placing the pseudo-element pointer arrow */
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
}


/* Decorative Arrow Pointing from Map to Form */
.form::before {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    top: 2.8rem;
    left: -1rem;
    border-width: 1.4rem;
    border-style: solid;
    border-color: transparent var(--secondary) transparent transparent;
}


/* Heading Typography */
.form h1 {
    color: white;
    font-weight: 500;
    font-size: 1.8rem;
    font-family: sans-serif;
    padding: 0 2rem;
}


/* Form Layout Padding */
.form form {
    padding: 0 2rem;
}


/* Styling Input Fields and Text Area */
.form input, .form textarea {
    width: 100%;
    padding: 1rem;
    border: 0.08rem solid var(--primary);
    border-radius: 1rem;
    background-color: unset; /* Makes background transparent */
    color: white;
    font-size: 1rem;
}


/* Adding top margins to inputs except the first element */
.form input:not(:first-child), .form textarea, .form button {
    margin-top: 0.8rem;
}


/* Custom Text Area Height Constraints */
.form textarea {
    height: 6rem;
    resize: none;
}


/* Submit Button Styling */
.form button {
    width: 100%;
    padding: 1rem 2rem;
    background-color: var(--primary);
    color: white;
    border-radius: 1rem;
    border: none;
    font-size: 1rem;
    cursor: pointer;
}


