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

/* quicksand-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: 'Quicksand';
  font-style: normal;
  font-weight: 400;
  src: url('assets/fonts/quicksand-v37-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* quicksand-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: 'Quicksand';
  font-style: normal;
  font-weight: 700;
  src: url('assets/fonts/quicksand-v37-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* amatic-sc-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: 'Amatic SC';
  font-style: normal;
  font-weight: 400;
  src: url('assets/fonts/amatic-sc-v28-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* amatic-sc-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: 'Amatic SC';
  font-style: normal;
  font-weight: 700;
  src: url('assets/fonts/amatic-sc-v28-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

:root{
  --primary-font: "Quicksand";
  --primary-font-size: 20px;
  --primary-font-weight: 400;
  --primary-font-style: normal;

  --header-font-weight: 700;

  --secondary-font: "Amatic SC";
  --secondary-font-weight: 400;
  --seconary-font-style: normal;

  --blue: #2F82AF;
  --dark-blue: #252732;
  --white: #FFF;
  --black: #000;
  --gray: #252732;

  --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;
}


/****************************************************************** 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(--black); text-decoration: none;}

.headingWrapper {
  display: flex;

  :where(h2,h3,h4) { color: var(--black); font-family: var(--secondary-font); font-weight: var(--header-font-weight); font-style: var(--secondary-font-style);line-height: 1.25; margin: 0 0 var(--default-margin) 0;}
  :where(h1) { color: var(--black); 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;}
  :where(h1,h2,h3,h4) p { margin: 0; padding: 0;}

  &.blue :where(h1,h2,h3,h4) { color: var(--blue);}
  &.green :where(h1,h2,h3,h4) { color: var(--blue);}
  &.light-green :where(h1,h2,h3,h4) { color: var(--blue);}
  &.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;}

  &.ballanced :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; align-items: center; gap: var(--paragraph-margins);}
    span.title { }
    span.sub-title { font-size: var(--primary-font-size); font-family: var(--primary-font);}
  }

  &.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: 400 !important; }
}

/* Heading Defaults */
:where(h1,h2,h3,h4) { line-height: 1; font-weight: var(--header-font-weight);}
h1 { font-size: 60px;}
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(--blue);}
  }
}

.matchAspect {
  .wpb_single_image {
    .vc_single_image-wrapper img { aspect-ratio: 3/4; object-fit: cover;}
  }
}

.wpb_single_image.tdlAspect {
  .vc_single_image-wrapper img { aspect-ratio: 3/4; object-fit: cover;}
}

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

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

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

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

  .tdl_menu {
    margin: var(--default-margin) 0;
    display: flex;
    flex-direction: row;
    gap: 20px;
    width: 100%;
    justify-content: space-between;

    a { text-decoration: none; color: var(--black); font-size: 24px; font-family: var(--primary-font); font-weight: 700; font-style: var(--primary-font-style); display: inline-flex; padding: 0;}

    li {
      position: relative; line-height: 2 !important; display: flex; gap: 20px; align-items: center;

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

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

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

      &.current_page_item {
        a {
          color: var(--blue); position: relative;
          &:after { content: ''; display: inline-block; height: 1px; width: 30px; background: var(--red); left: 0; bottom: 0; position: absolute;}
        }

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

        &.menu-item-has-children {
          /* &:after { border-right: 1px solid var(--red); border-bottom: 1px solid var(--red);} */
        }
      }

      &.menu-item-has-children {
        /* &:after { content: ''; display: inline-block; width: 8px; height: 8px; border-right: 1px solid var(--blue); border-bottom: 1px solid var(--blue); transform: rotate(45deg); position: relative; top: -6px; margin-left: 2px;} */
      }

      &.logo-spacer {
        flex: 0 0 500px; justify-content: center;
        a { display: none;}
      }

    }

    .sub-menu {
      position: absolute;
      display: none;
      width: fit-content;
      min-width: 200px;
      background: var(--blue);
      top: 48px;

      li {
        border-left: 4px solid var(--blue);
        a { color: var(--white); line-height: 3; padding: 0 10px; font-size: .7em; white-space: nowrap; width: calc(100% - 20px); display: inline-block;}
        &:hover {
          border-left: 4px solid var(--blue);
          background: var(--blue);
          a { color: var(--white);}
        }

        &.current_page_item {
          border-left: 4px solid var(--blue);
          a {
            &:after { content: ''; display: none;}
          }
        }

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

      }
    }
  }

}

/* Mobile Menu */
#tdl_mm_container {
  background-color: var(--blue);
  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(--blue); 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(--yellow) !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: 200px;
  position: absolute;
  z-index: 99999;
  margin: 0;
  left: 50%;
  top: 0px;
  transform: translateX(-50%);

  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);}
 &.green { background: var(--blue);}
 &.light-green { background: var(--blue);}
 &.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(--blue);

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

   &:after { background: var(--blue);}
 }
 &[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: uppercase !important;
    line-height: 1;
  }

  &.outline {
    .tdlButton { border-width: 4px; border-style: solid; border-color: var(--black); color: var(--black); border-radius: 10px; font-weight: bold !important; padding: 5px 10px;}
    .tdlButton:hover { color: var(--blue); transition: ease-in-out  all .2s;}
  }

  &.background {
    .tdlButton { border-width: 4px; border-style: solid; border-color: var(--black); text-decoration: none; text-transform: capitalize; background: var(--blue); color: var(--black); border-radius: 10px; padding: 20px 60px;}
    .tdlButton:hover { background: var(--blue); color: var(--black); transition: ease-in-out  all .2s;}
  }

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

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

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

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

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

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

  &.gray {
    &.outline {
      .tdlButton { border-color: var(--gray); color: var(--gray);}
      .tdlButton:hover { border-color: var(--yellow); color: var(--yellow);}
    }
    &.background {
      .tdlButton { background: var(--gray); color: var(--yellow);}
      .tdlButton:hover { background: var(--yellow); color: var(--gray);}
    }
  }

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

  &.center {
    justify-content: center;
  }

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

  &.carrot {
    position: relative; top: -4px;
    a:before { content: ''; background-image: url('assets/icons/tcfp_carot.svg'); background-size: 80% auto; background-position: center top; display: block; width: 80px; height: 35px; position: absolute; top: -39px; left: 50%; transform: translateX(-50%);}
  }

}

/* 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;}
    }

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

    &.carrot {
      position: relative;
      .wp-element-button:before { content: ''; background-image: url('assets/icons/tcfp_carot.svg'); background-size: 150% auto; background-position: center top; display: block; width: 160px; height: 175px; position: absolute; top: -181px; left: 50%; transform: translateX(-50%);}
    }
  }

}

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

/* Auto Coloring of Icon Buttons */
.tdl_row .tdl_column:has(.tdl-icon-button.auto) {
  &:nth-of-type(1) {
    .tdl-icon-button.auto .wrapper {
      background: rgba(107, 183, 81, 1);
    }
  }
  &:nth-of-type(2) {
    .tdl-icon-button.auto .wrapper {
      background: rgba(107, 183, 81, .8);
    }
  }
  &:nth-of-type(3) {
    .tdl-icon-button.auto .wrapper {
      background: rgba(107, 183, 81, .6);
    }
  }
  &:nth-of-type(4) {
    .tdl-icon-button.auto .wrapper {
      background: rgba(107, 183, 81, .4);
    }
  }
  &:nth-of-type(5) {
    .tdl-icon-button.auto .wrapper {
      background: rgba(107, 183, 81, .2);
    }
  }
}

.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;}

  &.green .wrapper {
    background: var(--blue);
  }
  &.light-green .wrapper {
    background: var(--blue);
  }
  &.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));
  }
}

/* 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));}

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

  footer { width: var(--content-width); margin: 0 auto;}
  .footer_column_wrapper {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: var(--column-gap);
    width: 100%;
  }

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

  a {
    text-decoration: none; color: var(--white);
    &:hover { color: var(--blue);}
  }
  :where(h1,h2,h3,h4) { color: var(--white); margin-top: 0; margin-bottom: var(--default-margin); font-family: var(--secondary-font);}

  .wp-block-social-links {
    margin-top: var(--default-margin);

    .wp-block-social-link {
      position: relative; width: 100px; height: 100px; border-radius: 0; display: flex; align-items: center; justify-content: center;

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

      &.apple {
        position: relative;
        background-image: url('assets/icons/tcfp_instagram-apple.svg');
        .wp-block-social-link-anchor {
          position: absolute; width: 100%; height: 100%; top: 0; left: 0;
          svg { display: none;}
        }
      }

      &.onion {
        position: relative;
        background-image: url('assets/icons/tcfp_facebook-onion.svg');
        .wp-block-social-link-anchor {
          position: absolute; width: 100%; height: 100%; top: 0; left: 0;
          svg { display: none;}
        }
      }

    }
  }

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

  /* Address Widget */
  #tdl_contact_widget_container {
    position: relative;

    > div { margin-bottom: var(--default-margin); display: flex; gap: 10px; align-items: center;}
    >:before { display: flex; font-size: 80px; line-height: 1; width: 50px; aspect-ratio: 1; border: 4px solid var(--white); border-radius: 50%; justify-content: center; align-content: center; content: ''; background-size: 50%; background-position: center center; background-repeat: no-repeat;}
    #addressContainer { align-items: start;}
    #addressContainer:before { background-image: url('assets/images/tcfp_location.svg'); }
    #emailContainer:before { background-image: url('assets/images/tcfp_email.svg'); }
    #phoneContainer:before { background-image: url('assets/images/tcfp_phone.svg'); }
    p { padding: 0; margin: 0;}
    strong { }
  }

}

#sub_footer {
  color: var(--white); background: var(--dark-blue);

  footer {
    padding: var(--paragraph-margins) 0; width: var(--content-width); margin: 0 auto;  display: flex; justify-content: center;

      div {
        display: flex;
        #credit, #copy { font-size: .7em; margin: 0; line-height: 1.5; font-weight: 400;}
      }
      a {text-decoration: none; color: var(--white);}
    }
  }
}


/* TLD Contact Links */
.tdlContactWrapper {
  padding-left: 50px;

  .tdlContact { display: flex; flex-direction: row; align-items: center; text-decoration: none;}
  .tdlContact:hover { color: var(--blue);}
  .tdlContact:before { font-family: 'icomoon'; display: inline-block; margin-right: 10px; font-size: 40px; width: 50px;}
  &.phone .tdlContact:before { content: '\e908';}
  &.email .tdlContact:before { content: '\e905'; font-size: 30px;}
  &.facebook .tdlContact:before { content: '\e906';}
  &.location .tdlContact:before { content: '\e907';}
}

/* Social Media Widget */
#tdl_social_widget_container {
  display: inline-block;
  a { color: var(--white); text-decoration: none;}

  .icon {
    margin-right: 20px;

    &:before { color: var(--white); font-size: 16px;}
    &:hover:before { color: var(--brown);}
  }
}

/* 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(--yellow); font-family: var(--primary-font); font-weight: 400; border: 4px solid var(--black) !important; color: var(--black) !important; border-radius: 10px !important; }
  .nf-form-content input:not([type="button"], [type="submit"]) { height: 50px !important;}

  .submit-container {
    display: flex; flex-direction: row; justify-content: start;

    &.add-user {
      .submit-wrap {
          position: relative;
          &:before { width: 40px; height: 40px; content: ''; display: inline-block; position: absolute; top: 13px; left: 60px; z-index: 2; background-image: url('assets/icons/tcfp_add-user.svg');}
        }
    }

    input {
      background: var(--blue) !important; text-transform: uppercase !important; border: 4px solid var(--black) !important; color: var(--black) !important; height: auto !important; font-weight: bold !important; padding: 20px 60px !important; transition: ease-in-out  all .2s; font-family: var(--primary-font); font-size: var(--primary-font-size); line-height: 1; border-radius: 10px !important;

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

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

  .nf-error-msg { color: var(--red) !important; 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;}
  .nf-field-label label { font-weight: normal;}
  .nf-error-msg, .ninja-forms-req-symbol { color: var(--red);}
  .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;}
  }
}


/* 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-container[data-vc-action="collapse"] {
  .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: 400 !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;}
  }

  .vc_active {
    .vc_tta-panel-title { background: var(--white) !important;}
    .vc_tta-title-text { font-weight: 400 !important;}
    .vc_tta-panel-body { background-color: var(--blue) !important; padding: var(--default-margin) !important; border-radius: 50px !important; outline: 6px solid var(--black) !important; outline-offset: -6px !important; margin-bottom: var(--default-margin) !important;}
    &.vc_tta-panel { border: none !important;}

    .vc_tta-controls-icon {
      padding: 5px; background: var(--blue); 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(--blue); 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;
  }
}

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

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

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

    .tdlIconListContainer {
      margin: 0;

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

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

  &.dark-green {
    background: var(--blue);
    .tdl_text_column p { color: var(--white);}
  }

  &.tdl-bottom-arrow {
    position: relative; overflow: visable !important; margin-bottom: calc(var(--default-margin) * 2) !important;

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

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

  &.tdl-carrot-above {
    position: relative; top: -4px;

    &:before { content: ''; background-image: url('assets/icons/tcfp_carot.svg'); background-size: 150% auto; background-position: center top; display: block; width: 200px; height: 165px; position: absolute; top: -165px; left: 50%; transform: translateX(-50%);}

  }

  &.radius {
      border-radius: 50px;
  }

  &.tcfp_bag {
    position: relative;
    padding-bottom: 70px !important;
    margin-bottom: calc(var(--default-margin) * 4) !important;

    &:after { content: ''; display: block; width: 150px; height: 175px; position: absolute; right: calc(var(--default-margin) * 2); bottom: calc(-1 * var(--default-margin)); background-image: url('assets/icons/tcfp_small-logo.svg'); background-size: auto 100%; background-position: center top;}
  }

  &.apple-two {
    > .tdl_row_wrapper > .tdl_column {
      position: relative;
      margin-bottom: var(--default-margin) !important;
      padding-left: calc(2 * var(--default-margin));

      &:after { content: ''; display: block; width: 150px; height: 150px; position: absolute; left: calc(var(--default-margin) * -1); top: calc(var(--default-margin) * -2.5); background-image: url('assets/icons/tcfp_large-apple-skewed.svg'); background-size: auto 100%; background-position: center top;}
    }
  }
}

.lunchBox {
    position: relative;
    margin-bottom: var(--default-margin) !important;

    &:after { content: ''; display: block; width: 150px; height: 150px; position: absolute; right: calc(var(--default-margin) * -1); bottom: 0; background-image: url('assets/icons/tcfp_heart-lunch-bag.svg'); background-size: auto 100%; background-position: center top;}
  }

.jarCherries {
    position: relative;
    margin-bottom: var(--default-margin) !important;

    &:after { content: ''; display: block; width: 150px; height: 150px; position: absolute; left: calc(var(--default-margin) * -1); bottom: calc(var(--default-margin) * -2); background-image: url('assets/icons/tcfp_jar-cherries.svg'); background-size: auto 100%; background-position: center top;}
}

.apple {
    > .tdl_row_wrapper > .tdl_column {
      position: relative;
      margin-bottom: var(--default-margin) !important;

      &:after { content: ''; display: block; width: 150px; height: 150px; position: absolute; right: calc(var(--default-margin) * -1); top: calc(var(--default-margin) * -2.5); background-image: url('assets/icons/tcfp_large-apple-skewed.svg'); background-size: auto 100%; background-position: center top;}
    }
  }


/*************************************************************** 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 {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--column-gap); margin-bottom: var(--default-margin);
  .testimonialTDL {
    display: flex; flex-direction: column; gap: var(--paragraph-margins);
    .testimonial_image {
      text-align: center;

      img { border-radius: 50%; width: 50%; aspect-ratio: 1; object-fit: cover;}
    }
    .header {
      display: flex; gap: var(--column-gap); align-items: center;
      .icon-wrapper {
        .tdl-icons {}
      }
      h3 { font-family: var(--primary-font); margin: 0; text-wrap: balance;}
    }
    .testimonial_content { white-space: break-spaces;}
    .stars {
      display: flex; gap: 0.3125rem; margin: var(--paragraph-margins) 0;
      div { background-image: url('assets/images/icon-star.svg'); width: 20px; aspect-ratio: 1; background-size: cover;}
    }
    .credit {
      h4 {
        display: flex; gap: var(--paragraph-margins); font-family: var(--primary-font); font-size: 1.25rem; margin: 0;
        &:before { content: '–';}
      }
    }
  }

  &.list {

  }

  &.carousel {

  }

  /* &:has(+ .tdl-property-review-button-container) { margin-bottom: 0;} */
}

/* 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(--default-margin) !important;}

    img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block;}
    .tdlButton { text-transform: uppercase; margin-top: var(--default-margin);}

    .content-wrapper { padding: 0 var(--default-margin);}
  }

  &.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;}
  }
}

/* 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(--blue);}
  h3 { color: var(--brown);}
  h4 { color: var(--brown);}
  .post-header { text-align: center; padding-top: 100px;}
  .post-wrapper { width: calc(var(--content-width) - 20px); margin: 0 auto; padding: 100px 0;}

  .recent-post-container {
    background: #ECECEC;
    h4 { margin-bottom: 0; text-align: center;}
    h2 { margin-top: 5px; text-align: center; margin-bottom: 70px;}
    .post { display: inline-block; vertical-align: top; width: 29%; margin-right: 6%}
    .post:nth-of-type(3n+3) { margin-right: 0;}
    .post img { width: 100%; height: auto;}
    .post h3 { color: var(--blue);}
    .post .postCatContainer { margin-top: 15px;}
    .post .postCatContainer a { color: var(--brown);}
    .post .readMore { color: var(--brown);}
  }
}

/* Numbered Section List */
.tdlIconListContainer {
  margin: 35px 0;

  .tdlListItem {
    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(--blue);
      }

      .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 {}
      }
    }
  }

  &.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(--blue);}
    }
  }

  .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 {}
  }
}

/* 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; width: var(--content-width); text-wrap: balance;}
  }

  &.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;}
  }
}

/* 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 {
  border-radius: 50px; overflow: clip; outline: 6px solid var(--black); width: 100%; outline-offset: -6px;

  iframe { width: 100%; height: 100%; aspect-ratio: 16/9; margin-bottom: -8px;}
}

/* Video Embed */
.tdl-video-container {
  border-radius: 50px; overflow: clip; outline: 6px solid var(--black); width: 100%; outline-offset: -6px;
  iframe { width: 100%; height: 100%; aspect-ratio: 16/9; margin-bottom: -8px;}
  video { width: 100%; height: 100%; aspect-ratio: 16/9; margin-bottom: -8px;}
}

/* Featured Block */
.tdl-featured-block {
  width: 70%; margin: 0 auto;
  padding-top:  calc(var(--default-margin) * 2);

  &:has(.tdl-icons) { margin-top: calc(var(--default-margin) * 2);}

  .heading-wrapper {
    display: flex; border-radius: 50px; position: relative;

    .headingWrapper {
      h3 { font-size: 62px; text-wrap: balance; padding: var(--default-margin) var(--default-margin) 0 0; line-height: 1.25;}
    }

    .featured-image-wrapper {
      flex: 0 0 50%; position: relative; top: calc(-1 * (var(--default-margin) + 6px)); left: calc(-1 * (var(--default-margin) + 6px));

      img { aspect-ratio: 1; border: 6px solid var(--black); border-radius: 25px; object-fit: cover; object-position: center; width: 100%; height: 100%;}
    }

    .icon-wrapper {
      .tdl-icons { width: 250px; height: 250px; position: absolute; top: 0; right: 0; transform: translate(30%,-70%);}
    }

    &.green {
      background: var(--blue);
      h3 { color: var(--white);}
    }
    &.dark-green {
      background: var(--blue);
      h3 { color: var(--white);}
    }
    &.blue {
      background: var(--blue);
      h3 { color: var(--white);}
    }
    &.black {
      background: var(--black);
      h3 { color: var(--white);}
    }
  }
  .content-wrapper { padding: var(--default-margin); line-height: 1.5;}

  &.box {
    margin-bottom: var(--default-margin);

    &:has(.featured-image-wrapper){
      .content-wrapper { padding: var(--default-margin) var(--default-margin) var(--default-margin) 0; line-height: 1.5;}
    }

    .heading-wrapper {

      &.green {
        .content { color: var(--white);}
      }
      &.dark-green {
        .content { color: var(--white);}
      }
      &.blue {
        .content { color: var(--white);}
      }
      &.black {
        .content { color: var(--white);}
      }
    }
  }
}

/* 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(--blue); 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);}
    }
  }
}

/* Properties */
.tdlPropertyBlock {
  margin-bottom: var(--default-margin);
  .tdlPropertyWrapper {
    &:not(.center ) {display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--column-gap); margin-bottom: var(--default-margin);}

    .tdlProperty {
      a {
        background: var(--white); display: flex; flex-direction: column; padding: 10px; gap: 10px; box-shadow: 5px 5px 10px rgba(0,0,0,.4); transition: var(--default-transition); height: calc(100% - 26px);

        &:hover { transition: var(--default-transition);}
        &:hover .contentWrapper :where(h4,h5,p) { transition: var(--default-transition);}
        &:hover .contentWrapper .details p { transition: var(--default-transition);}
        &:hover .imageWrapper img { transform: scale(1.25); transition: var(--default-transition);}
      }
      .imageWrapper {
        overflow: hidden;
        img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transform: scale(1); transition: var(--default-transition);}
      }
      .contentWrapper {
        padding: 0 10px;

        p { padding-top: 10px;}
        .details { display: flex; gap: 5px; padding-top: 5px;}
        .details p { color: var(--gray); font-size: 14px}
        .details p:not(:last-of-type):after { content: ','; display: inline-flex;}
        :where(h4,h5,p) { margin: 0; padding: 0; line-height: 1;}
        h4 { font-size: 30px;}
        h5 { font-size: 20px;}
      }
    }

    &.center {
      display: flex; justify-content: center; gap: var(--column-gap);

      .tdlProperty {
        flex: 0 0 calc(100% / 3);
      }
    }

  }
}


/* Single Property */
.single-properties {
  .post-header {
    width: var(--content-width); margin: 0 auto 0 auto;

    .headingWrapper.propertyName h1 { margin-bottom: 0 !important;}
    h3.propertyTagline { color: var(--black); text-align: center; margin-bottom: var(--default-vc-padding); font-style: italic;}

  }

  .tdl-property-information-container {

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

      .property-description {
        line-height: 2; margin-bottom: var(--default-margin);
      }

      .property-details {
        .location { line-height: 2; text-align: center; font-weight: bold;}
        .details {
          border-left: 2px solid var(--black); border-right: 2px solid var(--black); border-bottom: 2px solid var(--black); margin: var(--default-vc-padding) 0;

          .details-wrapper { padding: 0 20px 20px 20px;}

          h3 {
            display: inline-flex;
            margin: 0;
            width: 100%;
            gap: 20px;

            &:before, &:after { content: ''; display: inline-block; height: 2px; background: var(--black); flex: 1;}
            span { transform: translateY(-50%);}
          }
          ul { column-count: 4; padding-left: 20px;}
        }
      }
    }

  }

  .property-booking-buttons {
    display: flex;
    flex-direction: row;
    gap: var(--column-gap);
    justify-content: center;

    .tdlButton { }
  }

  .tdl-property-details-container {

    .column-wrapper {
      display: flex;
      gap: var(--column-gap);

      .booking-details {
        flex: 1;
        margin-bottom: var(--default-margin);
        .current-rates {
          tr > td:first-of-type { min-width: 200px;}
          h3 { margin-top: 0 !important;}
        }

        .terms {
          margin-top: var(--default-margin);
          tr > td:first-of-type { min-width: 200px;}
        }

        .arrangments {
          ul { padding-left: 20px;}
        }
      }

      .calendar-wrapper {
          flex: fit-content;
          overflow: hidden;
          margin-bottom: var(--default-margin);
          iframe { width: 100%; height: 760px; border: none;}

          &.ical {
            flex: 0 0 50%; margin-top: 23.4px;
          }
      }
    }

  }


  .wpb_content_element:last-of-type { margin-bottom: 0 !important;}
}

/* iCalendar Styles */
.ics-calendar-month-grid {
  background: var(--cream) !important;
  margin-bottom: var(--default-margin);

  td { border: 1px solid var(--cream) !important;}
  th { background: var(--cream) !important; color: var(--maroon) !important; font-size: 12px !important; border: none !important;}

  .day {
    background: var(--maroon) !important; color: var(--white);
  }

  .today .day { background: var(--dark-maroon) !important;}
  .off { background: var(--cream) !important;}
  .empty { background: var(--white) !important;}

  .events {
    display: none !important;
    .all-day-indicator { display: none !important;}
    .title { display: none !important;}
  }

  .has_events {
    .day { color: var(--white) !important; background: var(--dark-gray) !important;}
  }

  .has_events:has(:not(.multiday_first, .multiday_last)) {
    background: var(--gray);
    .day { color: var(--white) !important;}
  }

  .has_events:has(.multiday_first) {
    background: var(--white);
    position: relative;
    .events { display: none;}
    &:after { content: ''; display: block; width: 100%; height: calc(100% - var(--default-margin)); left: 0; bottom: 0; background: var(--gray); clip-path: polygon(100% 0, 0 100%, 100% 100%); position: absolute;}
  }
  .has_events:has(.multiday_last) {
    background: var(--white);
    position: relative;
    .events { display: none;}
    &:after { content: ''; display: block; width: 100%; height: calc(100% - var(--default-margin)); left: 0; bottom: 0; background: var(--gray); clip-path: polygon(0 0, 0 100%, 100% 100%); position: absolute;}
  }
}


/* Media Masonry Grid */
.tdl_masonry_grid {
  .tdl-masonry-item {
    padding: 10px; border: 3px solid var(--brown); background: var(--white);

    &.hidden { display: none;}

    img { width: 100%;}

    a { overflow: hidden; display: block;}
    a:hover img { transform: scale(1.25); transition: var(--default-transition);}

  }

  .tdlButtonWrapper {
    cursor: pointer;
    grid-column: auto / span 3;

    .tdlButton {}
  }

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

    .tdl-masonry-item {
      img { aspect-ratio: 1; object-fit: cover; transform: scale(1); transition: var(--default-transition);}
    }
  }

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

    .tdl-masonry-item {
      border: var(--light-gray) solid 8px; overflow: hidden;

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

      img { width: 100%; height: 100%; object-fit: cover; transition: var(--default-transition);}

      &:hover {
        img { transform: scale(1.2); transition: var(--default-transition);}
      }
    }
  }
}

/* WPBakery Google Maps */
.wpb_gmaps_widget .wpb_wrapper { padding: 0 !important;}

/* 404 Page */
.error404 {
  article {
    header {
      display: block; margin: var(--default-margin) auto;

      h1 { margin-bottom: 0;}
      p { margin-top: 0;}
    }
  }
}
