.elementor-kit-7{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --green:#3A5E33; --green-hover:#2F4E29; --green-deep:#092204; --green-mid:#5C7A55; --lime:#CBD46B; --lime-hover:#B4BE48; --lavender:#BACBF6; --link-purple:#4C63C2; --link-purple-hover:#2B3A85; --sage:#EBEFEA; --sage-light:#F6F8F5; --sage-soft:#DFE8DC; --white:#FFFFFF; --line:#D5DDD3; --text:#14270F; --text-secondary:#4C5F48; --text-on-green:#D8E5D4; --star:#E8A923; --font-heading:Outfit; --font-body:DM Sans; --text-h1:56px; --text-h1-mobile:34px; --text-h2:42px; --text-h2-mobile:28px; --text-h3-large:30px; --text-h3:22px; --text-h3-small:19px; --text-body-large:18px; --text-body:16px; --text-body-small:14px; --text-tagline:12px; --text-button:16px; --space-section:112px; --space-section-mobile:56px; --container-width:1240px; --radius-xl:32px; --radius-lg:24px; --radius-md:18px; --radius-sm:12px; --radius-pill:999px; }
/* Start custom CSS *//* ==========================================================
   DRIFT BEHAVIORAL | SITE CUSTOM CSS
   Colors, fonts and sizes come from the Elementor global
   variables (var(--green), var(--font-body)...). Change a
   variable and everything below follows.
   ========================================================== */

:root {
  --icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z'/%3E%3C/svg%3E");
  --icon-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z'/%3E%3C/svg%3E");
  --icon-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z'/%3E%3C/svg%3E");
}


/* 0. SVG WIDGETS
   The SVG widget renders the icon inline, so it inherits the page
   line-height and sits a few pixels low. This keeps every SVG
   icon centered in its box. */
.e-svg-base {
  line-height: 0;
}
.e-svg-base svg {
  display: block;
}


/* 1. BUTTON ICONS
   Each global button class shows its own icon before the text. */
.button-phone-lime::before,
.button-phone-green::before,
.button-verify-green::before,
.button-verify-outline-green::before,
.button-verify-outline-white::before,
.button-verify-white::before {
  content: "";
  flex: none;
  width: 18px;
  height: 18px;
  background-color: currentColor;
  -webkit-mask: var(--icon-shield) center / contain no-repeat;
          mask: var(--icon-shield) center / contain no-repeat;
}
.button-phone-lime::before,
.button-phone-green::before {
  -webkit-mask-image: var(--icon-phone);
          mask-image: var(--icon-phone);
}


/* 2. HEADER MENU (Nav Menu widget)
   The widget forces its own font, color and hover padding,
   so these rules use !important on purpose. */
.elementor-location-header .elementor-nav-menu--main .elementor-item {
  padding: 10px 6px !important;
  font-family: var(--font-body), sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5em !important;
  color: var(--text) !important;
  fill: var(--text) !important;
  transition: color .15s;
}
.elementor-location-header .elementor-nav-menu--main .elementor-item:hover,
.elementor-location-header .elementor-nav-menu--main .elementor-item:focus,
.elementor-location-header .elementor-nav-menu--main .elementor-item.highlighted {
  color: var(--green-mid) !important;
  fill: var(--green-mid) !important;
}
.elementor-location-header .elementor-nav-menu .sub-arrow {
  padding-left: 4px;
}
.elementor-location-header .elementor-nav-menu .sub-arrow svg {
  width: 10px;
  height: 10px;
}

/* Dropdowns (desktop submenus and mobile menu) */
.elementor-location-header .elementor-nav-menu--dropdown {
  min-width: 250px;
  padding: 8px !important;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  box-shadow: 0 12px 32px rgba(9, 34, 4, .14);
}
.elementor-location-header .elementor-nav-menu--dropdown li > a {
  padding: 9px 12px !important;
  border-radius: 10px;
  font-family: var(--font-body), sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  color: var(--text) !important;
  background: transparent;
}
.elementor-location-header .elementor-nav-menu--dropdown li > a:hover,
.elementor-location-header .elementor-nav-menu--dropdown li > a.highlighted {
  color: var(--text) !important;
  background: var(--sage-soft) !important;
}

/* Hamburger button */
.elementor-location-header .elementor-menu-toggle {
  padding: 10px;
  font-size: 20px;
  color: var(--green);
  background: var(--sage);
  border-radius: var(--radius-pill);
}
.elementor-location-header .elementor-menu-toggle svg {
  fill: var(--green);
}

/* Show the hamburger below 1340px (the widget only allows 1024px) */
@media (min-width: 1025px) and (max-width: 1339px) {
  .elementor-location-header .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main { display: none; }
  .elementor-location-header .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle { display: flex; }
  .elementor-location-header .elementor-nav-menu--dropdown-tablet .elementor-nav-menu__container.elementor-nav-menu--dropdown { display: block; }
}
@media (max-width: 1339px) {
  .elementor-location-header .elementor-widget-nav-menu {
    flex-grow: 0 !important;
    margin-left: auto;
  }
  .elementor-location-header .elementor-nav-menu--toggle .elementor-nav-menu__container.elementor-nav-menu--dropdown {
    position: absolute;
    right: 0;
    left: auto;
    width: min(360px, calc(100vw - 32px));
    max-height: 75vh;
    margin-top: 14px;
    overflow-y: auto;
  }
}


/* 3. BREADCRUMBS (Breadcrumbs widget + Yoast SEO)
   Made for the green page heroes. */
.elementor-widget-breadcrumbs {
  font-family: var(--font-body), sans-serif;
  font-size: var(--text-body-small);
  line-height: 1.5em;
  color: var(--text-on-green);
}
.elementor-widget-breadcrumbs #breadcrumbs {
  margin: 0;
  font-family: var(--font-body), sans-serif; /* the widget defaults to the heading font */
}
.elementor-widget-breadcrumbs a {
  color: var(--text-on-green);
  text-decoration: none;
  transition: color .15s;
}
.elementor-widget-breadcrumbs a:hover,
.elementor-widget-breadcrumbs .breadcrumb_last {
  color: var(--white);
}


/* 4. FAQ ACCORDION (JetEngine Dynamic Repeater, field "faq") */
.jet-listing-dynamic-repeater,
.jet-listing-dynamic-repeater__items,
.jet-listing-dynamic-repeater__item {
  width: 100%;
}
.jet-listing-dynamic-repeater__items {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.drift-faq-item {
  display: block !important;
  padding: 0 22px;
  background: var(--sage-light);
  border-radius: var(--radius-md);
}
.drift-faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 0;
  list-style: none;
  cursor: pointer;
  font-size: var(--text-body);
  line-height: 1.5em;
  color: var(--text);
}
.drift-faq-item summary::-webkit-details-marker {
  display: none;
}
.drift-faq-item summary::after {
  content: "+";
  flex: none;
  font-size: 26px;
  line-height: 1;
  color: var(--green);
}
.drift-faq-item[open] summary::after {
  content: "\2212";
}
.drift-faq-item summary:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 4px;
  border-radius: 8px;
}
.drift-faq-answer {
  padding-bottom: 20px;
  font-size: var(--text-body);
  line-height: 1.5em;
  color: var(--text-secondary);
}


/* 5. SILO SIDEBAR MENU (JetEngine listing "Sidebar Menu Item") */
.jet-listing-grid__items {
  width: 100% !important; /* JetEngine adds the column gap to the width, which pushed the arrows out of the card */
  margin: 0 !important;
}
.jet-listing-grid__item {
  padding: 0 !important;
}
.sidebar-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
  color: var(--text);
  text-decoration: none;
  transition: color .15s;
}
.sidebar-link:hover {
  color: var(--green);
}
.jet-listing-grid__item:last-child .sidebar-link {
  border-bottom: 0;
}
.sidebar-link .body {
  color: inherit;
}
.sidebar-link-arrow {
  flex: none;
  width: 14px !important;
  height: 14px !important;
  color: var(--green);
  fill: var(--green);
}


/* 6. RICH TEXT (post content and WYSIWYG fields)
   Keeps the article body on the site scale instead of the theme's. */
.elementor-widget-theme-post-content,
.legal-content {
  font-family: var(--font-body), sans-serif;
  font-size: var(--text-body);
  font-weight: 400;
  line-height: 1.5em;
  color: var(--text);
}
.elementor-widget-theme-post-content :is(p, ul, ol),
.legal-content :is(p, ul, ol) {
  margin: 0 0 16px;
  font-size: inherit;
  line-height: inherit;
}
.elementor-widget-theme-post-content li,
.legal-content li {
  margin-bottom: 6px;
}
.elementor-widget-theme-post-content :is(h1, h2, h3, h4, h5, h6),
.legal-content :is(h1, h2, h3, h4, h5, h6) {
  margin: 32px 0 12px;
  font-family: var(--font-heading), sans-serif;
  font-weight: 400;
  line-height: 1.3em;
  color: var(--text);
}
.elementor-widget-theme-post-content :is(h1, h2), .legal-content :is(h1, h2) { font-size: var(--text-h3-large); }
.elementor-widget-theme-post-content h3, .legal-content h3 { font-size: var(--text-h3); }
.elementor-widget-theme-post-content :is(h4, h5, h6) { font-size: var(--text-h3-small); }
.elementor-widget-theme-post-content > .elementor-widget-container > :first-child,
.legal-content > .elementor-widget-container > :first-child,
.legal-content > :first-child,
.elementor-widget-theme-post-content :first-child:is(h1, h2, h3) {
  margin-top: 0;
}
:is(.body, .body-large, .drift-faq-answer) p {
  margin: 0 0 12px;
}
:is(.body, .body-large, .drift-faq-answer) p:last-child {
  margin-bottom: 0;
}


/* 7. FOOTER SOCIAL ICONS
   Links come from Admin > Social Media. An empty field renders
   a link without href, so the icon hides itself. */
.social-icon:not([href]) {
  display: none !important;
}


/* 8. HOMEPAGE: horizontal card rows and facility photo strip */
.scroll-row {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  padding-bottom: 8px;
}
.scroll-row > * {
  flex: 0 0 calc((100% - 60px) / 4);
  scroll-snap-align: start;
}
@media (max-width: 1024px) { .scroll-row > * { flex-basis: calc((100% - 20px) / 2); } }
.scroll-row.scroll-row-3 > * { flex-basis: calc((100% - 40px) / 3); }
@media (max-width: 1024px) { .scroll-row.scroll-row-3 > * { flex-basis: calc((100% - 20px) / 2); } }
@media (max-width: 767px)  { .scroll-row.scroll-row-3 > * { flex-basis: 85%; } }
@media (max-width: 767px)  { .scroll-row > * { flex-basis: 85%; } }

.marquee {
  overflow: hidden;
}
.marquee-track {
  display: flex;
  gap: 16px;
  width: max-content;
  animation: drift-marquee 70s linear infinite;
}
.marquee:hover .marquee-track {
  animation-play-state: paused;
}
@keyframes drift-marquee {
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none; }
}

/* 9. HOMEPAGE HERO: highlighted city in the H1 and review stars */
.hero-title span {
  color: var(--lime);
}
.stars {
  color: var(--star);
  letter-spacing: 1px;
}


/* 10. SHARED DECORATION AND SECTION CONTEXT
   Eyebrow dot, "Learn more" arrow, band rings and the card color
   inside light-gray (alt) sections. */
.eyebrow,
.eyebrow-on-dark {
  align-items: center;
  gap: 8px;
}
.eyebrow::before,
.eyebrow-on-dark::before {
  content: "";
  flex: none;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}
.eyebrow-plain::before {
  display: none;
}
.button-learn-more::after,
.button-learn-more-white::after {
  content: "";
  flex: none;
  width: 14px;
  height: 14px;
  background-color: currentColor;
  -webkit-mask: var(--icon-arrow) center / contain no-repeat;
          mask: var(--icon-arrow) center / contain no-repeat;
}
/* Card "Learn more" / "Read more" links, site wide (cards, hubs, blog loop) */
body .elementor a.link-more,
body .elementor a.link-more:visited {
  color: var(--green) !important;
  font-weight: 600;
  text-decoration: none;
}
body .elementor a.link-more:hover,
body .elementor a.link-more:focus-visible {
  color: var(--green-deep) !important;
}
.link-more svg {
  transition: transform .15s;
}
.link-more:hover svg {
  transform: translateX(3px);
}
.band-ring {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.band-ring::after {
  content: "";
  position: absolute;
  right: -8%;
  bottom: -46%;
  z-index: -1;
  width: 62%;
  aspect-ratio: 1;
  border: 70px solid rgba(203, 212, 107, .10);
  border-radius: 50%;
  pointer-events: none;
}
.band-ring-light::after {
  border-color: rgba(255, 255, 255, .18);
}
.card-ring::after {
  right: -55%;
  bottom: -45%;
  width: 130%;
  border-width: 34px;
  border-color: rgba(255, 255, 255, .18);
}
/* Cards sit on white by default and turn sage inside alt sections */
body .section-alt .card-surface {
  background-color: var(--sage);
}


/* 11. BLOG (Single Post, Blog Archive, Loop Item "Blog Card")
   Article images and links inside the post body. */
.elementor-widget-theme-post-content figure {
  margin: 28px 0;
}
.elementor-widget-theme-post-content img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius-lg);
}

/* Category chip (JetEngine Dynamic Terms) */
.post-chip .jet-listing-dynamic-terms__link {
  display: inline-flex;
  padding: 6px 12px;
  border-radius: var(--radius-pill);
  background: var(--white);
  color: var(--green-deep);
  font-family: var(--font-body), sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3em;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.post-chip-light .jet-listing-dynamic-terms__link {
  background: rgba(255, 255, 255, .14);
  color: var(--white);
}
/* Linked card titles keep the heading color */
.card-surface :is(h2, h3) a {
  color: inherit;
  text-decoration: none;
}
.card-surface :is(h2, h3) a:hover {
  color: var(--green);
}
/* Hide the FAQ block on posts without questions */
.post-faq:not(:has(.drift-faq-item)) {
  display: none;
}
/* Loop Grid pagination */
.elementor-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 48px;
  font-family: var(--font-body), sans-serif;
  font-size: var(--text-body-small);
}
.elementor-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 16px;
  border-radius: var(--radius-pill);
  background: var(--white);
  color: var(--text);
  text-decoration: none;
}
.elementor-pagination .page-numbers.current,
.elementor-pagination a.page-numbers:hover {
  background: var(--green);
  color: var(--white);
}
/* Images that follow each other in the article sit side by side */
.elementor-widget-theme-post-content .post-image-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 28px 0;
}
.elementor-widget-theme-post-content .post-image-row figure {
  margin: 0;
}
.elementor-widget-theme-post-content .post-image-row img {
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* 12. TEXT LINKS
   Links inside running text get the brand lime.
   Light backgrounds: green text with a thick lime underline (lime text alone is unreadable on white).
   Green bands (.text-on-dark): lime text, underlined, white on hover. */
.elementor-widget-theme-post-content a,
.jet-listing-dynamic-field__content a,
.drift-faq-answer a,
.e-accordion-item a,
:is(.body, .body-large, .body-small) a {
  color: var(--green);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--lime);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: background-color .2s, color .2s;
}
.elementor-widget-theme-post-content a:hover,
.jet-listing-dynamic-field__content a:hover,
.drift-faq-answer a:hover,
.e-accordion-item a:hover,
:is(.body, .body-large, .body-small) a:hover {
  color: var(--green-deep);
  background-color: var(--lime);
}
.text-on-dark a,
.text-on-dark .jet-listing-dynamic-field__content a {
  color: var(--lime);
  text-decoration-color: var(--lime);
  text-decoration-thickness: 1px;
}
.text-on-dark a:hover,
.text-on-dark .jet-listing-dynamic-field__content a:hover {
  color: var(--white);
  background-color: transparent;
  text-decoration-color: var(--white);
}
/* WYSIWYG fields printed by JetEngine keep their paragraphs */
.jet-listing-dynamic-field__content p { margin: 0 0 12px; }
.jet-listing-dynamic-field__content p:last-child { margin-bottom: 0; }

/* 13. SILO TEMPLATE, small laptops and tablets (Elementor only has 1024/767 breakpoints)
   Up to 1200px the hero stacks (photo on top) and the sidebar drops below the article,
   with its two cards side by side while there is room. */
@media (max-width: 1200px) {
  body .elementor .silo-hero-band {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: 32px;
  }
  body .elementor .silo-hero-copy {
    flex: none;
    width: 100%;
  }
  body .elementor .silo-hero-image {
    flex: none;
    width: 100%;
    max-width: none;
    aspect-ratio: 16 / 9;
    max-height: 360px;
    object-fit: cover;
  }
  body .elementor .silo-content-grid {
    flex-direction: column;
    align-items: stretch;
    gap: 48px;
  }
  body .elementor .silo-sidebar {
    position: static;
    flex: none;
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
  }
  body .elementor .silo-sidebar > * {
    flex: 1 1 320px;
  }
}
@media (min-width: 1025px) and (max-width: 1200px) {
  body .elementor .silo-hero-band {
    padding: 48px;
  }
}
@media (max-width: 767px) {
  body .elementor .silo-hero-image {
    max-height: 220px;
  }
}
/* Silo: the admissions CTA card (last card of the sidebar) is hidden on phones only */
@media (max-width: 767px) {
  body .elementor .silo-sidebar > :last-child {
    display: none;
  }
}
/* Silo hero: a page with no featured image shows the copy alone */
body .elementor .silo-hero-image:not([src]) {
  display: none;
}
/* Comparison tables inside articles (CBT vs DBT) */
.elementor-widget-theme-post-content .wp-block-table {
  margin: 28px 0;
  overflow-x: auto;
}
.elementor-widget-theme-post-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-body-small);
  background: var(--white);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.elementor-widget-theme-post-content th,
.elementor-widget-theme-post-content td {
  padding: 14px 16px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--sage-soft);
}
.elementor-widget-theme-post-content thead th {
  background: var(--green);
  color: var(--white);
  font-weight: 600;
}
.elementor-widget-theme-post-content tbody th {
  background: var(--sage-light);
  color: var(--text);
  font-weight: 600;
  width: 28%;
}
/* Layout images never force their row wider than the screen */
.elementor img.e-image-base {
  min-width: 0;
}
/* Insurance logo strip inside articles (Family Therapy) */
.elementor-widget-theme-post-content .post-logo-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 32px;
  margin: 28px 0;
  padding: 24px 28px;
  background: var(--sage-light);
  border-radius: var(--radius-lg);
}
.elementor-widget-theme-post-content .post-logo-row img {
  width: auto;
  height: 36px;
  border-radius: 0;
  object-fit: contain;
}
/* Statistic callout inside articles (teen pages) */
.elementor-widget-theme-post-content .post-stat {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 28px 0;
  padding: 24px 28px;
  background: var(--sage-light);
  border-left: 4px solid var(--lime);
  border-radius: var(--radius-lg);
}
.elementor-widget-theme-post-content .post-stat strong {
  flex-shrink: 0;
  font-family: var(--font-heading);
  font-size: 48px;
  line-height: 1;
  font-weight: 500;
  color: var(--green);
}
@media (max-width: 767px) {
  .elementor-widget-theme-post-content .post-stat { flex-direction: column; align-items: flex-start; gap: 8px; }
  .elementor-widget-theme-post-content .post-logo-row img { height: 28px; }
}


/* 9. MOBILE CALL BAR (footer template, mobile only)
   Phone and Verify Insurance pinned to the bottom of the screen.
   Text and links come from the Admin options page. */
.mobile-call-phone::before,
.mobile-call-verify::before {
  content: "";
  flex: none;
  width: 18px;
  height: 18px;
  background-color: currentColor;
  -webkit-mask: var(--icon-phone) center / contain no-repeat;
          mask: var(--icon-phone) center / contain no-repeat;
}
.mobile-call-verify::before {
  -webkit-mask-image: var(--icon-shield);
          mask-image: var(--icon-shield);
}
.mobile-call-bar {
  padding-bottom: env(safe-area-inset-bottom) !important;
  background-color: var(--green-deep);
  box-shadow: 0 -6px 18px rgba(20, 39, 15, .18);
}
.mobile-call-phone:hover, .mobile-call-phone:focus-visible {
  color: var(--green) !important;
}
.mobile-call-verify:hover, .mobile-call-verify:focus-visible {
  color: var(--lime) !important;
}
@media (max-width: 767px) {
  /* room for the fixed mobile call bar so it never covers the footer */
  html body { padding-bottom: calc(56px + env(safe-area-inset-bottom)) !important; }
}


/* 14. SILO HERO, desktop (above 1200px)
   The featured image fills the full height of the green band,
   inside the band padding, instead of a fixed 4:3 box. */
@media (min-width: 1201px) {
  body .elementor .silo-hero-band {
    align-items: stretch;
  }
  body .elementor .silo-hero-copy {
    justify-content: center;
  }
  body .elementor .silo-hero-image {
    align-self: stretch;
    height: auto;
    min-height: 360px;
    aspect-ratio: auto;
    object-fit: cover;
    contain: size;
  }
}


/* 15. TEXT + IMAGE SECTIONS (custom pages), desktop
   The side photo matches the height of the text next to it.
   Tablet and phone keep the stacked layout (photo on top). */
@media (min-width: 1025px) {
  body .elementor img.split-media {
    align-self: stretch !important;
    height: auto !important;
    aspect-ratio: auto !important;
    min-height: 320px;
    object-fit: cover;
    contain: size;
  }
}

/* ===== 16. VOB band spacing (stacked columns) + Gravity Forms in the site design system ===== */
@media (max-width:1024px){
  /* the two VOB columns keep flex:1 1 50% when stacked, which leaves empty height under the contact list */
  body .elementor .e-con:has(> .e-con > .e-con > .elementor-widget-shortcode .gform_wrapper) > .e-con{flex:0 0 auto!important;min-height:0!important;height:auto!important}
}
body .gform_wrapper.gform-theme--framework{
  --gf-color-primary:#3A5E33!important;--gf-color-primary-rgb:58,94,51!important;--gf-color-primary-darker:#092204!important;--gf-color-primary-lighter:#5C7A55!important;
  --gf-color-in-ctrl:#F6F8F5!important;--gf-color-in-ctrl-darker:#F6F8F5!important;--gf-color-in-ctrl-contrast:#14270F!important;
  --gf-color-in-ctrl-primary:#3A5E33!important;--gf-color-in-ctrl-light:#D5DDD3!important;--gf-color-in-ctrl-light-darker:#D5DDD3!important;
  --gf-color-in-ctrl-dark:#4C5F48!important;--gf-color-out-ctrl-dark:#4C5F48!important;--gf-color-out-ctrl-dark-darker:#14270F!important;
  --gf-radius:12px!important;--gf-form-gap-y:14px!important;--gf-form-gap-x:12px!important;
  --gf-ctrl-size:50px!important;--gf-ctrl-font-size:15px!important;--gf-ctrl-padding-x:16px!important;
  --gf-ctrl-border-color:var(--line)!important;--gf-ctrl-border-color-hover:var(--green-mid)!important;--gf-ctrl-border-color-focus:var(--green)!important;
  --gf-ctrl-outline-color-focus:rgba(58,94,51,.18)!important;--gf-ctrl-placeholder-color:#6B7C67!important;
  font-family:var(--font-body),sans-serif!important;text-align:left;width:100%
}
body .gform_wrapper .gform_heading{display:none!important}
body .gform_wrapper .gform_fields{row-gap:14px!important;column-gap:12px!important}
body .gform_wrapper .ginput_complex{gap:12px!important;row-gap:14px!important}
body .gform_wrapper .ginput_complex > span{margin:0!important}
body .gform_wrapper input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=hidden]),
body .gform_wrapper select,body .gform_wrapper textarea{
  font-family:var(--font-body),sans-serif!important;font-size:15px!important;color:var(--text)!important;
  background-color:var(--sage-light)!important;border:1px solid var(--line)!important;border-radius:12px!important;
  min-height:50px;padding-inline:16px!important;box-shadow:none!important;width:100%!important;text-align:left!important;transition:border-color .2s,box-shadow .2s
}
body .gform_wrapper textarea{min-height:120px!important;padding-block:14px!important}
body .gform_wrapper input:focus,body .gform_wrapper select:focus,body .gform_wrapper textarea:focus{
  border-color:var(--green)!important;box-shadow:0 0 0 3px rgba(58,94,51,.18)!important;outline:none!important;background-color:var(--white)!important
}
body .gform_wrapper .ginput_container_date{width:100%}
body .gform_wrapper .ginput_container_date input{width:100%!important;max-width:none!important}
body .gform_wrapper .gfield_label,body .gform_wrapper .gform-field-label{font-family:var(--font-body),sans-serif!important;color:var(--text)!important;font-weight:600}
body .gform_wrapper .gform_footer{margin-top:18px!important;padding:0!important}
body .gform_wrapper .gform_footer .gform_button,body .gform_wrapper .gform_page_footer .button{
  font-family:var(--font-body),sans-serif!important;font-size:16px!important;font-weight:600!important;
  background:var(--green)!important;color:var(--white)!important;border:0!important;border-radius:var(--radius-pill)!important;
  min-height:52px!important;padding:14px 28px!important;width:100%!important;box-shadow:none!important;cursor:pointer;transition:background-color .2s
}
body .gform_wrapper .gform_footer .gform_button:hover,body .gform_wrapper .gform_footer .gform_button:focus-visible{background:var(--green-deep)!important}
body .gform_wrapper .gform_footer .gform_button:focus-visible{outline:2px solid var(--lime)!important;outline-offset:2px}
body .gform_wrapper .gfield_validation_message,body .gform_wrapper .validation_message{font-size:13px!important;border-radius:10px!important}
body .gform_wrapper .gform_validation_errors{border-radius:12px!important}
@media (max-width:640px){
  body .gform_wrapper .gform_fields > .gfield--width-half{grid-column:1 / -1!important}
}
body .gform_wrapper .ginput_complex{margin:0!important;flex-wrap:wrap}
body .gform_wrapper .ginput_complex > span{padding:0!important;flex:1 1 0!important;min-width:0!important;max-width:none!important}
body .gform_wrapper .ginput_complex.ginput_container--name{flex-wrap:nowrap!important}
body .gform_wrapper .ginput_container_date input{margin:0!important;flex:1 1 100%!important}
body .gform_wrapper .ginput_container_date{position:relative}
body .gform_wrapper .ginput_container_date input{padding-right:46px!important}
body .gform_wrapper .ginput_container_date .gform-datepicker-toggle{position:absolute!important;right:14px;top:25px!important;transform:translateY(-50%)!important;margin:0!important;color:var(--green)!important}

/* ===== 17. Inner page hero image: same height as the copy column (custom pages + team single) ===== */
@media (min-width:1025px){
  body .elementor img.hero-media{align-self:stretch!important;height:auto!important;max-height:none!important;aspect-ratio:auto!important;min-height:280px;object-fit:cover;contain:size}
}
body .elementor-488 img.hero-media,body .elementor img.hero-media[src*="team"]{object-position:center 20%}

/* ===== 18. Silo template: hide the FAQ block when the FAQ title is empty (every FAQ has a title) ===== */
body .elementor :is(.silo-faq,.post-faq):not(:has(h2:not(:empty))){display:none!important}
/* Silo template: hide the Final CTA box when its headline is empty */
body .elementor .silo-final-cta:not(:has(h2:not(:empty))){display:none!important}
/* Two-column symptom tables with equal columns (Stimulant withdrawal) */
.elementor-widget-theme-post-content .table-even table{table-layout:fixed}

@media (max-width:1339px) and (prefers-reduced-motion:reduce){.elementor-location-header .elementor-nav-menu__container.elementor-nav-menu--dropdown{transition:none!important}}
/* ===== 19. Mobile menu: full-screen panel with arrow rows, accordion submenus and a CTA card (below 1340px) ===== */
body .elementor-location-header .mobile-menu-cta{display:none!important}
@media (max-width:1339px){
  /* the panel */
  .elementor-location-header .elementor-nav-menu--toggle .elementor-nav-menu__container.elementor-nav-menu--dropdown{
    position:fixed!important;inset:0!important;width:100%!important;max-height:none!important;height:100dvh!important;margin:0!important;display:block!important;
    z-index:2;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background:var(--white)!important;
    border:0!important;border-radius:0!important;box-shadow:10px 0 36px rgba(9,34,4,.22)!important;padding:0 18px 28px!important;transform:translateX(-105%)!important;visibility:hidden;transition:transform .32s cubic-bezier(.22,.8,.3,1),visibility 0s linear .32s!important;
  }
  .elementor-location-header .elementor-nav-menu--dropdown.elementor-nav-menu__container > ul{max-width:560px;margin:0 auto!important}
  /* rows */
  .elementor-location-header .elementor-nav-menu--dropdown .menu-item{border-bottom:1px solid var(--line)}
  .elementor-location-header .elementor-nav-menu--dropdown .sub-menu .menu-item:last-child{border-bottom:0}
  .elementor-location-header .elementor-nav-menu--dropdown li > a,
  .elementor-location-header .elementor-nav-menu--dropdown li > a.elementor-sub-item{
    display:flex!important;justify-content:space-between;align-items:center;gap:12px;
    padding:18px 4px!important;font-family:var(--font-body),sans-serif;font-size:17px!important;font-weight:500;color:var(--text)!important;background:transparent!important;border:0!important;
  }
  .elementor-location-header .elementor-nav-menu--dropdown li > a:hover,
  .elementor-location-header .elementor-nav-menu--dropdown li > a.highlighted,
  .elementor-location-header .elementor-nav-menu--dropdown li > a:focus-visible{color:var(--green)!important;background:transparent!important}
  /* arrow on every row; parents rotate it down when open */
  .elementor-location-header .elementor-nav-menu--dropdown .sub-arrow{margin-left:auto;padding:0!important;display:flex}
  .elementor-location-header .elementor-nav-menu--dropdown .sub-arrow svg{display:none}
  .elementor-location-header .elementor-nav-menu--dropdown .sub-arrow::before,
  .elementor-location-header .elementor-nav-menu--dropdown li > a:not(.has-submenu)::after{
    display:block!important;position:static!important;opacity:1!important;
    content:"";width:16px;height:16px;flex:none;background-color:var(--green);
    -webkit-mask:var(--icon-arrow) center/contain no-repeat;mask:var(--icon-arrow) center/contain no-repeat;transition:transform .2s;
  }
  .elementor-location-header .elementor-nav-menu--dropdown li > a.has-submenu.highlighted .sub-arrow::before{transform:rotate(90deg)}
  /* submenus: indented, lighter */
  .elementor-location-header .elementor-nav-menu--dropdown .sub-menu{
    position:static!important;width:auto!important;min-width:0!important;margin:0 0 12px!important;padding:0 0 0 14px!important;
    border:0!important;border-left:2px solid var(--sage-soft)!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;
  }
  .elementor-location-header .elementor-nav-menu--dropdown .sub-menu a{font-size:15px!important;font-weight:400;padding:13px 4px!important;color:var(--text-secondary)!important}
  .elementor-location-header .elementor-nav-menu--dropdown .sub-menu .menu-item{border-bottom:1px solid var(--sage-soft)}
  /* open state: one slide-in, one slide-out, no Elementor scaleY/max-height animation */
  .elementor-location-header .elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container.elementor-nav-menu--dropdown{
    transform:translateX(0)!important;visibility:visible;transition:transform .32s cubic-bezier(.22,.8,.3,1),visibility 0s!important;
  }
  /* CTA card lives inside the panel (moved there by a small script) and scrolls with the list */
  .elementor-location-header .elementor-nav-menu__container.elementor-nav-menu--dropdown .mobile-menu-cta{
    display:flex!important;position:static!important;width:auto!important;max-width:none;margin:26px 0 0!important;
  }
  html.drift-mm-open,html.drift-mm-open body{overflow:hidden!important}
  /* drawer head (logo + close), added by the header script */
  .elementor-location-header .drift-mm-head{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:3;background:var(--white);padding:18px 2px 16px;margin:0 0 6px;border-bottom:1px solid var(--line)}
  .elementor-location-header .drift-mm-head a{display:block!important;padding:0!important;border:0!important;background:transparent!important}
  .elementor-location-header .drift-mm-head a::after{display:none!important}
  .elementor-location-header .drift-mm-head img{display:block;height:34px;width:auto}
  .elementor-location-header .drift-mm-close{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:10px;background:transparent;color:var(--green);cursor:pointer;padding:0}
  .elementor-location-header .drift-mm-close svg{width:26px;height:26px;stroke:currentColor}
  .elementor-location-header .drift-mm-close:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
  /* dark overlay behind the drawer; tapping it closes the menu */
  .elementor-location-header .drift-mm-overlay{display:block;position:fixed;inset:0;background:rgba(9,34,4,.55);z-index:1;opacity:0;pointer-events:none;transition:opacity .32s}
  html.drift-mm-open .elementor-location-header .drift-mm-overlay{opacity:1;pointer-events:auto}
  html.drift-mm-open .mobile-call-bar{display:none!important}
}
/* Mobile menu, Blue River style: plain X, sub-items indented without arrow or side line, full-width dividers */
@media (max-width:1339px){
  .elementor-location-header .elementor-nav-menu--dropdown .sub-menu{border-left:0!important;padding-left:0!important;margin:0!important}
  .elementor-location-header .elementor-nav-menu--dropdown .sub-menu li > a{padding-left:28px!important}
  .elementor-location-header .elementor-nav-menu--dropdown .sub-menu .sub-menu li > a{padding-left:52px!important}
  .elementor-location-header .elementor-nav-menu--dropdown .sub-menu li > a:not(.has-submenu)::after{display:none!important}
  .elementor-location-header .elementor-nav-menu--dropdown .sub-menu .menu-item,
  .elementor-location-header .elementor-nav-menu--dropdown .sub-menu .menu-item:last-child{border-top:1px solid var(--line);border-bottom:0!important}
}
/* Dark form card (Contact page): white inputs, lime submit button */
body .form-card-dark .gform_wrapper input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=hidden]),
body .form-card-dark .gform_wrapper select,body .form-card-dark .gform_wrapper textarea{background-color:var(--white)!important;border-color:transparent!important}
body .form-card-dark .gform_wrapper .gform_footer .gform_button{background:var(--lime)!important;color:var(--green-deep)!important}
body .form-card-dark .gform_wrapper .gform_footer .gform_button:hover{background:var(--white)!important}
body .form-card-dark .gform_wrapper .gfield_validation_message{color:var(--lime)!important;background:transparent!important;border:0!important;padding:6px 0 0!important}
body .form-card-dark .gform_wrapper .gform_validation_errors{background:var(--white)!important;border-color:transparent!important}
/* Standard "Learn More" text link with arrow (cards and sections) */
body .elementor a.learn-more-link,body .elementor a.learn-more-link:visited{
  display:inline-flex!important;align-items:center;gap:7px;width:auto;min-height:0!important;padding:4px 0 0!important;
  background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;
  color:var(--green)!important;font-family:var(--font-body),sans-serif;font-size:16px;font-weight:600;text-decoration:none;
}
body .elementor a.learn-more-link::after{content:"";flex:none;width:15px;height:15px;background-color:currentColor;-webkit-mask:var(--icon-arrow) center/contain no-repeat;mask:var(--icon-arrow) center/contain no-repeat;transition:transform .2s}
body .elementor a.learn-more-link:hover,body .elementor a.learn-more-link:focus-visible{color:var(--green-deep)!important}
body .elementor a.learn-more-link:hover::after{transform:translateX(3px)}
/* Card rows: swipe without a visible scrollbar; on desktop all cards fit in one row */
body .elementor .scroll-row{scrollbar-width:none!important;-ms-overflow-style:none;padding-bottom:0!important}
body .elementor .scroll-row::-webkit-scrollbar{display:none!important}
@media (min-width:1025px){body .elementor .scroll-row.scroll-row-3 > *{flex:1 1 0!important;min-width:0}}
body .elementor .scroll-row{align-items:stretch!important}
body .elementor .scroll-row > *{align-self:stretch!important;height:auto!important}
body .elementor .scroll-row a.link-more{margin-top:auto}
/* Home Who We Help: cards without a Learn more link */
body .elementor-336 .elementor-element-47b6176 a.link-more{display:none!important}
/* Home Programs: two columns of stacked cards, icon in the top right corner */
body .elementor .programs-band article.card-surface{position:relative;padding:36px 40px 32px!important;gap:14px}
body .elementor .programs-band article.card-surface > .e-con:first-child{position:absolute;top:32px;right:32px;width:auto!important;height:auto!important;padding:0!important;background:transparent!important}
body .elementor .programs-band article.card-surface > .e-con:first-child .e-svg-base{width:34px!important;height:34px!important;color:var(--green)!important}
body .elementor .programs-band article.card-surface h3{padding-right:56px;font-size:22px}
@media (max-width:767px){
  body .elementor .programs-band article.card-surface{padding:28px 22px 24px!important}
  body .elementor .programs-band article.card-surface > .e-con:first-child{top:24px;right:22px}
  body .elementor .programs-band article.card-surface > .e-con:first-child .e-svg-base{width:28px!important;height:28px!important}
  body .elementor .programs-band article.card-surface h3{padding-right:44px;font-size:20px}
}
/* Home Programs: cards line up row by row across the two columns on desktop */
@media (min-width:1025px){
  body .elementor .programs-band > .e-div-block-base{align-items:stretch!important}
  body .elementor .programs-band > .e-div-block-base > .e-con{height:100%}
  body .elementor .programs-band > .e-div-block-base > .e-con > .e-con:last-child{flex:1 1 auto;display:grid!important;grid-template-rows:repeat(3,1fr);gap:20px}
}
body .elementor .programs-band article.card-surface{height:auto!important}
@media (min-width:1025px){body .elementor .programs-band article.card-surface{height:100%!important}}
body .elementor .programs-band article.card-surface a.link-more{margin-top:auto}
@media (min-width:1025px){body .elementor .programs-band > .e-div-block-base > .e-con > .e-con:first-child{min-height:64px}}
@media (min-width:1025px) and (max-width:1280px){body .elementor .programs-band > .e-div-block-base > .e-con > .e-con:first-child h3{font-size:21px!important}}
/* Home Programs: list item dot */
body .elementor .programs-band article .e-flexbox-base > .e-div-block-base:first-child{width:6px!important;min-width:6px!important;max-width:6px!important;height:6px!important;flex:0 0 6px!important;padding:0!important;border-radius:50%!important}

/* Legal pages (Privacy Policy): rich text block */
.legal-content ul{padding-left:22px}
.legal-content a{color:var(--green);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}

body .elementor .elementor-widget.legal-content{max-width:820px!important;width:100%!important}

/* ===== 17. Bullet Item component (global class bullet-item): dot drawn with ::before, no empty div ===== */
body .elementor .bullet-item, body .elementor .g-c181c86{position:relative;padding-left:20px!important;margin:0}
body .elementor .bullet-item::before, body .elementor .g-c181c86::before{content:"";position:absolute;left:0;top:.55em;top:calc((1lh - 8px) / 2);width:8px;height:8px;border-radius:50%;background:var(--green,#3A5E33)}
body .elementor .programs-band .bullet-item, body .elementor .programs-band .g-c181c86{color:var(--text-secondary,#4C5F48);padding-left:16px!important}
body .elementor .programs-band .bullet-item::before, body .elementor .programs-band .g-c181c86::before{width:6px;height:6px;top:.6em;top:calc((1lh - 6px) / 2)}

/* ===== 18. Step Item component (numbered steps): parent flexbox gets step-list, items use step-item ===== */
body .elementor .step-list, body .elementor .g-5c0a1be{counter-reset:drift-step}
body .elementor .step-item, body .elementor .g-1e12b0d{counter-increment:drift-step;position:relative;padding-left:44px!important;margin:0;min-height:30px}
body .elementor .step-item::before, body .elementor .g-1e12b0d::before{content:counter(drift-step);position:absolute;left:0;top:-2px;width:30px;height:30px;border-radius:50%;background:var(--lime,#CBD46B);color:var(--text,#14270F);font-weight:600;font-size:14px;line-height:30px;text-align:center}

/* ===== 19. Custom CPT pages: cards inside a white section get the sage fill so they never disappear (white on white) ===== */
body.single:not(.single-post) .elementor .section:not(.section-alt) .card-surface{background-color:var(--sage,#EBEFEA)}

/* ===== 20. Comparison tables inside custom pages (Text Editor widget with class drift-table) ===== */
body .elementor .drift-table{width:100%}
body .elementor .drift-table table{width:100%;border-collapse:separate;border-spacing:0;margin:4px 0 0;font-size:15px;line-height:1.5;border:1px solid var(--line,#D5DDD3);border-radius:16px;overflow:hidden;background:#fff}
body .elementor .drift-table th,body .elementor .drift-table td{padding:12px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line,#D5DDD3);color:var(--text-secondary,#4C5F48)}
body .elementor .drift-table thead th{background:var(--green,#3A5E33);color:#fff;font-weight:600}
body .elementor .drift-table tbody th{color:var(--text,#14270F);font-weight:600;background:var(--sage-light,#F6F8F5)}
body .elementor .drift-table tbody tr:last-child th,body .elementor .drift-table tbody tr:last-child td{border-bottom:0}
@media (max-width:767px){body .elementor .drift-table{overflow-x:auto}body .elementor .drift-table table{font-size:14px;min-width:480px}}

/* 21: long words in headings never overflow on phones (no auto hyphenation) */
@media (max-width:767px){body .elementor h1,body .elementor h2,body .elementor h3{overflow-wrap:break-word;hyphens:manual}}

/* 22: Timeline Step component, no connector after the last step */
body .elementor .timeline-steps > :last-child .timeline-line{display:none}

/* Header: center the nav menu between logo and buttons (full menu shows at 1340px+) */
@media (min-width:1340px){
  .elementor-location-header .elementor-element-32ebfd7c .elementor-nav-menu--main{justify-content:center}
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Outfit';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('https://driftbehavioral.com/wp-content/uploads/2026/10/Outfit-Regular.woff2') format('woff2');
}
/* End Custom Fonts CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'DM Sans';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('https://driftbehavioral.com/wp-content/uploads/2026/10/DMSans-Regular.woff2') format('woff2');
}
@font-face {
	font-family: 'DM Sans';
	font-style: normal;
	font-weight: 700;
	font-display: auto;
	src: url('https://driftbehavioral.com/wp-content/uploads/2026/10/DMSans-Bold.woff2') format('woff2');
}
/* End Custom Fonts CSS */