/*
Theme Name: Troubled Teen Programs V2
Theme URI:
Author: Adaptivity Pro
Author URI:
Description: Custom theme for troubledteenprograms
Version: 1.0
*/

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

img { 
  max-width: 100%; 
  height: auto; 
}

@font-face {
  font-family: "poppinsregular";
  src: url("assets/fonts/poppins-regular-webfont.woff2") format("woff2"),
       url("assets/fonts/poppins-regular-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: "poppinssemibold";
  src: url("assets/fonts/poppins-semibold-webfont.woff2") format("woff2"),
       url("assets/fonts/poppins-semibold-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: "poppinsbold";
  src: url("assets/fonts/poppins-bold-webfont.woff2") format("woff2"),
       url("assets/fonts/poppins-bold-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}

:root {
  --fontReg: "poppinsregular", Roboto, sans-serif;
  --fontBold: "poppinsbold", Roboto, sans-serif;
  --fontSemi: "poppinssemibold", Roboto, sans-serif;
  --colorPrimary: #000;
  --containerMax: 1200px;
}

body {
  font-family: var(--fontReg), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--colorText);
  line-height: 1.6;
  background: #fff;
}

a {
  color: var(--colorPrimary);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

ul {
  list-style: none;
}

h1, h2, h3, h4 {
  line-height: 1.2;
}

/* Container */
.container {
  max-width: var(--containerMax);
  margin: 0 auto;
  padding: 0 1rem;
}

/* =============================================
   CTA Button
   ============================================= */
.ctaButton {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #3E8FAD;
  color: #fff;
  padding: 0.8rem 1.5rem 0.7rem 1.5rem;
  border-radius: 4.95456rem;
  font-size: 1.2rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: background 0.2s;

  &:hover {
    background: #238b7e;
    text-decoration: none;
    color: #fff;
  }

  &::after {
    content: "→";
    font-size: 1.1rem;
  }

  &.outline {
    background: transparent;
    border: 2px solid var(--colorPrimary);
    color: var(--colorPrimary);

    &:hover {
      background: var(--colorPrimary);
      color: #fff;
    }
  }
}

.ctaButtonYellow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #E9E958;
  color: #393C42;
  padding: 0.8rem 1.5rem 0.7rem 1.5rem;
  border-radius: 4.95456rem;
  font-size: 1.2rem;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
  font-family: var(--fontSemi);

  &:hover {
    background: #238b7e;
    text-decoration: none;
    color: #fff;
  }

  &::after {
    content: "→";
    font-size: 1.1rem;
  }

  &.outline {
    background: transparent;
    border: 2px solid var(--colorPrimary);
    color: var(--colorPrimary);

    &:hover {
      background: var(--colorPrimary);
      color: #fff;
    }
  }
}

.yellowTag {
  display: inline-block;
  background: var(--colorAccent);
  color: var(--colorDark);
  font-size: 0.8rem;
  font-weight: 700;
  padding: 0.25rem 0.75rem;
  border-radius: 3px;
  margin-bottom: 0.5rem;
}


.siteHeaderHome {
  padding: 0.55rem 0;
  position: relative;

  a.logo{
    display: block;
    width: 267px;
    height: 66px;
    background: url("assets/img/logo.png") no-repeat;
  }

  .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1800px;
  }

  .navWrap{
    display: block;
  }

  .navLinks {
    display: none;
    flex-direction: column;
    width: 100%;
    padding-top: 20px;
    gap: 0.5rem;

    &.active {
      display: flex;
    }

    a {
      color: #fff;
      font-size: 1.1rem;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      padding: 0.5rem 0;
      font-family: "poppinsbold";

      &:hover {
        color: #ccc;
        text-decoration: none;
      }
    }
  }

  .navLinksMobile {
    display: none;
    flex-direction: column;
    width: 100%;
    padding-top: 20px;
    gap: 0.5rem;

    &.active {
      display: flex;
    }

    a {
      color: #fff;
      font-size: 1.1rem;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      padding: 0.5rem 0;
      font-family: "poppinsbold";

      &:hover {
        color: #ccc;
        text-decoration: none;
      }
    }
  }

  .hamburger {
    display: flex;
    flex-direction: column;
    gap: 4px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;

    span {
      display: block;
      width: 24px;
      height: 2px;
      background: #fff;
      border-radius: 2px;
    }

  }
}

@media (max-width: 400px) { 
  .siteHeaderHome a.logo{
    width: 74px;
    height: 66px;
  }
}

@media (min-width: 1100px) {
  .siteHeaderHome .line{
    height: 1px;
    background: rgba(255,255,255,0.3);
    flex: 1 1 auto;
    margin:0 40px;
  }
}

@media (min-width: 1100px) {
  .siteHeaderHome .navLinks{
    display: flex;
    flex-direction: row;
    width: auto;
    padding-top: 0;
    gap: 1.5rem;
  }
}

@media (min-width: 1100px) {
  .siteHeaderHome .hamburger{
    display: none;
  }
}

.heroSection {
  background: url("assets/img/homebg.jpg") center/cover no-repeat;
  color: #fff;
  padding: 30px 0;
  min-height: 900px;
  display: block;
  align-items: center;

  .space{
    padding: 110px 0 0 0;
  }

  .heroBadge {
    display: inline-block;
    background: #E9E958;
    color: #2A2C2F;
    font-family: var(--fontBold);
    font-size: 2.1rem;
    padding: 0.3rem 0.8rem;
    text-transform: uppercase;
    height: 3.3rem;
    margin: 0 0 1.25rem 0;
  }

  h1 {
    font-size: 2rem;
    margin-bottom: 1rem;
    font-family: var(--fontBold);
  }

  .verticalLine{
    border-left: 1px solid rgba(255,255,255,0.2);
    padding: 0 0 0 1.7rem;
  }

  p {
    max-width: 640px;
    margin-bottom: 1.5rem;
    font-size: 1.4rem;
    line-height:2.1rem;
    font-family: var(--fontReg);
  }

  p strong{
    font-family: var(--fontBold);
  }

  .heroAddress {
    max-width: 640px;
    border-top: 1px solid rgba(255,255,255,0.2);
    margin-top: 1.5rem;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 2rem 0 0 2rem;
    position: relative;

    svg{
      position: absolute;
      top:36px;
      left:3px;
    }
  }
}

@media (min-width: 768px) {
  .heroSection h1{
    font-size: 4.2rem;
  }
}

.topRatedSection {
  background: url("assets/img/cat.jpg") center/cover no-repeat;
  color: #fff;
  padding: 3rem 0;
  min-height: 510px;
  display: block;
  align-items: center;

  .space{
    padding: 80px 0 0 0;
  }

  .heroBadge {
    display: inline-block;
    background: #E9E958;
    color: #2A2C2F;
    font-family: var(--fontBold);
    font-size: 2.1rem;
    padding: 0.3rem 0.8rem;
    text-transform: uppercase;
    height: 3.3rem;
    margin: 0 0 1.25rem 0;
  }

  h1 {
    font-size: 3rem;
    margin-bottom: 1rem;
    font-family: var(--fontBold);
  }

  .verticalLine{
    max-width: 960px;
  }

  p {
    margin-bottom: 1.5rem;
    font-size: 1.2rem;
    line-height:1.9rem;
    font-family: var(--fontReg);
  }

  p strong{
    font-family: var(--fontBold);
  }
}

@media (min-width: 768px) {
  .topRatedSection p{
    font-size: 1.4rem;
    line-height:2.1rem;
  }
}

.recentBlogPostsBlueWrap{
  background: #F3F6F8;
}

.recentPosts {
  padding: 80px 0;

  .sectionHeader {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    flex-direction: column;
    margin-bottom: 1.5rem;
    gap: 1rem;

    h2 {
      color: #393C42;
      font-size: 2.1rem;
      font-family: var(--fontBold);
    }
  }

  .postsGrid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .blogCard {
    overflow: hidden;

    .blogCardImage {
/*      height: 230px;*/
      height: 460px;
      overflow: hidden;

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

    .blogCardBody {
      padding: 20px 0;

      h3 {
        font-size: 1.425rem;
        line-height: 2.5rem;
        margin-bottom: 0.5rem;
        color: #393C42;
        font-family: var(--fontBold);
      }

      p {
        font-size: 1.125rem;
        line-height: 1.6875rem;
        color: #686868;
        margin-bottom: 0.75rem;
      }

      a.readMore {
        color: #3E8FAD;
        font-family: var(--fontBold);
      }
    }
  }
}

@media (min-width: 768px) {
  .recentPosts .postsGrid{
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 768px) {
  .recentPosts .sectionHeader{
    flex-direction: row;
  }
  .recentPosts .sectionHeader h2{
    font-size: 2.8rem;
  }
}

@media (min-width: 1024px) {
  .recentPosts .sectionHeader h2{
    font-size: 4.2rem;
  }
}

.programsByState{
  background: #F3F6F8;

  .container{
    padding: 80px 1rem;
    max-width:1280px;
    margin: auto;
  }
  
  h3{
    color: #393C42;
    font-family: var(--fontBold);
    font-size: 2.1rem;
    padding: 0.5rem 0;
  }

  h4{
    color: #393C42;
    font-family: var(--fontSemi);
    font-size: 1.8rem;
  }

  .stateGrid {
    padding: 30px 0 0 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.4rem;

    li {
      font-size: 1.125rem;
      line-height: 2.1rem;
      padding: 0.15rem 0;
      list-style-type: none;
      
      a {
        color: #3E8FAD;
      }

      strong {
        font-family: var(--fontBold);
      }
    }
  }
}

@media (min-width: 768px) {
  .programsByState .stateGrid{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .programsByState .stateGrid{
      grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 1024px) {
  .programsByState h3{
    font-size: 3.1rem;
  }
  .programsByState h4{
    font-size: 2.4rem;
  }
}

.programsByStateSidebar{
  background: #F3F6F8;
  width: 100%;

  .container{
    padding: 20px 20px;
    margin: auto;
  }
  
  h3{
    color: #393C42;
    font-family: var(--fontBold);
    font-size: 1.6rem;
    padding: 10px 0;
  }

  h4{
    color: #393C42;
    font-family: var(--fontSemi);
    font-size: 1.5rem;
  }

  .stateGrid {
    padding: 30px 0 0 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.4rem;

    li {
      font-size: 1.125rem;
      line-height: 2.1rem;
      padding: 0.15rem 0;
      list-style-type: none;
      
      a {
        color: #3E8FAD;
      }

      strong {
        font-family: var(--fontBold);
      }
    }
  }
}

@media (min-width: 1024px) {
  .programsByStateSidebar .container{
    padding: 50px 45px;
  }
  .programsByStateSidebar h3{
    font-size: 1.6rem;
  }
  .programsByStateSidebar h4{
    font-size: 1.5rem;
    font-style: normal;
  }
}

.faqs{
  padding: 80px 0;
  border-top: 1px solid #ccc;
  
  h2{
    font-family: var(--fontBold);
    font-size: 2.1rem;
  }

  .faqList {
    list-style: none;
    border-top: 1px solid #ccc;
  }

  .faqItem {
    border-bottom: 1px solid #ccc;

    .faqQuestion {
      width: 100%;
      background: none;
      border: none;
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 24px 0;
      cursor: pointer;
      text-align: left;
      font-size: 1.8rem;
      font-family: var(--fontSemi);

      .icon {
        font-size: 1.4rem;
        font-weight: 400;
        flex-shrink: 0;
        margin-left: 16px;
      }
    }

    .faqAnswer {
      display: none;
      font-size: 1.1rem;
      color: #444;
      line-height: 1.6;
      padding-bottom: 20px;
    }

    &.active .faqAnswer {
      display: block;
    }
  }

}


@media (min-width: 1024px) {
  .faqs .faqQuestion{
    font-size: 1.8rem;
  }

  .faqs h2{
    font-size: 4.2rem;
  }
}


.defaultHeaderWrap{
  background: #22262F;
  padding: 50px 0;
}

.siteFooter {
  background: #22262F;
  padding: 50px 0;

  .container {
    max-width: 1800px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
  }

  .footerNav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.25rem;

    a {
      color: #fff;
      font-size: 1rem;
      text-transform: uppercase;
      font-family: var(--fontBold);

      &:hover {
        color: #ccc;
        text-decoration: none;
      }
    }
  }
}

@media (min-width: 1024px) {
  .siteFooter .container{
    flex-direction: row;
    justify-content: space-between;  
  }
}

@media (min-width: 1024px) {
  .siteFooter .line{
    height: 1px;
    background: rgba(255,255,255,0.2);
    flex: 1 1 auto;
    margin:0 40px;
  }
}


.featPrograms{
  background: #F3F6F8;

  .container{
    padding: 80px 10px;
  }

  .header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: column;
    margin-bottom: 20px;

    h2 {
      color: #393C42;
      font-size: 2.1rem;
      font-family: var(--fontBold);
    }
  }

  .grid {
    display: grid;
    grid-template-columns: 67% 1fr;
    gap: 12px;
    height: 480px;

    .cardMain {
      grid-row: 1 / 3;
    }
  }

  .card {
    position: relative;
    overflow: hidden;

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

    .caption {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      background: rgba(0,0,0,0.40);
      color: #fff;
      padding: 40px 20px 20px;
      font-size: 1.25rem;
      font-weight: 700;
      line-height: 1.3;
    }

    &.cardMain .caption {
      font-size: 1.7rem;
    }
  }
}

@media (min-width: 768px) {
  .featPrograms .header{
    flex-direction: row;
  }
  .featPrograms .header h2{
    font-size: 2.8rem;
  }
}

@media (min-width: 1024px) {
  .featPrograms .header h2{
    font-size: 4.2rem;
  }
}

@media (max-width: 768px) {
  .featPrograms .grid {
    grid-template-columns: 1fr;
    height: auto;

    .cardMain {
      grid-row: auto;
    }

    .card {
      height: 260px;
    }
  }
}

#mainWrap{
  padding: 80px 10px;
  max-width: 1280px;
  margin:auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;

  .item{
    padding: 20px;
    border-radius:4px;
    margin: 0 0 20px 0;
    background: #F3F6F8;

    &.white{
      background: #fff;
    }

    &.sticky{
      border:1px solid #D1D1D1;
      background: #fff;
    }
  }

  .yellow {
    display: inline;
    background: #E9E958;
    color: #2A2C2F;
    font-family: var(--fontBold);
    font-size: 0.9rem;
    padding: 5px 7px 2px 7px;
    text-transform: uppercase;
    margin: 0 0 10px 0;
  }

  .ntm .yellow{
    background: inherit;
  }

  .requestInfo {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: #3E8FAD;
    color: #fff;
    padding: 15px 15px 10px 15px;
    border-radius: 40px;
    font-size: 0.8rem;
    font-weight: 600;
    border: none;
    cursor: pointer;
    transition: background 0.2s;
    text-align: center;

    &:hover {
      background: #238b7e;
      text-decoration: none;
      color: #fff;
    }

    &::after {
      content: "→";
      font-size: 1.1rem;
    }

    &.outline {
      background: transparent;
      border: 2px solid var(--colorPrimary);
      color: var(--colorPrimary);

      &:hover {
        background: var(--colorPrimary);
        color: #fff;
      }
    }
  }

  h4.title{
    font-family: var(--fontBold);
    font-size: 1.6rem;
    color: #393C42;

    a{
      color: #393C42;
      text-decoration: none;
    }
  }

  .desc{
    margin: 20px 0 20px 0;

    &.ntm{
      margin-top:0;
    }
  }

  .loc{
    color: #393C42;
    margin: 20px 0 20px 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    strong{
      font-family: var(--fontBold);
    }

    .info{
      margin: 3px 0 0 0;
      font-size: 0.9rem;
      position: relative;
      padding: 0 0 0 20px;

      svg{
        position: absolute;
        top:0;
        left:1px;
      }
    }

    .grp{
      min-width: 180px;
    }
  }
}

.navigation{
    padding: 30px 0 10px 0;

    a, span{
      font-family: var(--fontBold);
      font-size: 14px;
      line-height: 120%;
      display: inline-block;
      padding: 10px 12px;
      background: #fff;
      text-decoration: none;
      border-radius:2px;
      color: #7B8695;
      margin: 0 3px 0 0;
    }

    .current{
      background: #3E8FAD;
      color: #fff;
    }
  }


.itemText{
  /*word-break: break-all;
  overflow-wrap: break-word;
  word-wrap: break-word;
  hyphens: none;*/

  padding: 0 0 0 30px;
  border-left:1px solid #ccc;
  color: #393C42;

  p{
    padding: 10px 0;
  }

  strong{
    font-family: var(--fontBold);
  }
}

.entryContent{
  img.featImg{
    width: 100%;
    margin: 0 0 20px 0;
  }

  p{
    padding: 10px 0;
    line-height: 1.8rem;
  }

  h1, h2, h3, h4, h5, h6 {
    font-family: var(--fontBold);
    line-height: 1.3;
    color: var(#393C42);
    margin: 1rem 0 0.5rem;
  }

  h1 { font-size: 2rem; }   /* 32px */
  h2 { font-size: 1.8rem; } /* 28.8px */
  h3 { font-size: 1.6rem; } /* 25.6px */
  h4 { font-size: 1.4rem; } /* 22.4px */
  h5 { font-size: 1.2rem; } /* 19.2px */
  h6 { font-size: 1rem; }   /* 16px */

  /*<h1>Some test h1</h1>
  <h2>Some test h2</h2>
  <h3>Some test h3</h3>
  <h4>Some test h4</h4>
  <h5>Some test h5</h5>
  <h6>Some test h6</h6>*/
}

@media (min-width: 1024px) {
  #mainWrap{
    flex-direction: row;
    justify-content: space-between;

    .item{
       padding: 50px;
       margin: 0 0 45px 0;
     }

     h4.title{
        font-size: 2.1rem;
     }

    .requestInfo{
      font-size: 1.0rem;
    }

    .loc{
      flex-direction: row;
    }

    .servicesProvided{
      color: #3E8FAD;
      a{
        color: #3E8FAD;
      }
    }
  }

  .mainContent{
    flex: 0 0 59%;
  }
  .programsByStateSidebar{
    flex: 0 0 39%;
  }
}


#contactForm{
  .row{
    margin: 7px 0;
  }

  .chkItem{
    margin: 4px 0;

    span{
      font-size: 14px;
      display: inline-block;
      padding: 2px 0 0 0;
    }
  }

  label{
    display: block;
    font-size: 14px;
    padding: 0 0 5px 0;
    color: #000;
  }

  .input{
    padding: 6px;
    border-radius:2px;
    border:1px solid rgba(0,0,0,0.2);
    width: 100%;
    background: #fff;

    &.invalidField{
      border: 1px solid red;
    }
  }

  textarea.input{
    height: 80px;

  }

  select.input{
    cursor: pointer;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: #fff;
  }

  #submitInformaton{
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: #3E8FAD;
    color: #fff;
    padding: 15px 15px 10px 15px;
    border-radius: 40px;
    font-size: 0.8rem;
    font-weight: 600;
    border: none;
    cursor: pointer;
    transition: background 0.2s;
    text-align: center;

    &:hover {
      background: #238b7e;
      text-decoration: none;
      color: #fff;
    }

    &::after {
      content: "→";
      font-size: 1.1rem;
    }

    &.outline {
      background: transparent;
      border: 2px solid var(--colorPrimary);
      color: var(--colorPrimary);

      &:hover {
        background: var(--colorPrimary);
        color: #fff;
      }
    }
  }
  
}

.successSend{
  text-align: center;
  min-height: 400px;
  padding: 140px 0;

  h4{
    font-size: 22px !important;
  }
}