/* contact section */

#contact_section {
  margin-top: 10.5rem;
}

/* contact card */

.contactCard {
  background-color: #303030;
  display: block;
  width: 100%;
  max-width: 70rem;
  height: auto;
  position: relative;
  overflow: hidden;
  border-radius: 3px;
  margin: 1rem;
  padding: 2rem 0;
  /* box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); */
  box-shadow: 0px 23px 55px 5px rgba(0, 0, 0, 0.5);
}

/* card header */

.cardHeader {
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: #00b9aa;
  padding: 0.4rem 0;
}

/* contact title above form */

.contactTitle {
  color: rgb(255, 255, 255);
  font-weight: 600;
  font-size: 1.5rem;
  margin: 0;
  padding: 0;
}

/* title above map */

.mapTitle {
  color: rgb(255, 255, 255);
  font-weight: 600;
  font-size: 1.5rem;
  margin: 0;
  padding: 0;
  width: 100%;
}

/* dividers in between the titles and forms */

.contactTitleDividers {
  width: 100%;
  border: 1px solid #00b9aa;
  border-radius: 1px;
  margin: 1rem 0;
  height: 0;
}

/* wrapper surrounding the map */

.mapWrap {
  width: 100%;
  max-width: 40rem;
  margin: 0 0.5rem;
}

/* surrounding div around the map */

.innerMapWrap {
  height: 28rem;
  width: 100%;
}

/* outer div surrounding all the contact info and form */

.outerContactForm {
  margin: 0 0.5rem;
}

/* contact form element */

#contactForm {
  width: 100%;
  max-width: 18rem;
  height: 25rem;
  border-radius: 3px;
}

/* select input and all it's required styling ================== */
.select-hidden {
  display: none;
  visibility: hidden;
  padding-right: 10px;
}

.select {
  cursor: pointer;
  display: inline-block;
  position: relative;
  font-size: 1rem;
  color: black;
  width: 100%;
  height: 40px;
}

.select-styled {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: #fbfbfb;
  padding: .5rem .5rem;
  border-radius: 5px;
  font-size: 1rem;
  font-weight: 300;
  display: flex;
  align-items: center;
  -moz-transition: all 0.2s ease-in;
  -o-transition: all 0.2s ease-in;
  -webkit-transition: all 0.2s ease-in;
  transition: all 0.2s ease-in;
}
.select-styled:after {
  content: "";
  width: 0;
  height: 0;
  border: 7px solid transparent;
  border-color: #00b9aa transparent transparent transparent;
  position: absolute;
  top: 16px;
  right: 10px;
}

.select-styled:active,
.select-styled.active {
  background-color: #ffffff;
}
.select-styled:active:after,
.select-styled.active:after {
  top: 9px;
  border-color: transparent transparent #00b9aa transparent;
}

.select-options {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  z-index: 999;
  margin: 0;
  padding: 0;
  list-style: none;
  background-color: #f8f8f8;
}
.select-options li {
  margin: 0;
  padding: 12px 0;
  text-indent: 15px;
  font-weight: 300;
  font-size: 1rem;
  border-top: 1px solid #00b9aa;
  -moz-transition: all 0.15s ease-in;
  -o-transition: all 0.15s ease-in;
  -webkit-transition: all 0.15s ease-in;
  transition: all 0.15s ease-in;
}

.select-options li:hover,
.select-options li.is-selected {
  color: #00b9aa;
}

.select-options li[rel="hide"] {
  display: none;
}
/* ===================== end of select input styling */

/* input elements */

.contactInput {
  display: block;
  margin-bottom: 0.5rem;
  padding: 0.5rem 0.5rem;
  font-size: 1rem;
  border-radius: 5px;
  border: 2px solid white;
  width: 100%;
}

.contactInput:focus {
  outline: none;
}

/* contact form button wrap */

.contactActionWrap {
  width: 100%;
  display: flex;
}

/* submit button */

#submitBtn {
  font-size: 1rem;
  letter-spacing: 0.05rem;
  padding: 0.2rem 0.5rem;
  border-radius: 3px;
  background-color: #303030;
  border: 2px solid #00b9aa;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  width: 100%;
  width: 6.2rem;
  text-align: center;
}

/* icon inside each button */

.btnIcon {
  margin-left: 0.2rem;
  font-size: 1.4rem;
  color: #00b9aa;
}

#submitBtn:hover .btnIcon {
  -webkit-animation: float 0.7s ease-in-out;
  -moz-animation: float 0.7s ease-in-out;
  -o-animation: float 0.7s ease-in-out;
  animation: float 0.7s ease-in-out;
}

/* divider for below the contact form */

.divider {
  border: 1px solid #f1f1f1;
  width: 100%;
  border-radius: 3px;
  margin: 0.5rem 0;
}

/* personal contact wrapper surrounding the phone number and email */

.personalContactWrap {
  width: 100%;
}

/* title above phone number and email */

.personalContactTitle {
  margin: 0;
  color: white;
  font-size: 1.2rem;
  font-weight: 600;
}

/* wrapper for the personal contact info and icons */

.contactIconWrap {
  display: flex;
  align-items: center;
}

/* the phone and email icon */

.icon {
  color: #00b9aa;
  margin: 0.1rem 0.3rem 0 0;
  font-size: 1.1rem;
}

/* contact text data */

.contactInfoText {
  color: white;
  text-decoration: none;
  font-size: 1.1rem;
  font-weight: 300;
}

/* container for the phone number and email */

.contactIconWrap > a {
  color: white;
  text-decoration: none;
  cursor: pointer;
  font-size: 1.1rem;
  font-weight: 300;
}

/* icon wrapper */

.socialIconWrap {
  width: 100%;
  margin: 1rem 0;
}

/* social icons */

.socialIcons {
  font-size: 2rem;
  color: #00b9aa;
  margin-right: 0.5rem;
}

/* the image wrapper for the awards */

.awardImgWrap {
  width: 100%;
  margin: 1rem 0;
}

/* the images */

.awardImg {
  height: 2rem;
  margin-right: 0.5rem;
}

/* selecting the a+ image */

.awardImg:nth-child(3) {
  width: 1rem;
}

@-webkit-keyframes float {
  0% {
    margin-left: 0.2rem;
  }
  25% {
    margin-left: 0.5rem;
  }
  50% {
    margin-left: 0.2rem;
  }
  75% {
    margin-left: 0.5rem;
  }
  100% {
    margin-left: 0.2rem;
  }
}

@-moz-keyframes float {
  0% {
    margin-left: 0.2rem;
  }
  25% {
    margin-left: 0.5rem;
  }
  50% {
    margin-left: 0.2rem;
  }
  75% {
    margin-left: 0.5rem;
  }
  100% {
    margin-left: 0.2rem;
  }
}

@-o-keyframes float {
  0% {
    margin-left: 0.2rem;
  }
  25% {
    margin-left: 0.5rem;
  }
  50% {
    margin-left: 0.2rem;
  }
  75% {
    margin-left: 0.5rem;
  }
  100% {
    margin-left: 0.2rem;
  }
}

@keyframes float {
  0% {
    margin-left: 0.2rem;
  }
  25% {
    margin-left: 0.5rem;
  }
  50% {
    margin-left: 0.2rem;
  }
  75% {
    margin-left: 0.5rem;
  }
  100% {
    margin-left: 0.2rem;
  }
}

/* ! ERROR MODAL */

/** Modal */

.errModal {
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s;
  position: fixed;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 90%;
  max-width: 35rem;
  background: #303030;
  border-radius: 4px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.4);
  z-index: 12;
}

#errModalBody {
  padding: 1rem;
}

#errModalHeader {
  color: white;
  font-size: 1.4rem;
  padding: 0;
  margin: 1rem 0;
  text-align: left;
}

.errList {
  margin: 0;
  padding: 0 1rem;
}

/* The list items in teh error modal */
.errListItem {
  margin: 0;
  padding: 0;
  color: rgb(200, 200, 200);
  font-size: 1rem;
  font-weight: 200;
}

.errModalCloseBtn {
  position: absolute;
  right: 0.5rem;
  top: 0.5rem;
  font-size: 1rem;
  cursor: pointer;
  text-decoration: none;
  color: white;
}

/* error message p element */

#modalMessageFrame {
  margin: 1rem 0;
  display: flex;
  justify-content: flex-start;
}

/** JS */

.is-visible {
  opacity: 1;
  pointer-events: auto;
}

/* ! ROBOT MODAL  */

.robotModal {
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s;
  position: fixed;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  max-width: 25rem;
  padding: 2rem 1.5rem;
  background: #303030;
  border-radius: 4px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
  z-index: 12;
}

.robotModalCloseBtn {
  position: absolute;
  right: 0.5rem;
  top: 0.5rem;
  font-size: 1rem;
  cursor: pointer;
  text-decoration: none;
  color: white;
}

/* error message p element */

#robotModalMsg {
  font-size: 0.8rem;
  font-weight: 500;
  color: #b5b5b5;
  padding: 0;
  margin: 0;
  text-align: center;
}

#robotQuestion {
  font-size: 1.5rem;
  font-weight: 500;
  color: #ffffff;
  padding: 0;
  margin: 0;
  text-align: center;
}
/* shape styles */
#triangleBot {
  width: 0;
  height: 0;
  border: 1.5rem solid transparent;
  border-top: 0;
  border-bottom: 3rem solid #00b9aa;
  cursor: pointer;
}

#squareBot {
  width: 3rem;
  height: 3rem;
  background-color: #00b9aa;
  cursor: pointer;
}

#circleBot {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background-color: #00b9aa;
  cursor: pointer;
}

/** Overlay */

.robotModalOverlay {
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.3);
  z-index: 12;
}

/** JS */

.is-robot-modal-visible {
  opacity: 1;
  pointer-events: auto;
}

/* question input select */
#question {
  width: 100%;
  font-size: 1rem;
  border-radius: 3px;
  border: 1px solid white;
}

/* submit the quote button inside the modal prompting the robot question */
#submitQuoteBtn {
  font-size: 1rem;
  letter-spacing: 0.05rem;
  padding: 0.2rem 0.5rem;
  border-radius: 3px;
  background-color: #303030;
  border: 2px solid #00b9aa;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  width: 100%;
  text-align: center;
  margin: 1rem 0;
}

/* terms of use text wrapper */
.termsTextWrap {
  color: white;
  font-size: 0.7rem;
  font-weight: 100;
}
/* terms text */
.termsTextWrap > a {
  text-decoration: underline;
  color: white;
}
/* ! MEDIA QUERIES */

@media only screen and (max-width: 1055px) {
  /* contact section */
  #contactSection {
    margin-top: 6.5rem;
  }
}

@media only screen and (max-width: 991px) {
  /* contact card */
  .contactCard {
    padding: 2rem 2rem;
    width: 100%;
    max-width: 35rem;
  }
  /* wrapper surrounding the map */
  .mapWrap {
    max-width: 50rem;
  }
  /* surrounding div around the map */
  .innerMapWrap {
    height: 28rem;
  }
  /* outer div surrounding all the contact info and form */
  .outerContactForm {
    margin: 1rem 0.5rem 0 0.5rem;
  }
  /* contact form element */
  #contactForm {
    max-width: 30rem;
  }
  /* submit button */
  #submitBtn {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
}

@media only screen and (max-width: 959px) {
  /* contact section */
  #contact_section {
    margin-top: 3rem;
  }
}
