/*
Theme Name: Omni Resorts Custom Theme
Theme URI: https://tandemdesignlab.com
Author: Tandem Design Lab
Author URI: https://tandemdesignlab.com
Description: Custom Theme for Omni Resorts
Version: 1.1
License: none
Tags:
*/


/* caveat-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 400;
  src: url('assets/fonts/caveat-v23-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* caveat-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  src: url('assets/fonts/caveat-v23-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

:root{
  /* Nexa Font Weights Light:300, Regular:500, Bold:700 */
  --primary-font: "Nexa", sans-serif;
  --primary-font-size: 18px;
  --primary-font-weight: 300;
  --primary-font-style: normal;

  --secondary-font: "Caveat", cursive;
  --secondary-font-size: 24px;
  --secondary-font-weight: 400;
  --secondary-font-style: normal;

  --header-font-weight: 800;

  --light-green: #309866;
  --dark-green: #044124;
  --white: #FFF;
  --black: #000;
  --gray: #E7E7E7;

  --content-width: 1200px;
  --column-gap: 35px;
  --default-margin: 50px;
  --small-margin: calc(var(--default-margin) / 2);
  --paragraph-margins: calc(var(--default-margin) / 3);

  --default-transition: ease-in-out all .5s;

  --offset: calc((100vw - var(--content-width)) / 2);
}


/****************************************************************** Structure ******************************************************************/
body{ padding: 0; margin: 0; font-family: var(--primary-font); font-weight: var(--primary-font-weight); font-size: var(--primary-font-size); line-height: 1.5; color: var(--black);}
a, a:hover { color: var(--blue); text-decoration: none; font-optical-sizing: auto;}

.headingWrapper {
  display: flex;

  :where(h2,h3,h4) { color: var(--dark-green); font-family: var(--primary-font); font-weight: var(--header-font-weight); font-style: var(--primary-font-style);line-height: 1.25; margin: 0 0 var(--default-margin) 0; text-transform: capitalize;}
  :where(h1) { color: var(--dark-green); font-family: var(--secondary-font); font-weight: var(--header-font-weight); font-style: var(--secondary-font-style);line-height: 1; margin: 0 0 var(--default-margin) 0; text-transform: capitalize;}
  :where(h1,h2,h3,h4) p { margin: 0; padding: 0;}

  &.dark-green :where(h1,h2,h3,h4) { color: var(--dark-green);}
  &.light-green :where(h1,h2,h3,h4) { color: var(--light-green);}
  &.black :where(h1,h2,h3,h4) { color: var(--black);}
  &.gray :where(h1,h2,h3,h4) { color: var(--gray);}
  &.white :where(h1,h2,h3,h4) { color: var(--white);}

  &.center { justify-content: center; align-items: center; text-align: center;}
  &.multi-line.center { text-align: center;}
  &.right { justify-content: end; text-align: right;}

  &.balanced :where(h1,h2,h3,h4) { text-wrap: balance;}
  &.noMargins :where(h1,h2,h3,h4) { margin: 0 !important;}

  &.hasSubHeading {
    :where(h1,h2,h3,h4) { display: flex; flex-direction: column; gap: var(--paragraph-margins);}
    span.title {
      &.primary { font-family: var(--primary-font) !important;}
      &.script { font-family: var(--secondary-font) !important;}
    }
    span.sub-title {
      font-family: var(--primary-font) !important; font-size: .35em;
      &.primary { font-family: var(--primary-font) !important;}
      &.script { font-family: var(--secondary-font) !important;}
    }
    &.center {
      :where(h1,h2,h3,h4) { align-items: center;}
    }
  }

  /* &.hasSubHeading h1 span.sub-title { width: 60%;} */

  &.hasIcon {
    margin-top: calc(-1 * (var(--default-margin) * 1.5)); align-items: end;
    :where(h1,h2,h3,h4) { flex: 1; margin-top: var(--default-margin);}
    span.title { font-size: 1.5em; line-height: 1.25;}
    .icon-wrapper {
      flex: 0 0 25%; position: relative; top: calc(-1 * var(--default-margin)); aspect-ratio: 1;
      .tdl-icons { width: 100%; height: 100%;}
    }
  }

  &.hasInlineIcon {
    :where(h1,h2,h3,h4) { display: flex; gap: 20px; align-items: center;}

    h1 .icon-wrapper .tdl-icons { width: 140px; height: 140px;}
    h2 .icon-wrapper .tdl-icons { width: 120px; height: 120px;}
  }

  &.icon-top :where(h1,h2,h3,h4) { flex-direction: column; align-items: start;}
  &.light :where(h1,h2,h3,h4) { font-weight: normal !important; font-family: var(--primary-font);}

  &.primary { font-family: var(--primary-font) !important;}
  &.script { font-family: var(--secondary-font) !important;}

}

/* Heading Defaults */
/* :where(h1,h2,h3,h4) { line-height: 1; font-weight: var(--header-font-weight); font-family: var(--secondary-font); text-transform: uppercase;} */
h1 { font-size: 70px;}
h2 { font-size: 50px;}
h3 { font-size: 40px; }
h4 { font-size: 30px;}

.clear{clear:both;}

ul.tdlStyledNumberedList {
  counter-reset: number; list-style: none; margin-top: 70px; padding-left: 0;

  li { counter-increment: number; display: flex; flex-direction: row; gap: 40px; margin-bottom: 50px; align-items: center; font-weight: bold;}
  li:before { content: counter(number); width: 75px; height: 75px; border-radius: 50%; border: 2px solid var(--brown); font-size: 40px; font-family: var(--primary-font); flex: 0 0 75px; align-items: center; justify-content: center; display: flex;}
}

.tdl_text_column {
  ul {
    display: flex;
    flex-direction: column;
    gap: 20px;

    li::marker { color: var(--dark-green);}
  }
}

.noBottomMargins { margin-bottom: 0 !important;}

.tdl_text_column {
    &.black {
      color: var(--black) !important;
      p { color: var(--black) !important;}
    }
}

.wpb_single_image { margin-bottom: var(--default-margin) !important;}

.tdl-image {
  img {
    width: 100%; display: block;

    &.square { aspect-ratio: 1; object-fit: cover; object-position: center;}
    &.portrait { aspect-ratio: 3/4; object-fit: cover; object-position: center;}
    &.landscape { aspect-ratio: 4/3; object-fit: cover; object-position: center;}
  }
}

/*************************************************************** General Styles ****************************************************************/

/* Header */
#header { position: absolute; top: 0; left: 0; width: 100%; padding-top: var(--default-margin);}
.logged-in:not(.page-template-no-banner-page) #header { top: 32px;}
header { display: flex; width: var(--content-width); justify-content: space-between; padding: 0; margin: 0 auto;}

/* Header Top Menu */
.header-top-wrapper {
  background: var(--black);
  padding: 5px calc((100% - var(--content-width)) / 2);
  /* padding: 0 calc((100% - var(--content-width)) / 2); */
  display: flex;
  gap: 20px;
  justify-content: end;
  align-items: center;
  /* border-bottom: 1px solid var(--black); */
  /* position: absolute;
  top: 0;
  left: 0;
  width: var(--content-width); */

  .tdlIcons {
    .social-icon { color: var(--black) !important;}
  }

  .menu-header-top-container {

    #menu-header-top {
      margin: 0 auto;
      padding: 0;
      display: flex;
      flex-direction: row;
      justify-content: end;
      gap: 20px;
      list-style: none;

      li {

        &.tdlButton {
            text-decoration: none;
            transition: ease-in-out  all .2s;
            position: relative;
            font-family: var(--primary-font);
            font-size: var(--primary-font-size);
            font-weight: normal !important;
            text-transform: uppercase !important;
            line-height: 1;
            background: var(--yellow);
            color: var(--black); border-radius: 5px;
            padding: 5px 30px;

            &:hover { background: var(--gray);}
        }
      }
    }
  }
}

/* Menu Main */
.menu-main-container {
  z-index: 9999;
  width: 100%;
  ul { list-style: none; padding: 0;}

  .tdl_menu {
    margin: 0;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    gap: 1.5rem;
    align-items: center;


    a { text-decoration: none; color: var(--white); font-size: var(--primary-font-size); font-family: var(--primary-font); font-weight: var(--primary-font-weight); font-style: var(--primary-font-style); text-transform: capitalize; line-height: 3 !important; padding: 0!important; gap: .75rem; align-items: center; display: flex; padding: 0;

    }

    li {
      position: relative;

      &:hover {
        a { color: var(--white);}
        .sub-menu {
          display: flex; flex-direction: column;
        }

        &.menu-item-has-children {
          a:after { border-color: var(--white) transparent transparent transparent;}
        }
      }
      &.flyout:hover .sub-menu { display: block !important; columns: 2;}

      &.active:hover .sub-menu { display: block !important;}

      &.current-menu-parent {
        a { color: var(--white); }
      }

      &.current_page_item {
        a {
          color: var(--white); position: relative;
        }

        .sub-menu {
          li {}
          li:hover {}
        }

        &.menu-item-has-children {

        }
      }

      &.menu-item-has-children {
        a { padding-right: 0 !important;}
        a:after { content: ''; display: inline-block; width: 0px; height: 0px; border-style: solid; border-width: 6px 4px 0 4px; border-color: var(--white) transparent transparent transparent; margin-right: 0.625rem;}
      }

      &.tdlButton {
        a { padding: 10px 50px !important; display: inline-block; line-height: 1 !important;}

        &.light-green {
          a {
            background: var(--light-green); color: var(--white);
            &:hover { background: var(--dark-green);}
          }
        }

        &.dark-green {
          a {
            background: var(--dark-green); color: var(--white);
            &:hover { background: var(--light-green);}
          }
        }
      }

      &.logo-spacer {
        width: 300px;
        a { display: none;}
      }

    }

    .sub-menu {
      position: absolute;
      display: none;
      width: fit-content;
      min-width: 200px;
      background: var(--light-green);
      left: 0;

      li {
        line-height: 2 !important;
        a { color: var(--white); line-height: 1 !important; padding: 0 10px !important; white-space: nowrap; width: calc(100% - 20px); display: inline-block;}
        a:after { display: none !important;}

        &:hover {
          background: var(--dark-green);
          a { color: var(--white);}
        }

        &.current_page_item {
          background: rgba(0,0,0,.25);
          a {
            &:after { content: ''; display: none;}
          }
          &:hover { background: var(--black);}
        }

        &.menu-item-has-children {
        }

        &:not(:last-of-type):after { display: none;}

      }
    }
  }

}

/* Mobile Menu */
#tdl_mm_container {
  background-color: var(--light-green);
  line-height: 2em !important;
  text-align: left;

  ul li a { text-align: left; line-height: 2em !important; text-decoration: none;}
  a { color: var(--white);}

  .menu-item-has-children a:after{ border-color: transparent transparent transparent var(--white) !important;}

  &.dropdown { text-align: center; top: 150px !important;}
  &.slide, &.push { padding: 0px;}

  .sub-menu {
    padding-top: 0 !important;
    padding-bottom: 0 !important;

    .menu-item-has-children a:after { content: ''; width: 0; height: 0; border-style: solid; border-width: 5px 0 5px 10px; border-color: transparent transparent transparent var(--white); display: inline-block; margin-left: 10px; position: relative; top: -1px;}

    li {
      background-color: var(--blue);
      line-height: 2em;

      &.mobileOnly { background-color: var(--white);}
    }

    a { color: var(--yellow); font-size: .9em;}

  }

}

/* Mobile Button */
#tdl_mm_button {
  position: relative !important;
  z-index: 999999;

  &:after, &:before, & > div { background-color: var(--white) !important;}
}

/* Add overlay when mobile menu is open */
body.activeMobileMenu:after { content: ''; position: fixed; top: 0; left: 0; height: 100%; width: 100%; background: rgba(0,0,0,.8); z-index: 9;}

/* Banner */
rs-slide {
  :where(h1,h2,h3,h4,p) { font-family: var(--primary-font) !important; font-weight: var(--primary-font-weight) !important;}
  :where(p) { font-family: var(--primary-font) !important; font-weight: var(--primary-font-weight) !important;}
}

/* Logo */
.logo {
  height: 75px;
  margin: 0;
  position: relative;
  z-index: 9;

  img { height: 100%; display: block;}
}

/* TDL Banner */
.tdl-banner-container {
 min-height: 400px; display: flex; justify-content: center;

 .tdl-banner-wrapper {
   width: var(--content-width); align-content: center; position: relative;

   .tdl-content-wrapper {
     display: flex;
     justify-content: space-between;

     .tdl-title-wrapper {
       h1 { color: var(--white); text-wrap: balance; max-inline-size: 430px; line-height: 1.25;}
     }
   }

   .icon-wrapper {
     position: absolute; bottom: -30px; right: 0;

     .tdl-icons { width: 200px; height: 200px;}
   }
 }

 &.blue { background: var(--blue);}
 &.dark-green { background: var(--dark-green);}
 &.light-green { background: var(--light-green);}
 &.black { background: var(--black);}

 &[data-line_arrow_color="green"], &[data-line_arrow_color="light-green"], &[data-line_arrow_color="blue"], &[data-line_arrow_color="black"] {
    position: relative; overflow: visable !important; margin-bottom: calc(var(--default-margin) * 2) !important;

    &:after { content: ''; width: 50px; height: 50px; transform: translate(-50%, 65px) rotate(45deg); left: 50%; position: absolute; bottom: 0;}
 }

 &[data-line_arrow_color="green"] {
    border-bottom: 40px solid var(--dark-green);

    &:after { background: var(--dark-green);}
  }
 &[data-line_arrow_color="light-green"] {
   border-bottom: 40px solid var(--light-green);

   &:after { background: var(--light-green);}
 }
 &[data-line_arrow_color="blue"] {
   border-bottom: 40px solid var(--blue);

   &:after { background: var(--blue);}
 }
 &[data-line_arrow_color="black"] {
   border-bottom: 40px solid var(--black);

   &:after { background: var(--black);}
 }

}

/* Buttons */
.tdlButtonWrapper {

  display: flex;

  .tdlButton {
    text-decoration: none;

    transition: ease-in-out  all .2s;
    position: relative;
    font-family: var(--primary-font);
    font-size: var(--primary-font-size);
    font-weight: bold !important;
    text-transform: capitalize !important;
    line-height: 1;
  }

  &.outline {
    .tdlButton { border-width: 1px; border-style: solid; border-color: var(--light-green); color: var(--light-green); font-weight: bold !important; padding: 13px 78px;}
    .tdlButton:hover { color: var(--dark-green); border-color: var(--dark-green); transition: ease-in-out  all .2s;}
  }

  &.background {
    .tdlButton { text-decoration: none; text-transform: capitalize; background: var(--light-green); color: var(--white); padding: 13px 78px; text-align: center;}
    .tdlButton:hover { background: var(--dark-green); color: var(--white); transition: ease-in-out  all .2s;}
  }

  &.light-green {
    &.outline {
      .tdlButton { border-color: var(--light-green); color: var(--light-green);}
      .tdlButton:hover { border-color: var(--dark-green); color: var(--dark-green);}
    }
    &.background {
      .tdlButton { background: var(--light-green); color: var(--white);}
      .tdlButton:hover { background: var(--dark-green); color: var(--white);}
    }
  }

  &.dark-green {
    &.outline {
      .tdlButton { border-color: var(--dark-green); color: var(--dark-green);}
      .tdlButton:hover { border-color: var(--light-green); color: var(--light-green);}
    }
    &.background {
      .tdlButton { background: var(--dark-green); color: var(--white);}
      .tdlButton:hover { background: var(--light-green); color: var(--white);}
    }
  }

  &.black {
    &.outline {
      .tdlButton { border-color: var(--black); color: var(--black);}
      .tdlButton:hover { border-color: var(--dark-green); color: var(--dark-green);}
    }
    &.background {
      .tdlButton { background: var(--black); color: var(--white);}
      .tdlButton:hover { background: var(--dark-green); color: var(--white);}
    }
  }

  &.white {
    &.outline {
      .tdlButton { border-color: var(--white); color: var(--white);}
      .tdlButton:hover { background: var(--light-green); color: var(--white);}
    }
    &.background {
      .tdlButton { background: var(--white); color: var(--blue);}
      .tdlButton:hover { background: var(--yellow); color: var(--blue);}
    }
  }


  &.right {
    justify-content: flex-end;
  }

  &.center {
    justify-content: center;
    text-align: center;
  }

  &.arrow {
    .tdlButton:after { content: '\2192'; display: inline-block; margin-left: 10px; position: relative; top: -3px;}
  }

  &.click-pointer {
    .tdlButton:before { content: ''; display: inline-block; margin-right: 10px; width: 20px; height: 20px; background-image: url('assets/icons/summit-atr_click-pointer.svg'); background-size: cover; }
  }


}

/* Widget Button */
.wp-block-button {

  &.tdlButton {
    width: 100%;

    .wp-element-button {
      text-decoration: none;
      padding: 20px 60px;
      transition: ease-in-out  all .2s;
      position: relative;
      font-family: var(--primary-font);
      font-size: var(--primary-font-size);
      font-weight: normal !important;
      text-transform: uppercase !important;
      line-height: 1;
    }

    &.outline {
      .wp-element-button { border-width: 6px !important; border-style: solid !important; border-color: var(--black) !important; color: var(--blue) !important; border-radius: 20px !important; font-weight: bold !important; font-size: 42px; text-transform: uppercase;}
      .wp-element-button:hover { color: var(--white); transition: ease-in-out  all .2s;}
    }

    &.dark-green {
      .wp-element-button { background: var(--light-green) !important; color: var(--black) !important; width: 100%;}
    }

  }

}

/* Default Icon Sizing */
.tdl-icons {
  width: 40px; height: 40px;  display: block; background-position: center center; background-repeat: no-repeat;

  &.yellow { filter: brightness(0) saturate(100%) invert(95%) sepia(27%) saturate(3592%) hue-rotate(319deg) brightness(84%) contrast(100%);}
  &.white { filter: brightness(0) saturate(100%) invert(100%) sepia(30%) saturate(4847%) hue-rotate(228deg) brightness(132%) contrast(116%);}
}

.tdl-icon-button {
  &:hover .icon-wrapper .icon { transition: ease-in-out all .3s;}
  &:hover .icon-wrapper .icon:before { transform: scale(1.3); transition: ease-in-out all .3s; color: var(--black);}

  a { text-decoration: none;}
  h3 { font-size: 26px; text-align: left; color: var(--black); text-transform: uppercase; transition: ease-in-out all .3s; margin: 0; position: relative; z-index: 2;}
  &:hover h3 { color: var(--white); transition: ease-in-out all .3s;}

  &.dark-green .wrapper {
    background: var(--dark-green);
  }
  &.light-green .wrapper {
    background: var(--light-green);
  }
  &.blue .wrapper {
    background: var(--blue);
  }
  &.black .wrapper {
    ackground: var(--black);
  }

  .wrapper {
    display: flex;
    flex-direction: column;
    gap: calc(var(--column-gap) / 2);
    border: 6px solid var(--black);
    border-radius: 15px;
    padding: 20px;

    position: relative;

    &:after { content: ''; display: block; width: 100%; height: 100%; left: 0; top: 0; background: rgba(0,0,0,0); position: absolute; z-index: 1; transition: var(--default-transition);}


    /* &:hover { transition: var(--default-transition); background: var(--black) !important;} */
    &:hover {
      transition: var(--default-transition);

      &:after { background: rgba(0,0,0,.5); transition: var(--default-transition);}
    }
  }

  .icon-wrapper {
    flex: 1;
    position: relative; z-index: 2;

    .tdl-icons {
      height: 100%; min-height: 75px; width: auto; background-position-x: left;
      transition: ease-in-out all .3s;

      /* Assign Icons */
      &:before { transform: translateY(0%) scale(1.2); transition: ease-in-out all .3s;}
    }
  }

  .content-wrapper {
    .content {}
  }

}

/* Icon Block */
.tdl-icon-block {
  &.cover {
    .wrapper {
      width: 100%;

      .icon-wrapper {
        width: 100%; padding-top: 0;

        .tdl-icons { width: 100%; height: 100%; aspect-ratio: 1;}
      }
    }
  }

  &.large {
    margin-bottom: var(--default-margin);
    .wrapper {
      .icon-wrapper {
        .tdl-icons { width: 100px; height: 100px; aspect-ratio: 1; margin: 0 auto;}
      }
    }
  }

  &.offset {
    margin-top: calc(-3 * var(--default-margin));
  }
}

/* Icon Block */
.tdl-icon-title-block {
  display: flex; flex-direction: column; gap: var(--paragraph-margins); justify-content: center;
  h4 { text-align: center; font-family: var(--primary-font); font-size: var(--primary-font-size); font-weight: var(--primary-font-weight); text-transform: capitalize;}
  &.cover {
    .wrapper {
      width: 100%;

      .icon-wrapper {
        width: 100%; padding-top: 0;

        .tdl-icons { width: 100%; height: 100%; aspect-ratio: 1;}
      }
    }
  }

  &.large {
    .wrapper {
      .icon-wrapper {
        .tdl-icons { width: 100px; height: 100px; aspect-ratio: 1; margin: 0 auto;}
      }
    }
  }
}

/* Add padding to previous row for offset icon */
.tdl_row:has(+ .tdl_row .tdl-icon-block.offset) { padding-bottom: calc(2 * var(--default-margin));}
.tdl_row:has(+ .tdl_row.apple) { padding-bottom: calc(2 * var(--default-margin));}
.tdl_row:has(+ .tdl_row.apple-two) { padding-bottom: calc(1 * var(--default-margin));}


/* Image Button */
.tdl-image-button {
  cursor: pointer;  overflow: clip;
  .wrapper {
    text-decoration: none;

    .image-wrapper {
      position: relative; display: flex; justify-content: center; margin-bottom: var(--paragraph-margins);
      img { width: 110px; display: block; aspect-ratio: 1; object-fit: cover; border-radius: 50%; opacity: 1; transition: var(--default-transition);}
    }

    .content-wrapper {
      position: relative;
      padding: display: flex; flex-direction: column; gap: var(--paragraph-margins);
      h3 { margin: 0; color: var(--dark-green) !important; font-size: 1.5rem; text-align: center; transition: var(--default-transition);}
      p { margin: 0;}
      .description {
        color: var(--dark-green); display: flex; flex-direction: column; flex: 1; justify-content: space-between; gap: var(--paragraph-margins);

        .tdlButtonWrapper {
          .tdlButton {}
        }
      }

    }
  }

  &:hover {
    .image-wrapper {
      img { opacity: .8; transition: var(--default-transition);}
    }
    .content-wrapper {
      h3 { color: var(--light-green) !important; transition: var(--default-transition);}
    }


  }
}


/* Footer */
#footer {
  width: 100%;
  color: var(--black);
  /* margin-top: var(--default-margin); */
  position: relative;
  padding: var(--default-margin) 0 !important;

  footer { width: var(--content-width); margin: 0 auto;}
  .footer_column_wrapper {
    display: flex;
    gap: var(--column-gap);
    width: 100%;

    .footer-column {
      flex: 0 0 20%;
    }
    .locations {
      width: 100%; display: flex; justify-content: center; align-items: start; font-size: .8em;
    }

    .footer-locations {
      width: 100%; flex: 1 !important; padding-left: var(--default-margin); margin-top: 96px;

      p { padding: 0 !important; margin: 0 !important;}
      h4 { margin: 0 !important; font-size: 1em !important; font-family: var(--primary-font) !important;}
    }
  }

  ul {
    list-style: none; padding-left: 0; margin-top: 0;
  }

  a {
    text-decoration: none; color: var(--light-green);
    &:hover { color: var(--dark-green);}
  }
  :where(h1,h2,h3,h4) { color: var(--dark-green); margin-top: 0; margin-bottom: var(--default-margin);}
  h3 { font-size: 28px; text-transform: uppercase; color: var(--dark-green);}

  .wp-block-social-links {
    margin-bottom: 0;
    .wp-block-social-link {

      /* .wp-block-social-link-anchor svg { fill: var(--black) !important; color: var(--black) !important; z-index: 2;} */
      /* &:hover:before { background: var(--red);} */


    }
  }

  ul.menu {
    display: flex; flex-direction: column; gap: 20px ;font-size: 40px; font-family: var(--primary-font); font-weight: var(--primary-font-weight); font-style: var(--primary-font-style); text-transform: uppercase; line-height: 1;
    a { padding: 0;}
  }

  .tdlIcons {
    .social-icon { color: var(--black) !important;}
  }

  .tdl-global-contacts {
    a { color: var(--black);}
  }

}

#sub_footer {
  background: var(--light-green); color: var(--white); margin-top: 0; position: relative;
      &:after {
      content: '';
      mask-image: url('assets/icons/omni_icon-trees.svg');
      -webkit-mask-image: url('assets/icons/omni_icon-trees.svg');
      mask-size: cover;
      -webkit-mask-size: cover;
      background-color: #333; /* default color */
      width: 250px;
      height: 250px;
      display: inline-block;
      top: -225px;
      right: 0;
      position: absolute;
      background-color: var(--light-green);
      z-index: -1;
  }
  footer { width: var(--content-width); margin: 0 auto;}
  div {
    display: flex; justify-content: space-between;
    #credit, #copy { font-size: .7em; margin: 0; line-height: var(--default-margin); font-weight: 400;}
  }
  a {text-decoration: none; color: var(--white);}

}

/* Forms */
.nf-form-cont {

  .nf-form-content { padding: 0;}
  .nf-form-content input:not([type="button"], [type="submit"]), .nf-form-content textarea.ninja-forms-field { background: var(--white); font-family: var(--primary-font); font-weight: var(--primary-font-weight); color: var(--black) !important; border: 1px solid var(--black) !important;}
  .nf-form-content input:not([type="button"], [type="submit"]) { height: 50px !important;}

  .submit-container {
    display: flex; flex-direction: row; justify-content: start; margin-bottom: var(--default-margin) !important;

    &.add-user {
      .submit-wrap {
          position: relative;
        }
    }

    input {
       background: var(--light-green) !important; text-transform: capitalize !important; color: var(--white) !important; height: auto !important; font-weight: var(--primary-font-weight) !important; padding: 10px 60px !important; transition: ease-in-out  all .2s; font-family: var(--primary-font); font-size: var(--primary-font-size); line-height: 1; border: none !important; border-radius: 0px !important;

      &.tdlButton { padding: 20px 60px 20px 110px !important; }
    }

    :hover input { color: var(--white) !important; transition: ease-in-out  all .2s; background: var(--dark-green) !important;}
  }

  .nf-error-msg { font-size: 14px !important;}
  .nf-error.field-wrap .nf-field-element:after { height: calc(100% - 2px) !important; aspect-ratio: 1 !important; width: auto; line-height: 1 !important; align-content: center !important;}
  .nf-form-fields-required { text-align: right; font-style: italic; color: var(--black) !important;}
  .nf-field-label label { font-weight: normal; color: var(--black) !important;}
  .nf-error-msg, .ninja-forms-req-symbol {}
  .nf-error.field-wrap .nf-field-element::after { background: var(--red);}
}

footer {
  .nf-form-cont {
    .nf-form-fields-required { display: none !important;}
    .nf-form-content textarea.ninja-forms-field { height: 100px !important;}
    .nf-form-content input.ninja-forms-field:not([type="button"], [type="submit"]) { padding: 0 10px !important;}
  }
}


/* More Link */
.more-link { color: var(--brown);}

/* .vc_tta.vc_tta-accordion .vc_tta-controls-icon-position-left .vc_tta-controls-icon */

/* Accordion styles */
.vc_tta-accordion {
  .vc_tta-panel-heading, .vc_tta-panel-body { border: 0px !important;}
  .vc_tta-panel-body { background-color: var(--gray);}
  .vc_tta.vc_tta-accordion .vc_tta-controls-icon-position-right.vc_tta-panel-title > a { padding-right: 200px !important;}

  .vc_tta-panel {
    .vc_tta-panel-title > a { color: var(--black) !important; font-size: 24px !important;}
    .vc_tta-title-text { font-weight: 700 !important;}
    .vc_tta-panel-heading { background: var(--white) !important;}
    .vc_tta-panel-heading:focus { color: var(--white) !important; background-color: var(--white) !important;}
    .vc_tta-panel-heading:hover { color: var(--white) !important; background-color: var(--white) !important;}
    :where(h1,h2,h3,h4) { font-family: var(--primary-font) !important; font-weight: normal !important;}
  }

  .vc_active {
    .vc_tta-panel-title { background: var(--white) !important;}
    .vc_tta-title-text { font-weight: 700 !important;}
    .vc_tta-panel-body { color: var(--black) !important; margin-bottom: var(--default-margin) !important;}
    &.vc_tta-panel { border: none !important;}

    /* .vc_tta-controls-icon {
      padding: 5px; background: var(--dark-green); border: 3px solid var(--black); border-radius: 10px;
      &:before { transform: rotate(180deg) translateY(40%) translateX(-40%) !important;}
    } */
  }

  /* .vc_tta-controls-icon {
    padding: 5px; background: var(--dark-green); border: 3px solid var(--black); border-radius: 10px;
    &:before { border-color: var(--black) !important; width: calc(100% - 10px); transform: translateY(40%) translateX(30%) !important;}
  } */
}


/* Call To Action */
.tdlCTAWrapper.vc_hidden { opacity: 1 !important; padding-bottom: 0 !important;}
.tdlCallToActionContainer > .tdl_row { padding-left: 0 !important; width: 100% !important; padding-right: 0 !important; left: auto !important;}
.tdl_row.tdlCallToActionContainer { margin-bottom: 0 !important;}
.tdlCTAWrapper :where(h1, h2, h3, h4) { color: var(--white); font-size: 56px; line-height: 1.2em;}
.tdlCallToActionContainer .tdl_row .tdl_column .tdl_row { width: 100% !important;}


.tdlCTAWrapper:has(.tdlCallToActionContainer[data-cta-size="full"]) {
  display: flex; flex-direction: column; align-items: center;
}

.tdlCallToActionContainer {
  .tdl_row { padding-bottom: 0 !important;}

  &[data-cta-size="content"] {
    display: flex; align-items: center; border-radius: 10px; overflow: clip;

    .tdl_row { padding: var(--default-margin) !important;}
  }

  .tdlButtonWrapper {
    margin-bottom: var(--paragraph-margins) !important;
    .tdlButton {
      &:hover { background: var(--gray) !important; color: var(--black) !important;}
    }
  }
  p { margin-bottom: 0;}
  p.center { text-align: center;}
  p.right { text-align: right;}

  a.black { color: var(--black);}
  a.yellow { color: var(--yellow);}
  a.white { color: var(--white);}
  a.gray { color: var(--gray);}
}


.tdl-cta {
  padding: var(--default-margin); background-repeat: no-repeat; background-size: cover;

  &[data-width="full"] { width: 100%; left: calc(-1 * var(--offset)); padding: var(--default-margin) var(--offset); position: relative;}
  &.center { background-position: center;}
  &.bottom { background-position: bottom;}

  .content {
    &.white { color: var(--white); text-align: center;}
  }

  &:not(:has(.content)) {
    h3 { margin-bottom: 0;}
  }
  h3.script { font-family: var(--secondary-font) !important;}

  .tdlButtonWrapper { margin-bottom: 0; margin-top: var(--default-margin);}

  .nf-form-fields-required { display: none;}
  .nf-form-content  {
    nf-fields-wrap { display: flex;}
    .submit-container {
      input { background-color: var(--green);}
    }
    input:not([type="button"], [type="submit"]) { height: 38px !important; padding-left: var(--paragraph-margins);}
  }
  .nf-form-cont { display: flex; justify-content: center; margin-top: var(--default-margin);}
  .nf-field-container { margin-bottom: 0 !important;}
}

/* TDL Custom Blocks */
.tdl-custom-block {

  &.dark-green {
    background: var(--dark-green);
    color: var(--white);
    .headingWrapper:not(.black, .dark-green, .light-green) :where(h1,h2,h3,h4) { color: var(--white);}
    .tdl_text_column {
      p { color: var(--white);}
      ul {
        li::marker { color: var(--white);}
      }
    }

    .tdlButtonWrapper {
      &.background {
        .tdlButton {
          background: var(--white) !important; color: var(--dark-green) !important;
          &:hover { background: var(--light-green) !important; color: var(--white) !important;}
        }
      }
    }
  }

  &.light-green {
    background: var(--light-green);
    color: var(--white);
    .headingWrapper:not(.black, .dark-green, .light-green) :where(h1,h2,h3,h4) { color: var(--white);}
    .tdl_text_column p { color: var(--white);}

    .tdlButtonWrapper {
      &.background {
        .tdlButton {
          background: var(--white) !important; color: var(--light-green) !important;
          &:hover { background: var(--dark-green) !important; color: var(--white) !important;}
        }
      }
    }
  }

  &.black {
    background: var(--black);
    .headingWrapper:not(.white, .black) :where(h1,h2,h3,h4) { color: var(--white);}
    .tdl_text_column p { color: var(--white);}

    .tdlIconListContainer {
      .tdlListItem {
        .heading-wrapper {
          h3 { color: var(--white);}
        }
      }
    }
  }

  &.tdl-top-trees {
      position: relative;
      &:after {
          content: '';
          mask-image: url('assets/icons/omni_icon-trees.svg');
          -webkit-mask-image: url('assets/icons/omni_icon-trees.svg');
          mask-size: cover;
          -webkit-mask-size: cover;
          background-color: #333; /* default color */
          width: 250px;
          height: 250px;
          display: inline-block;
          top: -225px;
          right: 0;
          position: absolute;
      }
      &.light-green:after {
          background-color: var(--light-green);
      }
      &.dark-green:after {
          background-color: var(--dark-green);
      }
  }

}


/*************************************************************** Page Specific ****************************************************************/


/* Team Members */
.teamMemberTDLBlock {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--column-gap);

  .teamMemberTDL {
    margin-bottom: var(--default-margin);

    h3 { margin-bottom: 0;}
    h4 { font-size: .8em; font-weight: normal; margin: 0;}
    a { text-decoration: none;}

    .teamMemberTDL_image{
      img { width: 100%; aspect-ratio: 1; object-fit: cover;}
    }
  }
}

/* Single Team Member */
.single-team_member {
  article { width: var(--content-width); margin: 0 auto; padding-top: var(--default-margin);

    .tdl-team-member {
      display: flex;
      gap: var(--column-gap);


      .left-column {
        flex: 0 0 30%;
        img { width: 100%; display: block;}
      }
      .right-column {
        flex: 1;

        h1 { margin-bottom: 0px; color: #0A0F1C; font-size: 60px; margin: 10px 0;}
        h4 { margin-bottom: 0; font-weight: var(--primary-font-weight);}
        h4.meet { color: var(--brown); font-size: 23px; margin-top: 0; font-weight: 700;}
        h4.contact { font-size: 40px; margin: 30px 0; font-weight: 700;}
        h2.posloc { font-size: 20px; color: rgba(10,15,28, .8); font-weight: var(--primary-font-weight);}
        .member-header { padding-bottom: 20px; border-bottom: 1px solid #0A0F1C;  margin-bottom: 20px;}
        .contact-info p { margin-bottom: 0;}
        .contact-info a { color: var(--brown);}
        .contact-info p { line-height: 1.8em;}
        ul#expertise { list-style: none; padding-left: 0;}
        ul#expertise li { display: inline-block; border: 2px solid #0A0F1C; padding: 10px 30px; margin-right: 20px; font-weight: 700;}

        p:last-of-type { margin-bottom: 0;}
      }
    }
  }
}

/* TDL News Article */
.tdlNewsArticle {
  padding-bottom: 35px; margin-bottom: 35px; border-bottom: 1px solid var(--blue);

  h3 { margin-bottom: 0; font-size: 2em; margin: 15px 0 40px 0;}
  .sourceDate { color: var(--brown); font-weight: bold;}
}


/* Testimonials */
.tdl-testimonial-container {
  padding-bottom: var(--default-margin);

  .testimonial {
    display: flex; flex-direction: column; gap: var(--paragraph-margins);
    .header {
      display: flex; gap: var(--paragraph-margins); align-items: center;
      h4 { font-family: var(--primary-font); margin: 0; text-wrap: balance; font-size: 1.2em; text-transform: capitalize;}
      .image-wrapper {
        border-radius: 50%; width: 40px; height: 40px; background-color: #475B80; overflow: clip;
        img { aspect-ratio: 1; object-fit: cover; width: 100%; height: 100%;}
      }
      p { margin: 0; font-size: .8em;}
    }
    .content { white-space: break-spaces;}

    .stars {
      display: flex; gap: 0.3125rem; margin: var(--paragraph-margins) 0;
      div { background-image: url('assets/icons/omni_icon-star.svg'); width: 20px; aspect-ratio: 1; background-size: cover;}
    }
  }

  &.list {
    display: flex; flex-direction: column; gap: var(--default-margin);
  }

  &.grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--column-gap);
  }

  &.grid-styled {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--column-gap);

    .wrapper {
      background: var(--dark-green); padding: var(--paragraph-margins); color: var(--white);
    }
  }

  &.matched {
    .wrapper { height: 100%;}
  }

  &.show-more {
      .wrapper { height: 100%;}
      .content p {
        display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; transition: max-height 0.3s ease; margin: 0;
        &.expanded { -webkit-line-clamp: unset;}
      }
      .show-more-btn { cursor: pointer; display: none; color: var(--light-green); text-align: center; padding-top: var(--paragraph-margins);}
  }
}

.tdl-testimonials-read-more {
  text-align: center; margin-top: var(--default-margin);
  a {
    font-weight: bold; color: var(--light-green); display: flex; gap: var(--paragraph-margins); justify-content: center; align-items: center;
    &:after { content: ''; display: block; width: 0px; height: 0px; border-style: solid; border-width: 4px 0px 4px 6px; border-color: transparent transparent transparent var(--light-green);}
  }
}

.tdl-testimonial-container:has(+ .tdl-testimonials-read-more) { padding-bottom: 0 !important;}
.tdl-testimonial-container + .tdl-testimonials-read-more { margin-bottom: var(--default-margin) !important;}

/* Blog Posts */
.tdl-post-container {

  .tdl-blog-post {
    display: flex;
    gap: var(--default-margin);
    margin: 0 auto;

    a { text-decoration: none;}
    h3 { margin-top: 0 !important; margin-bottom: var(--paragraph-margins) !important; line-height: 1;}
    h4 { margin-bottom: var(--paragraph-margins) !important; margin-top: 0 !important; color: var(--light-green); font-size: 26px;}
    &:has(h4) h3 { margin-bottom: 0 !important;}
    img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block;}
    .tdlButton { text-transform: uppercase; margin-top: var(--default-margin);}

    .content-wrapper {}
  }

  &.columns {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--column-gap);

    .tdl-blog-post {
      flex-direction: column;
    }
  }

  &.list, &.alt-list {
      display: flex;
      flex-direction: column;

      .tdl-blog-post {
        padding: 50px 0;
        width: var(--content-width);

        .image-wrapper { flex: 0 0 33%;}
        .content-wrapper { flex: 1;}

        &:nth-of-type(even) {
          background: var(--yellow);
          .tdlButton:hover { background: var(--red); color: var(--white);}

        }
      }
  }

  &.list {
    .tdl-blog-post {
      flex-direction: row;
      .tdlButtonWrapper { justify-content: flex-end;}
    }
  }

  &.alt-list {
    .tdl-blog-post:nth-of-type(odd) {
      flex-direction: row;
      .tdlButtonWrapper { justify-content: flex-end;}
    }
    .tdl-blog-post:nth-of-type(even) {
      flex-direction: row-reverse;
      .tdlButtonWrapper { justify-content: flex-start;}
    }
  }

  .tdl-blog-post.circle {
    img { border-radius: 50%;}
  }

  .tdl-blog-post.featured {
    width: 100%;
    margin-bottom: var(--default-margin);
    img { width: 40%; float: left; padding-right: 70px;}
  }

  .tdl-blog-post.toggle {
    .readMore:after { content: 'Read More'; cursor: pointer;}
    .readMore.active:after { content: 'Read Less';}
    &.active .content { display: inline-block;}
    &.active .excerpt { display: none;}
  }
}

/* TDL Blog Pagination Styles */

.tdl-blog-pagination {
    margin: 40px 0 20px;
    text-align: center;
    clear: both;

    .page-numbers {
        display: inline-block;
        padding: 8px 16px;
        margin: 0 4px;
        border: 1px solid #ddd;
        text-decoration: none;
        color: #333;
        background: #fff;
        transition: all 0.3s ease;

        &:hover {
            background: #f5f5f5;
            border-color: #999;
        }

        &.current {
            background: var(--light-green);
            color: #fff;
            border-color: var(--light-green);
            font-weight: bold;
        }

        &.dots {
            border: none;
            background: none;
            cursor: default;
        }

        &.prev,
        &.next {
            font-weight: bold;
        }
    }

    /* Responsive styling */
    @media (max-width: 768px) {
        .page-numbers {
            padding: 6px 12px;
            font-size: 14px;
            margin: 0 2px;
        }
    }
}

/* Posts on Colored Blocks */
.tdlBlueBlock, .tdlRedBlock, .tdlBlackBlock, .tdlGrayBlock {
  .tdl-post-container {

    .tdl-blog-post {
      color: var(--white);

      h3 { color: var(--white);}
      .tdlButton {
        background: var(--yellow); color: var(--blue);
        &:hover { background: var(--red); color: var(--white);}
      }
    }
  }
}


/* Posts on Full Width Row */
.vc_row[data-vc-stretch-content="true"] .tdl-post-container {
  .tdl-blog-post {
    margin: 0 auto;
    padding: 50px calc((100% - var(--content-width)) / 2);

    &:first-of-type { padding-top: 0 !important;}
  }
}

/* Post Categories */
.archive.category {
  h1.catTitle { color: var(--blue) !important; margin-top: 70px; margin-bottom: 70px}
  article { width: calc(var(--content-width) - 20px); margin: 0 auto; padding-bottom: 100px;}
}

/* Single Post */
.single-post {
  article { width: calc(var(--content-width) - 20px); margin: 0 auto; padding-bottom: 100px;}
  h1 { color: var(--dark-green); margin-top: 0;}
  h3 { color: var(--light-green); margin-bottom: 0;}
  .post-header { text-align: center;}
  .post-wrapper { width: calc(var(--content-width) - 20px); margin: 0 auto; padding: var(--default-margin) 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--column-gap);}

  .recent-post-container {
    padding: var(--default-margin) 0;
    background: #ECECEC;
    h4 { margin-bottom: 0; text-align: center; margin-top: 0; font-size: 2em;}
    h2 { margin-top: 0px; text-align: center; margin-bottom: 0;}
    .post img { width: 100%; height: auto; display: block;}
    .post h3 { color: var(--dark-green); line-height: 1; font-size: 1.25em;}
    .post h4 { color: var(--light-green); text-align: left; font-size: 1em;}
    .post .postCatContainer { margin-top: 15px;}
  }
}

/* Numbered Section List */
.tdlIconListContainer {
  margin: var(--default-margin) 0;

  .tdlListItem {
    &:not(:last-of-type) { margin-bottom: var(--default-margin);}

    .heading-wrapper {
      display: flex;
      align-items: center;
      gap: 20px;
      margin-bottom: calc(var(--default-margin) / 2);

      h3 {
        margin: 0; font-family: var(--primary-font); font-size: 30px; color: var(--dark-green);
      }

      .icon-wrapper {
        .tdl-icons { width: 60px; height: 60px;}
      }
    }

    .description {}
  }

  &.numbered-list {
    .contentWrapper {
      counter-reset: number;

      .tdlListItem {
        counter-increment: number;
        margin-bottom: var(--default-margin);

        .heading-wrapper {

          h3 {
            &:before { content: counter(number) ". ";}
          }
        }

        .description {}
      }
    }
  }

  &.numbered-columns {
    .contentWrapper {
      counter-reset: number; display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--column-gap);

      .tdlListItem {
        counter-increment: number;
        margin-bottom: var(--default-margin);

        .heading-wrapper {
          flex-direction: column;

          h3 {
            &:before { content: counter(number) ". ";}
          }

          .icon-wrapper {
            .tdl-icons { width: 100px; height: 100px;}
          }

        }

        .description {}
      }
    }

    &.three-col .contentWrapper { grid-template-columns: repeat(3, 1fr);}
    &.four-col .contentWrapper { grid-template-columns: repeat(4, 1fr);}

  }

  &.list {

  }

  &.alternating .contentWrapper .tdlNumberedtItem:nth-of-type(even) { flex-direction: row-reverse;}
}

/* TDL Masonry Image Grid */
#tdl_masonry_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: minmax(180px, auto);
  gap: 20px;
  margin-bottom: var(--default-margin);

  .tdl-masonry-item {
    img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block;}

    &:nth-of-type(9n + 1) { grid-column-end: span 3; grid-row-end: span 2;}
    &:nth-of-type(9n + 2) {}
    &:nth-of-type(9n + 3) {}
    &:nth-of-type(9n + 4) {}
    &:nth-of-type(9n + 5) { grid-column-end: span 2; grid-row-end: span 2;}
    &:nth-of-type(9n + 6) {
      grid-column-end: span 1; grid-row-end: span 2;
      img { height: 100%;}
    }
    &:nth-of-type(9n + 7) {}
    &:nth-of-type(9n + 8) {}
    &:nth-of-type(9n + 9) {}

  }
}

/* Counter */
.tdlCounterWrapper {
  display: flex; position: relative; justify-content: center; align-items: center; flex-direction: column; gap: calc(var(--column-gap) / 2);
  * { text-align: center;}

  .content-wrapper {
    display: flex; flex-direction: column; gap: 5px;

    .count { font-size: 40px; font-weight: bold; color: var(--white); line-height: 1;}
    h4 { font-size: 16px; text-transform: uppercase; margin: 0; color: var(--white); font-weight: normal;}
  }

  .background-wrapper {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1;
    &:before { content: ''; display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: var(--black-overlay);}
    img { width: 100%; object-fit: cover; height: 100%; aspect-ratio: 1;}
  }

  .icon-wrapper {
    .tdl-icons { width: 100px; height: 100px;}
  }

}

/* Featured Case Study */
.tdl-featured-case-study {

  margin-bottom: var(--default-margin);
  p { color: var(--white);}

  .featured-image-wrapper {
    margin-bottom: 50px;
    img { width: 100%; aspect-ratio: 16/9; object-fit: cover;}
  }

  .content-wrapper {

    display: flex;
    gap: 50px;
    h3 {}

    .left-content-wrapper {
      flex: 1;
      h3:first-of-type { margin-top: 0 !important;}
    }

    .right-content-wrapper {
      flex: 0 0 25%;
      border: 2px solid var(--white);
      padding: var(--default-margin);

      h3:first-of-type { margin-top: 0 !important;}
      ul { display: flex; flex-direction: column; gap: var(--default-margin);}
      li { color: var(--white);}
      li::marker { color: var(--dark-green);}
    }
  }

  .tdlButtonWrapper { margin-top: var(--default-margin);}

}

/* Case Studies */
.tdlCaseStudyBlock {

  margin-top: var(--default-margin);

  .tdlCaseStudyWrapper {

    .case-study-item {

      &:not(:last-of-type) {margin-bottom: var(--default-margin);}
      h3 { margin-top: 0;}
      a { text-decoration: none;}

      .wrapper {
        display: flex;
        gap: 50px;

        .image-wrapper {
          flex: 0 0 30%;
          img { width: 100%; display: block; aspect-ratio: 4/3; object-fit: cover;}
        }
        .content-wrapper {
          flex: 1;
        }
      }

    }
    &.columns{

      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 50px;

      .case-study-item {
        .wrapper {
          flex-direction: column;
        }
      }
    }

    &.list{
      .case-study-item {
        .wrapper {
          flex-direction: row;
        }
      }
    }

    &.alt-list{
      .case-study-item:nth-of-type(even) {
        .wrapper {
          flex-direction: row-reverse;
        }
      }
      .case-study-item:nth-of-type(odd) {
        .wrapper {
          flex-direction: row;
        }
      }
    }

  }
}


/* Logos */
.tdl-logos {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 70px;
  margin-bottom: 70px;
  justify-content: space-evenly;

  .tdl-logo-item {
    height: 70px;
    img { height: 100%; width: auto;}
  }
}

/* TDL Split Block */
.tdl_split_block_container {
  display: flex; gap: calc(var(--column-gap) * 3); align-items: center;

  .content_wrapper {
    .tdlButtonWrapper { margin-top: var(--default-margin);}
  }

  &.background_left { flex-direction: row;}
  &.background_right { flex-direction: row-reverse;}

  .background_wrapper {
    flex: 0 0 calc(33% - (var(--column-gap) /2) - 3px);

    img { width: 100%; height: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; border-radius: 10px;}
  }

}

/* Icon Block */
/* .tdl-icon-block {
  &:nth-of-type(even) { background: var(--yellow);}

  .wrapper {
    display: flex;
    flex-direction: row;
    gap: var(--column-gap);
    padding-bottom: 45px;
    width: var(--content-width);
    margin: 0 auto;

    .icon-wrapper {
      padding-top: 45px;

      .icon {
        color: var(--blue);
        font-size: 150px;
        display: flex;
        justify-content: center;
        align-items: end;
      }
    }

    .content-wrapper {

      h3 { color: var(--blue);}
      .content { color: var(--blue);}
    }
  }

} */

/* User Contact */
.tdlUserContactWrapper {
  display: flex;
  flex-direction: column;

  h3 { margin-bottom: 0;}
  a {
    line-height: 1.2;

    &.email {}
    &.phone {}
  }
}

/* Fancy TDL Background Image Block */
.tdl-fancy-background-image-block {
  position: relative;
  margin-bottom: calc(var(--default-margin) * 2) !important;

  .background-wrapper {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; border-radius: 50px; overflow: hidden;

    .background-image {
      position: relative; height: 100%;

      &:before { content: ''; display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: var(--red-overlay);}
      &.red:before { background: var(--red-overlay);}
      &.blue:before { background: var(--blue-overlay);}
      &.black:before { background: var(--black-overlay);}

      img { width: 100%; height: 100%; object-fit: cover; display: block;}
    }
  }

  .content-wrapper {
    padding-top: var(--default-margin);
    color: var(--white);

    :where(h1,h2,h3,h4) { color: var(--white);}

    .top-heading-wrapper {
      .headingWrapper h2 { text-transform: uppercase; font-size: 50px;}
    }

    .main-content-wrapper {
      display: flex;
      flex-direction: row;
      gap: calc(var(--column-gap) * 2);
      padding: 0 calc(var(--default-margin) * 2);

      .featured-image-wrapper {
        flex: 0 0 40%;
        img { width: 100%; height: calc(100% + (var(--default-margin) * 1)); object-fit: cover; border-radius: 10px; display: block;}
      }

      .main-content {

        .headingWrapper h3 { font-size: 65px !important;}

        .content {}
      }
    }
  }

  &:has(.background-image.red) {
    .tdlButtonWrapper {
      &.white {
        &.outline .tdlButton:hover { background: var(--white); color: var(--red);}
        &.background .tdlButton:hover { background: var(--red); color: var(--white);}
      }
    }
  }

  &:has(.background-image.black) {
    .tdlButtonWrapper {
      &.white {
        &.outline .tdlButton:hover { background: var(--white); color: var(--black);}
        &.background .tdlButton:hover { background: var(--black); color: var(--white);}
      }
    }
  }
}

.tdl_video_wrapper {
  iframe { width: 100%; height: 100%; aspect-ratio: 16/9;}
}

/* Video Embed */
.tdl-video-container {
  iframe { width: 100%; height: 100%; aspect-ratio: 16/9; }
  video { width: 100%; height: 100%; aspect-ratio: 16/9;}
}

/* Featured Block */
.tdl-featured-block {
  background: rgba(0,0,0,.4); color: var(--white); border-radius: 10px; overflow: clip;
  display: flex;
  /* align-items: center; */

  p { color: var(--white);}

  .heading-wrapper {
    h3 { color: var(--yellow); margin: 0;}
  }

  .gallery-wrapper {
    flex: 0 0 33%; overflow: clip; position: relative; display: flex; align-items: center;

    ul {
      list-style: none; margin: 0; padding: 0; height: 100%; width: 100%;
      li {
        flex: 0 0 100%;
        height: 100%; width: 100%;
        img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; display: block; border-radius: 10px;}
      }
    }

    .nav-wrapper {
      position: absolute; width: 90%; padding: 0 5%; display: flex; justify-content: space-between; z-index: 1;
      .nav {
        height: 40px; width: 40px; border-radius: 50%; background: rgba(255,255,255,.7); transition: var(--default-transition); display: flex; justify-content: center; align-items: center; font-size: 24px; cursor: pointer;
        &:hover { background: rgba(255,255,255,1); transition: var(--default-transition); color: var(--yellow);}
      }
    }
  }

  .wrapper {
    padding: var(--default-margin); display: flex; flex-direction: column; gap: var(--paragraph-margins); justify-content: center;

    /* .content { font-size: 20px; } */
  }

  &.black {
    background: var(--black);
    .tdlButtonWrapper {
      .tdlButton {
        &:hover { background: var(--gray); color: var(--black);}
      }
    }
  }
  &.yellow {
    background: var(--yellow); color: var(--black);
    .heading-wrapper {
      h3 { color: var(--black);}
    }
    .tdlButtonWrapper {
      .tdlButton {
        background: var(--black); color: var(--yellow);
        &:hover { background: var(--gray); color: var(--black);}
      }
    }

  }

  &.alt {
    &:nth-of-type(even) {
      background: var(--black);
      .tdlButtonWrapper {
        .tdlButton {
          &:hover { background: var(--gray); color: var(--black);}
        }
      }
    }
    &:nth-of-type(odd) {
      background: var(--yellow); color: var(--black);
      .heading-wrapper {
        h3 { color: var(--black);}
      }
      .tdlButtonWrapper {
        .tdlButton {
          background: var(--black); color: var(--yellow);
          &:hover { background: var(--gray); color: var(--black);}
        }
      }
    }
  }
}

/* Events */
.tdlEventBlock {
  .tdlEventWrapper {
    .event {

      &:not(:last-of-type) { border-bottom: 1px solid var(--black); padding-bottom: var(--default-margin);}
      &:last-of-type) { margin-bottom: var(--default-margin);}
      #dateTime {
        h4 { margin-bottom: calc(var(--default-margin) / 2); font-size: 24px;}
      }
      #content {}

    }
  }
}

/* Checklists */
.tdlChecklist {
  ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-left: 0;

    li {
      line-height: 30px; font-size: 24px; display: flex; gap: 10px; align-items: center;
      &:before { content: ''; width: 15px; height: 15px; border: 2px solid var(--black); display: inline-block;}
    }
  }
}

/* Board Members */
.tdlBoardMemberWrapper {

  .member { color: var(--dark-green); font-weight: bold;}
  .position {}

  &.center { text-align: center;}
  &.right { text-align: right;}

  &:not(:last-of-type) { margin-bottom: var(--paragraph-margins);}

}

/* Numbered Icons */
.tdl-number-icon {
  .wrapper {
    .icon-wrapper {
      margin-bottom: var(--paragraph-margins);

      .tdl-icons { width: 80px; height: 80px; display: flex; justify-content: center; align-items: center; font-size: 32px; color: var(--black);}
    }
  }
}

/* Featured Image Banner */
.tdl-featured-banner-container {
  overflow: clip; position: relative;

  .wrapper {
    width: 100%; height: 450px; background-size: cover; background-repeat: no-repeat; display: flex; justify-content: center; align-items: center; flex-direction: column; gap: var(--default-margin); background-position: center;
    .title-wrapper { text-align: center; font-size: 60px; color: var(--white); font-family: var(--secondary-font); line-height: 1; position: relative; z-index: 999;}
  }

  &.center .wrapper { background-position: center;}
  &.bottom .wrapper { background-position: bottom;}

  &.overlay {
    &:after { content: ''; display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,.3);}
  }
  &.tall {
    .wrapper { height: 900px;}
  }

  h1.real-estate {
    display: flex; flex-direction: column;
    strong { font-weight: normal; font-family: var(--primary-font); font-size: .5em;}
  }
}

/* Handle Generic TDL Slider */
#slider-container { position: relative; transition: var(--default-transition); left: 0; display: flex; flex-direction: row;}

/* Seasonal Gallery */
.tdl-seasonal-gallery {

  .gallery-wrapper {
    width: 100%; margin: var(--default-margin) auto 0 auto;

    .gallery-container {
      display: grid; grid-template-rows: repeat(3, 300px); grid-template-columns: repeat(6,1fr); gap: 20px;
      &:not(.active) { display: none;}

      .tdl-gallery-item {
        width: 100%; overflow: hidden;
        &.hidden { display: none;}

        &:nth-of-type(6n + 1) { grid-row: auto / span 2; grid-column: auto / span 6;}
        &:nth-of-type(6n + 2) { grid-row: auto / span 1; grid-column: auto / span 2;}
        &:nth-of-type(6n + 3) { grid-row: auto / span 1; grid-column: auto / span 2;}
        &:nth-of-type(6n + 4) { grid-row: auto / span 1; grid-column: auto / span 2;}
        &:nth-of-type(6n + 5) { grid-row: auto / span 2; grid-column: auto / span 3;}
        &:nth-of-type(6n + 6) { grid-row: auto / span 2; grid-column: auto / span 3;}

        img { width: 100%; height: 100%; object-fit: cover; transition: ease-in-out all .2s; opacity: 1;}
        &:hover img { opacity: .7; transition: ease-in-out all .2s;}
      }
    }
  }
  #gallery-selector {
    display: grid; grid-template-columns: repeat(2,1fr); gap: var(--column-gap);

    .season {
      cursor: pointer; font-size: 40px; text-transform: uppercase; color: var(--yellow); display: flex; line-height: 80px; justify-content: center; background: var(--black); border-radius: 5px;
      &.active { background: var(--yellow); color: var(--black);}
      &:hover { background: var(--gray); color: var(--black);}
    }

  }
  .view-more-wrapper {
    width: 100%; grid-column: auto / span 6;
    .tdlButtonWrapper {
      margin-top: var(--default-margin);
      .tdlButton { cursor: pointer;}
    }
  }
}

/* Global Contacts */
.tdl-global-contacts {
  margin-bottom: var(--default-margin);
  p { margin: 0;}

  .name {}
  .email {}
  .phone {}

  .address-wrapper {
    &:has(.address, .mailing) {
      margin-bottom: var(--paragraph-margins);
    }

    .address {}
    .mailing {}

    .address-csz {
      display: flex;
      p:not(:last-of-type):after { content: ','; padding-right: 5px;}

      .city {}
      .state {}
      .zip {}
    }
  }

  &.white { color: var(--white);}
  &.black { color: var(--black);}
  &.yellow { color: var(--yellow);}
  &.gray { color: var(--gray);}
}

a.include-icons {
  display: inline-block;

  &.phone {
    &:before { content: ''; display: inline-block; position: relative; top: 3px; margin-right: 10px; width: 20px; height: 20px; background-image: url('assets/icons/summit-atr_phone.svg'); background-size: cover; filter: brightness(0) saturate(100%) invert(96%) sepia(36%) saturate(3057%) hue-rotate(321deg) brightness(86%) contrast(94%);}
  }
  &.email {}

  /* &.white { filter: brightness(0) saturate(100%) invert(100%) sepia(100%) saturate(0%) hue-rotate(269deg) brightness(105%) contrast(103%);}
  &.yellow { filter: brightness(0) saturate(100%) invert(96%) sepia(36%) saturate(3057%) hue-rotate(321deg) brightness(86%) contrast(94%);}
  &.gray { filter: brightness(0) saturate(100%) invert(92%) sepia(43%) saturate(4817%) hue-rotate(192deg) brightness(146%) contrast(81%);} */
}

.wpb_gmaps_widget { margin-bottom: 0 !important;}
.wpb_raw_code.center .wpb_wrapper { display: flex; justify-content: center;}

/* Locations */
.tdl-location-block {
  .tdl-location-wrapper{
    .location {

    }
    .tdl-location-map { filter: grayscale(1); margin-top: var(--paragraph-margins); width: 100%; height: 400px; margin-top: 0;}

    &.grid {
      display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--default-margin);

      .location {
        display: flex; flex-direction: column; gap: var(--paragraph-margins);

        .content-wrapper {
          .heading-wrapper {
            display: flex;
            h4 { padding-bottom: 0; margin: var(--paragraph-margins) 0;}
          }
          .address {}
          .phone {}
        }
      }
    }

    &.text {
    }
  }
}

/* Market Reports */
.tdl-market-report-container {
  margin-bottom: var(--default-margin); display: flex; gap: var(--default-margin);
  h4 {}
  .description {}
  .tdlButtonWrapper {margin-top: var(--default-margin);}
  .icon-wrapper {
    flex: 0 0 25%;
    .tdl-icons { width: 100%; height: 100%;}
  }
  .content-wrapper { flex: 1}
}

/* Tables */
.wptb-table-container {
  margin-top: 0 !important; margin-bottom: var(--default-margin) !important;

  table {
    tbody {
      tr:first-of-type {
        td { background-color: var(--dark-green) !important; color: var(--white) !important;}
      }
    }
  }
}

/* Recreation Guide Item */
.tdl-recreation-item {
  .wrapper {
    .content-wrapper {
      h4 {}
      .location {
        font-style: italic; color: var(--light-green);
        &:before { content: '\f041'; display: inline-block; font: var(--fa-font-solid); font-style: normal; margin-right: 10px;}
      }
      .description {
        p {}
      }

      &:has(.location) h4 { margin-bottom: 0; line-height: 1;}
    }
  }
}

.vc_tta-panel-body {
  .tdl-recreation-item:first  h3 { margin-top: 0;}
}

/* Logo Links */
.tdl-logo-link {
  .wrapper {
    display: flex; justify-content: center;
    img { width: 50%;}
  }
}

/* Brokers */
.tdl-broker {
  display: flex; flex-direction: column; align-items: center; margin-bottom: var(--default-margin);
  h4 { margin-top: 0;}
  .position { color: var(--light-green); margin-top: 0;}
  &:has(.position) h4 { margin-bottom: 0;}

  .image-wrapper {
    &.placeholder span { border-radius: 50%; aspect-ratio: 1; background-color: #ccc; width: 110px; display: block;}
    img { border-radius: 50%; aspect-ratio: 1; width: 110px;}
  }

  .contact-info {
    display: flex; gap: 15px;

    p {
      margin: 0; position: relative;
      &:before {
        font: var(--fa-font-solid); display: inline-block; color: var(--dark-green);
      }

      &:hover {
        &:before { color: var(--light-green);}
      }
    }

    #office {
      &:before { content: "\f095";}
    }
    #fax {
      &:before { content: "\f1ac";}
    }
    #cell {
      &:before { content: "\f10b";}
    }
    #address {
      &:before { content: "\f041";}
    }
    #email {
      &:before { content: "\f0e0";}
    }
    #website {
      &:before { content: "\f0c1";}
    }

  }

  .contact-display {
    height: var(--default-margin);
    span {
      width: 100%; text-align: center; display: block;
      &.display {
        display: none;
        &.active { display: block;}
      }
      &#office {
        &:before { content: 'Office: ';}
      }
      &#fax {
        &:before { content: 'Fax: ';}
      }
      &#cell {
        &:before { content: 'Cell: ';}
      }
      &#address {
        /* span { white-space: nowrap;} */
      }
    }

  }
}

.tdl-subpage-button-wrapper {
  ul {
    columns: 3; list-style: none;
    li { text-align: center;}
  }
}

/* TDL IDX Wrapper */
.tdl-idx-wrapper {
  position: relative; z-index: 1; width: 50%;

  .idx-omnibar-form {
    display: flex;
    input {
      padding: 0 var(--paragraph-margins); border: none !important;
      &:focus, &:active, &:focus-within { border: none !important; outline: none !important;}
    }
    button {
      border-radius: 0 !important; border: none !important; background: var(--light-green); color: var(--white);
      i { display: none;}
      span { margin-left: 0 !important;}
      &:hover { background: var(--dark-green);}
    }

  }
}

/* TDL Advanced Property Search */
.tdl-advanced-property-search {
  width: var(--content-width);
  .search-tabs {
    display: flex; background: none;

    button {
      font-size: 20px; padding: 10px 40px; background: var(--light-blue); color: var(--white); display: block; border: none !important;
      &.active { background: var(--white); color: var(--light-blue);}
      &:first-of-type { border-top-left-radius: 10px;}
    }
  }
  .search-input {
    width: 100%; background: var(--white); padding: 20px; border-top-right-radius: 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px;
    .search {
      display: inline-flex; gap: 20px; width: 100%;

      input { border: none; flex: 1; line-height: 1; font-size: 25px; font-family: var(--secondary-font) !important; font-weight: var(--secondary-font-weight) !important;}
      button { border: none !important; background: none !important;}
      &:not(.active) { display: none;}

      &#buy {
        form {
          width: 100%; display: inline-flex; gap: 20px;
          .awesomplete { flex: 1;}
          button {
            flex: 0 0 fit-content; font-size: 30px !important;
            span { display: none;}
            color: var(--light-blue) !important;
          }
        }
      }
      &#rent {
        button { text-align: center !important; font-size: 20px; background: var(--light-blue) !important;}
      }
    }
  }

}

.mbsc-ios.mbsc-button-flat { color: var(--blue) !important;}
.mbsc-ios.mbsc-calendar-today, .mbsc-ios.mbsc-calendar-week-nr { color: var(--red) !important;}
.mbsc-stepper-input { text-align: center !important;}
.mbsc-ios.mbsc-selected .mbsc-calendar-cell-text { border-color: var(--blue) !important; background: var(--blue) !important;}


/* IDX Overrides */
#IDX-leadSignupHeader { display: none !important;}
#IDX-formSubmit {
  text-decoration: none;
  padding: 20px 60px;
  transition: ease-in-out  all .2s;
  position: relative;
  font-family: var(--primary-font);
  font-size: var(--primary-font-size);
  font-weight: normal !important;
  text-transform: capitalize;
  background: var(--light-blue);
  color: var(--white);
  border-radius: 10px;
  line-height: 1;

  &:hover { background: var(--blue); color: var(--white); transition: ease-in-out  all .2s;}
}

#IDX-formReset {
  text-decoration: none;
  padding: 20px 60px;
  transition: ease-in-out  all .2s;
  position: relative;
  font-family: var(--primary-font);
  font-size: var(--primary-font-size);
  font-weight: normal !important;
  text-transform: capitalize;
  border-radius: 10px;
  line-height: 1;

  &:hover { transition: ease-in-out  all .2s;}
}
#IDX-action-buttons { margin: 0 15px;}
.IDX-wrapper-standard #IDX-action-buttons button { width: calc(50% - 15px);}
.IDX-wrapper-standard .IDX-navbar-collapse { padding-left: 0; margin-left: 15px; padding-right: 0; margin-right: 15px;}

.tdl-impress-wrapper {
  &.impress_property_showcase {
    margin-bottom: var(--default-margin);
    p { text-align: center;}
  }
}


/* Real Estate Widget */
.tdl-real-estate-wrapper {
  width: var(--content-width); margin: var(--default-margin) auto 0 auto;

  &:not(:has(.vc_tta-container)){
    .map-wrapper { margin-bottom: var(--default-margin);}
    .propery-search-results { margin-bottom: var(--default-margin);}
  }

  .intro { font-size: 1.25em;}
  .details {
    margin-top: var(--default-margin);
    &.columns {
      display: grid; gap: var(--gap); grid-template-columns: repeat(3, 1fr);
      ul { margin: 0; padding-left: 20px;}
      h4 { margin-bottom: var(--paragraph-margins);}
    }
  }
  .vc_tta-container { margin-bottom: 0 !important;}
  .vc_tta-tabs-container { text-align: right !important; background: var(--white) !important; width: var(--content-width); position: relative; left: calc(-1 * var(--offset)); padding: 0 var(--offset);}
  .vc_tta-panels-container {
    background-color: var(--dark-green) !important;
    .vc_tta-panels {
      background-color: transparent !important; border: none !important;
      .vc_tta-panel-body { padding: var(--default-margin) 0 !important;}
    }
  }
  li.vc_tta-tab > a { border: none !important;}

  .tdl-custom-block[data-tdl-full-width="true"] {
    width: 100vw; position: relative; left: calc(-1 * var(--offset)) !important; margin-bottom: var(--default-margin); padding-top: 0 !important; margin-top: var(--default-margin); padding-bottom: 1px;
    .tdl_column-inner {
     width: var(--content-width); margin: 0 auto;
    }
  }

  .headingWrapper :where(h2,h3) { font-family: var(--secondary-font) !important;}
  .headingWrapper h3 { font-size: 60px !important;}
  .vc_tta .vc_tta-tab > a { border-radius: 0 !important;}
  .vc_tta-tab > a { background-color: var(--light-green) !important; color: var(--white) !important;}
  .vc_tta-tab.vc_active > a { background-color: var(--dark-green) !important; color: var(--white) !important;}

  .location-heading { margin-top: var(--default-margin);}
  .outro-heading { margin-top: var(--default-margin);}
}

article:has(.tdl-real-estate-wrapper) .tdl_row .tdl-cta { margin-bottom: 0 !important; margin-top: 0 !important;}
article:not(:has(.tdl-real-estate-wrapper .details)) .tdlCallToActionContainer .tdl_column { padding-top: 0 !important;}
article:not(:has(.tdl-real-estate-wrapper .details)) .tdl-custom-block[data-tdl-full-width="true"] { margin-bottom: 0 !important;}
.tdl_row:has(.tdl-cta) { margin-top: 0 !important;}
.tdl-featured-wrapper { margin-bottom: var(--default-margin);}

/* .tdl-real-estate-link:last-of-type { margin-bottom: var(--default-margin);} */
.tdl-real-estate-link {
  margin-bottom: var(--default-margin);
  a {
    display: flex; flex-direction: column; gap: var(--paragraph-margins); text-align: center;
    .logo-wrapper {
      img { height: 110px; max-width: 200px; object-fit: contain;}
    }
  }
}

.addtoany_share_save_container {
  margin-top: var(--default-margin) !important;
}

/* 404 Page */
.error404 {
  article {
    header {
      display: block; padding: var(--default-margin) calc((100% - var(--content-width)) / 2);
      h1 { margin-bottom: 0;}
      p { margin-top: 0;}
    }
  }
}
