/* main.css */


:root {  /* Default values */

/* Backgrounds and accents */
  --twc-color-primary: #213F31; /* Dark Green */
  --twc-color-secondary: #67833d; /* Light Green */
  --twc-color-tertiary: #ccc99c; /* Tan */
  --twc-color-accent: #abc8d7; /* Light Blue */
  --twc-header-font-family: "ivypresto-text";
  --twc-header-font-weight: 400;
  --twc-body-font-family: "arponasans";
  --twc-body-font-weight: 100;
  --twc-line-height: 1.45;
} /* Default values */

body, html {
  overflow-x: hidden;
}

body {
  font-family: var( --twc-body-font-family );
  font-weight: var( --twc-body-font-weight );
  line-height: var( --twc-line-height );
}


/* .rows have a bottom padding that is annoying */
.container .row:last-child,
.container-fluid .row:last-child {
  padding-bottom: 0;
}


/* Add some bottom margin to headers
----------------------------------------- */

.h1, .h2, .h3, .h4, .h5, .h6,
h1, h2, h3, h4, h5, h6 {
  margin-bottom: 2rem;
}

.h1:last-child, .h2:last-child, .h3:last-child, .h4:last-child, .h5:last-child, .h6:last-child,
h1:last-child, h2:last-child, h3:last-child, h4:last-child, h5:last-child, h6:last-child {
  margin-bottom: 0;
}


@media (max-width: 767px) {

    h1 {
        font-size: 32px;
    }

}

/* Random image tweaks
--------------------------- */
.fl-col.image-col-center { /* Used for insurance logos */
  margin-right: auto;
  margin-left: auto;
  float: none;
}

.fl-module div.wpforms-container-full .wpforms-confirmation-container-full,
.fl-module div[submit-success] > .wpforms-confirmation-container-full:not(.wpforms-redirection-message) {
  background: transparent;
  border-width: 0px;
}

/* Global header tweaks */
.fl-page-nav-right .fl-page-header-wrap {
  border-width: 0;
}


.fl-page-nav-right .fl-page-header-container { /* Make header wrap full width */
  margin: 0 auto;
  width: 100%;
  max-width: 100%;
  border-width: 0;
  padding-top: 0;
  padding-right: 0;
  padding-bottom: 0;
  padding-left: 0;
}

.fl-page-header-row {
  padding: 0 45px;
}

@media only screen and ( min-width: 768px ) {
  /* Maintain padding at narrower widths */
  .fl-page-nav-toggle-visible-medium-mobile .fl-page-header-wrap .fl-page-header-container {
    padding-right: 0;
    padding-left: 0;
  }

  .fl-page-nav-right .fl-page-header-logo {
    padding-left: 0;
    padding-right: 0;
  }

} /* / MQ */

.fl-page-header-logo-col {
  padding-right: 0;
  padding-left: 0;
}

.fl-page-header-logo a { /* Full sized logo */
  margin: 14px 0;
  display: block;
}

@media (min-width: 992px) {

  .fl-page-header-logo a {
    margin: 20px 0 22px;
  }

}

.fl-page-header-logo img { /* Full sized logo */
  max-width: 54%;
}

@media only screen and ( min-width: 992px ) {

  .fl-shrink-header .fl-logo-img {
    max-height: 43px !important;
  }

  .fl-shrink-header .fl-page-header-container.container {
    padding-top: 11px;
    padding-bottom: 11px;
  }

}

.fl-shrink-header .fl-page-header-logo a { /* smaller logo */
  margin: 10px 0;
}

/* Global menu and link styles */

@media ( min-width: 992px ) {
  .fl-page-nav-right .fl-page-nav .navbar-nav {
    flex-wrap: nowrap;
  }
}

@media only screen and ( max-width: 991px ) {
  /* Immediate parent to nav <ul> */
  .fl-page-nav-right .fl-page-nav-collapse {
    display: block !important;
  }

  .fl-header-buttons {
    margin: 15px auto;
  }

} /* / MQ */

.fl-page-nav-right .fl-page-nav-wrap .navbar-nav li > a {
  margin: 0;
  font-family: var( --twc-body-font-family );
  font-weight: var( --twc-body-font-weight );
  text-wrap: nowrap;
  transition: all 0.4s;
}

.fl-page-nav-right .fl-page-nav-wrap .navbar-nav li > a:hover,
.fl-page-nav-right .fl-page-nav-wrap .navbar-nav li.current-menu-item > a {
  color: var( --twc-color-tertiary );
  background: transparent;
}


.fl-page-nav ul.sub-menu { /* Global sub-menu */
  margin-left: 0px;
  padding: 0;
  border-top: 3px solid var( --twc-color-primary );
}

.fl-page-nav ul.sub-menu ul.sub-menu {
  padding-bottom: 0;
  top: -3px;
  box-shadow: 20px 1px 20px rgba(0,0,0,0.15)
}

@media only screen and ( min-width: 992px ) {

  .fl-page-nav-right .fl-page-nav-wrap ul.sub-menu li.menu-item-has-children > a {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
    color: var( --twc-color-primary );
  }

  .fl-page-nav-right .fl-page-nav-wrap ul.sub-menu li.menu-item-has-children > a:before {
    display: block;
    width: 0;
    height: 0;
    border-top: 6px solid transparent;
    border-left: 10px solid var( --twc-color-primary );
    border-bottom: 6px solid transparent;
    transition: all 0.2s;
  }

  .fl-page-nav-right .fl-page-nav-wrap ul.sub-menu li.menu-item-has-children > a:hover {
    background: var( --twc-color-secondary );
  }

} /* / MQ */

/* Header button wrap and buttons
-------------------------------------- */

.fl-header-buttons {
  display: flex;
  flex-wrap: nowrap;
  gap: 16px;
}

.fl-nav-button,
.fl-nav-button:visited {
  display: block;
  flex: 1 1 auto;
  padding: 8px 16px;
  background: var( --twc-color-secondary );
  border-radius: 16px;
  color: #ffffff !important;
  font-size: 14px;
  text-align: center;
  text-wrap: nowrap;
  transition: all 0.4s;
}

.fl-nav-button:hover {
  background: var( --twc-color-tertiary );
  color: #ffffff !important;
  text-decoration: none;
}


/* Footer and footer nav tweaks
------------------------- */

.fl-page-footer {
  border-width: 0px;
}

.fl-page-footer-widgets-container {
  margin: 0 auto;
}

footer .widget_media_image a {
  display: inline-block;
}

footer .widget_media_image img {
  min-width: 240px;
}


@media only screen and ( max-width: 991px ) {

  .fl-page-footer-widgets-container {
    width: 80%;
  }

  footer a.fl-page-footer-logo {
    display: block;
    margin-bottom: 32px;
  }



} /* / MQ */

.fl-page-footer-widgets li a {
  font-size: 14px;
}

.fl-page-footer-widgets li a:hover,
.fl-page-footer-widgets li.current-menu-item a {
  color: var( --twc-color-tertiary );
  text-decoration: none;
}


/* ----------------------
SINGLE POSTS - FULL WIDTH WITH BEAVER BUILDER
---------------------- */
.single-post.fl-builder .fl-page-content .container{
  max-width:100%;
  width:100%;
  padding-left:0;
  padding-right:0;
}

.single-post.fl-builder .fl-page-content .row{
  margin-left:0;
  margin-right:0;
}

.single-post.fl-builder .fl-page-content .fl-content{
  padding-left:0;
  padding-right:0;
  margin:0;
}

/* BRING THE COMMENTS AND BOTTOM POST META (section with Post tags, etc )BACK IN TO THE GRID */
.single-post.fl-builder .fl-post-meta-bottom, .single-post.fl-builder .fl-comments {
  margin-top: 60px;
  max-width: 1020px;
  margin-left:auto;
  margin-right:auto;
  padding-left: 0;
  padding-right:0;
}


/* Hero row tweaks
----------------------- */
.hero-row {}

@media only screen and ( min-width: 988px ) {

  .hero-copy {
    padding-right: 20px;
  }

} /* / MQ */

.home .hero-copy {
  display: flex;
  align-items: center;
}

.home .fl-module:has( .hero-copy ) {
  justify-content: center;
}

@media only screen and ( min-width: 988px ) {

    .home .fl-module:has( .hero-copy ){
      text-align: left;
      justify-content: flex-start;
    }

} /* / MQ */

.home .hero-copy h1 {
  font-size: 48px;
  font-weight: 400;
  text-align: center;
  /* background-image: linear-gradient( #FFFFFF, var( --twc-color-accent ) );
  color: transparent !important;
  background-clip: text; */
}

@media only screen and ( min-width: 988px ) {

    .home .hero-copy h1 {
      text-align: left;
    }

} /* / MQ */


/* Global info box
----------------------- */
.info-box {
  padding: 24px;
  border-radius: 16px;
  background: rgba( 180, 180, 180, 0.9 );
}

.info-box p {
  font-size: 16px;
}


/* Book Now block
---------------------- */
.book-now-block {}

.book-now-block div:first-of-type {
  margin: 0 auto;
  text-align: center;
}


/* Team member styles
-------------------------- */

.fl-team-members-block { /* Wrapper for members 'blurb' */
  display: flex;
  gap: 20px;
}

.fl-team-members-block .fl-team-member-wrap { /* Single member in block */
  flex: 1 1 22%;
  text-align: center;
}

.fl-team-member-meta h2 {
  margin: 16px 0;
  font-size: 20px;
}

.fl-team-member-meta p {
  font-size: 12px;
}

.fl-team-members .fl-team-member-wrap {
  display: block;
  margin-bottom: 32px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--twc-color-tertiary);
}

.fl-team-members .fl-team-member-image {
  float: left;
  width: 30%;
  margin-right: 16px;
}

  @media only screen and ( min-width: 789px ) {

    .fl-team-members .fl-team-member-wrap { /* Wrapper on TM page */
      display: flex;
      gap: 32px;
    }

    .fl-team-members .fl-team-member-image {
      flex: 1 0 30%;
      float: none;
      margin: 0;
    }

  }

.fl-team-member-content {

}

.fl-team-member-content hr {
  margin: 16px auto;
}

.fl-team-members .fl-team-member-meta h2 {
  margin: 0 0 16px 0;
  font-size: 24px;
}

.fl-team-members .fl-team-member-meta p,
.fl-team-member-bio {
  font-size: 18px;
}

.fl-team-member-video .fl-button {
  margin-top: 1rem;
}


/* Accordion tweaks
------------------------ */
.fl-module .fl-accordion-button-label:not(a) {
  font-family: var( --twc-header-font-family );
}

.fl-module .fl-accordion-button button,
.fl-module .fl-accordion-button button:active,
.fl-module .fl-accordion-button button:focus,
.fl-module .fl-accordion-button button:hover {
  outline: none;
}

/* Embedded map
-------------------- */

.fl-map-sizer {
  margin: 0 auto;
  padding-bottom: 90%;
  position: relative;
  width: 100%;
  height: 0;
  border: 1px solid var( --twc-color-secondary );
}

.fl-map-sizer iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* Google reviews
---------------------- */
.fl-google-reviews {
  display: flex;
  flex-wrap: wrap;
  gap: 5%;
  justify-content: center;
}

.fl-review-card {
  flex: 0 1 auto;
  margin-bottom: 16px;
  padding: 16px;
  background: #FFFFFF;
  border: 1px solid var( --twc-color-tertiary );
  border-radius: 16px;
}

/* Kinda random width, I know.... */
@media only screen and ( min-width: 1020px ) {

  .fl-review-card {
    flex: 0 0 30%;
  }

} /* / MQ */

.fl-review-header {
  display: flex;
  gap: 12px;
  align-items: center;
  margin: 0 auto 16px;
}

.fl-review-user {}

img.fl-review-image {
  max-width: 100px;
  border: 2px solid var( --twc-color-tertiary );
  border-radius: 50%;
}

p.fl-review-name {
  margin-bottom: 0.25rem;
  font-size: 22px;
  font-weight: 400;
  line-height: 1.1;
}

.fl-review-stars {
  margin-bottom: 0.25rem;
}

.fl-review-stars i.fa-star {
  color: #fab005;
}

p.fl-review-date {
  font-size: 16px;
  color: #888888;
}

p.fl-review-text {
  font-size: 14px;
}

/* Contact form
-------------------- */
div.wpforms-container-full:not(:empty) {
  margin-top: 0 !important;
}

div.wpforms-container-full .wpforms-form .wpforms-head-container .wpforms-description {
  font-size: 20px;
  line-height: var( --twc-line-height );
}


/* Footer socials
---------------------- */
.fl-socials {
  display: flex;
  gap: 16px;
  justify-content: center;
  align-items: center;
  padding-bottom: 20px;
}

.fl-socials a {
  transition: all 0.4s;
}

.fl-social-link {
  display: block;
  flex: 0 1 auto;
}

.fl-social-link::before {
  display: block;
  content: "";
  width: 24px;
  height: 24px;
  background-size: contain;
  background-position: 50% 50%;
  background-repeat: no-repeat;
}

.fl-linkedin::before {
  background-image: url( "../img/social-logo-linkedin.svg" );
}

.fl-facebook::before {
  background-image: url( "../img/social-logo-facebook.svg" );
}

.fl-twitter::before {
  background-image: url( "../img/social-logo-x.svg" );
}

.fl-instagram::before {
  background-image: url( "../img/social-logo-instagram.svg" );
}

.fl-linkedin:hover::before {
  background-image: url( "../img/social-logo-linkedin-hover.svg" );
}

.fl-facebook:hover::before {
  background-image: url( "../img/social-logo-facebook-hover.svg" );
}

.fl-twitter:hover::before {
  background-image: url( "../img/social-logo-x-hover.svg" );
}

.fl-instagram:hover::before {
  background-image: url( "../img/social-logo-instagram-hover.svg" );
}

/* Inline images
--------------------- */
img.alignleft {
  margin: 0 16px 4px 0;
}

img.alignright {
  margin: 0 0 4px 16px;
}
